---
title: "梯度下降（Gradient Descent）"
slug: gradient-descent
language: zh-TW
source: https://aiterms.tw/terms/gradient-descent
updated_at: 2026-07-29
tags: [最佳化, 模型訓練, 數學基礎, iPAS初級]
ipas_term: true
---

# 梯度下降（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 考題

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

### 常見問題

> **Q：梯度下降一定會找到全域最小值嗎？**
> 不一定，尤其在非凸問題上可能卡在局部最小值或鞍點。
>
> **Q：學習率越大越好嗎？**
> 不是，太大會震盪甚至發散。
>
> **Q：什麼時候要用批次梯度下降？**
> 當你想要比較穩定的更新，而且資料量和算力允許時。
>
### 相關術語

> - **學習率**：梯度下降好不好走，很大部分就看這個設定
> - **批次大小**：每次看多少資料，會影響更新穩定度
> - **訓練輪次**：梯度下降通常會在多個 epoch 中反覆進行
> - **正則化**：幫模型不要一路追著訓練資料跑太遠
> - **深度學習**：幾乎所有深度學習訓練都離不開它

---

來源：https://aiterms.tw/terms/gradient-descent
快查頁：https://aiterms.tw/terms/gradient-descent
外部參考：https://ipd.nat.gov.tw/ipas/certification/AIAP/news/ffdba0fcdbda40baadeef2a1bdc0230e
最後更新：2026/07/29
深度解說：https://aiterms.tw/learning/what-is-gradient-descent