本文依據 CMU 10-423/623/723 Generative AI Spring 2026 版。 這是 CMU 10-423 導讀系列第 5 篇。文字單元在 HW1 結束,這一篇進入第二單元「Generative models of images」,範圍是 2026 年 1 月 28 日的 Lecture 5「Computer Vision: CNNs / Encoder-only Transformers / Vision Transformers」。
用到的官方材料:講次表、投影片與課堂手寫版(各 70 頁),以及三份 readings:Goodfellow、Bengio 與 Courville《Deep Learning》的第 9.1–9.3 節、BERT 與 ViT。這門課的存取等級是 A3(定義見全球 AI/CS 課程地圖),錄影在需要 CMU 登入的 Panopto,本篇依投影片撰寫。
為什麼生成式 AI 課要先講「看懂圖」
這一講的三種模型都不生成圖片,但後面的單元會一直用到它們:
- HW2 的書面題第 2 大題是 CNN(8 分),第 3 大題是 encoder-only Transformer(4 分)。CNN 那題最後問的是 U-Net 的 skip connection。
- HW2 程式題要實作的 DDPM,起始碼裡的
unet.py就是一個由nn.Conv2d堆起來的 U-Net。 - ViT 的「把圖片切成 token」是後面 diffusion transformer 與視覺語言模型的基礎。
所以這一講是在替整個影像單元補工具。
投影片開頭先回顧上一講:RoPE 旋轉向量的每個二維切片;sliding window 改注意力遮罩,把計算從平方時間降到線性時間;GQA 重複使用 key/value head 來減少計算與記憶體。細節見 L4 導讀。
CNN:把卷積核變成要學的參數
卷積、padding、stride
投影片把 CNN 放回「機器學習食譜」:給資料、選決策函數與損失、定目標、用 SGD 訓練。CNN 只是換了一種決策函數。
它的關鍵想法寫在第 11 頁:把卷積矩陣當成參數去學。 傳統影像處理會手動挑一個卷積核(例如邊緣偵測),CNN 則讓反向傳播決定卷積核裡的數字。
接下來幾頁是基本操作:
- 2D 卷積:拿一個小權重矩陣(kernel)在圖上滑動,每個位置算內積。不同的卷積核抽出不同的低階特徵,而要改變的只有權重。
- Padding:想讓輸出和輸入一樣大,就在輸入周圍補零。
- Stride 與降採樣:stride 決定每步移動幾個像素;用平均做降採樣,其實是權重固定為均勻分佈的卷積特例。
- 卷積核大小:小的卷積核只看到一小塊、算得快;大的看到更多,但比較慢。
CNN 的層與訓練
投影片接著用模組的 forward/backward 介面逐一定義各層:ReLU、softmax、全連接層(先把 3D 輸入攤平)、卷積層與 max-pooling。
彩色圖片每個像素有 RGB 三個值,所以卷積核也要是三維的。投影片的例子是 3×64×64 的輸入配上 3×5×5 的卷積核,加 padding 後輸出 1×64×64。訓練方式和前幾講一樣,一個 conv → max-pool → conv → ReLU → linear → softmax 的小網路,照樣用 SGD 加 autodiff 算梯度。
經典架構與神經科學起源
- LeNet-5:投影片的第一個架構範例。
- AlexNet(Krizhevsky、Sutskever 與 Hinton,2012):五個卷積層(含 max-pooling)加三個全連接層,最後是 1000 類 softmax,在 ImageNet LSVRC-2012 拿到 15.3% 錯誤率。
- ResNet:投影片借用 Kaiming He 的「Revolution of Depth」圖,展示網路層數一路加深。
投影片也交代 CNN 的靈感來源:1960 年代 Hubel 與 Wiesel 在貓的視覺皮質上發現,某些神經元只在看到特定方向的長條時放電,這種選擇性叫 receptive field。CNN 的 receptive field 就是例如 3×3 的一塊像素。
《Deep Learning》第 9.2 節把卷積的好處歸納成三個概念:sparse interactions、parameter sharing、equivariant representations。第 9.3 節則說明一個典型的卷積層由三個階段組成,池化是其中之一。
電腦視覺的八種任務
投影片列了八種任務:影像分類、分類加定位、人體姿態估計、語意分割、物件偵測、實例分割、影像描述(image captioning)與影像生成。它特別指出,其中大多是結構化預測問題,不只是分類。
Encoder-only Transformer:拿掉因果遮罩會怎樣
從 decoder-only 開始
投影片先回顧 decoder-only Transformer(也就是 Transformer 語言模型)與因果注意力。接著問:這麼多箭頭,我們一定都需要嗎?答案是不一定,但有時候需要。
把因果遮罩拿掉後,每個 token 都能看到左右兩邊的所有 token。投影片的結論是:這樣一來,它就不是自回歸語言模型了。
每一層 encoder-only Transformer 有四個子層:非因果注意力、前饋網路、layer normalization、residual connection。
BERT 式的預訓練與微調
既然不能預測下一個字,要怎麼訓練?投影片說 BERT 推廣了這種架構與它的預訓練方式:
- Masked LM 預訓練:不從前面的字預測下一個字,而是遮掉一個或幾個字,用剩下的字預測被遮住的字。投影片以「[CLS] [MASK] cat [MASK]」為例,目標是 log p(w₁, w₃ | w₂)。
- 監督式微調:用特殊 token [CLS] 的輸出向量預測類別標籤,例如「The cat sat」標 1、「A dog barks」標 0。
投影片的評語是:它雖然不是生成式語言模型,但可以當非常有效的判別器(discriminator)。「判別器」這個詞下一講 GAN 就會用到。
BERT 論文摘要的說法是:BERT 在所有層同時以左右文脈為條件,預訓練深層雙向表徵,之後只要加一個輸出層微調,就能用在問答、語言推論等任務上。
ViT:把圖片切成一格一格的 token
模型與訓練
投影片第 108 頁的描述很精簡:
- 模型幾乎和 BERT 一樣。
- 輸入不是字,而是 P×P 像素的影像區塊,P ∈ {14, 16, 32},互不重疊。
- 每個區塊線性嵌入成 1024 維的向量。
- 位置編碼用 1D。
- 預訓練是在大型監督資料集上做影像分類(例如 ImageNet-21K、JFT-300M),設定和 CNN 相同。
- 微調時在小資料集(例如 CIFAR-100)上學一個新的分類頭。
1D 位置編碼怎麼學到 2D 位置
投影片留了一題:ViT 只用 1D 位置編碼,怎麼學到 2D 的位置資訊?公開的手寫版沒有填答案。
ViT 論文本身有處理這一點。論文說他們用標準的可學習 1D 位置編碼,因為更進階的 2D-aware 位置編碼沒有帶來明顯增益。論文的 Figure 7 顯示,模型學到的位置編碼會反映圖片內的距離:越近的區塊,位置編碼越相似,而且同一列、同一欄的區塊也彼此相似。論文認為,正因為位置編碼自己學會了 2D 拓樸,手工設計的 2D 版本才沒有帶來改善。
為什麼 Transformer 晚了四年才進電腦視覺
投影片並排兩條時間線:Transformer 在 2017 年出現、馬上統治 NLP,ViT 卻到 2021 年才出現。為什麼隔了這麼久?
投影片用 ViT 論文的 Figure 3 回答。這張圖比較兩個模型家族,BiT(以 ResNet 為基礎的大型 CNN)和不同大小的 ViT,看它們在 ImageNet、ImageNet-21k、JFT-300M 上預訓練後轉移到 ImageNet 的準確率。圖說寫著:在小資料集上預訓練時,大型 ViT 的表現不如 BiT ResNet;資料集變大後,ViT 才勝出,而且大型 ViT 變體隨資料增加會超越小型的。
這正好回扣上一講前半的伏筆:ViT 的成功很大程度來自更大的預訓練資料集。投影片最後補充,最初的 ViT 模型比同期的 LLM 小很多,到 2023 年 ViT 已經擴展到 220 億參數。
講座最後一頁談注意力的神經科學淵源,引用 1982 年的 Hopfield 網路。
課程怎麼驗收這一講
- HW2 書面題:第 2 大題 CNN(8 分)考 padding 的推導與 U-Net;第 3 大題 encoder-only Transformer(4 分)比較 encoder-only 與 decoder-only 能表達的序列分佈。見 HW2 導讀。
- 練習考卷:Spring 2026 practice exam 第 5 大題「Vision Transformers」占 14 分(全卷 167 分)。
怎麼做:今晚拿一張 224×224 的彩色圖,照投影片的設定算一次:P = 16 時會切出幾個區塊、每個區塊攤平後是幾維、線性嵌入成 1024 維需要多大的權重矩陣。算完再和 3×5×5 的卷積核比參數量,你會直接感受到 ViT 為什麼比 CNN 更依賴資料。
這一篇可以確認與不能確認的
可以確認:講次表日期與 readings、投影片與手寫版內容、ViT 與 BERT 論文中被引用的段落、《Deep Learning》第 9 章的節標題,以及 hw2.pdf 的配分與題目主題。不能確認:課堂上對兩個開放問題(ViT 的 2D 位置、Transformer 為什麼晚進 CV)的口頭說明,錄影需要 CMU 登入。
延伸閱讀:站上 Stanford CS231N 導讀用整門課講電腦視覺,其中 CNN 與影像分類和 attention、Transformer 與 ViT 兩篇可以和本篇對照;先修課 CMU 11-785 導讀也有完整的 CNN 單元。
系列導覽:上一篇 HW1:在 minGPT 加上 RoPE 與 GQA|下一篇 L6:GAN 與機率圖模型|系列總覽
參考資料
- CMU 10-423/623/723 Generative AI(Spring 2026)課程首頁
- 課程講次表(Lecture 5 與 readings)
- Lecture 5 投影片:CNNs / Encoder-only Transformers / Vision Transformers
- Lecture 5 投影片(課堂手寫版)
- Goodfellow, Bengio & Courville 2016:Deep Learning, Chapter 9 Convolutional Networks
- Devlin et al. 2018:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(NAACL)
- Dosovitskiy et al. 2021:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale(ICLR)
- HW2 handout(hw2.zip)
- Spring 2026 Practice Exam
Loading...