优化器介绍

本文介绍了几种常见的优化器,包括梯度下降、随机梯度下降(SGD)及其改进版SGD+Momentum和Nesterov Accelerated Gradient(NAG),还讨论了AdaGrad、RMSprop以及最常用的Adam优化器。每种优化器的原理、优缺点和适用场景都有所阐述,旨在帮助理解深度学习中模型训练的速度和收敛性如何被优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

优化器(Optimizer)

本文主要参考:https://blog.youkuaiyun.com/weixin_41417982/article/details/81561210

Gradiend Descent(梯度下降)

梯度下降算法是将所有数据集都载入,计算他们所有的梯度,然后执行决策,(沿着梯度下降最快的方向进行更新)。
优缺点:可以快速进行下降收敛,但是要计算所有的梯度,计算量太大,数据集过大,GPU无法计算,除此之外,如果是凸函数,则可以收敛到最小值,其他情况下,可能会遇到局部最小值的情况 。

Stochastic Gradient Descent(SGD)(随机梯度下降)

随机梯度下降是随机选取部分数据的梯度进行计算。
因为数据量问题,SGD更新速度比较频繁,所以能更快收敛。
问题: SGD在更新过程中,如果在一个方向更新速度较快,另外一个方向更新速度较慢的话,则会产生摆动,收敛速度会变慢,除此之外也会遇到鞍点(局部最小值)的情况。
在这里插入图片描述
https://zhuanlan.zhihu.com/p/21486826 中解释的比较好。
除此之外,SGD的噪声会相对较大。
改进方法:
SGD+Momentum
首先是‘Z’字型,加个动量之后,如图所示(自己懒得搞了,盗用别的大佬的图。)
在这里插入图片描述
加了动量后,就会减少’Z’字型,动量参数一般设为(0.9),而且如果遇到鞍点(局部最小值),因为有动量的存在,所以梯度导数不会成为0,就会继续向下收敛。

Nesterov Accelerated Gradient(NAG)
(图还是抄的https://blog.youkuaiyun.com/tsyccnh/article/details/76673073)
下图是SGD+Momentum
在这里插入图片描述
下图是Nesterov
在这里插入图片描述
两张图看起来基本上一样,但实际上是不一样的,SGD+Monmentum是在下次开始的时候加个动量,两个结合后得到一个实际下降点,Nesterov则不一样,他是在上一次梯度下降方向上再向前走一点,然后在走下一步。即先走到C点,然后走到D点。

结论
在原始形式中,Nesterov Accelerated Gradient(NAG)算法相对于Momentum的改进在于,以“向前看”看到的梯度而不是当前位置梯度去更新。经过变换之后的等效形式中,NAG算法相对于Momentum多了一个本次梯度相对上次梯度的变化量,这个变化量本质上是对目标函数二阶导的近似。由于利用了二阶导的信息,NAG算法才会比Momentum具有更快的收敛速度。

AdaGrad
在这里插入图片描述
我们累计每一次梯度的平方,接着让学习率除以它的开方。这个的作用是为了改变不同参数的学习率。假如一个参数的梯度一直很大,那么通过这个约束,它改变的就越少。假如一个参数的梯度一直很小,那么通过这个约束它,它变化的也就越快。公式后面那个1e-7是为了防止分母为0。

但问题是,因为是一直在累积的,这个grad_squared一定会变得越来越大,最后的结果是,权重更新的步长也会不可避免的变得很小。为了克服这个问题,有了RMSpro。

RMSprop
在这里插入图片描述
从上图公式可以看出,RMSprop只改变了grad_squared,添加了一个衰减率(通常为0.9/0.99),有效地解决了AdaGrad梯度累积的问题。
但也由于衰减的问题,grad_squard是可能导致我们训练一直在变慢的。

PS:可以将RMSprop和Nesterov结合起来。

Adam
在这里插入图片描述
最常用的。
可以看出来,红色的部分是类似与Momentum的方法,而蓝色的部分则是利用了RMSprop的衰减。因此这个算法是很好的结合了这两个的优点。

之所以有绿色方框的Bias Correction是因为想要避免一个情况:一开始的梯度太小,因此学习率除以second_moment的值太大,步长太大容易跑到一个奇怪的地方。导致收敛之后的效果不好。因此我们有了Bias correction,学习率也是除以second_unbias。

Adam一般来说是收敛最快的优化器,所以被用的更为频繁。当然,它还有变体AdamMax,但知道了Adam再去看其它也不是很难了。

总结:
在这里插入图片描述
在这里插入图片描述
图片来自: https://blog.youkuaiyun.com/u010089444/article/details/76725843
图片作者:Alec Radford

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值