top of page

16 - 動量梯度下降(Momentum)——畀模型一個「衝力」


平時用純粹 Gradient Descent,模型會好似踩單車上落山谷:• 落斜快、上斜慢;• 斜坡窄嘅位仲會左揈右擺 —— 學得又慢又暈。

Momentum 就係喺單車後面加部助力摩打:吸收過去幾步嘅推力,累積動能,一路衝落谷底又唔會偏離正路。


1️⃣ 物理直覺:滾雪球 vs. 步步為營


  • 純 GD每一步淨係睇當下斜率,好似行石春路,每粒石都要慢慢踏實先敢下一步。

  • Momentum將之前嘅梯度做 指數加權平均 (EMA),變成「速度向量」。當方向一致時就加速滾;遇到反方向斜率就會被減速,但唔會即刻掉頭。

效果:

  1. 過窄谷時唔會左右震到嘔。

  2. 喺平坦區/鞍點都仲有慣性,唔會卡死。


2️⃣ 數學好簡單


# v_t = 動量 (速度)
v_t = β · v_{t-1} + (1-β) · g_t

# 參數更新
θ   = θ - α · v_t

變量解釋:

  • g_t = 當前梯度 ∂J/∂θ

  • β = 0.9 常用(保留 90% 過去方向)

  • α = Learning Rate

唔似 Adam,要偏差修正;Momentum 直接用 v_t 已經夠穩。


3️⃣ 真・貼地例子


  1. 開車過青馬大橋

    • 橫風勁:純 GD = 即刻搬軚盤,車蛇咁走;Momentum = 電子穩定功能,吸收多次風力後平均修正,條線行得筆直。

  2. 滑雪大回轉

    • 純 GD = 見凹坑即煞,速度斷斷續續;Momentum = 靠慣性飛過細坑,整體時間縮短。

  3. 電商動態定價

    • 即時梯度計嘅價格調整會因單一大額訂單而大幅波動;加 Momentum 後,價格曲線平滑,客戶唔會懷疑系統壞咗。

  4. 機械臂夾貨

    • Camera 偵測到目標位置嘅 noise 令梯度方向不停變;Momentum 令夾子行走軌跡平順,唔怕因噪聲搞到「震機」。


4️⃣ Momentum 三大好處


痛點

純 GD

加 Momentum

狹長谷地

左右震、行極唔落

平滑穿過

平坦鞍點

梯度近 0 → 停滯

靠慣性滑過

收斂速度

緩慢

加速 2–5×


5️⃣ 參數點揀?


  • β(衝力係數)• 0.9:經典;• 0.99:超平滑(BERT 預訓練常用);• 0.8:想更敏捷。

  • α(學習率)可先用無 Momentum 時嘅值,再觀察 Loss:• 太慢 → α × 2;• 發散 → α ÷ 2 或 β ↑。

  • Warm-up初期可用較細 α 或較細 β,免得速度一下太大「飛車」。


6️⃣ PyTorch 10 行示範

beta, lr = 0.9, 1e-2
v = {}
for name, p in model.named_parameters():
    v[p] = torch.zeros_like(p.data)

for x, y in loader:              # 每個 mini-batch
    y_hat = model(x)
    loss  = criterion(y_hat, y)
    loss.backward()
    with torch.no_grad():
        for p in model.parameters():
            g = p.grad
            v[p] = beta * v[p] + (1 - beta) * g   # EMA 梯度 = 速度
            p -= lr * v[p]                        # 更新參數
            p.grad.zero_()

7️⃣ 常見陷阱 & Debug


  1. 速度爆衝

    • 現象:Loss 直接變 NaN。

    • 解:減 α 或加 Gradient Clipping

  2. 學得仲慢

    • 可能 β 太高 → 減到 0.8;或者 α 過細。

  3. BatchNorm + 大 Momentum

    • 大模型用同步 BN 時,過大 β 會令 BN 統計追唔切,可考慮 β=0.9 配合 Learning-Rate Decay


8️⃣ 延伸:Momentum 係好多進階 Optimizer 嘅老祖宗


  • Nesterov Momentum (NAG):先衝一步再量度梯度,轉彎更早。

  • RMSProp:Momentum 套用喺梯度平方 → 自適應 lr。

  • Adam:Momentum (一階) + RMSProp (二階) 雙保險。


✅ 總結 — Momentum 值得你上手


  1. 概念簡單:一個 EMA 平滑梯度。

  2. 實作容易:只多一行計 v_t。

  3. 效果明顯:減震盪、提速、越過鞍點。

  4. 萬用配件:CNN、RNN、Transformer、強化學習、Tabular… 都啱用。

下一次你見到 Loss 曲線「鋸齒+龜速」,記住開返 Momentum,畀部摩打你嘅模型,讓佢一路順風,飛奔去最低點!🏎️💨

翱翔醫療 (2).png

Tsim Sha Tsui H Zentre Clinic

Suite 813, 8/F, H Zentre

15 Middle Road, TST

Phone: 28133700

​Whatsapp:+852 95096276

Central Printing House Clinic

Room 303A & 305,

3/F, Printing House,

6 Duddell Street, Central

Phone: 28716733 / 28716788

Whatsapp:+852 62084539

TKO Maritime Bay Clinic

UG18, UG/F,

Maritime Bay Shopping Centre
Hang Hau, Tseung Kwan O
Tel: 98852916; Whatsapp: 98852916

​Phone:98852916

Whatsapp:+852 98852916

Mong Kok T.O.P. Clinic

Room 2001, 20/F,
700 Nathan Road, Mong Kok

​(Going above from the the 3/F elevator of T.O.P. Mall)

Phone:28710277

Whatsapp:+852 98893911

bottom of page