21 RMSprop(Root Mean Square Propagation) 优化算法
21 RMSprop(Root Mean Square Propagation) 优化算法
🧠 RMSprop 算法详解总结
一、问题背景:梯度下降中的震荡问题
在标准(小批量)梯度下降中,若损失函数在某些参数方向上曲率大(如垂直方向),而在另一些方向上曲率小(如水平方向),会导致:
- 垂直方向:梯度大 → 更新步长过大 → 出现剧烈震荡;
- 水平方向:梯度小 → 更新缓慢 → 收敛速度慢。
目标:抑制震荡方向的更新幅度,加速平缓方向的学习。
二、RMSprop 核心思想
RMSprop 通过对梯度的平方进行指数加权平均,动态调整每个参数的学习率:
- 在梯度大的方向(震荡方向)→ 分母大 → 实际更新步长小;
- 在梯度小的方向 → 分母小 → 实际更新步长相对较大。
从而实现自适应学习率,提升收敛稳定性与速度。
💡 名称由来:Root Mean Square Propagation
因为算法先对梯度平方求“均方”(Mean Square),再开“根”(Root)用于归一化。
三、RMSprop 算法步骤(含公式)
设当前迭代为第 $t$ 步,参数为 $W$ 和 $b$,学习率为 $\alpha$,衰减率(decay rate)为 $\beta_2$(通常取 0.9),极小常数 $\epsilon = 10^{-8}$ 用于数值稳定。
1. 计算当前梯度
在 mini-batch 上计算梯度:
\[dW, \quad db\]2. 更新梯度平方的指数加权平均(记为 $S$)
注意:平方是逐元素操作(element-wise)
\[S_{dW} := \beta_2 \cdot S_{dW} + (1 - \beta_2) \cdot (dW)^2\] \[S_{db} := \beta_2 \cdot S_{db} + (1 - \beta_2) \cdot (db)^2\]✅ 初始值通常设为 $S_{dW} = 0, S_{db} = 0$
3. 参数更新(使用自适应学习率)
\[W := W - \alpha \cdot \frac{dW}{\sqrt{S_{dW}} + \epsilon}\] \[b := b - \alpha \cdot \frac{db}{\sqrt{S_{db}} + \epsilon}\]🔒 加 $\epsilon$ 是为了防止分母为零,保证数值稳定性。
四、直观解释
- 若某方向(如 $b$)梯度长期较大 → $(db)^2$ 大 → $S_{db}$ 大 → 更新步长被压缩;
- 若某方向(如 $W$)梯度较小 → $S_{dW}$ 小 → 更新步长几乎不受影响;
- 效果: “削峰填谷” ,让优化路径更平滑,减少震荡。
🌐 实际中,参数是高维向量(如 $w_1, w_2, …, w_n$),RMSprop 对每个维度独立处理。
五、关键超参数
| 超参数 | 建议值 | 说明 |
|---|---|---|
| $\beta_2$ | 0.9 | 控制历史梯度平方的遗忘速度 |
| $\alpha$ | 可比标准 GD 更大 | 因震荡被抑制,可安全使用更大 lr |
| $\epsilon$ | $10^{-8}$ | 防止除零错误,一般无需调参 |
六、与其他算法的关系
与 Momentum 对比:
- Momentum:通过“速度”累积,平滑更新方向;
- RMSprop:通过“自适应学习率”,调节更新幅度;
- 两者互补!
后续发展:RMSprop + Momentum = Adam 优化器(下节课内容)。
七、历史趣闻
- RMSprop 并非首发于学术论文,而是由 Geoffrey Hinton 在 Coursera 深度学习课程 中首次公开提出;
- 尽管 Coursera 是教学平台,但该算法因效果显著而迅速流行,成为深度学习标配优化器之一。
✅ 总结一句话
RMSprop 通过对梯度平方的指数移动平均,实现参数维度相关的自适应学习率,有效抑制震荡、加速收敛。
本文由作者按照 CC BY 4.0 进行授权