Skip to content

台大陳縕儂 ADL 2025 Fall 導讀:超越監督學習與多模態——Auto-Encoder、VAE、Dual Learning、對比學習到 CLIP

2026年9月30日1 分鐘
TL;DR資料很多不代表標註很多。ADL 最後一講問:沒有標註時,怎麼學到好的表示?答案是找出背後控制資料的潛在因子。Auto-encoder 把輸入壓成一段短碼再還原;denoising 版本先加雜訊或遮掉 15% 的 token,BERT 的 masked LM 就是這個想法。VAE 規定短碼要服從一個分布,於是能從分布抽樣來生成。Dual learning 讓翻譯與反向翻譯、理解與生成這類對稱任務互相當對方的回饋。自監督學習分兩派:自我預測(遮一部分猜回來)與對比學習(相似的拉近、不相似的推遠)。CLIP 用 4 億組圖文對做對比學習,讓影像分類可以 zero-shot;DALL·E 2 再把 CLIP 的表示拿來生成圖。Fall 2025 只有影片,投影片用 Fall 2024 版補位。

🌏 English version

本文依據台大陳縕儂《深度學習之應用》(ADL)Fall 2025(114-1,2025/09/01–12/15)播放清單上的 L14 影片,投影片則用 Fall 2024 版補位。 這是台大陳縕儂 深度學習之應用 2025 Fall 導讀系列第 17 篇,也是講課篇的最後一篇。前面十六篇幾乎都假設有標註資料,或至少有「下一個字」可以預測;這一篇換個方向問:沒有標註時,怎麼學到好的表示?語言模型的做法又怎麼延伸到影像?

用到的官方材料:

#影片(2025)中文副標長度2024 講義對應頁
14.1Beyond Supervised Learning沒有標註時的實用小技巧21:192–11
14.2Auto-Encoder學習一個好的資料表示方法14:4012–30
14.3Variational Auto-Encoder (VAE)控制特徵的分布以生成用20:2531–43
14.4Dual Learning兩個對稱任務可以互相幫助12:3944–55
14.5Self-Supervised Learning自我預測+對比學習20:5256–70
14.6CLIP & DALL·E 2從語言能力進階到各種模態13:2471–80
14.7Multimodality像人類一樣能看能聽能說話19:52找不到

「對應頁」是本文依主題比對的結果,影片實際放的投影片是不是這幾頁,沒有辦法從公開資訊確認。

為什麼沒標註的資料也有用(第 2–11 頁)

第 2 頁開宗明義:大資料不等於大量標註資料。 有標註用監督學習,有環境能給 reward 用強化學習,都沒有就用非監督學習。講義接著問:沒標註、甚至和任務無關的資料,為什麼能幫上忙?答案是找出控制觀察資料的潛在因子(latent factors)。

第 3–8 頁舉了三個例子:手寫數字由筆畫組成,筆畫就是潛在因子;文件背後有主題;推薦系統裡,使用者與作品背後各有一組看不見的特質,講義用動漫角色屬性和劇種示意。

第 9–11 頁補上術語:判別式模型算 P(Y|X),生成式模型算 P(X) 或 P(X, Y);變數分成觀察到的與潛在的、確定的與隨機的。潛在變數可以是連續向量(auto-encoder、VAE)、離散向量(topic model),或結構(HMM、樹狀模型)。這一講只走連續向量這條。

Auto-Encoder:壓縮再還原(第 12–30 頁)

一張 28×28 的手寫數字圖有 784 維,但不是每張 784 維的圖都是數字(第 14 頁)。所以可以用更短的碼來表示。Auto-encoder 由 encoder 與 decoder 組成,encoder 把輸入壓成中間的短碼,decoder 再把短碼還原,訓練目標是讓還原結果和輸入越接近越好(第 15 頁,最小化 ‖x − y‖²)。中間那一層(bottleneck)的輸出就是學到的表示。

幾個變化:

  • Denoising auto-encoder(第 16 頁):先在輸入加雜訊,再要求還原乾淨的原圖,讓表示更穩健。
  • Deep auto-encoder(第 17–19 頁):疊很多層,例如 784 → 1000 → 500 → 250 → 30 再對稱展開。第 18 頁把它和 PCA 壓到 30 維的還原結果並排比較。
  • 應用(第 20–24 頁):用 256 維碼做相似圖片檢索,比直接比像素距離找得更準;文字檢索也一樣,把詞袋向量壓成低維碼。
  • 遮罩就是一種雜訊(第 25 頁):隨機遮掉 15% 的 token 再還原,講義在旁邊直接標了 masked LM。這就是第 6 篇 BERT 的預訓練目標,從這裡回頭看,BERT 是一個 denoising auto-encoder。
  • 逐層預訓練(第 26–29 頁):早年先一層一層用 auto-encoder 初始化權重,最後再用反向傳播整體微調。
  • MADE(第 30 頁):Germain et al., 2015 的 masked auto-encoder,依指定順序還原,用來估計分布。後面 dual learning 會再用到它。

