L03|神經網路基礎:梯度下降與 ReLU(Neural net foundations)

零基礎提示

  • 先讀 數學補充:§1 函數、§2 斜率與梯度、§3 損失函數、§7 矩陣乘法
  • 看不懂的詞查 白話小辭典
  • 字幕:離線網站有 YouTube 中文字幕,選「中英」
Neural net foundations

深度學習的數學基礎:用隨機梯度下降(SGD)調整參數,以及「線性函數加上 ReLU」疊起來能逼近任何形狀。 (The maths behind deep learning: stochastic gradient descent, and how linear functions plus ReLU can fit any shape.)

項目內容
所屬Part 1:Practical Deep Learning
影片YouTube
對應書本章節第 4 章 MNIST Basics
原始頁面Lessons/lesson3
難度(F3 視角)★★★☆☆ 中等

影片

本課重點

  1. 怎麼上一堂 fast.ai 的課:邊看影片邊記筆記 → 跑 notebook 並實驗 → 不看筆記重寫一次 → 換一個資料集再做一次。最好找讀書會一起學。
  2. 選更好的模型:Jeremy 的「Which image models are best?」比較了大量 timm 模型的準確度、速度和記憶體。先用小而快的模型迭代,再試更大的。模型檔裡存的是架構加參數。
  3. 擬合函數:用一個有三個參數 a、b、c 的二次函數去貼合一堆資料點。先用滑桿手動調,再發現需要一個客觀分數:均方誤差(MSE)。
  4. 梯度下降:PyTorch 能自動算出每個參數的梯度(斜率),告訴你參數往哪邊調、損失會下降。新參數 = 舊參數 − 學習率 × 梯度,重複執行就是梯度下降。
  5. 學習率:步伐太大會跳過最低點甚至發散,太小則要走很久。用一個小數字乘上梯度,慢慢往谷底走。
  6. ReLU 與無限彈性:ReLU 把負數變成 0、正數不變。把很多條 ReLU 加起來,可以做出任意彎曲的函數,這就是神經網路的威力。矩陣乘法讓 GPU 能一次算幾百萬個。
  7. 用試算表做鐵達尼號模型:在 Excel 裡把乘客資料轉成數字(虛擬變數、Fare 取 log、正規化),用矩陣乘法做線性迴歸,再把兩個 ReLU 結果相加變成神經網路,用 Solver 做梯度下降。

關鍵概念

英文術語中文一句話解釋
Gradient梯度某個參數變大一點時,損失會變化多少;就是斜率
Gradient descent (SGD)(隨機)梯度下降沿著讓損失下降的方向,小步更新參數的方法
Learning rate學習率每次更新參數的步伐大小
MSE均方誤差預測值與真實值差距的平方平均
ReLU線性整流函數max(0, x):負數變 0,正數照舊
Matrix multiplication矩陣乘法一次把很多組「數字×權重再相加」算完的方法
Normalization正規化把各欄數值調到相近範圍,避免大數字主導
Dummy variable虛擬變數把類別欄位(如性別)轉成 0/1 欄位
timmPyTorch 影像模型庫收集了數百種預訓練影像模型的函式庫

認識關聯圖與重點圖

L03_關聯圖_202611041526

迷你範例:梯度下降一步

# 損失 L(w) = w**2,梯度 dL/dw = 2*w
w, lr = 3.0, 0.1
w = w - lr * (2 * w)   # 3 - 0.1*6 = 2.4

(One step of gradient descent: w moves from 3.0 to 2.4.)

練習題

  1. 損失函數 L(w) = w²,目前 w = 3,學習率 0.1。算出梯度、更新一次後的 w,再更新第二次的 w。
  2. ReLU(x) = max(0, x)。算出 ReLU(−2)、ReLU(0)、ReLU(3)。為什麼把很多 ReLU 加起來可以做出彎曲的形狀?
  3. 學習率太大和太小各會發生什麼事?
  4. 模型預測 [2, 4],正確答案 [3, 3]。算出 MSE。
  5. 鐵達尼號資料中,Fare(票價)從 0 到 500 都有,Age 大約 0 到 80。為什麼要對 Fare 取 log 並正規化?

資源連結

英文延伸資源(零基礎可以先略過,點開看)

相關筆記

Built with LogoFlowershow