一種模型架構,其中兩個神經網絡相互競爭:生成器產生假資料,而判別器試圖分辨真假。透過這種對抗訓練,生成器會變得更擅長產生逼真的輸出。從2014年至約2022年主導影像生成技術。
GAN 的設定就是一場直接從博弈論搬出來的極小極大遊戲。生成器接收隨機噪音 (一個潛在向量,通常從高斯分佈中抽樣),並把它映射到一個資料樣本 — 通常是一張圖像。判別器同時接收訓練集中的真實樣本與生成器產生的假樣本,並對每個樣本輸出它是真實的機率。生成器被訓練來最大化判別器的錯誤,而判別器被訓練來最小化它。理論上,這會收斂到一個納什均衡,在這個均衡中生成器產生的輸出與真實資料無法區分,而判別器只能 50/50 地猜。實際上,要走到那裡又是完全另一回事了。
訓練不穩定多年來都是 GAN 最關鍵的挑戰。模式崩塌 — 生成器學到只產生可能輸出中的一小段切片 — 困擾著早期架構。如果判別器太快變得太強,給生成器的梯度信號就會消失,學習也就停滯。如果生成器找到一個能騙過判別器的廉價技巧,它會無情地一直利用這個技巧,而不是去學多樣的輸出。Wasserstein GAN (WGAN) 用一個不同的損失函數來處理這個問題,提供了更有意義的梯度。漸進式增長 (ProGAN) 從低解析度開始一路把圖像增長到高解析度,極大地穩定了訓練。NVIDIA 的 StyleGAN 與 StyleGAN2 進一步打磨這個想法,產生了那些著名的「這個人並不存在」人臉,這些人臉首次震驚了大眾,讓他們開始認真看待 AI 圖像生成。
GAN 真正的超能力一直都是速度。因為生成只需要透過生成器網絡做一次前向傳遞,一個訓練好的 GAN 可以在毫秒內產生一張圖像。對比一下擴散模型,它需要 20 到 50 次的迭代傳遞。這就是為什麼 GAN 在即時應用中仍然有自己的位置:電子遊戲的紋理放大 (NVIDIA 的 DLSS 使用了一個類 GAN 架構)、即時人臉濾鏡、行動 app 中的風格遷移,以及超解析度。當你需要每秒 30 幀以上的圖像時,擴散模型那種迭代式的精修迴圈,沒有重度蒸餾就是太慢了。
Ian Goodfellow 在 2014 年引入了 GAN,而這個架構經歷了一場非凡的演化:DCGAN 帶來了卷積結構 (2015),條件式 GAN 讓類別特定的生成成為可能,pix2pix 與 CycleGAN 處理了圖像到圖像的翻譯,BigGAN 把規模擴展到 ImageNet 等級的品質,而 StyleGAN 讓照片級寫實的人臉變得日常。大約有八年的時間,如果你看到一張 AI 生成的圖像,幾乎可以確定它是出自一個 GAN。轉向擴散模型發生,是因為擴散模型解決了 GAN 解決不了的問題:訓練穩定性、輸出多樣性,以及細粒度的文本條件控制。你不再需要去玩那場對抗式訓練的精細平衡遊戲。
有一個值得糾正的誤解:GAN 並沒有死。它們不再是圖像生成的預設選項,但對抗式訓練的原則到處都還在。基於 GAN 的判別器被當作感知損失函數,用在超解析度與壓縮上。對抗式訓練被用來強化模型對攻擊的抵抗力。而一些最快的擴散方法 (像是 SDXL Turbo 中的對抗式擴散蒸餾 Adversarial Diffusion Distillation) 實際上用了一個 GAN 判別器,把慢速的擴散模型蒸餾成快速的少步生成器 — 一個漂亮的圓滿時刻,GAN 反過來幫它的繼承者跑得更快。