🚀 深度學習動量(Momentum)示範

探索不同優化方法喺複雜地形嘅表現差異:

1.00
GD損失
1.00
Momentum損失
0
迭代次數
學習率 (α) 0.05
動量係數 (β) 0.9
普通梯度下降
Momentum
Nesterov

動量優化嘅優勢:

  • 加速收斂:積累動能,幫助更快達到最低點
  • 抑制震盪:喺狹窄山谷中減少左右震盪
  • 跨越障礙:喺鞍點和平坦區域保持動力
  • 抵抗雜訊:咁滯雜訊梯度嘅影響
點擊「狹長谷地」、「鞍點地形」和「雜訊地形」觀察唔同環境下嘅差異

動量(Momentum)係乜嘢?

動量係一種將過去梯度「記憶」納入當前更新嘅優化技術,好似一個滾雪球,累積方向同速度,令優化過程更快更穩定。

物理直覺

  • 普通梯度下降 (GD):好似行石春路,每一步都係獨立嘅,冇積累
  • 加入動量:好似滾雪球,有速度、方向同慣性

數學公式

# 速度更新 (指數加權平均)
v_t = β · v_{t-1} + (1-β) · g_t

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

其中:

  • β:動量係數,通常設為 0.9,代表保留 90% 嘅歷史方向
  • α:學習率,控制每步嘅移動距離
  • g_t:當前時間步嘅梯度
  • v_t:速度向量,梯度嘅指數加權平均

Nesterov 動量

一種進階版動量,先用當前速度預測下一位置,再計算該處梯度:

θ_lookahead = θ + β · v_{t-1}
g_t = ∇f(θ_lookahead)
v_t = β · v_{t-1} + (1-β) · g_t
θ = θ - α · v_t

好處係可以喺轉彎前「睇到」轉彎,減少繞路

點解動量咁有效?

  1. 加速收斂:喺一致方向上累積速度,令收斂速度提升 2-5 倍
  2. 穩定優化:平滑梯度波動,減低隨機mini-batch帶來嘅雜訊
  3. 逃離鞍點:喺平坦區域,靠之前積累嘅動量繼續前進
  4. 減少震盪:喺狹長谷地(eigenvalue相差大)減少來回震盪

貼地例子

  • 開車過大橋:面對側風,GD好似即刻搬軚,Momentum就好似電子穩定系統,平滑反應
  • 滑雪比賽:GD遇到每個坑都停頓,Momentum靠慣性飛躍細波

參數選擇建議

  • β值:0.9 (常用)、0.99 (超平滑)、0.8 (更敏捷響應)
  • 學習率:通常可以比無Momentum時大1.5-2倍
  • 學習率預熱:初期用較小學習率,避免速度過快

點使用呢個示範

  1. 調節「學習率」同「動量係數」,觀察對收斂速度嘅影響
  2. 對比唔同地形下三種優化器嘅表現:普通GD、Momentum、Nesterov
  3. 特別注意「狹長谷地」同「鞍點」地形,呢啲係動量特別有優勢嘅情況
  4. 觀察損失曲線,比較收斂速度同穩定性