詳細解釋
動量(Momentum)是梯度下降的加速技術,累積歷史梯度方向,幫助加速收斂並減少震盪,類比物理中的動量概念。
核心思想:
- 梯度 = 當前梯度 + 動量係數 × 前一步更新
- 加速一致方向:如果梯度持續同向,步長增大
- 抑制震盪:如果梯度方向變化,動量抵消部分更新
- 逃出局部最優和鞍點
數學表達:
vₜ = β × vₜ₋₁ + (1-β) × ∇L(θ)
θ = θ - η × vₜ
- v:速度(累積梯度)
- β:動量係數(通常0.9)
- η:學習率
變體:
優勢:
- 加速收斂:特別在狹長的損失曲面
- 減少震盪:平滑梯度噪聲
- 逃出局部最優:累積動量有助於跳出淺層局部最優
- 更好的泛化:通常優於純SGD
視覺理解:
- 想像小球滾下山坡
- 動量 = 小球的速度和慣性
- 平坦區域加速,狹窄山谷減少兩側震盪
應用建議:
- SGD:強烈建議加上momentum(β=0.9)
- 預設值:0.9是標準選擇
- 較大任務:可考慮0.99或隨時間增加
- 調整學習率:使用momentum時學習率通常可更大
動量是優化算法最簡單有效的改進之一。