Week2 主線:把「訓練」看成一個最佳化問題:最小化 Loss(θ),用梯度下降更新參數 θ。
(Week3–4 的 MLP / Backprop 只是把「θ 很多、鏈鎖律很長」而已)
0) 本週你一定要接起來的 6 個名詞
- Model:ŷ = f(x; θ)(θ=權重W、偏置b)
- Loss:L(ŷ, y)(錯多少)
- Objective:J(θ)=平均損失(全資料的錯)
- Gradient:∇θJ(往哪個方向 J 變大最快)
- Gradient Descent:θ ← θ − η∇θJ
- Generalization:val/test 表現才是重點
1) 前向傳播 Forward Pass 是什麼?
前向傳播就是:把輸入 x 丟進模型,算出預測 ŷ,再算 Loss。
最基本線性模型(先用它理解全部 DL):- ŷ = wᵀx + b
- Loss:
- 回歸常見 MSE:L = (1/2)(ŷ−y)²
- 分類常見 Cross-Entropy(Week3會更重)
前向傳播流程(你要背成固定句):
x →(乘權重加偏置)→ ŷ →(套 Loss)→ L
2) 梯度下降 Gradient Descent:你在做的事其實很單純
A) 目標函數
- J(θ)= (1/N) Σ L(f(xᵢ;θ), yᵢ)
B) 更新規則(必背)
- θ ← θ − η ∇θJ(θ)
C) Learning Rate η 的直覺(必考)
- η 太大:可能震盪、發散、Loss 上上下下甚至爆掉
- η 太小:收斂超慢,像在爬山「小碎步」
一句話:η 控制每一步走多大;梯度告訴你往哪走。
3) 梯度是什麼?為什麼是「最陡下降」?
- ∇J 指向 上升最快 的方向
- 所以 −∇J 指向 下降最快 的方向
這就是為什麼更新式要「減」梯度。
幾何直覺:
- 等高線橢圓很扁(特徵尺度差很多)→ GD 會左右震盪
- 這也連回 Week1:標準化會讓等高線更像圓 → GD 更穩更快
4) 反向傳播 Backprop(Week2先懂本質,不用背整串公式)
反向傳播本質只有一句:
用鏈鎖律把 Loss 對每個參數的偏導數算出來。
先從最簡單回歸 MSE 開始:
- L = (1/2)(ŷ−y)²
- dL/dŷ = (ŷ−y)
若 ŷ = wᵀx + b
- dŷ/dw = x
- dŷ/db = 1
所以:
- dL/dw = (dL/dŷ)(dŷ/dw) = (ŷ−y)x
- dL/db = (dL/dŷ)(dŷ/db) = (ŷ−y)
更新:
- w ← w − η(ŷ−y)x
- b ← b − η(ŷ−y)
你要抓住:誤差 (ŷ−y) 會乘上輸入 x 來更新權重。
(MLP 只是多很多層,每層都在做同樣的事)
5) Batch / Mini-batch / SGD:差在哪?為什麼影響穩定?
- Batch GD:每次用全資料算梯度
- 優點:方向準、平滑
- 缺點:很慢、吃記憶體
- SGD:每次用 1 筆資料
- 優點:快、能逃離局部凹陷
- 缺點:噪聲大、Loss 抖
- Mini-batch(最常用):一次用 B 筆(32/64/128…)
- 折衷:速度快又相對穩
一句話:batch 越大越穩但慢;batch 越小越吵但快。
6) Loss Surface(損失地形)與 Local Minima / Saddle Point(直覺就好)
在高維參數空間,常見問題不一定是「卡在局部最小」,更多是:
- Saddle point(鞍點):某些方向下降、某些方向上升 → 梯度接近 0 很容易慢住
- mini-batch 的噪聲有時反而能幫你「抖出去」
7) 訓練曲線你要看什麼(Week1延伸到 Week2)
你不只要判斷 overfit/underfit,還要多看:
- Loss 是否震盪?(η 太大 / batch 太小 / 資料尺度問題)
- Loss 是否幾乎不降?(η 太小 / 特徵太爛 / 模型太弱)
- Train loss 降、Val loss 不降(開始 overfit → early stopping / regularization)
8) Week2 必背「秒答公式與句子」
1. 什麼是 θ?(舉例 W、b)
• θ 是模型所有可學的參數集合。例如線性/MLP 裡的 權重 W(或 w)、偏置 b(還可能包含各層的 W¹,b¹…)。
2. J(θ) 和 L(ŷ,y) 差在哪?
• L(ŷ,y):單筆或單次輸出的「損失」(錯多少)。
• J(θ):把所有資料(或一個 batch)的損失做平均/加總後得到的「目標函數」,是訓練真正要最小化的量:
J(θ)= (1/N) Σ L(f(xᵢ;θ), yᵢ)。
3. 為什麼是 θ − η∇J?
• ∇J 指向 J 上升最快 的方向,所以要讓 J 下降最快就往 反方向走:−∇J。
• η 是步長,控制每次更新走多大,因此更新式是 θ ← θ − η∇J。
4. η 太大/太小各會出現什麼現象?
• η 太大:loss 劇烈震盪、可能不降反升、甚至發散/爆掉(NaN)。
• η 太小:收斂很慢、loss 降得像爬行,訓練時間拉長且可能卡在高 loss 很久。
5. Batch vs SGD vs Mini-batch 差在哪?
• Batch GD:每次用全資料算梯度更新;穩但慢、吃記憶體。
• SGD:每次用 1 筆資料更新;快但噪聲大、loss 抖。
• Mini-batch:每次用 B 筆(如 32/64/128);速度與穩定的折衷、最常用。
6. dL/dŷ 在 MSE 下是什麼?
• 若 L = (1/2)(ŷ−y)²,則 dL/dŷ = (ŷ−y)。
(若 L = (ŷ−y)²,則 dL/dŷ = 2(ŷ−y),差一個常數而已。)
7. 若 ŷ = wᵀx+b,dL/dw 是什麼?
• dL/dw = (dL/dŷ)(dŷ/dw) = (ŷ−y) x(向量)。
• 同理 dL/db = (ŷ−y)。
8. 訓練 loss 抖很大,你會先檢查哪 2 件事?
• Learning rate η 是否太大。
• Batch size 是否太小 / 特徵是否沒標準化(尺度差太多)(兩者都會讓梯度噪聲或更新步伐不穩)。
9) Week2 自測(
- 什麼是 θ?(舉例 W、b)
- J(θ) 和 L(ŷ,y) 差在哪?
- 為什麼是 θ − η∇J?
- η 太大/太小各會出現什麼現象?
- Batch vs SGD vs Mini-batch 差在哪?
- dL/dŷ 在 MSE 下是什麼?
- 若 ŷ = wᵀx+b,dL/dw 是什麼?
- 訓練 loss 抖很大,你會先檢查哪 2 件事?(η、標準化、batch)






















