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