九游·体育(NineGameSports)官方网站-数智体育价值引领者

深度学习-常用优化算法-九游·体育科技集团
i1pcban.jpg i1pcban.jpg

新闻九游

深度学习-常用优化算法

2026-04-24 

分享到

  优点:每次更新都会朝着正确的方向进行,最后能够保证收敛于极值点(凸函数收敛于全局极值点,非凸函数可能会收敛于局部极值点)

  缺点:每次学习时间过长,并且如果训练集很大以至于需要消耗大量的内存,不能进行在线模型参数更新

  缺点:每次更新可能不会按照正确的方向进行,因此会带来优化波动,使得迭代次数(学习次数)增多,即收敛速度变慢。

  不过从另一个方面来看,随机梯度下降所带来的波动有个好处就是,对于类似盆地区域(即很多局部极小值点)那么这个波动的特点可能会使得优化的方向从当前的局部极小值点跳到另一个更好的局部极小值点,这样便可能对于非凸函数,最终收敛于一个较好的局部极值点,甚至全局极值点。如下图所示:

  优点:相对于随机梯度下降,Mini-batch梯度下降降低了收敛波动性,即降低了参数更新的方差,使得更新更加稳定。相对于批量梯度下降,其提高了每次学习的速度。并且其不用担心内存瓶颈从而可以利用矩阵运算进行高效计算

  优点:能解决SGD在峡谷地区(一些方向较另一些方向上陡峭得多,常见于局部极值点)附近振荡导致收敛速度慢的问题,详见《动手学深度学习》

  缺点:需要选择足够小的学习率使得自变量在梯度值较大的维度上不发散。但这样会导致自变量在梯度值较小的维度上迭代过慢

  Adagrad 的算法会使用一个小批量随机梯度\(g_t\)按元素平方的累加变量\(s_t\)。在时间步 0,Adagrad 将\(s_0\)中每个元素初始化为 0。在时间步 t ,首先将小批量随机梯度\(g_t\)按元素平方后累加到变量\(s_t\):

  符号\(\odot\)是按元素相乘。接着,我们将目标函数自变量中每个元素的学习率通过按元素运算重新调整一下:

  其中\(\eta\)是学习率,\(\epsilon\)是为了维持数值稳定性而添加的常数,例如\(10^{-6}\)。这里开方、除法和乘法的运算都是按元素进行的。这些按元素运算使得目标函数自变量中每个元素都分别拥有自己的学习率。

  优点:每个变量都有自己的学习率,如果目标函数有关自变量中某个元素的偏导数一直都较大,那么该元素的学习率将下降较快;反之,如果目标函数有关自变量中某个元素的偏导数一直都较小,那么该元素的学习率将下降较慢

  缺点:由于\(s_t\)一直在累加按元素平方的梯度,自变量中每个元素的学习率在迭代过程中一直在降低(或不变),梯度下降太快。所以,当学习率在迭代早期降得较快且当前解依然不佳时,Adagrad 在迭代后期由于学习率过小,可能较难找到一个有用的解

  和 Adagrad 一样,RMSProp 将目标函数自变量中每个元素的学习率通过按元素运算重新调整,然后更新自变量

  优点:自变量每个元素的学习率在迭代过程中不再一直降低(或不变),解决了 Adagrad 学习率衰减过快的九游体育官方网站问题

  Adam 使用了动量变量\(\nu_t\)和 RMSProp 中小批量随机梯度按元素平方的指数加权移动平均变量\(s_t\),并在时间步 0 将它们中每个元素初始化为 0。给定超参数\(0\leq\beta_1\lt1\)(算法作者建议设为 0.9),时间步\(t\)的动量变量\(\nu_t\)即小批量随机梯度\(g_t\)的指数加权移动平均:

  接下来,Adam 算法使用以上偏差修正后的变量\(\hat{\nu}_t\)和\(\hat{s}_t\),将模型参数中每个元素的学习率通过按元素运算重新调整:

  其中\(\eta\)是学习率,\(\epsilon\)是为了维持数值稳定性而添加的常数,例如\(10^{-8}\)。和 Adagrad、RMSProp 以及 Adadelta 一样,目标函数自变量中每个元素都分别拥有自己的学习率。最后,使用\(g_t\)迭代自变量:

  优点:Adam 结合了 AdaGrad 和 RMSProp 两种优化算法的优点,拥有自适应学习率,利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。另外,经偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳

  从上图可以看出,Adagrad、Adadelta 与 RMSprop 在损失曲面上能够立即转移到正确的移动方向上达到快速的收敛。而 Momentum 与 NAG 会导致偏离(off-track)。同时 NAG 能够在偏离之后快速修正其路线,因为其根据梯度修正来提高响应性。

  在鞍点(saddle points)处(即某些维度上梯度为零,某些维度上梯度不为零),SGD、Momentum和NAG一直在鞍点梯度为零的方向上振荡,很难打破鞍点位置的对称性;Adagrad、RMSprop 与 Adadelta 能够很快地向梯度不为零的方向上转移。

  从上面两幅图可以看出,自适应学习速率方法(Adagrad、Adadelta、RMSprop 与 Adam)在这些场景下比采用固定学习率的算法(SGD、Momentum等)具有更好的收敛速度与收敛性。