对于我的本科项目,我的任务是制作一个可以预测时间序列数据,特别是电网数据的变压器。我需要采用长度为 N 的单变量时间序列,然后可以预测未来的另一个单变量时间序列 M 步。
我一开始是按照“ Attention is all you need ”论文开始的,但由于这篇论文是针对 NLP 的,所以我不得不进行一些更改。我没有将每个单词嵌入到 d_model 维空间中的随机点,而是使用线性层嵌入数据。我还尝试使用内核大小为 1 的 nn.Conv1d 层进行嵌入,但这些方法无法对数据进行非线性预测,而只能通过数据的平均值预测一条直线。
首先,我认为问题出在变压器的实现上,但即使我在 nn.Transformer 模块中使用 Pytorch 的构建,我也会得到相同的结果。然后我尝试了不同类型的位置编码,例如“Time2Vec”论文,它通过使用不同的正弦函数来近似数据。
我觉得我已经尝试了很多不同的方法来使这个变压器工作但无济于事。所以我的问题是,变压器是否单独用于单变量数据的多步预测。如果是这样,是否有任何文章、论文、存储库等可以成功预测时间序列数据?如果不是,我应该采取哪种方法,看看我是否能让我的变压器工作。
编辑:我发现了问题,显然唯一的问题是我将学习率设置得太高:)