1 Mini-batch梯度下降
Mini-batch梯度下降迭代过程Mini-batch解决了批量梯度下降单次迭代样本多,速度慢的问题,也解决了随机梯度下降不稳定的问题,能够相对更快更好地收敛。但是,mini-batch和批量梯度下降一样,更新方向完全依赖当前batch,也是不稳定的。Momentum算法解决了这个问题。
2 Momentum
Momentum又叫做gradient descent with momentum。可以把某一维度的历史摆动中和,从而达到沿着梯度方向快速下降的目的,如下图所示。
Momentum梯度更新Momentum用到了指数加权平均的思路,把历史梯度的更新体现到当前的梯度更新中,由于初始值为0还需要用到偏差修正的方法,来修正前几轮数据。但在实际实战中,几轮过后,偏差就已经不明显,也可以忽略。另外,也有人把dw的系数1-β替换成1。
3 RMSprop
RMProps全称root mean square props,是Hinton在Coursera的课程上首先提出来的,为了解决不同方向摆动幅度不一致的问题。
RMSprop算法梯度更新过程从图中可以看到,梯度更新多了一个分母,这个分母就是为了均衡不同维度的摆动幅度。摆动幅度统一后,可以适当调大学习率α,加快训练速度。
4 Adam
Adam算法可以看做momentum和RMSprop的结合,更新过程如下图。
Adam算法更新过程迭代中用到了偏差修正。ε是为了防止分母为零,通常设置一个很小的值。图中计算Sdb时,db忘了加平方。算法中用到的超参数的经验值如下图。
Adam算法迭代过程Adam是目前最棒的优化算法,不知道用什么的话选它就对了。
网友评论