GAN:生成器與判別器各自在學甚麼|CMU 10-423 第 6 堂
分類器學「這張圖是哪一類」,GAN 的生成器學「怎麼從隨機輸入產生像資料的新樣本」。
分類器學「這張圖是哪一類」,GAN 的生成器學「怎麼從隨機輸入產生像資料的新樣本」。
CS231N Spring 2026 的生成模型第一講,先把「判別模型學 p(y|x)、生成模型學 p(x)」講清楚:所有可能的圖片要搶同一份機率質量,所以生成模型能拒絕不合理的輸入。接著用一張分類圖把生成模型分成「算得出 p(x)」和「只能取樣」兩群,再依序講兩個算得出(或近似算得出)的:自迴歸模型用鏈鎖律把 p(x) 拆成逐步預測,太慢是它在原始像素上的死穴;VAE 算不出 p(x),改成最大化它的下界 ELBO,重建項和先驗項會互相拉扯。課表把 GAN 列在這一講,但 2026 與 2025 的投影片都把 GAN 放到下一講開頭,本文一併整理,讓三種範式在同一篇對照。
第 16 講談 ViT:高解析度下 attention 成本隨解析度平方成長,window attention(Swin)把計算限制在局部視窗,EfficientViT 用 ReLU linear attention 把複雜度降到線性再補回局部與多尺度能力,SparseViT 剪掉不重要的視窗;自監督(對比學習、CLIP、MAE)解決 ViT 需要大量標註的問題;最後 HART 用離散 token 加殘差 diffusion,比 diffusion 模型高出數倍吞吐量。第 17 講針對三種冗餘:GAN 的 2D 空間冗餘(GAN Compression、AnyCost GAN、DiffAugment)、影片的時間冗餘(TSM 零 FLOPs 的時間建模)、點雲的 3D 稀疏(PVCNN、SPVCNN、BEVFusion)。Fall 2026 排程已拿掉第 17 講。
同一句「一個可愛的女孩」有無數種正確答案,硬把它當函數訓練,只會學到所有答案的平均。GAN 的解法是改訓練兩個網路:生成器 G 從隨機 latent 向量造圖,鑑別器 D 判真假,兩邊互相對抗。L03 從 2014 年的原始論文一路講到 WGAN、Progressive GAN、StyleGAN 的 512 維 latent 與 AdaIN,再到 Pix2Pix、CycleGAN;後半的附錄把 cross entropy 與 KL divergence 講成「驚訝指數」。第三週作業二選一:實際跑一個 GAN,或用自己的話解釋 CE 與 KL。
HW5 的 Problem 1–2 都是「把學習變成分類題」:SimCLR 的 NT-Xent 損失是在 2N−1 個候選裡找出同一張圖的另一個增強版本,GAN 的判別器是在分真假。作業要你推出這兩件事的數學(交叉熵等價、最佳判別器與 JS divergence),再在 FashionMNIST 與 MNIST 上把兩套訓練迴圈寫出來。
生成模型本質是在學資料的分佈 p(x)。密度模型直接建模機率,能量模型用一個未歸一化勢能 + 採樣器,GAN 讓判別器逼出逼真樣本,自回歸一步步預測下一個 token,擴散則用『逐步加噪再學去噪』繞開棘手的最大似然。
研究者一開始以為神經網路好騙是因為非線性,結果錯了——Goodfellow 2014 那篇論文主張主因是它們的線性本質,而高維度讓每個微小擾動複利累積。後半場講生成模型:GAN 的三個病,以及 diffusion 為什麼靠「加噪再學會去噪」繞開了其中兩個。