VAE:讓短碼服從分布,才能生成(第 31–43 頁)

一般 auto-encoder 的短碼可以散落在任何地方,隨便挑一個碼丟進 decoder,不一定生得出像樣的東西(第 32 頁)。**VAE(Variational Auto-Encoder)**的做法是限制短碼的分布:規定潛在變數從高斯分布產生,生成時就從這個先驗分布抽樣(第 33–34 頁)。講義第 34 頁的一句話摘要是「壓縮後的表示要服從一個分布」。

第 37–39 頁把 VAE 拆成兩個任務:decoder 學「從碼生成資料」,encoder 學「潛在因子的分布」。損失函數因此也分兩項:還原損失,加上讓 encoder 輸出接近先驗的 KL 正則項。所以講義也把它叫做「正則化的 auto-encoder」。

第 41–42 頁把 AE 與 VAE 並排比較:影像的還原結果,以及文字在兩個嵌入之間做內插時生出的句子。第 43 頁是實務提醒:posterior collapse。KL 項比較好學,模型可能乾脆讓 decoder 自己扛、忽略潛在變數。解法有 KL annealing(KL 項的權重從小慢慢加大)與 KL thresholding。

VAE 的損失在算什麼(講義第 35–40 頁的精簡版)

目標是最大化單一資料點 x 的邊際似然 p(x) = ∫ p(x|z) p(z) dz。這個積分直接算不動,所以引入 encoder q(z|x) 去近似真正的後驗,改成最大化一個下界:

  • 第一項:從 q(z|x) 抽 z,看 decoder p(x|z) 能多好地還原 x,這是還原損失。
  • 第二項:q(z|x) 和先驗 p(z)(標準高斯)之間的 KL divergence,這是正則項。

原始推導見 Kingma & Welling, Auto-Encoding Variational Bayes。

怎麼做:用 PyTorch 在 MNIST 上各訓練一個 2 維碼的 AE 和 VAE,把測試集的碼畫成散佈圖、依數字上色。VAE 的點會擠在原點附近一團,AE 的點會散得比較開。再從兩邊各抽幾個碼丟進 decoder,就能親眼看到第 32–33 頁講的差別。

Dual Learning:對稱任務互相幫忙(第 44–55 頁)

第 44 頁註明這段投影片取自 ACML 2018 tutorial。第 45 頁列出很多成對的任務:英翻中與中翻英、語音辨識與語音合成、看圖說話與依文字生圖、語言理解與語言生成、問答與出題。一個是 primal,另一個是 dual。

  • Dual unsupervised learning(第 46 頁):英文句子翻成中文,再翻回英文,看還原得像不像,把這個差距當成回饋訊號,用強化學習等方式訓練。不需要配對的標註資料。
  • Dual supervised learning(第 49–50 頁):Xia et al., 2017 為機器翻譯提出。兩個方向的模型理論上要滿足 P(x|y)P(y) = P(y|x)P(x),所以在各自的監督損失之外加一項「對偶性」懲罰,逼兩個模型遵守這個機率約束。
  • 套到 NLU/NLG(第 51–54 頁):陳縕儂實驗室把它用在「句子 ↔ 語意框架」,例如把「McDonald's is a cheap restaurant nearby the station」解析成 RESTAURANT、PRICE、LOCATION 三個欄位,反向就是從欄位寫回句子(Su et al., ACL 2019)。資料是 E2E NLG 的 5 萬筆餐廳領域資料,NLU 用 F1、NLG 用 BLEU 與 ROUGE 評估。
  • Joint dual learning(第 47–48 頁):同一團隊的後續工作(Su et al., ACL 2020),讓 NLU、NLG 串成一個閉迴路,目標是完整還原輸入。回饋訊號分兩類:明確的(還原似然、BLEU/ROUGE/F1)與隱含的(用語言模型估句子的分布、用前面提過的 MADE 估語意框架的分布)。

第 55 頁把 dual learning 跟相近的概念對照:半監督只有一個任務;co-training 靠不同特徵集;multi-task 共用表示;transfer learning 用輔助任務幫目標任務。Dual learning 的特點是多個任務同時、互相提升,而且只要形成閉迴路就好,不必共用表示。

這一段和上一篇的任務型對話直接相連:NLU 就是對話系統裡的 LU,NLG 就是最後一個模組。

自監督學習:自我預測與對比學習(第 56–70 頁)

第 56 頁註明這段投影片取自 NeurIPS 2021 tutorial。第 57 頁的定義:自監督學習是用沒標註的資料自己造出監督任務,動機是標註貴、標註少,而好的表示能轉移到各種下游任務。

