機器學習最佳化器

最後更新: 2025-03-23 06:24:32 +0800 +0800
原文以英文撰寫。您正在閱讀AI翻譯版本。

最佳化器會更新模型參數,以降低訓練目標。在以梯度為基礎的學習中,目標衡量預測與目標之間的差異, 而自動微分則提供相對於參數的梯度。

梯度下降 #

對於參數 \(\theta\)、學習率 \(\eta\) 與損失 \(L\),梯度下降會執行:

text
θ ← θ − η ∇θL

批次梯度下降會在每次更新使用完整訓練集。隨機梯度下降會使用一個範例,而小批次梯度下降會使用小批次。 小批次是實務上的標準選擇,因為它能有效使用加速器硬體,同時加入有助於探索的梯度雜訊。

動量與自適應方法 #

動量會累積過去梯度的移動方向,降低狹窄谷地中的振盪。Adam 結合動量與由梯度平方導出的逐參數尺度。 AdamW 將權重衰減與 Adam 的自適應更新解耦,是 Transformer 訓練常用的預設選擇。

沒有任何最佳化器在所有情況下都最佳。帶動量的 SGD 在某些視覺工作負載中能有良好泛化能力;AdamW 通常更容易調整大型語言模型。學習率排程、批次大小、權重衰減、梯度裁剪與資料品質,可能與最佳化器名稱 具有同等影響。

實務調整 #

選擇基準最佳化器與保守的學習率,接著監控訓練損失、驗證品質、梯度範數與不穩定性。單獨下降的訓練損失 不足以證明模型有用。初始更新幅度不穩定時使用預熱;訓練接近收斂時降低學習率;並將最佳化器狀態保存在 檢查點中,使恢復的訓練維持一致行為。

評論

在 GitHub 上閱讀或評論(發表評論需要登入)