文章

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 HintonCoursera 深度学习课程 中首次公开提出;
  • 尽管 Coursera 是教学平台,但该算法因效果显著而迅速流行,成为深度学习标配优化器之一。

✅ 总结一句话

RMSprop 通过对梯度平方的指数移动平均,实现参数维度相关的自适应学习率,有效抑制震荡、加速收敛。

本文由作者按照 CC BY 4.0 进行授权