Momentum Gradient Descent(动量梯度下降)

Momentum Gradient Descent(动量梯度下降)是标准梯度下降(SGD)的一个重要改进版,旨在加速训练过程,并帮助模型更有效地找到最优解。

你可以将动量(Momentum)想象成物理学中的惯性


动量梯度下降(Momentum GD)的核心思想

标准 SGD 的问题:
标准的 SGD(随机梯度下降)在每次更新时都只看当前的梯度方向。这使得它在以下两种地形中表现不佳:

  1. “峡谷”地形: 在损失函数曲面狭长陡峭的区域(像一个深谷),梯度会在两侧剧烈震荡,更新方向不稳定,导致收敛缓慢。
  2. 平坦区域: 遇到梯度接近零的区域时,更新会停滞不前,难以逃脱局部最优解。

动量的解决方案:
动量方法引入了一个速度变量(或历史积累值),它不只考虑当前的梯度,还会记住之前所有步骤的平均移动方向

  • 当前梯度就像你给球施加的瞬时推力
  • 动量就像球积累的速度和惯性

动量法的更新规则

动量法将权重的更新分为两步:

  1. 计算速度($v$): 当前的速度是之前速度当前梯度的加权平均。
    $$v_t = \beta \cdot v_{t-1} + (1-\beta) \cdot \nabla J(\theta_t) \quad \rightarrow \text{简化后常用:} v_t = \beta \cdot v_{t-1} + \eta \cdot \nabla J(\theta_t)$$

    • $\beta$(动量系数):一个介于 0 到 1 之间的超参数(通常是 0.9),控制了历史梯度的影响程度。
    • $v_{t-1}$:上一步积累的速度。
    • $\nabla J(\theta_t)$:当前计算的梯度。
  2. 更新权重($\theta$): 使用计算出的速度来更新权重。
    $$\theta_{t+1} = \theta_t - v_t$$


动量法的优势

  1. 加速收敛(在一致方向): 如果许多连续的梯度方向都指向同一个方向(例如,在一个平缓的斜坡上),动量会积累速度,使得模型可以大步前进,加速收敛
  2. 抑制震荡(在不一致方向): 在陡峭的“峡谷”地形中,垂直于峡谷方向的梯度会来回震荡,但这些震荡方向上的动量会被相互抵消。而沿着峡谷底部(即最优方向)的梯度方向会持续积累,从而抑制震荡,使模型更稳定地沿着最优路径前进。
  3. 跳出局部最优: 动量带来的惯性可以帮助模型冲过梯度很小(接近平坦)的区域,跳出浅层的局部最优,去寻找更深的全局最优。
posted @ 2025-09-27 15:36  李大嘟嘟  阅读(31)  评论(0)    收藏  举报