有損壓縮也是一種智慧——清單唯一的生成模型

Sutskever 的二十七項閱讀清單裡沒有 GAN、沒有擴散模型,唯一的生成模型是他自己參與寫的 Variational Lossy Autoencoder。這篇論文被選中,不是因為它代表生成模型,而是因為它用神經網路演示了「有損壓縮也能學到最重要的結構」這件事。

有損壓縮也是一種智慧——清單唯一的生成模型

本文為「Ilya Sutskever 推薦讀什麼」系列第 10 篇。本系列解讀 OpenAI 共同創辦人蘇茨克維(Ilya Sutskever)給 John Carmack 的傳奇閱讀清單,探索一位頂尖 AI 科學家眼中「90% 重要的東西」。

二十七項清單裡,只有這一篇在談「生成」

Sutskever 的閱讀清單走到現在,我們看過了壓縮理論(篇 1-2)、智慧的數學定義(篇 3)、CNN 的視覺革命(篇 4)、RNN 的序列記憶(篇 5)、注意力機制的誕生(篇 6)、Transformer(篇 7)、記憶與推理(篇 8)、規模的力量(篇 9)。這些主題涵蓋了深度學習的核心脈絡,但有一整個領域被明顯冷落了:生成模型。

這份清單裡沒有 GAN。Ian Goodfellow 在 2014 年提出的生成對抗網路,掀起了一場 AI 生成影像的軍備競賽,從 StyleGAN 到 DeepFake,幾乎定義了大眾對「AI 創作」的第一印象。清單裡也沒有擴散模型(Diffusion Model),這個後來催生了 DALL-E 2、Stable Diffusion 和 Midjourney 的技術路線。更沒有自回歸生成模型的經典論文,比如 PixelRNN 或 WaveNet。在一份號稱涵蓋 AI「90% 重要知識」的二十七項清單裡,整個生成模型領域只有一個代表,就是第 18 項:Xi Chen 等人在 2016 年發表、2017 年在 ICLR 正式發表的〈Variational Lossy Autoencoder〉。

這篇論文為什麼這麼孤獨?要回答這個問題,得先搞懂它在做什麼。

編碼器壓縮,解碼器重建

Variational Lossy Autoencoder,拆開來看有三個關鍵字:Variational(變分)、Lossy(有損)、Autoencoder(自編碼器)。先從最基本的 Autoencoder 說起。

自編碼器的概念可以用一個比喻來理解。想像你要把一本 300 頁的書傳給朋友,但頻寬有限,你只能傳 10 頁。你得先把整本書的精華「壓縮」成 10 頁的摘要(這是編碼器做的事),朋友收到後再根據這 10 頁嘗試「重建」原書的內容(這是解碼器做的事)。自編碼器就是這樣一個神經網路:前半段把輸入資料壓縮成一個低維度的「潛在表示」(latent representation),後半段再從這個表示重建原始資料。訓練的目標是讓重建結果盡可能接近原始輸入。

普通的自編碼器有一個問題:它學到的潛在表示可能很混亂。同樣是人臉圖片,兩張長得很像的臉在潛在空間裡可能離得很遠,兩張完全不同的臉反而靠在一起。這讓你沒辦法在潛在空間裡做有意義的操作,比如「把這張臉變老一點」或「生成一張新的臉」。2013 年,Kingma 和 Max Welling 提出了 VAE(Variational Autoencoder,變分自編碼器),關鍵改動是強迫潛在表示服從一個已知的機率分布(通常是常態分布)。潛在空間因此變得平滑且連續:相似的輸入會被映射到附近的位置,你可以在潛在空間裡隨機取一個點,解碼器就能生成一個看起來合理的新樣本。VAE 同時是壓縮器和生成器。

但 2016 年的 VAE 碰上了一個尷尬的實務問題。當解碼器太強的時候,比如用了 PixelCNN 這種自回歸模型當解碼器,它強到可以獨立生成每一個像素,根本不需要「參考」潛在表示。結果就是編碼器被架空了:潛在變量退化成雜訊,模型學到的壓縮表示毫無意義。這個現象叫做「posterior collapse」(後驗崩塌),是 VAE 研究中最頭痛的問題之一。

「有損」不是缺陷,是設計

Xi Chen 和他的共同作者們在〈Variational Lossy Autoencoder〉中提出的解法,一句話就能講完:既然解碼器太強會搶走編碼器的工作,那就刻意限制解碼器能看到的東西,迫使它必須依賴潛在表示來處理全局結構。

