微分規則與鏈式法則
這是微積分這一層的第四關(共五關)。
導數關 ② 給了定義(差商 → 極限),
但沒有人每次要斜率都回去算一次極限 —— 這一關給的是規則:
看一眼式子的形狀,直接寫下導數。
五條規則裡最重要的是最後一條 —— 鏈式法則。
它是神經網路反向傳播的心臟:損失對每一個權重的斜率,全靠它一層一層傳回去。
這一關是微積分 04,不算在主線十六關裡。唯一的前置是
導數關 ②(差商與中央差分);圖上的每一條規則都會跟實測數字現場對帳。
① 這關在解什麼問題:為什麼要背規則
導數關給了你什麼
導數關 ② 你已經有導數的定義
(f′(x) = limh→0 (f(x+h) − f(x))/h)
與量它的程式做法(中央差分,h = 0.001);
③ 給了兩條現成答案
((ex)′ = ex、(ln x)′ = 1/x);
④ 給了「導數可以當尺用」。
缺的只有一件事:遇到 x²ex 這種組合式子,不想每次都展開差商。
這一關補的就是那套規則。
規則不是為了考試而存在。它解決三件很具體的事:
- 不必每次回去算極限:x²ex 用差商要展開 ((x+h)²ex+h − x²ex)/h、還要處理 eh 的極限;用乘積規則兩行就寫完。
- 看得出「哪一項在貢獻斜率」:導數是逐項算的(和差規則), 所以你能指著式子說「這一項貢獻了 2x、那個常數貢獻 0」—— 最佳化 03 ⑥ 把風險式子的導數設 0 就是這樣一項一項寫下來的。
- 可以寫成程式:每個運算子帶著自己的導數規則,套起來就是自動微分; 而「一層套一層」的那條規則(③ 鏈式)反過來算,就是 反向傳播(④)—— 機器學習訓練的全部機制。
所以這一關的形狀是:② 同一層的四則運算怎麼微分、③ 一層套一層怎麼微分、 ④ 把 ③ 反過來算就是反向傳播。
這些規則在前面關卡的哪些地方已經被用掉了
跟導數關一樣,這一關的存在理由是「已經用了、但沒教」:
| 在哪 | 用到哪一條 | 你需要哪一節 |
|---|---|---|
| 02 ⑤ | 「平方的導數是 2x」= 冪法則 n = 2 | ② 冪 |
| 最佳化 02 ② | f(x) = (x−2)² ⟹ f′(x) = 2(x−2):冪法則 + 鏈式 (內層 x−2 的斜率剛好是 1,所以看起來像沒用到) | ② · ③ |
| 積分關 ④ · 機率統計 05 ⑤ | −e−λt 微分回 λe−λt: 鏈式(內層 −λt 的斜率是 −λ,那個 λ 就是這樣掉出來的) | ③ |
| 基礎 01 ⑥ | d/dx 2x = 2x · ln 2: 鏈式(把 2x 寫成 ex·ln2) | ③ |
| 最佳化 03 ⑦ | 風險 wᵀCw 的導數 2Cw: 乘積規則的矩陣版(w 出現兩次,所以微分兩次相加) | ② 乘積;矩陣版在 多變量關 ② |
| 最佳化 01 ⑤⑥ | 梯度下降每一步要的「損失對權重的斜率」 | ④ 反向傳播 |
最後一列是這一關真正的目的地:最佳化 01 關讓你看過球怎麼滾下坡, 但那支梯度箭頭是誰算出來的、怎麼算的,一直沒說。答案就是鏈式法則。
本頁符號對照表
這一頁只多兩個符號,其餘都是導數關用過的:
| 符號 | 唸法 | 它問的是什麼 | 哪一節 |
|---|---|---|---|
| f′(x) | f prime of x | 導數:f 在 x 這一點的斜率(導數關 ② 的定義) | 全頁 |
| g′(x) | g prime of x | 同一件事,只是換一個函數名。兩層機器的「內層」慣例上叫 g | ③ |
| d/dx | d d x | 「對 x 微分」這個動作。d/dx f(x) 跟 f′(x) 完全同義,只是把動作寫在前面 | ② |
| f ∘ g | f after g(f 圈 g) | 合成:先做 g、再把結果餵給 f,也就是 f(g(x))。 順序是右邊先做 | ③ |
| u | u | 中間那一層的名字:u = g(x),然後 y = f(u)。取名只為了讓鏈式寫得好看 | ③ |
| ∂L/∂w | partial L partial w | 損失對權重的斜率:反向傳播要算的那個數字。 ∂ 是圓體的 d(因為 L 有很多變數) | ④;多變量關 ② |
微積分這一層有五關,你在第 04 關
五關沒有先後綁定(除了多變量關與這一關預設你讀過導數關)。卡在哪一關就讀對應那一關:
| 關 | 它回答什麼 | 誰在用 |
|---|---|---|
| 導數 | 「這一點斜多少」 | 最佳化 01 的梯度、最佳化 02 的影子價格、最佳化 03 的「導數設 0」、基礎 01 量過的 eˣ 斜率 |
| 積分 | 「這一段總共多少」 | 機率統計 02 的面積 = 機率、機率統計 05 的尾巴、機率統計 01 的臨界值、期望值 |
| 多變量 | 「兩個以上的變數怎麼斜」 | 最佳化 01 ⑤ 的 ∇f、最佳化 01 ④ 的凸性、最佳化 03 ⑦ 的 2Cw、最佳化 02 的相切 |
| 規則(你在這裡) | 「不算極限,直接寫下導數」 | 02 ⑤ 的 2x、最佳化 02 ② 的 2(x−2)、機率統計 05 ⑤ 的 λe−λt、反向傳播 |
| 應用 | 「這些工具在 ML 與交易的哪裡」 | 選擇權 Delta / Gamma、softmax 與交叉熵、log 報酬的期望 |
這一關是導數關的續集:導數關講「是什麼」,這一關講「怎麼算得快」。 應用關則把兩關的工具接回 ML 與交易的真實場合。
同一層的加減乘除各有一條規則(② 節五條);一層套一層只有一條規則 —— 把每一層的斜率乘起來(③ 節鏈式)。從最後一層開始往前乘,就叫反向傳播(④ 節)。
五條規則都會在圖上跟中央差分實測對帳;鏈式那條會被拆成一台看得見的兩層機器。
② 微分規則:和差 · 常數倍 · 冪 · 乘積 · 商
上一節給了你什麼 ① 節說明了為什麼需要規則:差商能算出任何導數,但太慢。 這一節把「同一層四則運算」的五條規則一次擺好, 每一條都在下面那張圖上跟中央差分實測對帳 —— 規則不是要你信,是可以現場驗的。
五條規則,一次擺好
( xn )′ = n · xn−1
( f · g )′ = f′g + fg′ ( f / g )′ = ( f′g − fg′ ) / g² 第一行是和差與常數倍:導數可以逐項算,常數倍原封不動提出來。 順帶一個推論:常數的導數是 0(平的線沒有坡度)。
第二行是冪法則,n 可以是負數與分數: 1/x = x−1、√x = x1/2 都吃這一條。
第三行左邊是乘積規則:不是 f′g′(下面有數字反證)。 右邊是商規則:分子的順序 f′g − fg′ 不能寫反, 分母是 g²。
—
—
五條規則各自的小卡:公式 · 直覺 · 實測數字
下面五張卡點開就有那一條規則的證據。實測欄位全部是 h = 0.001 的中央差分(跟上面那張圖同一支程式), 你可以在圖上把綠點拖到同一個位置對一次。
① 和差規則:(f ± g)′ = f′ ± g′
公式:兩個函數相加,導數就是兩個導數相加(相減同理)。
直覺:兩件事一起發生的時候,總變化 = 各自的變化相加。 水槽有兩根水管,每秒總進水量就是兩根各自的流量相加 —— 不會互相干擾。 這也是為什麼導數可以逐項算:看到 x³ − 2x + 1 就一項一項寫下 3x²、−2、0。
實測(圖上第一顆按鈕,f(x) = x³ − 2x + 1,站在 x = 1.5):
| 怎麼來的 | f′(1.5) |
|---|---|
| 逐項寫:3x² − 2 + 0 = 3(2.25) − 2 | 4.750000 |
| 中央差分實測(h = 0.001) | 4.750001 |
差在小數第六位,那是浮點殘渣,不是規則錯。
② 常數倍規則:(c · f)′ = c · f′
公式:常數乘在外面,微分的時候原封不動留在外面。 特例:常數自己的導數是 0(c′ = 0)。
直覺:把整條曲線垂直拉成 c 倍,每一段的「上升」都變 c 倍, 「前進」沒變 —— 所以坡度也變 c 倍。而一條水平線(常數)沒有上升,坡度只能是 0。 這就是為什麼 x³ − 2x + 1 裡那個 +1 對斜率完全沒有貢獻。
實測:
| 函數 | 公式算的 | 公式值 | 實測值 |
|---|---|---|---|
| −2x(上面那條多項式的中間那項) | −2 · (x)′ = −2 | −2.000000 | −2.000000 |
| 5·ln x 在 x = 2 | 5 · (1/x) = 5/2 | 2.500000 | 2.500000 |
第二列可以在圖上驗一半:選 ln x、拖到 x = 2,讀數盤會給 0.5 —— 乘 5 就是 2.5。
③ 冪法則:(xⁿ)′ = n · xⁿ⁻¹(n 可以是負數與分數)
公式:指數往下掉到前面當係數,剩下的指數減 1。
直覺:n = 2 就是 導數關 ② 那四行代數的結論 ((x+h)² − x² 展開之後剩 2x); 幾何版是 02 ⑤ 那個正方形:邊長多 h, 面積多出兩條長方形(2xh)加一個小角落(h²,可忽略)。 重點是這一條不只吃正整數:1/x 是 n = −1、√x 是 n = ½。
實測(圖上第二、三顆按鈕):
| 函數 | n | 公式 | 公式值 | 實測值 |
|---|---|---|---|---|
| √x 在 x = 4 | ½ | ½x−½ = 1/(2√x) | 0.250000 | 0.250000 |
| 1/x 在 x = 2 | −1 | −1·x−2 = −1/x² | −0.250000 | −0.250000 |
| x³ 在 x = 1.5 | 3 | 3x² | 6.750000 | 6.750001 |
1/x 那一列的負號要記:往右走高度下降,坡度當然是負的。
④ 乘積規則:(f · g)′ = f′g + fg′(不是 f′ · g′)
公式:一次只微分一個,另一個保持原樣,然後兩項相加。
直覺:把 f · g 想成長方形的面積, f 是寬、g 是高。x 動一小步, 寬多了 f′h、高多了 g′h, 面積多出兩條長方形(f′h · g 與 f · g′h) 加一個小角落(f′g′h²,兩個 h 相乘,h → 0 時可忽略)。 除掉 h 就剩 f′g + fg′ —— 那個被丟掉的小角落,就是「為什麼不是 f′g′」的答案。
實測(圖上第六顆按鈕,f(x) = x² · ex,站在 x = 1):
| 算法 | 式子 | 值 | 對嗎 |
|---|---|---|---|
| 乘積規則 | 2x·ex + x²·ex = 3e | 8.154845 | ✓ |
| 中央差分實測 | h = 0.001 | 8.154851 | ✓ 對上了 |
| 錯的做法 f′ · g′ | 2x · ex = 2e | 5.436564 | ✗ 差了 2.72 |
再看一個一眼就知道錯的例子:f = g = x, f·g = x² 在 x = 3 的導數是 6; 但 f′ · g′ = 1 × 1 = 1。差六倍。
⑤ 商規則:(f / g)′ = (f′g − fg′) / g²
公式:分子是「上微下不動 減 上不動下微」,分母是 g²。
直覺:f/g 就是 f · g−1, 所以它其實是乘積規則 + 冪法則(n = −1)+ 鏈式三條合起來的結果 —— 那個減號來自 g−1 微分出來的負號, g² 來自 g−2 通分。 所以商規則不是第六條新規則,是前面幾條的組合(推導在 ③ 讀完鏈式之後自己就寫得出來)。
實測(圖上第七顆按鈕,f(x) = ln x ÷ x,站在 x = 2):
| 算法 | 式子 | 值 |
|---|---|---|
| 商規則 | ((1/x)·x − ln x·1) / x² = (1 − ln 2)/4 | 0.076713 |
| 中央差分實測 | h = 0.001 | 0.076713 |
| 分子寫反 (fg′ − f′g)/g² | 符號整個翻掉 | −0.076713 |
寫反的後果是正負顛倒 —— 在梯度下降裡就是「往山上爬」。 所以商規則的分子順序值得多記一秒。
坑 1:乘積規則寫成 f′g′。 上面那張表已經用數字打死它(8.15 vs 5.44;x² 的 6 vs 1)。 記法:「一次只動一個」 —— 兩項,各動一個。
坑 2:以為 (xn)′ = n·xn(忘了指數要減 1)。 驗算方式很省事:看 n = 1。 (x)′ 一定是 1(斜率 45°的直線), 而 1·x0 = 1 ✓; 如果指數沒減 1 就會得到 1·x = x ✗ ——一眼就抓到。
你在 PyTorch / TensorFlow 裡寫 loss.backward() 的時候,
背後就是這五條規則被寫成程式:每一個運算子都帶著自己的導數規則
(加法、乘法、次方、exp、log 各一條),
框架把它們按照你的式子串起來。這叫自動微分(autodiff)。
它不是數值微分(不是中央差分那種),也不是符號微分(不是幫你把式子化簡)—— 它是「照著規則一步一步套」。所以它精確到浮點極限, 而中央差分永遠有一點 h 帶進來的誤差 (導數關 ② 那張表)。 上面那張圖故意兩種都算,就是要讓你看到兩者差多少 —— 差在 10−7, 所以在教材裡用哪一個都行;在訓練一億個參數的模型時,就只能用自動微分。
這五條規則只處理「同一層」的組合(相加、相乘、相除)。 真正的難題是「一層套一層」——e−λt 是「先算 −λt、再餵給 exp」。那需要第六條規則,下一節。
③ 鏈式法則:一層套一層,斜率乘起來
上一節給了你什麼 ② 節的五條規則全部處理「同一層」:f + g、 f · g、f / g。 但 積分關 ④ 那條 e−λt、 最佳化 02 ② 那條 (x−2)²、 基礎 01 ⑥ 那條 2x 都是套進去的形狀。這一節就是那一條規則 —— 而它同時是整套機器學習訓練的機制。
先講直覺:兩段匯率相乘
你有台幣,想知道「多一塊台幣、最後會變成多少日圓」。中間要換兩次: 台幣 → 美金 → 日圓。假設美金對台幣的匯率是 1/32(多 1 台幣 = 多 0.03125 美金)、 日圓對美金是 150(多 1 美金 = 多 150 日圓)。那麼多 1 台幣 = 多 0.03125 × 150 = 4.69 日圓。
你剛剛用的就是鏈式法則。「匯率」就是斜率(多一單位變多少), 而兩段換算的斜率是相乘的:
f —— 外層(後做的那一層),它把 u 變成 y = f(u)。
f′( g(x) ) —— 注意這個括號:外層的斜率要在 u = g(x) 這一點算,不是在 x 那一點。這是最容易錯的地方。
右邊那個寫法(dy/du · du/dx)好記到有點作弊: 看起來就像 du 上下對消。它不是嚴格的證明,但方向永遠對。
下圖是合成函數本人:橘線= h(x) = f(w·x)、桃紅線= 在 x 這一點的切線,它的斜率就是上圖兩個藍字乘起來的那個數。
—
—
三個你已經見過的例子,現在有來歷了
下面三條式子分別出現在機率統計 05 關、最佳化 02 關、基礎 01 關,當時都是直接寫下答案。 每一條都是「外層斜率 × 內層斜率」:
| 式子 | 內層 g(斜率) | 外層 f(斜率) | 乘起來 | 在某點對帳 |
|---|---|---|---|---|
| e2x | 2x(2) | eu(eu) | 2e2x | x=1:14.778112 實測 14.778122 |
| 1 − e−t/2 (機率統計 05 ⑤ · 積分關 ④) |
−t/2(−½) | −eu(−eu) | ½e−t/2 | t=3:0.111565 實測 0.111565 |
| (x−2)² (最佳化 02 ②) |
x−2(1) | u²(2u) | 2(x−2) | x=0.5:−3.000000 實測 −3.000000 |
| 2x (基礎 01 ⑥) |
x·ln2(ln2) | eu(eu) | 2x·ln2 | x=1:1.386294 實測 1.386294 |
第二列解答了一個老問題:積分關 ④ 那條密度 λe−λt 裡前面那個 λ 是哪來的 —— 它就是內層 −λt 的斜率被乘進來的。 第四列解答了另一個:基礎 01 ⑥ 那句「換底會多一個常數 ln 2」,那個常數就是內層斜率。
寫 (e2x)′ = e2x 是錯的, 正確是 2e2x。在 x = 1 對帳:
- 忘了乘:e² = 7.389056
- 正確:2e² = 14.778112,中央差分實測 14.778122 ✓
差剛好兩倍,也就是漏掉的那個內層斜率。 自我檢查的辦法:問「括號裡面是不是純粹的 x」。 如果裡面是 2x、−λt、 x−2、w·x,就一定還要乘一次那一層的斜率。
鏈式法則不限兩層。三層 y = f(g(k(x))) 的斜率是:
n 層就是 n 個數字相乘 —— 這件事很簡單,但後果很大: 乘起來的東西可能一路縮小(0.510 ≈ 0.001) 或一路放大(1.510 ≈ 57.7)。 ④ 節會給這兩個現象的名字。
上面那張示意圖其實已經畫了三層(x → u → y → L)—— 只是這一節只用左邊兩層。第三層是損失,下一節接手。
④ 反向傳播:鏈式法則 + 從最後一層往前算
上一節給了你什麼 ③ 節給了鏈式法則(dy/dx = dy/du · du/dx) 與那台兩層機器。這一節只多做一件事:在最右邊接上「損失」,然後從損失開始往左算。 這個動作有名字,叫反向傳播(backpropagation)—— 而它算出來的東西(∂L/∂w)正是 最佳化 01 ⑤⑥ 那支梯度箭頭。
訓練一個模型,只有三步
不管網路多深、參數多少,訓練的每一步都是同樣三件事:
- 前向:資料進去,一層一層算到最後,得到輸出 y 與損失 L(「錯多少」的分數,例如 L = ½(y − t)²,t 是正確答案)。
- 反向:問「每一個權重動一點,L 會變多少」—— 也就是每個權重的 ∂L/∂w。這一步全靠鏈式法則。
- 更新:w ← w − α · ∂L/∂w —— 往斜率的反方向走一小步。這就是梯度下降 (最佳化 01 ⑤⑥ 那顆滾下坡的球, 那一關已經有完整的互動視覺化,這裡不重做)。
第 2 步就是這一關的目的地。把 ③ 節那台機器的損失接上, ∂L/∂w 只是三個斜率相乘:
∂y/∂u = f′(u) —— 那一層自己的局部斜率(③ 節的外層斜率)。
∂u/∂w = x —— 因為 u = w·x, 對 w 微分時 x 是常數係數(常數倍規則)。 所以「輸入越大,這個權重的梯度越大」。
三個相乘 —— 這就是全部。深一層就多乘一個數字。
用 ③ 節那台機器現場算一次
下面這張表吃的是上一節那張圖的當前狀態(回去拖綠點或動 w 滑桿,這裡的數字會跟著變)。正確答案固定設成 t = 2:
—
鏈式法則本身沒有方向 —— 那三個數字乘起來,先乘哪個都一樣。 「反向」是效率問題,不是數學問題。
假設網路有 10 層、每層一堆權重。如果從前面往後算, 每一個權重都要自己從頭乘到尾(∂u/∂w 一路乘到 ∂L/∂y)——每個權重都重算一次整條鏈。
如果從最後往前算,那條鏈的後半段(∂L/∂y、 ∂L/∂u…)對同一層的所有權重都是同一個數字, 算一次、往前傳、大家共用。這就是「反向」省下的東西: 成本從「參數個數 × 層數」降到「一次前向 + 一次反向」。
所以上面那張示意圖的綠色箭頭是由右往左的: 每往左一格,只做一次乘法(乘上那一層的局部斜率), 而乘完的結果就是下一格要用的東西。
既然 n 層的梯度是 n 個數字相乘,那些數字的大小會累積:
- 每層局部斜率都是 0.5 → 10 層之後 0.510 ≈ 0.00098。 最前面幾層的梯度幾乎是 0,怎麼訓練都不動 ——梯度消失(vanishing gradient)。
- 每層局部斜率都是 1.5 → 10 層之後 1.510 ≈ 57.7。 更新一步就衝過頭、損失變 NaN ——梯度爆炸(exploding gradient)。
這兩個名詞在深度學習裡出現的頻率極高,而它們的全部內容就是「小於 1 的東西乘很多次會趨近 0」 —— 跟 基礎 01 ⑦ 那個「等距 = 等倍數」是同一個算術。 你在 ③ 節的圖上把 w 拉到 0.2 再看 ∂L/∂w, 就是這件事的兩層迷你版。
實務上的對策(殘差連接、normalization、梯度裁剪、換激活函數)全部是在 控制那串乘數的大小。這一頁不展開,但你現在知道它們在對付什麼。
自動微分有兩個方向,差別只在「先乘哪一頭」:
- 前向模式(forward mode):一次算出「一個輸入對所有輸出」的斜率。 輸入少、輸出多的時候划算。
- 反向模式(reverse mode,也就是反向傳播):一次算出「一個輸出對所有輸入」的斜率。 輸出少、輸入多的時候划算。
機器學習剛好是後者的極端:輸出只有一個純量(損失 L), 輸入是幾百萬到幾千億個參數。所以 ML 幾乎只用反向模式 —— 一次反向就拿到所有參數的梯度。
代價是要把前向的中間結果存下來(反向時要用),所以訓練吃記憶體。 這就是「batch size 開太大會 OOM」的來歷之一。
拿到 ∂L/∂w 之後的那一步(往反方向走一小步) 在 最佳化 01 ⑤⑥; 多個參數一起看(∇L 是個向量、學習率 α 的上限跟特徵值有關)在 多變量關 ② 與 ④。 把這一套接到真正的模型(softmax、交叉熵)在 應用關 ③。
⑤ 這關回答了什麼
為什麼要背規則?每次用差商算不行嗎?
行,但太慢,而且看不出結構。差商永遠算得出答案 (導數關 ② 就是這樣量的), 但 x²ex 要展開 ((x+h)²ex+h − x²ex)/h、還要處理 eh 的極限;乘積規則兩行就寫完。
更重要的是規則可以寫成程式:每個運算子帶著自己的導數規則、按式子串起來 ——
那就是自動微分,也是 loss.backward() 背後的東西(② 末尾)。
乘積規則為什麼不是 f′ · g′?
因為面積多出來的是兩條長方形,不是那個小角落。 把 f·g 看成寬 f、高 g 的長方形: x 動一小步 h,面積增加 f′h·g(右邊長出一條)+ f·g′h(上面長出一條)+ f′g′h²(角落那一小塊)。 除以 h 之後,前兩項留下 f′g + fg′,角落那項還帶著一個 h —— h → 0 時它消失。而 f′g′ 就是那個消失的角落。
數字反證:f = g = x 在 x = 3, (x²)′ = 6,但 f′g′ = 1。 x²ex 在 x = 1:正確 8.154845、 錯的做法 5.436564(② 的第四張卡)。
鏈式法則一句話是什麼?怎麼確定沒漏乘內層?
一句話:一層套一層的時候,把每一層的斜率乘起來。 (f∘g)′(x) = f′(g(x))·g′(x) —— 注意外層的斜率要在 u = g(x) 那一點算,不是在 x。
檢查方式:看括號裡面是不是「純粹的 x」。 如果裡面是 2x、−λt、 x−2、w·x,就一定還要再乘一次那一層的斜率。 (e2x)′ 寫成 e2x 會少掉剛好兩倍(7.389 vs 14.778,③ 的坑)。
機率統計 05 關那條 1 − e−t/2 微分回 ½e−t/2,λ 是哪一步冒出來的?
是內層的斜率。拆成兩層:內層 u = −λt(斜率 −λ)、外層 −eu(斜率 −eu)。乘起來 (−e−λt) × (−λ) = λe−λt —— 兩個負號抵掉,λ 從內層被乘出來。
所以 積分關 ④ 那條密度前面的 λ 不是湊的, 它是鏈式法則的產物。在 t = 3、λ = ½ 對帳: 公式 0.111565、中央差分實測 0.111565(③ 的表)。
反向傳播跟鏈式法則差在哪?為什麼一定要「反向」?
鏈式法則是數學,反向傳播是「算它的順序」。 那幾個斜率相乘,先乘哪一個都得到同樣的答案;但從最後一層往前算可以共用: 鏈的後半段對同一層的所有權重都是同一個數字,算一次往前傳就好。
從前面往後算的話,每個權重都要重跑一整條鏈。 所以反向模式的成本是「一次前向 + 一次反向」,跟參數個數幾乎無關 —— 對「一個純量損失、幾億個參數」這種形狀(④ 末尾)差距是天文級的。
這一關跟另外四關、跟主線十六關的關係是什麼?
對主線十六關:它不引入新概念,只把 02 ⑤ 的 2x、 最佳化 02 ② 的 2(x−2)、機率統計 05 ⑤ 的 λe−λt、 基礎 01 ⑥ 的 ln 2、最佳化 03 ⑦ 的 2Cw 補上算法(① 那張表六個位置)。
對另外四關:導數關是它的前置(規則全部從差商的定義推出來); 積分關的捷徑(基本定理)反過來要「猜一個微分之後等於 f 的函數」, 猜的時候用的就是這一關的規則;多變量關把這裡的一維規則升維 (偏導數就是「凍住其他變數」之後套同一批規則); 應用關則把鏈式法則接到 softmax 與交叉熵上, 並用二階導數解釋選擇權的 Gamma。