神经网络以及机器学习在很多情况下都涉及优化,例如最小化损失函数,就有一系列的优化算法(SGD、Adam、Adagrad等)。本文着重整理各参数优化算法的公式。
以下公式全部选自书《Deep learning 深度学习》。
多记录一点,保证SGD收敛的一个充分条件是
并且
随机梯度下降,就是在一个批次内使用梯度下降优化。这里不论batch_size是 1,还是一个正整数,都称为随机梯度下降。
使用随机梯度下降优化算法时,会遇到梯度消失(陷入局部最小)的情况,带有动量的优化算法,就是利用“惯性”将当前点带出局部最小区域。
Nesterov动量和标准动量之间的区别体现在梯度计算上。Nesterov动量中,梯度计算在施加当前速度之后,该效果相当于在标准动量方法中添加了一个校正因子。
其中,
AdaGrad算法可以自适应调整学习率。缺点:累积梯度平方导致学习率过早的减小。
RMSProp将梯度累积改为指数加权的移动平均,在非凸设定下效果更好。
RMSProp是一种有效且实用的深度神经网络优化器,被广泛使用的优化器之一。
Adam目前是最为公认的优秀自适应学习优化器,它不仅考虑了一阶动量更新,同时考虑了二阶动量。