Adam优化器的直觉
Adam是一种梯度下降优化技术的算法。 当处理涉及大量数据或参数的大问题时,该方法非常有效。 它需要更少的内存并且效率更高。 直观上,它是“动量梯度下降”算法和“RMSP”算法的结合。
1、Adam优化器简介
Adam 优化器涉及两种梯度下降方法的组合:
1、Momentum
该算法通过考虑梯度的“指数加权平均值”来加速梯度下降算法。 使用平均值可以使算法以更快的速度收敛到最小值。
其中:
- mt = 时间 t [当前] 时的梯度聚合(最初,mt = 0)
- mt-1 = 时间 t-1 时的梯度总和 [previous]
- Wt = 时间 t 时的权重
- Wt+1 = 时间 t+1 时的权重
- αt = 时间 t 时的学习率
- ∂L = 损失函数的导数
- ∂Wt = 时间 t 时权重的导数
- β = 移动平均参数(常量,0.9)
2、均方根传播 (RMSP)
均方根 prop 或 RMSprop 是一种试图改进 AdaGrad 的自适应学习算法。 它不像 AdaGrad 那样采用梯度平方的累积和,而是采用“指数移动平均值”。
其中:
- Wt = 时间 t 时的权重
- Wt+1 = 时间 t+1 时的权重
- αt = 时间 t 时的学习率
- ∂L = 损失函数的导数
- ∂Wt = 时间 t 时权重的导数
- Vt = 过去梯度的平方和。 [即 sum(∂L/∂Wt-1)](最初,Vt = 0)
- β = 移动平均参数(常量,0.9)
- ϵ = 一个小的正常数 (10-8)
Adam Optimizer 继承了上述两种方法的优点或积极属性,并在此基础上构建了更优化的梯度下降。
在这里,我们控制梯度下降的速率,使其达到全局最小值时振荡最小,同时采取足够大的步长(步长),以便一路通过局部最小值障碍。 因此,结合上述方法的特点可以有效地达到全局最小值。
2、Adam优化算法的数学
代入上述两种方法中使用的公式,我们得到
- ϵ = 一个小的 +ve 常数,以避免 (vt -> 0) 时出现“除以 0”错误。 (10-8)
- β1 & β2 = 上述两种方法中梯度平均值的衰减率。 (β1 = 0.9 & β2 = 0.999)
- α——步长参数/学习率(0.001)
由于 mt 和 vt 都初始化为 0(基于上述方法),因此观察到它们有“偏向 0”的趋势,因为 β1 和 β2 ≈ 1。此优化器通过计算“偏向”来解决此问题 更正' mt 和 vt。 这样做也是为了在达到全局最小值时控制权重,以防止接近它时出现高振荡。 使用的公式是:
直观上,我们在每次迭代后适应梯度下降,使其在整个过程中保持受控且无偏差,因此得名 Adam。
现在,我们采用偏差校正权重参数 (m_hat)t 和 (v_hat)t,而不是正常的权重参数 mt 和 vt 。 将它们代入我们的一般方程,我们得到
3、Adam优化器的性能
基于先前模型的优势,Adam 优化器提供了比先前使用的模型更高的性能,并且在提供优化的梯度下降方面大幅优于它们。 下图清楚地描绘了 Adam 优化器如何在训练成本(低)和性能(高)方面大幅优于其他优化器。
原文链接:Intuition of Adam Optimizer
BimAnt翻译整理,转载请标明出处