想吃瓜的同学,直接往后看
训练
经过几次博文,Informer的模型已经完全复现了。接下来就是通过训练验证复现的模型是否可行。
优化器optimizer用Adam,评价标准criterion用MSELoss(),学习率设置为1e-3,学习率衰减采用CosineLRScheduler (timm.scheduler.cosine_lr),预热5个epoch。batch_size和源代码保持一致,设置为32。pred_len设置为24。
经过10个epoch的训练,最终得到结果为
相较于源代码中公布的结果(MSE 0.577 和MAE 0.549)而言,复现的结果要比源代码的好。
同时,复现的代码也提供了真实的MAE和MSE(数据刚开始归一化进行训练,测试结果要反归一化)。
需要完整训练代码的同学,可关注公众号 (AI天天用),留言获取。
吃瓜
正当不同研究者疯狂研究Informer的时候,一朵(或许很多?)质疑的乌云悄悄地飘到了Informer的上空。
有的质疑在自己数据集上效果一般(以下截图来自知乎):
有的说消融实验不太好:
有的说结果不如DLinear, LSTM
额,这是神马情况。
质疑的声音在DLinear这篇文章[1]中达到了顶点。巧到家了,这篇DLinear与Informer一样,也发在AAAI会议上。
DLinear是2023年的文章,Informer是2021年的文章。
这篇论文说了什么呢?请看黄色标记。
正如论文的题目所言,这篇论文diss了包括Informer在内的诸多用于时间序列预测的former的性能。
作者用简单的Linear/DLinear (MLP)模型,取得了比各种时间序列预测的former更好的效果。
提升了不止一点点哦,大幅提升(请看下图MSE值的比较)。
这。。。
这篇文章指出,各种用于时间序列预测的former的核心创新点根本不是什么改进,而是预测时的批量输出。
换言之,预测时批量输出避免了逐步预测时误差的累积,提高了预测的精度。
聪明的同学,您觉得大预言模型在输出时,是否存在误差积累呢?
Anyway,朋友让我复现Informer的工作完成了,至于到底什么才是核心创新点,留给其他人解决吧 :)