中文名稱:梯度下降法 英文名稱:Gradient Descent

📌 定義(Definition)

一種用來最小化損失函數的最佳化方法,沿著「損失函數下降最快的方向」,一步一步調整模型參數。

直覺比喻: 你站在山坡上(損失值很大),每一步都往最陡、往下的方向走,目標是走到谷底(損失最小)。

⭐原理與技術

梯度(Gradient)

  • 代表損失函數對每個參數的變化率 (哪個方向會讓損失下降最快)
  • 梯度告訴我們「往哪個方向改,損失會下降」。
  • 依照每次用多少資料來算梯度,梯度下降法分成三大類: BGD、SGD、Adam(進階自適應方法)

BGD:批次梯度下降(Batch Gradient Descent)

核心做法

每一次更新參數時,使用「全部訓練資料」來計算梯度。 也就是: 一次看完所有資料,再走一步。

特性與直覺

  • 優點:
    • 梯度方向穩定
    • 收斂路徑平滑
  • 缺點:
    • 計算成本高
    • 資料一多就非常慢
    • 不適合大型資料集

直覺比喻: 每走一步前,都要把整座山完整測量一次。

適合情境

  • 資料量小
  • 模型簡單
  • 重視穩定性

SGD:隨機梯度下降(Stochastic Gradient Descent)

核心做法

每一次只用「一筆資料」來更新參數。 也就是:看一筆資料,立刻走一步。

特性與直覺

  • 優點:
    • 計算快
    • 可處理大型資料
    • 有機會跳出局部最小值
  • 缺點:
    • 更新方向不穩定
    • 損失函數上下震盪

直覺比喻: 邊走邊看路,有時會晃一下,但走得快。

適合情境

  • 資料量大
  • 線上學習
  • 訓練速度優先

Adam:自適應動量梯度下降 (Adaptive Moment Estimation)

核心概念

Adam 結合了兩個思想:

  1. 動量(Momentum):保留過去梯度方向,避免來回震盪
  2. 自適應學習率 RMSProp:每個參數都有自己的學習步伐
  3. 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 通常是預設選擇