(论文研读)解决transform训练的不稳定性问题:SAMformer(时序预测)

论文链接:https://arxiv.org/abs/2402.10198

作者团队:华为诺亚方舟实验室(华为巴黎研究中心),Laboratory of Informatics Paris Descartes (LIPADE) 巴黎笛卡尔大学(第五大学)信息学实验室
文章收录:ICML2024
开源代码:https://github.com/romilbert/samformer

文章主要内容

主要是去继续开发transfomer在时序预测的潜力问题。

Transformer架构在自然语言处理(NLP)和计算机视觉领域取得了突破性的性能。然而,在多变量长期时间序列预测任务中,Transformer模型的表现却不如一些更简单的线性模型。
作者提出,通过研究一个简单的线性预测问题发现,即使Transformer具有很高的表达能力,但其在训练时难以收敛到理想的解,主要是由于其注意力机制(attention)的原因,导致泛化能力较差。也就是说在一个数据集中得到较好的效果,但是迁移到另一个数据集中却无法得到很好的发挥,这是要解决的问题。

损失函数它是一个“高度非凸”的函数定义域内存在多个局部极小(大)值,而不是仅有一个全局最小(大)值·我们无法简单地沿梯度下降找到全局最小值

我们训练神经网络的目的是:最小化损失函数>损失函数它是一个“高度非凸”的函数在定义域内存在多个局部极小(大)值,而不是仅有一个全局最小(大)值·我们无法简单地沿梯度下降找到全局最小值。就比如我们在训练网络的时候,无限的去relu然后dropout。这个方法就是去克服我们所面临的这个问题。

这种“非凸”来自于:
·网络深度的增加,参数数量的增加(参数复杂性),非线性激活函数(ReLU,tanh)由“非凸”带来的挑战:优化算法可能会陷入局部极小值,而不是找到全局最优解。我们目前的哪些方法是在努力克服这个问题:采用了一些方法,比如:随机梯度下降SGD,自适应调整学习率Adam,正则化dropout。

比如resnet

我们的resnet的原因就是获取更好的损失函数,让我们去更好的训练函数,产生这种凸形曲面,让我们更好的去训练这些模型,产生更好的泛化能力。但是随着resnet的深度增加,我们会发现它的损失函数会变得混乱。如下图(resnet-20这个20是深度,紧接着是损失.)
请添加图片描述

直接说结论:小批量(batch)+带权重衰减(dropout)会让我们的模型更好。

进入正题我们的SAMformer

定义简化编码器

什么是简化编码器?在encoder里面去掉了前馈神奇网络层。如图把transformer->samformer
![请添加图片描述](https://i-blog.csdnimg.cn/direct/8b25f3be77b243da8fe1b2aa2e569a41.png在这里插入图片描述

经过多数的数据进行预测后产出的结果是,transformer在进行训练的时候会陷入局部最小最优解的情况。通过random Tasnformer进行说明得到它的注意力机制是导致这种问题的关键。
在这里插入图片描述
如下图,transformer会☞关注中间,特别是通过softmax后。·固定注意力的Transformer(Random Transformer)的sharpness比收敛到单位矩阵的Transformer(Transformer)低几个数量级。并且
注意力矩阵的嫡随着训练轮次的增加急剧下降(嫡崩溃→过拟合、训练不稳定)。
在这里插入图片描述
在这里插入图片描述

结果是这样的,但是我们还是要关注一下这个作者的模型部分(如下图)
解释一下RevIN进行可逆的归一化,就是将数据变得更加平滑化。然后进行Channel-Wise注意力机制,这个注意力就是(如图)在这里插入图片描述
最后就是直接进行残差和线形层和反归一化操作后得到我们要的结果。
在这里插入图片描述

通过本身随机生成的随机数据进行对比,得到结果是该模型有更好的泛化能力。相比于纯线性的模型提高了百分之14,参数量减少了四倍。
在这里插入图片描述

文章思路

其实这篇文章也是借用了谷歌研究院ICLR2021: Sharpness-aware minimization for efficiently improving generalization (SAM)。这篇文章来提高模型的泛化能力。
在这里插入图片描述
那我文章samtransformer的思路就是在损失函数进行入手,在损失梯度的时候采用一个反向参数,之前不是说模型会卡在某一个局部最小值出不来吗,这里就用一个参数去移动这个极小值点然后去迫使我们的模型去拜托目前的困境。其实就是用sam算法来优化我们的模型,来达到更好的效果,但是并不是直接替代我们的传统损失函数,而是协同工作。使得我们的模型能够收敛到更好的损失值。提高模型精准度,从而提高模型的泛化能力。
在这里插入图片描述

效果

在添加自己的sam算法优化之后对原本没有带的提高至少10% 但是对比一些新模型没有好的效果,可能是因为某些时间步效果原本模型本身不如新模型。总的来说就是用更少的参数达到了更好的性能,并且提高了模型的鲁棒性和可泛化性。
在这里插入图片描述

消融实验

在通道注意力和时序注意力进行对比,通道注意力明显是比时序注意力提升更多的。所以在相同情况下是更好的。并且对比了不同的损失函数对实验的影响,以及可移动参数ρ对于拜托局部最优的情况进行对比。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 14
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值