Skip to content

神經網路作為通用近似器|CMU 11-785 第 2 堂

2026年8月22日1 分鐘
TL;DRSpring 2026 Lecture 2 聚焦布林函數、網路深度與寬度對表示能力的影響(含多輸入 XOR 的例子),並在結尾銜接到下一講的訓練問題;本文依官方 slides 與錄影重建主線,並提供不依賴課內 grader 的小型自我檢查。

🌏 English version

影片狀態:已附影片;播放未逐支確認。 影片來源與說明

本篇對應 CMU 11-785 Spring 2026 的 Lecture 2: Neural Nets as Universal Approximators。主要證據是官方投影片與官方 YouTube 錄影;下文只整理兩者能支持的內容,不補寫課堂問答或未公開的講者說法。

這一講處理什麼

這講的中心是布林函數、網路深度與寬度對表示能力的影響(含多輸入 XOR 的例子),並在結尾銜接到下一講的訓練問題。讀的時候要把「模型或演算法的定義」、「它最佳化的目標」與「實際計算怎麼流動」分開記。前者說明允許哪些函數,第二項說明訓練偏好什麼結果,最後一項才決定記憶體、速度與數值穩定性。

課程把這個主題放在完整序列的第 2 講,因此它既承接前面的表示與訓練語言,也替後續模型建立共同元件。不要只抄名詞;每遇到一個公式,就標出輸入、輸出、可學參數與沿哪條路徑傳遞梯度。

概念主線

先用 shape 檢查理解:把每個張量的 batch 維度、特徵維度與序列/空間維度寫在公式旁。接著問運算是否共享參數、是否需要正規化,以及訓練和推論時有沒有不同。這三個問題通常能抓出「公式看懂、程式仍寫錯」的落差。

再把局部運算放回整體目標。深度學習模型不是靠單一 layer 成功;資料、表示、loss、optimizer 與評估方式共同決定行為。若某個結果改變,先固定其他條件再找原因,避免一次同時換模型、資料增強與學習率。

自己重做一次

今晚的最小練習是:用 ReLU 組出一個一維分段線性函數並標出折點。先用極小輸入手算一輪,再以 NumPy 或 PyTorch 重做,最後比較兩者。若結果不同,先檢查 shape、索引與 reduction,之後才懷疑理論。

自我檢查不以「程式能跑」為標準。至少記錄一個預期不變量,例如機率和為一、loss 應下降、輸出 shape 固定,或數值梯度與解析梯度接近。這是沒有課內 hidden grader 時仍能保留的回饋迴路。

與正式作業的邊界

Spring 2026 assignment table只公開 HW1–HW4 的題名、期限與平台連結;完整 handout、starter、資料、Autolab 測試與 Piazza 說明並未形成匿名可得的同版本套件。本篇練習是依公開講授材料設計的縮小版,不是正式作業重製,也不提供答案。

需要更多操作練習時,可從官方 recitation/bootcamp table選同主題 notebook。那些公開資源是補充練習,不等於正式 HW starter。

讀完後

闔上 slides,用一張紙寫下這講的輸入、輸出、目標函數與一個失敗模式。能不看筆記說明這四項,才往下一講;否則回到剛才的小例子,縮小輸入直到每一步都能人工核對。

課程影片來源

影片連結已與本文採用版本的官方課程頁核對。

YouTube:Lecture 2 official YouTube recording

原始影片:Lecture 2 official YouTube recording

課程與錄影入口:

查核日期:2026-10-10。

內容核對:已依字幕核對(2026-10-10):影片自動字幕全程約 84 分鐘;抽查開頭、中段、結尾並搜尋布林函數、depth、width、XOR、activation。字幕確認本講談表示能力與深度/寬度,但沒有談「表示能力不等於可訓練性」這個論點(只在結尾說明下一講才處理如何訓練),已改寫文章對影片主題的描述;英文版原本寫成 Lecture 22 的 VAE(latent variable、ELBO),已一併改回本講。

更新紀錄

  • 2026-10-10:標註影片狀態,核對錄影來源與取得方式。
  • 2026-10-10:重查影片狀態。即時比對官方講課表,嵌入影片與該講官方 YouTube 連結一致;播放未逐支確認。
  • 2026-10-10:依字幕核對影片內容。改寫對影片主題的描述(影片未談「表示能力不等於可訓練性」);修正英文版誤寫為 Lecture 22 VAE 主題的 tldr、導讀與練習。

參考資料