詳細解釋
Adam(Adaptive Moment Estimation)是一種自適應學習率優化算法,結合了動量和RMSprop的優點,是深度學習中最流行的優化器之一。
核心機制:
- 一階矩估計(m):梯度的指數移動平均(類似動量)
- 二階矩估計(v):梯度平方的指數移動平均(類似RMSprop)
- 偏差修正:初期估計偏向0,需要修正
- 自適應學習率:每個參數有自己的學習率
更新公式:
- mₜ = β₁ × mₜ₋₁ + (1-β₁) × gₜ
- vₜ = β₂ × vₜ₋₁ + (1-β₂) × gₜ²
- m̂ = mₜ / (1-β₁ᵗ)
- v̂ = vₜ / (1-β₂ᵗ)
- θ = θ - η × m̂ / (√v̂ + ε)
默認超參數:
- β₁ = 0.9(一階矩衰減率)
- β₂ = 0.999(二階矩衰減率)
- ε = 1e-8(數值穩定性常數)
- 學習率 η 通常 0.001
優勢:
- 對超參數不敏感:默認值在大多數場景表現良好
- 適合稀疏梯度:自然處理某些參數很少更新的情況
- 快速收斂:通常比純SGD更快達到合理效果
- 易用:無需複雜的學習率調度
局限:
- 泛化問題:可能在訓練集過擬合,測試集不如SGD+momentum
- 權重衰減問題:與L2正則化交互不佳
- 記憶體:需要存儲兩倍於SGD的狀態
改進版本:
- AdamW:解耦權重衰減,修正Adam的問題
- Adamax:使用∞範數更穩定
- Nadam:結合Nesterov動量
Adam是初學者和快速實驗的首選優化器。