梯度下降(Gradient Descent)是什麼?

梯度下降是一種透過反覆運算,沿損失函數的梯度方向,逐步逼近損失函數最小值的演算法|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

英文
Gradient Descent
主題標籤
最佳化、模型訓練、數學基礎
考點定位
高頻・中級
最後更新
2026/07/29
梯度下降(Gradient Descent)是什麼? iPAS 高頻 最佳化模型訓練
術語快查

搜尋意圖: 如果你在找「梯度下降 是什麼」、「梯度下降 會怎麼考」或「梯度下降 和相近概念差在哪」,先看這頁的定義、考點定位與延伸比較。

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 考題

出題方向:常考梯度下降的概念、學習率影響,以及和最小平方法的差異。 題目: 某模型在訓練時,透過反覆修正參數來讓損失函數下降,這最符合哪個概念? → 答案: 梯度下降。它的核心就是根據梯度方向持續更新參數,讓誤差逐步變小。

常見問題

梯度下降一定會找到全域最小值嗎?

不一定,尤其在非凸問題上可能卡在局部最小值或鞍點。

學習率越大越好嗎?

不是,太大會震盪甚至發散。

什麼時候要用批次梯度下降?

當你想要比較穩定的更新,而且資料量和算力允許時。