深度學習知識地圖 · 基礎架構

梯度下降

Backpropagation

在互動地圖中開啟 回深度學習知識地圖

觀念教學

損失函數告訴你「錯多少」,梯度下降(Gradient Descent)告訴你「往哪修、修多大步」。它與反向傳播(Backpropagation)聯手,是訓練神經網路的核心演算法。

核心觀念

梯度是損失對每個權重的斜率,指向損失上升最快的方向;往反方向走一步,損失就下降。更新規則的白話版:新權重 = 舊權重 減去 學習率 乘以 梯度。反向傳播負責把輸出端的誤差沿網路一層層往回傳,高效算出每個權重該負的責任(梯度),再交給梯度下降更新權重、最小化損失。

白話理解

濃霧中下山:看不到整座山(全域最佳解),只能摸腳下坡度(梯度),朝最陡的下坡跨一步,反覆前進。學習率(Learning Rate)就是步伐大小:步子太大會跨過山谷,在谷壁間來回彈跳甚至發散;太小則收斂速度慢到天荒地老,還可能卡在半路的小凹地。

關鍵細節

  • 學習率是最關鍵的超參數:太大不收斂,太小收斂慢
  • 批次策略:全批次穩但慢;SGD(隨機梯度下降)一次一筆,快但震盪;Mini-batch 折衷,是實務預設
  • Adam 這類優化器會自動調整各參數的步伐,收斂速度通常更快
  • 反向傳播靠梯度連乘,深層網路用 Sigmoid 容易梯度消失,搭配 ReLU 或批次正規化緩解
🎯 口訣:損失當地圖,梯度指方向,學習率定步伐。

iPAS 考點

考「神經網路靠什麼更新權重」→ 梯度下降加反向傳播。情境題:「損失劇烈震盪、無法收斂」→ 學習率太大,調小;「損失下降極慢」→ 學習率太小,或改用 Adam 這類優化器。易混淆對一句話分清:損失函數是「量多錯」的尺,梯度下降是「往哪修」的路。

應用場景

權重更新模型訓練

評估指標

收斂速度學習率

iPAS 歷屆考題詳解(6 題)

先自行作答,再展開詳解。題目出處均為 iPAS AI 應用規劃師正式考題,著作權屬原主辦單位。

114年第二梯次中級AI應用規劃師第三科機器學習技術與應用 第3題

在訓練非線性模型時,若目標函數為非凸函數(Non-convex Function),演算法在參數更新過程中可能出現多個極值點,導致最佳化結果不穩定。請問此時最可能發生下列哪一種情況?

  1. A梯度消失
  2. B資料過少
  3. C局部最優解
  4. D過擬合
看正解與逐選項詳解

正解:C

正確答案:(C) 【正解解析】 非凸函數的損失曲面存在多個極小值與鞍點,梯度下降這類依靠局部梯度資訊的優化演算法,只會沿著當前坡度往下走,走到某個梯度為零的低點就停止——但該低點不一定是全域最低點。因此不同初始值、不同更新路徑可能收斂到不同的局部最優解(Local Optimum),導致最佳化結果不穩定,這正是題目描述的情況。 【為何其他選項錯了?】 - (A):梯度消失是深層網路反向傳播時梯度逐層縮小的問題,主要與網路深度和激活函數的飽和特性有關,不是非凸多極值直接造成的現象。 - (B):資料量多寡是資料收集層面的問題,與目標函數是否為凸函數無關;凸性是函數形狀的數學性質。 - (D):過擬合是模型在訓練集表現好、新資料表現差的泛化問題,與優化過程停在哪個極值點屬不同層次的議題。 提示:非凸函數存在多個極小值:梯度下降只保證收斂到局部極小值,不保證找到全域最優解。
114年第二梯次中級AI應用規劃師第三科機器學習技術與應用 第17題

下列哪一種優化演算法內建動量(Momentum)的設計機制?

  1. ASGD+Momentum
  2. BAdam
  3. CRMSProp
  4. DAdagrad
看正解與逐選項詳解

正解:B

正確答案:(B) 【正解解析】 Adam(Adaptive Moment Estimation)的演算法設計「內建」了動量機制:它同時維護梯度的一階動量(梯度的指數移動平均,即 Momentum 的概念)與二階動量(梯度平方的指數移動平均,即 RMSProp 的概念),經偏差校正後以兩者共同更新參數。因此就「內建動量設計機制」而言,Adam 是正確答案。 【為何其他選項錯了?】 - (A):SGD+Momentum 是在原始 SGD 之外「外加」動量項的組合寫法;SGD 演算法本身並沒有內建動量,題目問的是內建的設計機制。 - (C):RMSProp 只維護梯度平方的移動平均來自適應調整學習率(二階資訊),沒有一階動量項。 - (D):Adagrad 累積歷史梯度平方來縮放學習率,同樣沒有動量設計;且其累積效應會使學習率單調遞減至趨近於零。 提示:Adam 同時內建一階動量(Momentum)與二階動量(RMSProp 思想);SGD+Momentum 屬外加組合,非內建設計。
115年第一次中級AI應用規劃師第三科機器學習技術與應用 第8題

