在神經網路中,若某一層神經元的線性組合為
a = wx + b
則損失函數 L 對權重 w 的梯度為:∂L/∂w = (∂L/∂a)(∂a/∂w) = (∂L/∂a) · x
對偏置 b 的梯度為:
∂L/∂b = (∂L/∂a)(∂a/∂b) = ∂L/∂a
一句話記憶:
權重的梯度 = 傳回來的誤差 × 該權重前面的輸入值
套到這張圖的理解
圖中下面公式:
∂L/∂w₁₁⁽¹⁾ = 2.4 × 1 = 2.4
∂L/∂w₁₂⁽¹⁾ = 2.4 × 0 = 0
就是因為:
- 傳回該節點的誤差信號是 2.4
- 對應輸入若是 1,梯度就保留
- 對應輸入若是 0,梯度就直接變 0
考試最愛考的觀念
1. 為什麼輸入是 0,梯度就可能是 0?
因為
∂L/∂w = (上游誤差) × (輸入值 x)
當 x = 0 時,不管上游誤差多大,最後都會變成 0。
2. 偏置為什麼不乘輸入?
因為偏置項可視為:
a = wx + b = wx + b·1
所以偏置前面的輸入永遠可看成 1,因此:
∂L/∂b = ∂L/∂a
3. 權重更新方向怎麼決定?
梯度下降:
w ← w − η(∂L/∂w)
- 梯度為正:權重往小調
- 梯度為負:權重往大調
- 梯度為 0:這次不更新
超短版背法
反向傳播三步驟:
- 先算輸出誤差
- 用鏈鎖律往回傳
- 權重梯度 = 誤差 × 輸入
放進講義的一段話
在反向傳播中,每個權重的梯度都可寫成「上游傳回來的誤差信號 × 該權重所接收的輸入值」,也就是 ∂L/∂w = δx。這代表若某輸入在本次前向傳播中為 0,則該路徑上的權重梯度也會變成 0,不會被更新;而偏置項可視為乘上一個固定輸入 1,因此其梯度直接等於該節點收到的誤差信號。這是神經網路 backpropagation 最核心、也最常考的觀念之一。

