Adam是一种梯度下降优化技术的算法。 当处理涉及大量数据或参数的大问题时,该方法非常有效。 它需要更少的内存并且效率更高。 直观上,它是“动量梯度下降”算法和“RMSP”算法的结合。
推荐:用 NSDT设计器 快速搭建可编程3D场景。
Adam 优化器涉及两种梯度下降方法的组合:
1、Momentum
该算法通过考虑梯度的“指数加权平均值”来加速梯度下降算法。 使用平均值可以使算法以更快的速度收敛到最小值。
其中:
2、均方根传播 (RMSP)
均方根 prop 或 RMSprop 是一种试图改进 AdaGrad 的自适应学习算法。 它不像 AdaGrad 那样采用梯度平方的累积和,而是采用“指数移动平均值”。
其中:
Adam Optimizer 继承了上述两种方法的优点或积极属性,并在此基础上构建了更优化的梯度下降。
在这里,我们控制梯度下降的速率,使其达到全局最小值时振荡最小,同时采取足够大的步长(步长),以便一路通过局部最小值障碍。 因此,结合上述方法的特点可以有效地达到全局最小值。
代入上述两种方法中使用的公式,我们得到
由于 mt 和 vt 都初始化为 0(基于上述方法),因此观察到它们有“偏向 0”的趋势,因为 β1 和 β2 ≈ 1。此优化器通过计算“偏向”来解决此问题 更正' mt 和 vt。 这样做也是为了在达到全局最小值时控制权重,以防止接近它时出现高振荡。 使用的公式是:
直观上,我们在每次迭代后适应梯度下降,使其在整个过程中保持受控且无偏差,因此得名 Adam。
现在,我们采用偏差校正权重参数 (m_hat)t 和 (v_hat)t,而不是正常的权重参数 mt 和 vt 。 将它们代入我们的一般方程,我们得到
基于先前模型的优势,Adam 优化器提供了比先前使用的模型更高的性能,并且在提供优化的梯度下降方面大幅优于它们。 下图清楚地描绘了 Adam 优化器如何在训练成本(低)和性能(高)方面大幅优于其他优化器。
原文链接:http://www.bimant.com/blog/adam-optimizer-intuition/
评论留言