某深度學習工程師訓練 ResNet 時,發現模型在前幾個 Epoch驗證損失快速下降,但從第 15 個 Epoch 起驗證損失開始上升,而訓練損失持續下降。工程師將學習率調高後,訓練損失反而開始明顯震盪。學習率過大最直接導致下列哪種現象?

  1. A梯度消失(Gradient Vanishing):梯度在反向傳播中逐層縮小趨近於零,底層無法學習
  2. B損失函數震盪或發散(Oscillation / Divergence):每次更新步伐過大,參數在最優點兩側反覆跳越,無法穩定收斂
  3. C過擬合(Overfitting):模型記憶訓練資料的雜訊,泛化能力下降
  4. D死亡 ReLU(Dying ReLU):大量神經元輸出永久為零,停止參與梯度更新
看正解與逐選項詳解

正解:B

正確答案:(B) 【正解解析】 學習率決定每次參數更新的步伐大小。學習率過大時,每一步都跨過最優點,參數在損失谷底兩側來回跳躍,損失曲線呈現震盪;更嚴重時步伐越跳越遠,損失直接發散。題目中「將學習率調高後,訓練損失開始明顯震盪」正是這個最直接的因果關係。 【為何其他選項錯了?】 - (A):梯度消失是反向傳播時梯度逐層縮小所致,主因是網路深度與飽和型激活函數,與學習率過大無關;學習率過大造成的是更新過度,而非更新訊號不足。 - (C):過擬合是題目前段描述的現象(驗證損失回升、訓練損失續降),但問題問的是「學習率過大最直接導致什麼」,過擬合不是調大學習率的直接後果。 - (D):過大的學習率確實可能將 ReLU 神經元推入負區造成 Dying ReLU,但屬間接副作用;最直接、必然觀察到的是更新步伐過大造成的震盪與發散。 提示:學習率過大導致震盪或發散,過小導致收斂緩慢;調整學習率前先觀察損失曲線的形狀。
115年第一次中級AI應用規劃師第三科機器學習技術與應用 第9題

某工程師訓練深度神經網路時發現損失函數震盪嚴重且收斂速度慢,改用 Adam優化器後訓練變得穩定且收斂更快。下列何者為 Adam 能改善此問題的主要原因?

  1. A同時結合一階動量(Momentum)與自適應學習率(Adaptive Learning Rate),為每個參數調整更新步長
  2. B強制所有參數使用相同學習率(Learning Rate),避免梯度差異造成不穩定
  3. C透過批次正規化(Batch Normalization)重新分布輸入資料
  4. D將梯度裁剪為固定範圍以避免梯度爆炸(Gradient Explosion)
看正解與逐選項詳解

正解:A

正確答案:(A) 【正解解析】 Adam 同時結合兩個機制:一階動量(梯度的指數移動平均,如同 Momentum,平滑更新方向、抑制震盪)與二階動量(梯度平方的移動平均,用來為每個參數自適應調整步長,精神同 RMSProp)。損失震盪嚴重代表梯度方向雜訊大,動量可以平滑;收斂慢常因各參數的梯度尺度差異大,自適應學習率讓每個參數以合適的步伐前進——因此改用 Adam 後訓練變得穩定且收斂更快。 【為何其他選項錯了?】 - (B):敘述與事實相反。Adam 的特點正是「每個參數擁有自己的有效學習率」,不是強制所有參數共用同一步長。 - (C):批次正規化(Batch Normalization)是網路架構中的一種層,用來正規化各層輸入分布;它不是優化器的內建機制,Adam 不會重新分布輸入資料。 - (D):把梯度裁剪到固定範圍是 Gradient Clipping,屬於防梯度爆炸的獨立技巧,可與各種優化器搭配,但不是 Adam 的核心原理。 提示:Adam=Momentum(方向平滑)+RMSProp(步長自適應),兩個機制同時作用,故兼顧穩定與收斂速度。
115年第一次中級AI應用規劃師第三科機器學習技術與應用 第11題