這張圖是在示範 神經網路的前向傳播(forward pass)與反向傳播(backpropagation),重點是說明:
損失函數怎麼往回傳,最後算出每個權重的梯度。
我先把這張圖的意思拆成幾個部分來講。
一、這張圖在畫什麼?
圖中從左到右大致是:
輸入層 x₁、x₂ → 中間隱藏層 → 再一層隱藏層 → 輸出 → 損失函數 L
其中:
- 圓圈裡的 A 可以理解成「加總器」或 affine / linear 組合
- 圓圈裡的 h() 可以理解成某個非線性函數或該層的輸出節點
- 最右邊的損失函數是
L = (ŷ − y)²
也就是說,模型先算出預測值 ŷ,再跟真實值 y 比較,誤差平方後得到 loss。
二、先看最右邊:loss 的微分
圖上已經給你:
L = (ŷ − y)²
所以對預測值 ŷ 微分:
∂L/∂ŷ = 2(ŷ − y) = 0.4
這一步非常重要,因為它是整個反向傳播的起點。
這代表:
- 目前模型預測值 ŷ 和真實值 y 有誤差
- 這個誤差對 loss 的敏感度是 0.4
- 後面每一層的梯度,都要從這個 0.4 一路往左傳回去
另外,由圖上最後一個加總節點來看,右側兩條輸入標成 1.2 和 1.6,所以可看成:
ŷ = 1.2 + 1.6 = 2.8
而因為:
2(ŷ − y) = 0.4
可推出:
ŷ − y = 0.2
所以:
y = 2.6
三、前向傳播在做什麼?
前向傳播就是:
- 把輸入 x₁、x₂ 丟進網路
- 每一層做加權加總
- 經過 h() 之類的轉換
- 最後得到 ŷ
- 再計算 loss
這張圖上的數字像 2.4、1.2、1.6、0,就是在說明:
某些中間節點在前向傳播後,已經算出了對後面節點的貢獻值。
其中最右邊的輸出很清楚是:
ŷ = 1.2 + 1.6 = 2.8
四、反向傳播的核心:鏈鎖律
反向傳播最重要的觀念就是:
某個權重對 loss 的影響 = loss 對後面節點的影響 × 後面節點對這個權重的影響
也就是用鏈鎖律:
∂L/∂w = (∂L/∂某中間變數) · (∂某中間變數/∂w)
這就是圖下方兩個公式在做的事。
五、圖下方第一個例子:∂L/∂w₁₁⁽¹⁾
圖上寫的是:
∂L/∂w₁₁⁽¹⁾ = (∂L/∂a₁⁽¹⁾)(∂a₁⁽¹⁾/∂w₁₁⁽¹⁾) = 2.4 × 1 = 2.4
這裡可這樣理解:
1. a₁⁽¹⁾ 是第一層某個神經元的加總輸出
通常會寫成:
a₁⁽¹⁾ = w₁₁⁽¹⁾x₁ + w₁₂⁽¹⁾x₂ + b
所以對權重微分時:
∂a₁⁽¹⁾/∂w₁₁⁽¹⁾ = x₁
而圖中這裡給的是:
x₁ = 1
因此:
∂a₁⁽¹⁾/∂w₁₁⁽¹⁾ = 1
2. 從右邊一路反傳回來後,這個節點收到的誤差信號是 2.4
也就是:
∂L/∂a₁⁽¹⁾ = 2.4
所以兩者相乘:
∂L/∂w₁₁⁽¹⁾ = 2.4 × 1 = 2.4
3. 這代表什麼?
表示:
如果你把 w₁₁⁽¹⁾ 增加一點點,loss 會大約以 2.4 的斜率改變。
也就是這個權重目前對誤差是有影響的,而且影響不小。
六、圖下方第二個例子:∂L/∂w₁₂⁽¹⁾
圖上寫的是:
∂L/∂w₁₂⁽¹⁾ = (∂L/∂a₁⁽¹⁾)(∂a₁⁽¹⁾/∂w₁₂⁽¹⁾) = 2.4 × 0 = 0
原因在於:
若同樣有
a₁⁽¹⁾ = w₁₁⁽¹⁾x₁ + w₁₂⁽¹⁾x₂ + b
那麼:
∂a₁⁽¹⁾/∂w₁₂⁽¹⁾ = x₂
而圖中這裡顯示:
x₂ = 0
所以:
∂a₁⁽¹⁾/∂w₁₂⁽¹⁾ = 0
再乘上反向傳回來的誤差信號 2.4:
∂L/∂w₁₂⁽¹⁾ = 2.4 × 0 = 0
七、為什麼第二個梯度會是 0?
這是這張圖很想強調的地方:
某個權重的梯度,跟它所對應的輸入值有直接關係。
因為:
- 權重 w₁₁⁽¹⁾ 對應輸入 x₁ = 1,所以有梯度
- 權重 w₁₂⁽¹⁾ 對應輸入 x₂ = 0,所以梯度變成 0
直觀地講:
如果某條輸入本次根本沒有送出有效訊號(值為 0),那它對該神經元輸出的貢獻就是 0,這條路徑對 loss 的影響自然也會消失,所以更新量就是 0。
八、這張圖整體想表達的觀念
這張範例其實就是在示範 backprop 的三個核心:
1. 先從 loss 開始微分
最右邊先算:
∂L/∂ŷ = 0.4
這是誤差來源。
2. 再把誤差一路往左傳
每經過一層,就用鏈鎖律拆成:
上游梯度 × 本地微分
3. 最後得到每個權重的梯度
像圖中這兩個例子:
- ∂L/∂w₁₁⁽¹⁾ = 2.4
- ∂L/∂w₁₂⁽¹⁾ = 0
這些梯度之後就可以拿去做梯度下降更新:
w ← w − η(∂L/∂w)
也就是:
- 梯度大,更新幅度通常較大
- 梯度為 0,這次就不更新
九、一段話統整
這張圖是在示範神經網路的反向傳播:先由損失函數 L = (ŷ − y)² 算出輸出端的梯度 ∂L/∂ŷ = 0.4,再透過鏈鎖律把誤差一路往前面各層傳回去,最後求出每個權重對 loss 的影響。圖下方兩個例子特別說明,某個權重的梯度等於「傳回來的誤差信號」乘上「該權重對節點輸出的局部影響」,因此當輸入為 1 時梯度為 2.4,而當對應輸入為 0 時梯度就變成 0,這正是 backprop 的基本精神。
















