梯度下降 是什麼?
Gradient Descent:梯度下降 的完整解釋
梯度下降是一種透過反覆運算,沿損失函數的梯度方向,逐步逼近損失函數最小值的演算法
容易混淆
梯度下降 vs 隨機梯度下降 梯度下降每次看整批資料 隨機梯度下降每次看較小的資料片段 最關鍵的區別是穩定慢,還是快但抖
梯度下降 vs 最小平方法 梯度下降是迭代式優化 最小平方法是直接求解析解的路徑 最關鍵的區別是反覆逼近,還是一次算出來
記住這句就好
沿著最陡方向往山谷走,慢慢修正。
實際案例
線性回歸 你要找一條最適合資料的直線時,梯度下降可以一點一點把參數調到更好的位置。
神經網路訓練 深度學習裡的大多數權重更新,本質上都是梯度下降在工作。
算法與應用
核心三件事是梯度、學習率和損失函數,這三個要一起看。 步伐太大會震盪,太小會很慢,所以調學習率幾乎是每次訓練都會做的事。
主要用途:這是最常被問的一句
梯度下降(Gradient Descent)的主要用途是最小化損失函數,藉此找出模型參數。它不是分類方法,也不是特徵處理方法,而是訓練階段用來「往哪個方向調參數」的最佳化演算法。
更新規則只有一行:
新參數 = 舊參數 − 學習率 × 損失函數對該參數的梯度
梯度指向損失上升最快的方向,所以前面要加負號,往反方向走才是下降。學習率決定一步走多遠。
三種變體
| 變體 | 每次更新用多少資料 | 特性 |
|---|---|---|
| 批次梯度下降(BGD) | 全部訓練資料 | 方向最準,但資料一大就跑不動 |
| 隨機梯度下降(SGD) | 一筆 | 更新快、雜訊大,雜訊有時反而幫忙跳出局部低點 |
| 小批次梯度下降(Mini-batch GD) | 一小批,常見 32 到 512 | 兼顧穩定與效率,實務上的預設做法 |
平常講的 SGD,在深度學習框架裡指的其實幾乎都是小批次版本。
常見的改良與卡住的地方
動量(Momentum):把過去的更新方向累積下來,像滾下坡的球。可以壓平震盪、加速穿過狹長的谷地。
AdaGrad、RMSProp、Adam:依每個參數自己的梯度歷史調整有效步長。梯度長期很小的參數會拿到比較大的步長。Adam 等於動量加上 RMSProp,是目前最通用的預設選擇。
鞍點比局部最低點更棘手。高維空間裡真正的局部最低點很少,大部分讓訓練停滯的是鞍點(某些方向往上、某些方向往下)。動量類方法主要就是在處理這件事。
梯度消失與梯度爆炸:深層網路裡梯度連乘會指數縮小或放大。對策包括殘差連接、正規化層、梯度裁剪(gradient clipping)與適當的初始化。
前提是損失函數要可微。不可微的目標函數(例如直接最佳化準確率)就不能用梯度下降,得改用其他搜尋方法。
情境判斷
Q1: 損失一直掉得很慢,第一個會懷疑什麼? → 先看學習率是不是太小,或者特徵和模型是否太保守。
Q2: 訓練到一半損失忽上忽下,會想到什麼? → 可能學習率太高,或批次太小導致更新太晃。
梯度下降 在 iPAS 考試中的重點
根據歷年統計,梯度下降 相關題目 平均佔 AI 技術類考題 8%, 屬於高頻考範圍。
常見出題方向:優化演算法比較(40%)、梯度下降原理(40%)、演算法效率評估(20%)。
相關術語
常見問題
梯度下降一定會找到全域最小值嗎?
不一定,尤其在非凸問題上可能卡在局部最小值或鞍點。
學習率越大越好嗎?
不是,太大會震盪甚至發散。
什麼時候要用批次梯度下降?
當你想要比較穩定的更新,而且資料量和算力允許時。
資料來源
- iPAS AI 應用規劃師評鑑內容範圍參考(115.02) ,經濟部產業人才能力鑑定