L13|反向傳播與多層感知器(MLP)(Backpropagation & MLP)

零基礎提示

  • 先讀 數學補充:§2 斜率與梯度
  • Part 2 是大學程度:中三同學先求看懂概念,不用每行程式都會
  • 字幕:離線網站選「中英」(電腦翻譯,大意正確)
  • 看不懂的詞查 白話小辭典

從零實作簡單的 MLP,用連鎖律理解反向傳播;學會用 PyTorch 算導數、寫 ReLU 和線性層類別、log-sum-exp 技巧,最後寫出訓練迴圈。 (Build a simple MLP from scratch, understand backpropagation through the chain rule, compute derivatives with PyTorch, write ReLU and Linear classes, use the log-sum-exp trick, and write a training loop.)

項目內容
所屬Part 2:Deep Learning Foundations to Stable Diffusion
影片YouTube
對應書本章節無對應章節(Part 2 以 notebook 為主)
原始頁面Lessons/lesson13
難度(F3 視角)★★★★★ 大學程度(F3 只求理解概念)

影片

本課重點

  1. MLP 架構:輸入 → 線性層 → ReLU → 線性層 → 輸出。先從零寫出前向傳播。
  2. 連鎖律與反向傳播:複合函數的導數等於各層導數相乘。反向傳播就是從損失往回,一層層套用連鎖律,算出每個參數的梯度。用 SymPy 驗證導數。
  3. 除錯工具:用 Python 除錯器 pdb 逐步檢查中間值。
  4. 把每層寫成類別:ReLU 和 Linear 各自有 forward 和 backward,讓程式結構清楚,也為之後的 nn.Module 鋪路。
  5. 浮點數與 log-sum-exp:e 的大次方會溢位。log-sum-exp 技巧先減掉最大值再算,數值穩定,用在 log_softmax 和交叉熵。最後寫出完整訓練迴圈。

關鍵概念

英文術語中文一句話解釋
MLP多層感知器由多個全連接層和激活函數組成的網路
Chain rule連鎖律(f∘g)' = f'(g(x)) × g'(x)
Backpropagation反向傳播從損失往回套連鎖律,算出所有梯度
pdbPython 除錯器可以逐行執行並檢查變數
Log-sum-exp tricklog-sum-exp 技巧先減最大值避免指數溢位
log_softmax對數 softmaxsoftmax 再取對數,用於交叉熵

認識關聯圖與重點圖

L13_關聯圖_202611041526

練習題

  1. y = (3x + 1)²。用連鎖律算 x = 1 時的 dy/dx。
  2. 用自己的話說明「反向傳播」為什麼要從損失往回算。
  3. 在 Python 計算 math.exp(1000) 會怎樣?log-sum-exp 技巧怎麼避免這個問題?

資源連結

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

相關筆記

Built with LogoFlowershow