第八讲_Optimization

Optimization

注意偏导和梯度的区别:

这里讲模型的第四个部分:优化算法,相较于传统的梯度下降优化算法,有很多改进的版本,虽然没有跳脱出梯度下降的框架,但是在传统算法的基础上进行了改进优化,更加好用

梯度下降算法的缺点

  • 梯度消失 saddle point
  • 局部最优 local minimum
  • 各参数尺度不一 different scale

GDM (GD with momentum)

通过在梯度下降过程中加入一个“动量”项,该算法能够累积过去梯度的方向,从而帮助算法更快地穿越平坦区域,并减少振荡

更新梯度的公式:

\[w_t = w_{t-1} - \alpha V_{t}\]

在原来设置了学习率的基础上,还丰富了下面的部分:

\[V_{t} = \beta V_{t-1} + (1- \beta)\frac{\partial J}{\partial w_t}\]

\[\beta \in [0,1]\]

\[V_{0} = 0\]

\[\beta = 0.9\]

这样既能保存过去的梯度信息,也不至于产生过大的影响

指数滑动平均

AdaGrad (Adaptive Gradient)

AdaGrad算法通过自适应地调整学习率,使得学习率随着迭代次数的增加而减小,从而避免了梯度消失和梯度爆炸的问题

公式:

\[ W_{t+1} = W_{t} - \frac{\alpha}{\sqrt{S_{t}+\epsilon}}\frac{\partial J}{\partial w_t} \]

\[ S_{t} = S_{t-1} + (\frac{\partial J}{\partial w_t})^2 \]

\[ S_{0} = 0 \]

\[ \epsilon = 10^{-7} \]
作用:防止除 0

偏导可以间接表明下降坡度的大小

  • 偏导大坡度大,需要设置一个较小的学习率
  • 偏导小坡度小,需要设置一个较大的学习率

但是会出现一个问题,S会越来越大,导致后面出现学不动的情况

RMSProp (Root Mean Square Propagation)

本质是在 AdaGrad 基础上引入了指数滑动平均防止S越加越大的问题

\[W_{t+1} = W_{t} - \frac{\alpha}{\sqrt{S_{t}+\epsilon}}\frac{\partial J}{\partial w_t}\]

\[S_{t} = \beta S_{t-1} + (1-\beta)(\frac{\partial J}{\partial w_t})^2\]

Adam (Adaptive Moment Estimation)

Adam算法通过引入两个指数滑动平均来修正AdaGrad算法中的学习率,从而避免了学习率过大的问题

公式:

\[W_{t+1} = W_{t} - \frac{\alpha}{\sqrt{\hat S_{t}}+\epsilon}\hat V_{t}\]

\[\hat V_{t} = \frac{V_{t}}{1-\beta_1^t}\]

\[\hat S_{t} = \frac{S_{t}}{1-\beta_2^t}\]

\[V_{t} = \beta_1 V_{t-1} + (1-\beta_1)\frac{\partial J}{\partial w_t}\]

\[S_{t} = \beta_2 S_{t-1} + (1-\beta_2)(\frac{\partial J}{\partial w_t})^2\]

该算法能够解决一些存在的缺点,例如:V和S在刚开始迭代时会非常小,不利于算法更新

随机梯度下降

从另一个角度(训练数据)来解决优化问题

内容可以看第二讲,已经记录过了

小批量梯度下降

第二讲也有记录


第八讲_Optimization
http://jrhu0048.github.io/2024/10/25/ji-qi-xue-xi/di-ba-jiang-optimization/
作者
JR.HU
发布于
2024年10月25日
更新于
2024年11月2日
许可协议