Adam(Adaptive Moment Estimation)
Adam优化器的作用
Adam(Adaptive Moment Estimation)结合了一阶矩(动量)和二阶矩(自适应学习率)的优势,在深度学习优化中表现优异。
1. 一阶矩(动量)的作用
- 稳定梯度方向:通过指数移动平均(EMA)累积历史梯度,平滑噪声,减少震荡。
- 跳过鞍点/局部最小值:惯性效应帮助参数逃离平坦区域或局部极小值。
数学表达:
m t = β 1 ⋅ m t − 1 + ( 1 − β 1 ) ⋅ g t (一阶矩估计) m_t = \beta_1 \cdot m_{t-1} + (1 - \beta_1) \cdot g_t \quad \text{(一阶矩估计)} mt=β1⋅mt−1+(1−β1)⋅gt(一阶矩估计)
2. 二阶矩(自适应学习率)的作用
- 稳定步长:通过梯度平方的EMA调整学习率,防止梯度爆炸或消失。
- 防止振荡:大梯度时减小步长,小梯度时增大步长,使更新更平稳。
数学表达:
v t = β 2 ⋅ v t − 1 + ( 1 − β 2 ) ⋅ g t 2 (二阶矩估计) v_t = \beta_2 \cdot v_{t-1} + (1 - \beta_2) \cdot g_t^2 \quad \text{(二阶矩估计)} vt=β2⋅vt−1+(1−β2)⋅gt2(二阶矩估计)
3. Adam的完整数学公式
参数更新规则:
θ t + 1 = θ t − η ⋅ m ^ t v ^ t + ϵ \theta_{t+1} = \theta_t - \eta \cdot \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} θt+1=θt−η⋅v^t+ϵm^t
其中:
- m ^ t = m t 1 − β 1 t \hat{m}_t = \frac{m_t}{1 - \beta_1^t} m^t=1−β1tmt (一阶矩偏差修正)
- v ^ t = v t 1 − β 2 t \hat{v}_t = \frac{v_t}{1 - \beta_2^t} v^t=1−β2tvt (二阶矩偏差修正)
- η \eta η:学习率, ϵ \epsilon ϵ:小常数(通常 1 0 − 8 10^{-8} 10−8)
超参数典型值
- β 1 = 0.9 \beta_1 = 0.9 β1=0.9 (一阶矩衰减率)
- β 2 = 0.999 \beta_2 = 0.999 β2=0.999 (二阶矩衰减率)