美文网首页
常用的优化算法:SGD、Momentum、AdaGrad、RMS

常用的优化算法:SGD、Momentum、AdaGrad、RMS

作者: 星光下的胖子 | 来源:发表于2021-04-08 11:30 被阅读0次

1.SGD

梯度下降法分为三种:

  • BGD(Batch Gradient Descent,批量梯度下降)
    • 一次迭代使用所有样本对参数进行更新。
    • 优点:收敛效果好,对于凸函数可以收敛到全局极小值。
    • 缺点:数据集很大的时候由于计算量太大,导致收敛速度慢。
  • SGD(Stochastic Gradient Descent,随机梯度下降)
    • 每次迭代使用一个样本对参数进行更新。
    • 优点:收敛速度很快。
    • 缺点:每次更新只考虑单个样本,因此波动/震荡比较大。
  • MBGD(Mini-Batch Gradient Descent,小批量梯度下降法)
    • 前两者的折中方案,将总样本分为多个batch,每次迭代使用batch_size个样本对参数进行更新。
    • 优缺点:收敛速度较快,有一定的小波动(震荡幅度不大)。

2.Momentum

然而,SGD和MBGD这两种改进方案,都存在一定程度的震荡(频繁改变方向)。于是,以减少震荡为目的,引入“动量(Momentum)”来对算法做进一步优化。

所谓的引入动量,即更新参数时,不仅考虑当前梯度,还会累加先前的梯度/动量。
参数更新的计算公式:
    \Delta_t = \beta \Delta_{t-1} + \eta \frac{\partial J(\theta_{t})}{\partial \theta_{t}},动量超参\beta \in [0, 1]
    \theta_{t+1}= \theta_{t} - \Delta_t
由公式可见,当本次梯度与上次梯度同向时,上次梯度对本次参数更新起到一个加速的作用;当本次梯度与上次梯度反向时,上次梯度对本次参数更新起到一个减缓的作用。
因此,引入动量,一方面可以加快收敛速度,另一方面可以提高精度(减少震荡,使模型收敛更稳定)。

3.自适应学习率

自适应学习率的优化算法包括AdaGrad、RMSProp和Adam。
特别地,Adam是一种带动量的、自适应学习率的综合优化算法。

AdaGrad

上面的优化算法,对每个参数\theta_i都使用了相同的学习率\eta。于是,进一步提出了AdaGrad算法,它能够自动调整每个参数的学习率\eta。AdaGrad算法适合处理稀疏数据。

AdaGrad算法在每轮训练中,会对每个参数\theta_i的学习率\eta进行更新,它的参数更新公式:
    g_{t, i} = \frac{\partial J(\theta_{t, i})}{\partial \theta_{t, i}},G_{t, i} = \sum_{j=1}^t g_{j, i}^2,\eta^{'} = \frac{\eta}{\sqrt{G_{t, i} + \epsilon}}
    \theta_{t+1} = \theta_t - \eta^{'} \cdot g_{t, i}
G_{t, i}是对应参数θ_i从第1轮到第t轮梯度的平方和;\epsilon是为了避免分母为0。

可见,在AdaGrad算法中,会先根据参数\theta_i之前的所有梯度更新学习率\eta,然后用新的学习率\eta^{'}对参数\theta_i进行更新。梯度较大的参数计算得到的学习率更小,梯度较小的参数计算得到的学习率更大,因此,对于稀疏数据采用AdaGrad算法是个不错的选择。

AdaGrad算法的缺陷:在训练中后期,随着梯度的不断累加,分母越来越大,学习率越来越小,无法进行有效的参数更新。

RMSProp

RMSProp也是一种自适应学习率的优化算法。与AdaGrad不同的是,Adagrad会累加之前所有的梯度平方,而RMSprop仅仅是计算梯度平方的加权平均。因此,相对于Adagrad,RMSProp可缓解学习率下降较快的问题。

Adam(Adaptive Moment Estimation,适应性矩估计)

论文下载《Adam: A Method for Stochastic Optimization》
Adam是一种综合优化算法,集成了动量和自适应学习率的优点。Adam同时结合了Adagrad和RMSProp算法的优点,能够很好的处理稀疏数据和步长自动退火。

我们知道,梯度下降法的参数更新公式为:
    \theta_{t+1} = \theta_t - \eta \cdot \Delta_t
通俗来说(不严谨,为了方便理解):

  • 引入动量,即调整\Delta_t\Delta_t的计算考虑了当前梯度和之前的梯度。
  • 自适应学习率,即调整\eta\eta的计算同样考虑了当前梯度和之前的梯度。

4.权重衰减(weight decay)

正则化技术包括:
1)L1正则化,鼓励产生稀疏的权重;
2)L2正则化,鼓励产生小而分散的权重。
权重衰减(weight deacy),属于一种L2正则化技术。

相关文章

网友评论

      本文标题:常用的优化算法:SGD、Momentum、AdaGrad、RMS

      本文链接:https://www.haomeiwen.com/subject/upyukltx.html