最優化的核心演算法,沿著梯度反方向迭代更新參數以找到最小值
梯度下降法是最優化的核心演算法,通過沿著函數梯度的反方向迭代更新參數,以找到函數的局部或全域最小值。對於函數 J(θ),梯度下降更新規則為:θ_new = θ_old - α · ∇J(θ_old),其中 α 為學習率 (learning rate)。
批量梯度下降 (Batch GD):使用全部資料計算梯度,收斂穩定但每次迭代計算量大。
隨機梯度下降 (SGD):使用單一範例計算梯度,速度快且可逃離局部最小值,但收斂震盪不穩定。
小批量梯度下降 (Mini-batch GD):使用小批量資料計算梯度,平衡速度和穩定性,是深度學習的主流方法。
學習率過大會導致震盪發散,過小則收斂太慢。常見的學習率排程包括 Step Decay、Exponential Decay、Cosine 和 Warmup 策略。動量 (Momentum) 累積過去的梯度方向,加速收斂並減少震盪。Adam 優化器結合了動量和適應性學習率,是目前最廣泛使用的優化方法。
AdaGrad:針對稀疏特徵設計適應性學習率,但學習率會過早衰減。 RMSProp:解決 AdaGrad 學習率過早衰減的問題,使用指數衰減平均。 Adam:結合 Momentum 和 RMSProp,是目前最常用的深度學習優化器。收斂判斷可通過監控 loss 變化來實現,當損失變化小於閾值時停止訓練。
梯度下降面臨局部最小值、鞍點、峽谷地形震盪和學習率選擇等挑戰。解決方法包括使用動量、隨機性、學習率排程以及 Adam 等進階優化器。梯度裁剪 (Gradient Clipping) 可防止梯度爆炸,而 Xavier/He 初始化則有助於緩解梯度消失問題。