均方根傳播 是什麼?
RMSProp:均方根傳播 的完整解釋
使用梯度平方的指數加權移動平均調整學習率的最佳化演算法,改進了 AdaGrad 學習率單調遞減的問題。
核心概念
RMSProp 的關鍵創新是用指數加權移動平均替代 AdaGrad 的簡單累積。指數加權移動平均會給予最近的梯度更高的權重,逐漸淡化遠處的歷史梯度。這個設計解決了 AdaGrad 中學習率無限衰減的根本問題。
RMSProp 維護一個移動平均向量,每步更新時將新的梯度平方納入平均值計算,同時逐漸忽視過去的值。學習率仍然與平方根倒數成正比,但由於不是累積而是平均,學習率在長期訓練中能保持相對穩定的水平。
運作原理
RMSProp 的更新規則如下:
- 初始化移動平均向量 v = 0
- 設定衰減率 ρ(通常為 0.9 或 0.99)
- 每個訓練步驟中,計算梯度 g = ∇f(θ)
- 更新移動平均:v = ρ * v + (1 - ρ) * (g ⊙ g)
- 更新參數:θ = θ - (η / √(v + ε)) ⊙ g
與 AdaGrad 的主要差異在第 4 步。RMSProp 用加權平均替代累積和,衰減率 ρ 控制記憶長度。當 ρ = 0.99 時,大約保留最近 100 步的梯度信息。這使得每個參數都有一個動態調整的學習率,而非單調衰減。
參數解釋:
- η:基礎學習率,控制優化步長
- ρ:衰減率,決定如何平衡最近和歷史梯度(較大的 ρ 更看重歷史)
- ε:防止除零的小常數
實際應用
RMSProp 在深度神經網路訓練中廣泛使用,特別是在循環神經網路(RNN)中。RNN 的梯度可能在訓練過程中波動較大,RMSProp 的自適應學習率能很好地穩定訓練。
在卷積神經網路(CNN)訓練中,RMSProp 也常見於圖像分類任務。許多深度學習框架(TensorFlow、PyTorch)都內建 RMSProp 實現,使其成為實際應用中的標準選擇。
在強化學習中,RMSProp 常被用於價值函數和策略網路的訓練。遊戲 AI(如 DeepMind 的 Atari 遊戲 AI)都採用 RMSProp 作為優化器。
RMSProp 也適用於在線學習場景。由於學習率不會無限衰減,系統能夠持續從新數據中學習,無需人工重設優化器狀態。
常見誤區
誤區一:認為 RMSProp 完全解決了 AdaGrad 的所有問題。實際上,RMSProp 仍需精心選擇衰減率 ρ,不同應用可能需要不同的 ρ 值。衰減率過大會記住太多歷史,過小則接近 SGD。
誤區二:誤認為 RMSProp 包含動量(momentum)。RMSProp 在標準形式下不含動量項,只是自適應學習率。不過,RMSProp 和動量可以結合使用(某些實現確實如此)。
誤區三:假設 RMSProp 的超參數對所有問題都是相同的。實際上,最佳的衰減率 ρ 和學習率 η 會隨著問題和模型架構變化,需要實驗驗證。
與相關技術的比較
RMSProp vs AdaGrad:RMSProp 的指數加權平均解決了 AdaGrad 學習率無限衰減的問題,使長期訓練更穩定。
RMSProp vs SGD with momentum:SGD with momentum 通過累積梯度方向實現加速,而 RMSProp 通過自適應學習率實現加速。兩者都改善了收斂速度,但原理不同。
RMSProp vs Adam:Adam 結合了 RMSProp 的自適應學習率和動量法的優勢。Adam 在許多應用中表現更優,但計算開銷也更大。RMSProp 仍在資源受限的環境中更受歡迎。
RMSProp vs Adagrad:早期研究表明 RMSProp 在非凸優化問題上通常優於 AdaGrad,但兩者都可以使用。現代深度學習更傾向 Adam 或其變體。