优化器(SGD、SGDM、Adagrad、RMSProp、Adam等)

优化器(SGD、SGDM、Adagrad、RMSProp、Adam等)1 1SGDSGD 全称 StochasticGr 随机梯度下降 1847 年提出

大家好,欢迎来到IT知识分享网。

1.1 SGD

1.2 SGDM

由此可见t迭代的动量,其实是前t-1迭代的梯度的加权和。λ为衰减权重,越远的迭代权重越小。从而我们可以发现,SGDM相比于SGD的差别就在于,参数更新时,不仅仅减去了当前迭代的梯度,还减去了前t-1迭代的梯度的加权和。由此可见,SGDM中,当前迭代的梯度,和之前迭代的累积梯度,都会影响参数更新。

在这里插入图片描述

1.3 Adagrad

它利用迭代次数和累积梯度,对学习率进行自动衰减,2011年提出。从而使得刚开始迭代时,学习率较大,可以快速收敛。而后来则逐渐减小,精调参数,使得模型可以稳定找到最优点。其参数迭代公式如下

在这里插入图片描述

与SGD的区别在于,学习率除以 前t-1 迭代的梯度的平方和。故称为自适应梯度下降。

Adagrad有个致命问题,就是没有考虑迭代衰减。极端情况,如果刚开始的梯度特别大,而后面的比较小,则学习率基本不会变化了,也就谈不上自适应学习率了。这个问题在RMSProp中得到了修正

1.4 RMSProp

观察上式和Adagrad的区别,在于RMSProp中,梯度累积不是简单的前t-1次迭代梯度的平方和了,而是加入了衰减因子α。简单理解就是学习率除以前t-1次迭代的梯度的加权平方和。加入衰减时make sense的,因为与当前迭代越近的梯度,对当前影响应该越大。另外也完美解决了某些迭代梯度过大,导致自适应梯度无法变化的问题。

1.5 Adam

在这里插入图片描述

由上可见,mt即为动量,根号vt即为自适应学习率。加入了两个衰减系数β1和β2。刚开始所需动量比较大,后面模型基本稳定后,逐步减小对动量的依赖。自适应学习率同样也会随迭代次数逐渐衰减。𝜀则是防止除数为0,仅仅是数学计算考虑。

2 怎么选择优化器

在这里插入图片描述

如上所示,SGDM在CV里面应用较多,而Adam则基本横扫NLP、RL、GAN、语音合成等领域。所以我们基本按照所属领域来使用就好了。比如NLP领域,Transformer、BERT这些经典模型均使用的Adam,及其变种AdamW。

3 优化器对比
CV任务实验

在这里插入图片描述

训练集上

在这里插入图片描述

验证集上

可见:

NLP任务实验

SGDM和Adam对比

在这里插入图片描述
SGDM训练慢,但收敛性更好,训练也更稳定,训练和验证间的gap也较小。而Adam则正好相反。

4 SGDM和Adam优化
4.1 SWATS

在这里插入图片描述

4.2 AMSGrad

 在这里插入图片描述

优点为

4.3 AdaBound

AMSGrad处理了较大的学习率,而AdaBound则将学习率限制在一定范围内

在这里插入图片描述

4.4 Cyclical LR

针对于SGDM收敛过慢,且没有使用自适应学习率的问题,Cyclical LR提出了让学习率在一定范围内变大和变小的方法,如下

在这里插入图片描述
4.5 SGDR

在这里插入图片描述

4.6 RAdam

2020最新文章,

 在这里插入图片描述

 
4.7 Lookahead

在这里插入图片描述
4.8 Nesterov accelerated gradient (NAG)

往future看几步,保证模型训练稳定

 在这里插入图片描述

4.9 Nadam

在这里插入图片描述
4.10 加入L2正则

 在这里插入图片描述

4.11 加入weight decay

在这里插入图片描述
4.12 优化总结

 在这里插入图片描述

optimizer优化主要有四种方法:

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/138911.html

(0)
上一篇 2025-06-09 22:10
下一篇 2025-06-09 22:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信