具體做法是控制自回歸解碼器的「感受野」。如果你讓 PixelCNN 的感受野只覆蓋局部的幾個像素,它就只能處理局部細節,紋理、邊緣、漸層這類東西。至於全局的結構資訊,這張圖片是一隻貓還是一條狗、光線從哪個方向照過來、整體的色調,就必須由潛在表示來提供。換句話說,論文做了一件事:在編碼器和解碼器之間劃了一條線,這邊是「全局結構」,交給壓縮後的潛在表示負責;那邊是「局部細節」,交給自回歸解碼器處理。

這就是「Lossy」的意思。傳統的壓縮追求無損,你壓縮後再解壓,要一個位元不差。但 Variational Lossy Autoencoder 刻意接受有損壓縮:編碼器被設計成只保留全局特徵,主動丟棄局部細節。這不是失敗,是策略。就像你記一個人的長相,你記的是「圓臉、大眼睛、短髮」這些全局特徵,不會去記左邊第三根睫毛有幾毫米長。你的大腦在做有損壓縮,而且做得很好,因為真正重要的資訊被保留了下來。

這篇論文在 MNIST、OMNIGLOT 和 Caltech-101 Silhouettes 等基準測試上取得了當時 VAE 類模型的最佳結果。但更重要的是它提出的框架:不要追求壓縮一切,而是讓模型自己學會什麼該壓、什麼該丟。

這篇論文的作者欄,藏著一個線索

讀到這裡,你可能會問:VAE 相關的論文那麼多,Sutskever 為什麼偏偏選這一篇?答案的一部分藏在作者欄裡。

這篇論文的共同作者包括:第一作者 Xi Chen,VAE 和 Adam 優化器的發明者 Kingma(現任職 Anthropic),Tim Salimans,後來在擴散模型研究上做出關鍵貢獻的 Prafulla Dhariwal,OpenAI 共同創辦人舒曼(John Schulman),UC Berkeley 教授 Pieter Abbeel,以及 Ilya Sutskever 本人。這基本上是 2016 年 OpenAI 研究團隊的全明星陣容。Sutskever 把自己參與寫的論文放進了「你必須讀的清單」裡。

這不是自吹自擂。或者更準確地說,即使有自吹自擂的成分,這篇論文確實值得被放進來,因為它是整份清單「壓縮即理解」主線最直接的工程體現。篇 1 的 Kolmogorov 複雜度告訴你「理解一段資料就是找到它最短的描述」,篇 2 的 Complexodynamics 討論了「複雜結構是壓縮的甜蜜點」,而 Variational Lossy Autoencoder 做的事情,就是把這些理論變成一個真的跑得起來的模型:編碼器在壓縮,解碼器在從壓縮表示重建,而「有損」這個設計決策等於在說:好的壓縮不是記住一切,是記住最重要的東西。

至於為什麼不選 GAN?GAN 的訓練機制是兩個網路對抗博弈,跟「壓縮」沒有直接關係。為什麼不選擴散模型?擴散模型的核心是逐步去噪,雖然也可以從資訊論的角度理解,但它的數學框架跟壓縮的直覺距離更遠。VAE 是唯一一種生成模型,架構本身就是「壓縮然後重建」。編碼器就是壓縮器,潛在空間就是壓縮後的表示,解碼器就是解壓器。沒有任何其他生成模型用這麼直白的方式在做壓縮。

我的觀察:孤獨是因為太契合

回到開頭的問題:為什麼這篇論文在清單中這麼孤獨?

我的解讀是:Sutskever 根本不是在選一篇「生成模型的代表作」。他選的是「壓縮即理解」這條主線上最直接的工程實例。恰好這個實例屬於生成模型,但「生成」不是重點,「壓縮」才是。GAN 和擴散模型雖然在應用上更成功,但它們不在 Sutskever 的敘事線上。這份清單從頭到尾講的是同一個故事:智慧的本質是壓縮。Variational Lossy Autoencoder 被選中,不是因為它代表了生成模型,而是因為它用一個可以訓練的神經網路,演示了「有損壓縮也能學到最重要的結構」這件事。

而且「有損」這個概念的意義可能比表面看起來更深。今天的大型語言模型在做的事,本質上也是有損壓縮。GPT-4 讀了整個網際網路的文字,但它的參數量遠小於訓練資料的總量。它不可能記住每一句話,它記住的是語言的結構、知識的規律、推理的模式。細節被丟掉了,但最重要的東西被保留了下來。這跟 Variational Lossy Autoencoder 做的事,本質上是一樣的。

Sutskever 在清單裡放了二十七個項目來反覆闡述一個觀點:壓縮就是理解。而這篇他自己參與寫的論文,也許是他表達這個信念最私人的方式。他沒有只推薦別人的工作,而是把自己團隊親手做的實驗也放了進來,等於在說:「看,這就是我們怎麼把理論變成實作的。」


← 上一篇:規模的力量 → 下一篇:清單上沒有的東西 📋 回到系列目錄:那份消失的 Email