第 58 頁把它分成兩派:

  • 自我預測(self-prediction):給一筆資料,遮掉一部分,用其他部分猜回來。這是「樣本內」的預測。第 59 頁引 Yann LeCun 的示意圖:用過去猜未來、用現在猜過去、用下半部猜上半部、用看得到的猜被擋住的。語言模型預測下一個字、BERT 猜被遮的字,都屬於這一派。
  • 對比學習(contrastive learning):給多筆資料,預測它們之間的關係。這是「樣本間」的預測。

對比學習的核心想法(第 61 頁):學一個嵌入空間,讓相似的樣本對靠近、不相似的推遠。講義分三類:

  1. Inter-sample classification(第 62–64 頁):給一個錨點,加上正樣本與負樣本,要模型認出哪個是相似的。正樣本可以是原始輸入的變形版本,或同一個目標的不同視角。損失函數從 triplet loss(Schroff et al., 2015)推廣到能一次比較多個負樣本的 N-pair loss。
  2. Feature clustering(第 65 頁):用學到的特徵分群,把群當成偽標籤。
  3. Multiview coding(第 66 頁):對同一筆輸入的不同「視角」套 InfoNCE 目標,視角可以來自資料增強,也可以來自不同模態。講義標註這是對比學習的主流做法。

NLP 的例子(第 67–70 頁):SimCSE(Gao et al., 2021) 的非監督版只靠 dropout 的隨機性,把同一句話編碼兩次當成正樣本對;監督版再用標註資料調整。SpokenCSE(Chang & Chen, INTERSPEECH 2022)把乾淨文字與語音辨識出錯的文字當成正樣本對,讓語言理解對辨識錯誤更穩健。

CLIP 與 DALL·E 2:從語言走到影像(第 71–80 頁)

第 71 頁對比兩個領域:文字有自監督(語言模型)、訓練資料大、能 zero-shot 轉移;影像主要靠監督學習(ImageNet),資料沒那麼大。講義的想法是:把視覺任務接上語言,換取更好的轉移能力。

CLIP(Radford et al., 2021,第 72–75 頁):

  • 自建 WebImageText 資料集,從網路收集 4 億組(圖片,文字)對。
  • 圖片 encoder 與文字 encoder 一起訓練,在一個 batch 裡讓配對的圖文靠近、不配對的推遠。講義標出 batch size 是 32,768,也就是每一對都有三萬多個負樣本。這正是上一節的 multiview coding,兩個「視角」剛好是兩種模態。
  • Zero-shot 影像分類(第 74 頁):把 N 個類別名稱各寫成一句文字、編碼成向量,看圖片向量和哪一句最接近,就判成那一類。不用為新類別重新訓練。

DALL·E 2(Ramesh et al., 2022,第 76–80 頁):反過來用 CLIP 生成圖片。講義把它拆成兩個元件:

  • Prior:給一段描述,產生對應的 CLIP 圖片嵌入。講義列出自回歸 prior 與 diffusion prior 兩種。
  • Decoder:從圖片嵌入生成圖片,講義標註用的是 GLIDE。

推論時就是「文字 → prior → CLIP 圖片嵌入 → decoder → 圖片」。擴散模型的原理講義沒有展開,本文也不補,見延伸閱讀。

怎麼做:用 Hugging Face 上的開源 CLIP 模型,拿自己手機裡十張照片,寫五個類別描述(例如「一張貓的照片」「一張食物的照片」),跑一次 zero-shot 分類。接著把描述改寫得更具體或更含糊,看準確率怎麼變。這能直接感受第 74 頁「類別就是一句文字」的意思。

14.7 Multimodality:只列名稱

14.7 的副標是「像人類一樣能看能聽能說話」,長 19:52。2024 講義裡找不到對應頁,Fall 2025 又沒有公開投影片,本文只能寫到這裡。多模態 LLM 的完整整理請看延伸閱讀的 CS224N 與 CS231n。

本文能確認與不能確認的

能確認:七支影片的標題、中文副標、長度與說明欄(YouTube oEmbed 與 yt-dlp 核對);Fall 2024 BeyondSL 講義 82 頁的標題與列點;上面引用論文的 arXiv 標題。

不能確認:Fall 2025 影片實際放的投影片是不是這份 2024 講義,或改了多少;14.1–14.3 註明投影片借自李宏毅老師,這三支可能至少部分改用了別的投影片。14.7 的內容。本文沒有逐字聽寫影片。講義裡的結果圖表只轉述比較對象,數字請以原論文為準。「怎麼做」裡的 AE/VAE 散佈圖現象是一般經驗,不是講義內容。

延伸閱讀

下一篇是講課以外的支線:助教課:從 PyTorch 到 LLM 部署。

系列導覽:系列總覽|上一篇 對話系統與工具使用|下一篇 助教課:從 PyTorch 到 LLM 部署

參考資料