中文名稱:梯度下降法 英文名稱:Gradient Descent
📌 定義(Definition)
一種用來最小化損失函數的最佳化方法,沿著「損失函數下降最快的方向」,一步一步調整模型參數。
直覺比喻: 你站在山坡上(損失值很大),每一步都往最陡、往下的方向走,目標是走到谷底(損失最小)。
⭐原理與技術
梯度(Gradient)
- 代表損失函數對每個參數的變化率 (哪個方向會讓損失下降最快)
- 梯度告訴我們「往哪個方向改,損失會下降」。
- 依照每次用多少資料來算梯度,梯度下降法分成三大類: BGD、SGD、Adam(進階自適應方法)
BGD:批次梯度下降(Batch Gradient Descent)
核心做法
每一次更新參數時,使用「全部訓練資料」來計算梯度。 也就是: 一次看完所有資料,再走一步。
特性與直覺
- 優點:
- 梯度方向穩定
- 收斂路徑平滑
- 缺點:
- 計算成本高
- 資料一多就非常慢
- 不適合大型資料集
直覺比喻: 每走一步前,都要把整座山完整測量一次。
適合情境
- 資料量小
- 模型簡單
- 重視穩定性
SGD:隨機梯度下降(Stochastic Gradient Descent)
核心做法
每一次只用「一筆資料」來更新參數。 也就是:看一筆資料,立刻走一步。
特性與直覺
- 優點:
- 計算快
- 可處理大型資料
- 有機會跳出局部最小值
- 缺點:
- 更新方向不穩定
- 損失函數上下震盪
直覺比喻: 邊走邊看路,有時會晃一下,但走得快。
適合情境
- 資料量大
- 線上學習
- 訓練速度優先
Adam:自適應動量梯度下降 (Adaptive Moment Estimation)
核心概念
Adam 結合了兩個思想:
- 動量(Momentum):保留過去梯度方向,避免來回震盪
- 自適應學習率 RMSProp:每個參數都有自己的學習步伐
- Adam = 聰明版 SGD,會自己調整走路速度與方向。
為什麼 Adam 很常用
- 收斂速度快
- 對參數設定不敏感
- 在深度學習中特別穩定
所以在實務中 Adam 幾乎是預設選擇。
🔗 應用領域
3 題模擬練習題
題目一:更新方式判斷(基本陷阱)
關於三種梯度下降法的參數更新方式,下列敘述何者正確?
A. BGD 每次只使用一筆資料更新參數
B. SGD 每次使用全部訓練資料計算梯度
C. Adam 結合動量與自適應學習率機制
D. Adam 與 BGD 本質上是同一種方法
正確答案:C
詳解:
- BGD:每次使用「全部資料」
- SGD:每次使用「單筆資料」
- Adam:在 SGD 的基礎上,加入
- 動量(Momentum)
- 自適應學習率
因此 C 正確,其餘選項是典型混淆敘述。
題目二:效能與穩定性判斷(高頻陷阱)
某模型訓練時,發現損失函數在下降過程中劇烈震盪,但整體下降速度很快,仍能在短時間內達到不錯結果。
最可能使用的是哪一種方法?
A. BGD(Batch Gradient Descent)
B. SGD(Stochastic Gradient Descent)
C. Adam
D. 牛頓法
正確答案:B
詳解:
SGD 的特徵是:
- 每次只用一筆資料
- 梯度方向不穩定
- 損失曲線容易上下震盪
但也因為更新頻繁, 整體收斂速度往往較快。 BGD 通常下降平滑; Adam 則會明顯減少震盪。
題目三:實務選擇情境(應用陷阱)
在一個大型資料集與深度學習模型的情境下,希望在不花太多時間調整參數的前提下,快速且穩定地完成模型訓練。
下列哪一種方法最合理?
A. BGD
B. SGD
C. Adam
D. 不使用梯度下降法
正確答案:C
詳解:
題目關鍵條件是:
- 資料量大
- 模型複雜
- 不想花太多時間微調
Adam 的優點正好符合:
- 自動調整學習率
- 收斂速度快
- 訓練穩定
因此在實務與考試中, Adam 通常是預設選擇。