某工程師在 A100 GPU 叢集上訓練大型語言模型,觀察到以下現象:全批次梯度下降時 GPU 利用率達 100%,但每次更新耗時 45 秒;隨機梯度下降(SGD)每次更新僅需 0.01秒,但梯度極不穩定、訓練曲線震盪劇烈。為兼顧梯度穩定性與GPU吞吐量(Throughput),應採用下列哪種策略?

  1. A全批次梯度下降(Full-batch GD):使用完整資料集計算梯度,更新穩定但每次更新耗時長
  2. B隨機梯度下降(SGD):每次只用一個樣本,速度快但梯度雜訊大,收斂不穩定
  3. C第二階梯度法(Newton's Method):利用 Hessian 矩陣精確估計曲率,大幅減少更新次數
  4. D小批次梯度下降(Mini-batch GD):以適當批次大小(如 256-2048)平衡梯度估計穩定性與GPU平行效率,是深度學習的業界標準
看正解與逐選項詳解

正解:D

正確答案:(D) 【正解解析】 小批次(Mini-batch)梯度下降每次用一小批樣本(如 256~2048)估計梯度:批內平均使梯度雜訊遠小於單樣本 SGD,更新方向穩定;批次大小又足以充分利用 GPU 的平行計算單元,吞吐量高、單次更新遠快於全批次的 45 秒。它是「梯度穩定性」與「硬體效率」的折衷,也是深度學習實務的預設標準。 【為何其他選項錯了?】 - (A):全批次每次更新都要掃過整個資料集,更新頻率太低、整體訓練時間拉長;GPU 利用率 100% 不等於訓練有效率。 - (B):單樣本 SGD 更新雖快,但梯度雜訊大、曲線劇烈震盪,題目已明說這正是要解決的問題。 - (C):牛頓法需要計算並儲存 Hessian 矩陣(規模為參數數量的平方),大型語言模型參數動輒數十億,Hessian 的儲存與求逆遠超記憶體與運算的可行範圍。 提示:Full-batch 穩定但慢,單樣本 SGD 快但雜訊大;Mini-batch 兼顧梯度穩定與 GPU 效率,是深度學習實務標準。
115年第一次中級AI應用規劃師第三科機器學習技術與應用 第50題

某 AOI 晶圓瑕疵檢測專案在使用深層 CNN 訓練時,Loss 曲線震盪劇烈,甚至偶爾出現數值溢出(NaN)。為了修復訓練過程中 Loss 突然變成 NaN 的問題,工程師考慮在 PyTorch 訓練迴圈中加入梯度裁剪(Gradient Clipping)機制,例如 torch.nn.utils.clip_grad_norm_。訓練迴圈如下: for images, labels in train_loader:  optimizer.zero_grad() # 位置 1  outputs = model(images) # 位置 2  loss = criterion(outputs, labels) # 位置 3  loss.backward() # 位置 4  optimizer.step() # 位置 5 若要正確加入梯度裁剪,最適合插入於哪個位置?其主要作用為何?

  1. A插入於位置 3與位置4之間;用以限制 Loss 數值大小,避免梯度消失
  2. B插入於位置 4與位置5之間;用以限制梯度範數過大,避免更新步幅失控導致數值不穩
  3. C插入於位置 5之後;用以將更新後的權重強制壓縮回正常範圍
  4. D插入於位置 1與位置2之間;用以對輸入影像進行批次標準化
看正解與逐選項詳解

正解:B

正確答案:(B) 【正解解析】 訓練迴圈的因果順序:zero_grad 清空舊梯度 → 前向傳播 → 計算損失 → loss.backward() 計算出各參數的梯度 → optimizer.step() 用梯度更新權重。梯度裁剪處理的對象是「已經算出、但尚未用於更新」的梯度,因此必須插在位置 4 與位置 5 之間:當整體梯度範數超過閾值時,等比例縮小所有梯度,限制單步更新幅度,避免梯度爆炸把權重推向極端、造成 Loss 震盪甚至 NaN。 【為何其他選項錯了?】 - (A):位置 3 與 4 之間 backward 尚未執行,梯度還不存在,無梯度可裁剪;且裁剪的對象是梯度而非 Loss 數值,目的是防梯度爆炸,不是防梯度消失。 - (C):位置 5 之後權重已被異常梯度更新完畢,再處理為時已晚;梯度裁剪也不是「把權重壓縮回正常範圍」的機制。 - (D):位置 1 與 2 之間前向傳播尚未開始,與梯度無關;梯度裁剪更不負責對輸入影像做批次標準化。 提示:backward 之後、step 之前才有梯度可裁剪;裁剪對象是梯度範數,目的是維持數值穩定。

相關節點