影片狀態:已附影片。 影片來源與說明
這是台大陳縕儂 深度學習之應用 導讀的第 2 堂。ADL Fall 2025(114-1,2025/09/01–12/15)把這兩份講義和第 1 堂的 Introduction 一起放在「自學/先修」列,是選課前就要看完的 HW0 內容。
本文依據:NN Basics 講義(93 頁)、Backpropagation 講義(33 頁),以及五支影片:
| 影片 | 長度 | 對應講義 |
|---|---|---|
| 2.1 How to Train a Model? 如何訓練模型? | 4:41 | NN Basics 第 4–7 頁 |
| 2.2 What is a Model? 模型是甚麼? | 46:40 | NN Basics 第 8–44 頁 |
| 2.3 What does the "Good" Function Mean? 什麼叫做好的Function呢? | 8:41 | NN Basics 第 45–52 頁 |
| 2.4 How can we Pick the "Best" Function? 如何找出最好的Function | 57:29 | NN Basics 第 53–93 頁 |
| 2.5 Backpropagation 效率地計算大量參數 | 44:06 | Backpropagation 全份 |
2.5 有掛在課程頁上,但不在 2025 Fall 播放清單裡,只照清單看會漏掉;表中的頁碼範圍是依講義裡的章節標題頁對應,不是影片時間軸。
讀完這一堂要能做四件事:把一筆資料變成固定長度的向量;說出一層神經元為什麼做不了 XOR、兩層為什麼可以;對一個神經元算出 loss 的梯度並更新一次參數;用一次 forward 加一次 backward 算出每一層的梯度。標成「本文自編」的例子不是課堂內容。
訓練一個模型,就是回答三個問題
第 1 堂說,訓練是從一組候選函數裡挑出最好的 f*。NN Basics 第 6 頁把它拆成三題,整堂照這個順序走:
- 模型是什麼? 也就是候選函數的集合長什麼樣。
- 什麼叫「好」的函數? 要有一個算得出來的標準。
- 怎麼挑出「最好」的函數? 候選有無限多個,不能一個一個試。
第一題:模型是什麼
先把輸入和輸出變成向量
這一堂只看分類。只分兩類叫 binary classification,分多類叫 multi-class,陳縕儂老師說實際應用多半是後者。她也提醒,不少任務沒辦法這麼乾淨地寫成分類(第 10 頁)。
模型是一個函數 f: R^N → R^M。N 是輸入的維度,M 是類別數,兩個都要固定:模型設成吃 1000 維,就一定要給它 1000 維;訓練時是 10 類,使用時也只能是 10 類。
怎麼把資料變成向量(第 11–14 頁):
- 手寫數字:16×16 的圖有 256 個像素,每個像素一維,有墨水是 1、沒有是 0,得到 256 維的 x。輸出準備 10 維,是哪個數字,那一維就是 1,其餘是 0。
- 一個詞:準備一本詞典,假設有 1000 個詞,就是 1000 維。這個詞排在詞典第幾個,第幾維就是 1。輸出如果是正面、負面、中立,就是 3 維。
只有一維是 1、其他全是 0 的寫法叫 one-hot encoding。老師說這只是其中一種把資料變成向量的方法,之後還會看到別的。
一個神經元能做二分類
一個神經元把輸入做加權總和、加上 bias,再過 sigmoid(第 16–20 頁):
y = σ(w·x + b)
輸出在 0 到 1 之間。把門檻切在 0.5,y ≥ 0.5 判成「是 2」,否則「不是 2」,一個神經元就能做二分類。調整 w 和 b,就是在調整它對每張圖給出的 y。
bias 是做什麼的? 可以把它想成一個永遠是 1 的輸入特徵,乘上自己的權重 b。第 18 頁說它提供類別的先驗。老師的解釋是:z 要到 0,y 才到 0.5;如果資料裡大部分都該判成「是」,光靠加權總和不容易都超過門檻,模型就會學出一個比較大的 b,讓起點先墊高。
一層神經元能做多分類,但表達力有限
要知道圖上是哪個數字,就準備 10 個神經元(第 21 頁),第一個判斷是不是 1,第二個判斷是不是 2,以此類推。最後看哪個輸出最大。1 和 7、7 和 9 長得像,可能有兩個輸出都超過 0.5,所以取最大的那個。
這種只有一層的模型叫 perceptron。它有兩個限制(第 23–25 頁):
- 每個輸出各做各的。 判斷「是不是 2」和判斷「是不是 7」各自獨立運算,不共用權重。如果一張圖很明顯是 2,這個資訊幫不到負責判斷 7 的那個神經元。
- 一個神經元只能畫一道分界。 以兩個輸入為例,把 y 畫成立體圖,就是一面斜坡。調整權重可以移動這面坡的位置、方向與陡度,但它始終只有一面。
第二個限制用 XOR 看最清楚。AND 和 OR 的四個點,用一條直線就能把黑點和白點分開。XOR 的四個點不行:
| x1 | x2 | XOR |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
老師的解法是回到邏輯電路:XOR 可以寫成 (A AND NOT B) OR (NOT A AND B)。它需要好幾個簡單運算組合起來,一個運算做不到。
把這個解法做成網路(本文自編)。 為了好算,這裡用階梯函數(z > 0 輸出 1,否則 0)代替 sigmoid:
h1 = step( x1 − x2 − 0.5) # A AND NOT B
h2 = step(−x1 + x2 − 0.5) # NOT A AND B
y = step( h1 + h2 − 0.5) # OR
| x1 | x2 | h1 | h2 | y |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 0 |
第一層的兩個神經元各畫一道分界,第二層把兩個結果合起來。這就是多一層的用處。
疊起來:ridge 與 bump
多一層之後,中間那些神經元叫 hidden unit,因為訓練資料沒有告訴它們該輸出什麼。第 23 與 28 頁用圖說明表達力怎麼長出來:
- 一層:一面斜坡。
- 兩層:把兩面方向相反的斜坡夾在一起,得到一道「脊」(ridge),可以把中間一條帶狀的點和兩側分開。
- 三層:把兩道互相垂直的脊再夾一次,得到一個「凸塊」(bump),可以單獨圈住某一小塊區域。
凸塊的大小、高低與位置都能靠權重調整,把很多個凸塊加起來,就能包住很複雜的分布。老師同時提醒代價:參數太多時,模型連資料裡的雜訊都想包進去,反而學歪,所以參數越多越需要資料。
hidden layer 超過一層就叫 deep。老師補充,在這個名詞出現之前,大家只算得動一層。
符號與一條要記住的關係式
第 30–40 頁定義符號。整堂後半都靠下面兩條:
z^l = W^l a^(l-1) + b^l # 上一層輸出乘權重矩陣、加 bias 向量
a^l = σ(z^l) # 逐元素過 activation
符號對照(NN Basics 第 30–34 頁)
a_i^l:第 l 層第 i 個神經元的輸出;整層輸出是向量a^l。w_ij^l:從第 l−1 層神經元 j 連到第 l 層神經元 i 的權重;兩層之間的權重是矩陣W^l。b_i^l:第 l 層神經元 i 的 bias;整層是向量b^l。z_i^l:第 l 層神經元 i 在過 activation 之前的加權總和;整層是向量z^l。
整個網路就是從輸入 x 開始一層層套這兩條式子(第一層用 x 取代 a^(l−1)),直到輸出層 y = a^L(第 39 頁)。
為什麼 activation 一定要非線性
常用的三種是 sigmoid、tanh、ReLU(第 43 頁),都是非線性的。老師解釋原因:每一層做的是「乘一個矩陣」。如果中間的 activation 是線性的,兩層連乘 W²(W¹x) 可以直接乘開成一個矩陣,兩層的效果和一層一樣,多出來的參數白費。有了非線性,網路才能畫出彎曲的分界,不再只能切直線。
至於該選哪一種 activation,老師說目前沒有很好的準則,會影響表現,只能試。
第二題:什麼叫好的函數
給定一組 w 和 b,就決定了一個函數。所以「挑函數」等於「挑參數」,全部參數合稱 θ(第 48 頁)。
要讓機器知道哪一組比較好,得再定義一個函數來評分(第 50 頁):
- loss(也叫 cost、error)函數 C(θ):量 θ 有多差,值越小越好。最好的參數是讓 C(θ) 最小的那一組。
- objective(也叫 reward)函數 O(θ):量 θ 有多好,值越大越好。
好的函數,預測應該接近資料裡的答案。最直接的 loss 是把每筆資料預測與答案的差距加總(第 51 頁寫成範數 ‖ŷ − f(x; θ)‖,老師口頭說成差的絕對值)。常見的還有 square loss、hinge loss、logistic loss、cross entropy(第 52 頁)。老師要大家留意每一種背後的理由,例如為什麼取平方:差得越多,要罰得越重。
第三題:怎麼挑出最好的函數
兩條走不通的路
- 暴力法:把所有 θ 都代進去比。行不通,因為 w 和 b 可以是任意小數,候選有無限多組。
- 直接解微分等於零:C(θ) 的最低點在微分為零的地方。但 C(θ) 整體長什麼樣子我們不知道,沒辦法直接解。
Gradient descent:丟一顆球讓它往下滾
做法是只看腳下(第 57–61 頁):
- 隨機選一個起點 θ⁰。
- 算這一點的微分。斜率是負的,表示往右是下坡,θ 要增加;斜率是正的,θ 要減少。
- 照這個方向走一步,步伐由 learning rate η 決定。
- 重複,直到微分是零、參數不再變動。
寫成式子:
θ^(i+1) = θ^i − η · ∂C/∂θ
參數不只一個時,對每個參數各算偏微分,各自更新。
用一個神經元算一次(第 64–69 頁)
模型是兩個輸入的單一神經元,y = σ(w1·x1 + w2·x2 + b),loss 用 square error;講義第 65 頁是對所有資料加總,這裡和第 68 頁的推導一樣只看一筆:C = (y − ŷ)²。用 chain rule,加上 sigmoid 的微分 σ'(z) = σ(z)(1 − σ(z)),得到:
∂C/∂w1 = 2(y − ŷ) · y(1 − y) · x1
∂C/∂w2 = 2(y − ŷ) · y(1 − y) · x2
∂C/∂b = 2(y − ŷ) · y(1 − y)
老師點出它的意思:梯度由「預測和答案差多少」決定,而且和這個權重對應的輸入有關。從式子可以再推一步(這是我的推論):輸入是 0 的那一維,梯度是 0,權重不會被更新。
代入數字(本文自編)。 取 x = (1, 2),起始 w = (0.5, −0.5),b = 0,答案 ŷ = 1,η = 1。
- z = 0.5×1 + (−0.5)×2 + 0 = −0.5,y = σ(−0.5) ≈ 0.3775
- C = (0.3775 − 1)² ≈ 0.3875
- 共同的部分:2(y − ŷ)·y(1 − y) = 2 × (−0.6225) × 0.3775 × 0.6225 ≈ −0.2926
- ∂C/∂w1 ≈ −0.2926,∂C/∂w2 ≈ −0.5851,∂C/∂b ≈ −0.2926
- 更新:w1 = 0.5 + 0.2926 = 0.7926,w2 = −0.5 + 0.5851 = 0.0851,b = 0.2926
- 再算一次:z = 0.7926 + 0.1702 + 0.2926 = 1.2554,y ≈ 0.7782,C ≈ 0.0492
走一步,loss 從 0.3875 降到 0.0492。三個梯度都是負的,所以三個參數都增加,輸出往答案 1 靠近。
這只有三個參數。一層 100 × 100 就有一萬個權重,疊十層就是十萬個,實際的網路是百萬個起跳。每走一步都要算出全部參數的偏微分,所以需要後面的反向傳播。
一次看多少筆資料才更新
loss 的定義是所有資料的誤差加總。照定義做,一萬筆資料要全部算完才能更新一次,太慢。
| 方法 | 每次更新用幾筆 | 特性 |
|---|---|---|
| Gradient descent | 全部 K 筆 | 最慢 |
| SGD | 隨機 1 筆 | 更新得快;每筆被選到的機率相同時,梯度的期望值和看完全部資料一樣 |
| Mini-batch SGD | B 筆 | 實務上用這個 |
所有資料都看過一輪叫一個 epoch。老師用 20 筆資料比較:一個 epoch 裡,gradient descent 只更新一次,SGD 更新 20 次,所以同樣看完一輪,SGD 離目標更近。
為什麼 mini-batch 比 SGD 還快? 第 80–81 頁的圖顯示訓練速度是 mini-batch > SGD > gradient descent。直覺上每筆都更新的 SGD 應該最快,老師說這是常被問的問題。答案在硬體(第 82 頁):SGD 每次算一個向量乘矩陣,mini-batch 把 B 筆排成矩陣,一次算矩陣乘矩陣,而現代電腦對矩陣乘矩陣做了很強的最佳化,比分 B 次算向量快。第 80 頁同一張圖上還有準確率:batch size 靠近 SGD 這一側時準確率比較好,老師說大約 10 是速度和準確率兼顧的設定。
訓練時會遇到的事
- Local optima(第 83 頁)。球滾到一個凹處就停,但那不一定是整個曲面的最低點。神經網路的 loss 不是 convex 的,沒有保證找得到全域最佳解。老師說這個問題目前沒有完全解決。
- 初始化要隨機(第 85 頁)。每次都從同一點出發,就會卡在同一個凹處。
- Learning rate(第 86 頁)。太大,一步跨到 cost 更高的地方;稍微小一點但還是太大,會略過最低點、卡在別處,loss 降不下去;太小,下得去但非常慢。沒有通用的設定方式,要靠練習累積經驗。
- 每個 epoch 前先打亂資料(第 87 頁)。不打亂的話,模型每一輪看到的順序都一樣,可能記住順序,而不是學會資料本身。
- batch size 固定。矩陣大小一致,運算才有效率。
- batch size 與 learning rate 要一起調。 講義第 87 頁:batch size 變成 K 倍,learning rate 理論上變成根號 K 倍。例如 batch size 變 4 倍,learning rate 變 2 倍。老師說這只供參考,她沒有細究為什麼是根號 K。
Learning recipe:結果不好時先查哪裡
資料分三份(第 88–89 頁)。training 用來訓練;validation 是從有答案的資料裡保留一部分不拿去訓練,用來馬上知道模型在沒看過的資料上表現如何;真正的 testing 沒有答案,例如比賽裡要上傳之後才知道分數。
除錯的順序(第 90–91 頁):
- 先看 training 的結果好不好。 不好有兩種可能:候選函數裡根本沒有好的(模型太小,要改架構),或是有好的但沒找到(卡在 local optima,要改訓練方式)。這兩種很難直接分辨。老師的做法是先假設第二種,調 learning rate 與起點;loss 還是下不去,才改模型。
- training 好了,再看 validation。 validation 也好就完成了。training 好、validation 差,就是 overfitting。
老師用講義第 92 頁的圖解釋 overfitting:真正的函數是一條曲線。一次方的模型只能畫直線,圖上標的訓練資料 MSE(mean squared error)是 1.37;二次方能畫出接近的曲線,MSE 是 0.70;次方很高的模型(圖上是 10 次方,影片口述成十四次方)在訓練資料上的 MSE 更低,圖上標 0.52,但曲線在點與點之間亂彎,沒看過的資料落在那些地方就錯了。
對付 overfitting 的做法(第 92 頁):增加訓練資料,或用 dropout 這類技巧,讓參數不要只是把訓練資料背起來。
反向傳播:一次 forward 加一次 backward
老師先說明這一段的用意:現在的工具都已經把反向傳播實作好,寫作業、做研究都不用自己寫。這一段的目的,是知道這麼多參數的梯度是怎麼快速算出來的。
兩個方向
- Forward propagation:資料從輸入 x 一層層算到輸出 y,再和答案比,得到 cost。
- Backpropagation:誤差的資訊從最後面往前傳,告訴每一層的權重該怎麼調。講義第 12 頁註明它不限於神經網路,任何函數都能用。
能這樣做是因為 chain rule(第 13 頁)。假設 w 影響 x,x 影響 y,y 影響 z,那麼
∂z/∂w = ∂z/∂y · ∂y/∂x · ∂x/∂w
反向傳播先算最靠近輸出的那一項 ∂z/∂y,再往輸入的方向一項一項乘過去。
把一個權重的梯度拆成兩段
我們要的是 ∂C/∂w_ij^l。這個權重先影響 z_i^l,再經過後面所有的層影響 C,所以拆成:
∂C/∂w_ij^l = ∂z_i^l/∂w_ij^l × ∂C/∂z_i^l
= a_j^(l-1) × δ_i^l
- 前一段好算。 z_i^l 是上一層各個輸出乘上權重的總和,對 w_ij^l 微分,只剩下它乘的那個係數,也就是上一層的輸出 a_j^(l−1)。第一層的話就是輸入 x_j。
- 後一段難算。 C 在網路的最尾端,z_i^l 在中間,隔了很多層。講義先給它一個記號 δ_i^l,意思是「傳回到第 l 層的梯度」。
δ 怎麼算:從最後一層往前推
最後一層離 C 最近,直接用 chain rule:
δ_i^L = σ'(z_i^L) × ∂C/∂y_i
∂C/∂y_i 由 loss 的定義決定,σ'(z) 由 activation 決定。老師說它的意思是:誤差越大,傳回去的梯度越大。
中間的層。z_i^l 先影響同一個神經元的 a_i^l,a_i^l 再透過權重影響下一層的每一個 z_k^(l+1),所以要把所有路徑加起來:
δ_i^l = σ'(z_i^l) × Σ_k w_ki^(l+1) × δ_k^(l+1)
δ^l = σ'(z^l) ⊙ (W^(l+1))^T δ^(l+1) # 向量形式,⊙ 是逐元素相乘
老師請大家回頭看這條式子的形狀(第 26–27 頁):把下一層的 δ 當成輸入,乘上同一組權重做加權總和,再乘一個常數 σ'(z)。它就是一個方向相反的網路。
整個流程(第 29–32 頁)
- Forward pass:把資料丟進去,算出每一層的 z 與 a,存起來。
- Backward pass:從 ∂C/∂y 算出 δ^L,一層層往前算到 δ^1。
- 每個權重的梯度 = 它前面那個神經元的輸出 × 它後面那個神經元的 δ。
講義只推導了權重的梯度;第 31 頁的梯度向量裡列了 ∂C/∂b,但沒有寫它怎麼算。照同樣的拆法可以補上(本文補充):bias 的梯度就是 δ,因為 ∂z/∂b = 1。
所有參數的梯度,都由這兩趟算出的數字相乘而得,中間結果可以重複使用,不必對每個參數各自從頭展開整條 chain rule。這是它有效率的原因。
手算一個最小的例子(本文自編)
網路只有一條線:輸入 x,一個 hidden 神經元,一個輸出神經元,都用 sigmoid,沒有 bias。取 x = 1,w¹ = 0.5,w² = −1,答案 ŷ = 1,C = (y − ŷ)²。
Forward:
- z¹ = 0.5 × 1 = 0.5,a¹ = σ(0.5) ≈ 0.6225
- z² = −1 × 0.6225 = −0.6225,y = σ(−0.6225) ≈ 0.3492
- C = (0.3492 − 1)² ≈ 0.4235
Backward:
- δ² = σ'(z²) × ∂C/∂y = y(1 − y) × 2(y − 1) = 0.22727 × (−1.30156) ≈ −0.2958
- δ¹ = σ'(z¹) × w² × δ² = 0.6225 × 0.3775 × (−1) × (−0.2958) ≈ 0.0695
梯度:
- ∂C/∂w² = a¹ × δ² = 0.6225 × (−0.2958) ≈ −0.1841
- ∂C/∂w¹ = x × δ¹ = 1 × 0.0695 = 0.0695
驗算。 把 w¹ 改成 0.5001 和 0.4999 各算一次 C,相減再除以 0.0002,得到 0.0695;對 w² 做同樣的事,得到 −0.1841。兩個都和上面一致。
怎麼讀這兩個數字:∂C/∂w² 是負的,所以 w² 要增加(−1 太負了,把輸出壓得太低)。∂C/∂w¹ 是正的,所以 w¹ 要減少。這乍看奇怪,原因是 w² 是負的:a¹ 越小,z² 越不負,y 越接近 1。
常見的誤解
這份清單是我依課堂內容整理的,不是老師逐條列出的。
- 「一層神經元就能做任何分類。」 一個神經元只有一道分界,XOR 就分不開。
- 「疊很多層就有很強的表達力。」 如果中間沒有非線性的 activation,疊幾層都等於一層。
- 「SGD 每筆都更新,所以一定比 mini-batch 快。」 更新次數多,但每次都是向量運算。mini-batch 用矩陣運算,實際花的時間更少。
- 「training 的 loss 越低越好。」 training 好而 validation 差是 overfitting。
- 「反向傳播會更新參數。」 它做的是把梯度有效率地算出來。拿梯度去更新參數的是 gradient descent 那一步。
自我檢查
題目是本文自擬的。
1. 一個詞在 5000 個詞的詞典裡排第 42 個。它的 one-hot 向量幾維?有幾個 1?
5000 維,只有第 42 維是 1。
2. 用上面 XOR 網路的權重,輸入 (1, 1) 時 h1、h2、y 各是多少?
h1 = step(1 − 1 − 0.5) = step(−0.5) = 0;h2 = step(−1 + 1 − 0.5) = 0;y = step(0 + 0 − 0.5) = 0。
3. 一個神經元,x = (1, 0),w = (0, 0),b = 0,答案 ŷ = 1,square error。∂C/∂w1 和 ∂C/∂w2 各是多少?
z = 0,y = 0.5。共同的部分是 2 × (0.5 − 1) × 0.5 × 0.5 = −0.25。∂C/∂w1 = −0.25 × 1 = −0.25;∂C/∂w2 = −0.25 × 0 = 0。x2 是 0,所以 w2 這一步不會動。
3b. 承上題,η = 1,更新一次之後 w1、w2、b 各是多少?新的輸出 y 是多少?
∂C/∂b 也是 −0.25。w1 = 0 + 0.25 = 0.25,w2 = 0,b = 0.25。新的 z = 0.25 × 1 + 0 + 0.25 = 0.5,y = σ(0.5) ≈ 0.622,比原本的 0.5 更接近答案 1。
4. 訓練資料 1000 筆,batch size 是 50。一個 epoch 更新幾次?gradient descent 和 SGD 各更新幾次?
mini-batch 是 1000 ÷ 50 = 20 次。gradient descent 是 1 次,SGD 是 1000 次。
5. training 的 loss 一直很高。依老師的順序,先調什麼?
先假設是沒找到好的函數:調 learning rate、換起始點。還是下不去,才換更大的模型。
6. 在上面那個一條線的網路裡,如果把 w² 改成 0,∂C/∂w¹ 會是多少?為什麼?
是 0。δ¹ = σ'(z¹) × w² × δ²,w² 是 0 時 δ¹ 就是 0。輸出層收不到 hidden 神經元的訊號,改 w¹ 不會影響 C。
7. 同一個一條線的網路,換一組數字完整算一次:x = 1,w¹ = 1,w² = 1,答案 ŷ = 0。求 ∂C/∂w² 與 ∂C/∂w¹。
Forward:a¹ = σ(1) ≈ 0.7311;z² = 0.7311,y = σ(0.7311) ≈ 0.6750;C = y² ≈ 0.4557。Backward:δ² = y(1 − y) × 2(y − 0) ≈ 0.2194 × 1.3501 ≈ 0.2962;δ¹ = a¹(1 − a¹) × w² × δ² ≈ 0.1966 × 0.2962 ≈ 0.0582。梯度:∂C/∂w² = a¹ × δ² ≈ 0.2165,∂C/∂w¹ = x × δ¹ ≈ 0.0582。兩個都是正的,所以兩個權重都要減少,輸出才會往 0 靠近。
延伸閱讀
- CS224N 第 3 堂:矩陣微積分與反向傳播:同一套 chain rule,用計算圖與矩陣形狀的角度講,也講 gradient checking。
- CMU 11-785 Lecture 4:梯度下降與Lecture 5:反向傳播:推導更完整,也延伸到其他 optimizer。
- 這一堂的 PyTorch 實作,可以對照 ADL 的 Dev Infra 助教課,見本系列助教課篇。
上一篇:什麼是機器學習與深度學習 下一篇:詞向量、語言模型與 RNN
課程影片來源
以下影片已於 2026-10-10 對照官方課程頁與官方 YouTube 播放清單(講次編號與標題相符);不提供時間跳轉。
原始影片:ADL 2.1: How to Train a Model?(YouTube)、ADL 2.2: What is a Model?(YouTube)、ADL 2.3: What does the "Good" Function Mean?(YouTube)、ADL 2.4: How can we Pick the "Best" Function?(YouTube)、ADL 2.5: Backpropagation(YouTube)
課程與錄影入口:
查核日期:2026-10-13。
內容核對:已依字幕核對(2026-10-13):2.2、2.3、2.4、2.5 依字幕整理;2.1(4:41)沒有字幕軌,改以機器轉錄逐字稿對照,三個問題的拆法與講義第 6 頁一致。2.1、2.2 的上傳日與說明欄都是 2023/09/14,是沿用往年的錄影。overfitting 那張圖,講義是 10 次方,影片口述成十四次方,文中已註明。
更新紀錄
- 2026-10-10:標註影片狀態,核對錄影來源;2.1、2.2 是 2023/09/14 的舊錄影。
- 2026-10-13:查證歷程移出正文;系列內互相引用由篇序改為堂次。
- 2026-10-13:依影片的課堂口述重寫全文(2.2–2.5 依字幕,2.1 以機器轉錄逐字稿對照),補上 XOR 網路、單一神經元更新與反向傳播三個手算例子、常見誤解與附答案的自我檢查。
參考資料
- ADL Fall 2025 NN Basics 講義(250901_NNBasics.pdf)
- ADL Fall 2025 Backpropagation 講義(250901_Backprop.pdf)
- ADL 2.1: How to Train a Model?(YouTube)
- ADL 2.2: What is a Model?(YouTube)
- ADL 2.3: What does the "Good" Function Mean?(YouTube)
- ADL 2.4: How can we Pick the "Best" Function?(YouTube)
- ADL 2.5: Backpropagation(YouTube)
- ADL Fall 2025 課程頁
- 2025 Fall 播放清單