選自Sander Dieleman博客

機器之心編譯

編輯:劉欣

上個月, GPT-4o 的圖像生成功能爆火,掀起了以吉卜力風為代表的廣泛討論,生成式 AI 的熱潮再次席卷網(wǎng)絡。

而在這股浪潮背后,潛在空間(Latent Space)作為生成模型的核心驅(qū)動力,點燃了圖像與視頻創(chuàng)作的無限想象。

知名研究者 Andrej Karpathy 最近轉(zhuǎn)發(fā)了一篇來自 Google DeepMind 研究科學家 Sander Dielman 的博客文章,探討了生成模型(如圖像、音頻和視頻生成模型)如何通過利用潛在空間來提高生成效率和質(zhì)量。

打開網(wǎng)易新聞 查看精彩圖片

博客鏈接:https://sander.ai/2025/04/15/latents.html

Sander Dielman 自 2015 年加入 DeepMind 以來,參與了包括 WaveNet、AlphaGo、Imagen 3 和 Veo 在內(nèi)的多個項目,涵蓋深度學習、生成模型及表征學習(Representation Learning)。

在這篇文章中,他將潛在變量比喻為「數(shù)據(jù)的精髓」—— 通過壓縮復雜信息實現(xiàn)圖像、語音等生成。他還深入對比變分自編碼器(VAEs)、生成對抗網(wǎng)絡(GANs)和擴散模型,展示了潛在變量如何支持這些模型生成逼真內(nèi)容。

例如,Dielman 參與開發(fā)的 WaveNet 就利用潛在變量成功實現(xiàn)了高質(zhì)量語音合成,并在谷歌多個產(chǎn)品中得到廣泛應用。他還以 VQ-VAE 為例,說明離散潛在空間如何提升圖像生成效率。

這篇文章兼具理論深度與直觀洞察,適合對生成模型感興趣的讀者深入研究。

配方

打開網(wǎng)易新聞 查看精彩圖片

在潛在空間中訓練生成模型通常分為兩個階段:

1. 用輸入信號訓練自編碼器。自編碼器是一個神經(jīng)網(wǎng)絡,包含兩個子網(wǎng)絡:編碼器和解碼器。編碼器將輸入信號映射到相應的潛在表征(編碼),解碼器則將潛在表征映射回輸入域(解碼)。

2. 在潛在表征上訓練生成模型。這一步驟涉及使用第一階段的編碼器來提取訓練數(shù)據(jù)的潛在表征,然后直接在這些潛在表征上訓練生成模型。當前主流的生成模型通常是自回歸模型或擴散模型。

一旦第一階段訓練好了自編碼器,在第二階段其參數(shù)將不再改變:學習過程第二階段的梯度不會反向傳播到編碼器中。換句話說,在第二階段,編碼器的參數(shù)會被凍結(jié)。

請注意,在訓練的第二階段,自編碼器的解碼器部分不發(fā)揮作用,但在從生成模型采樣時需要用到它,因為這將生成潛在空間中的輸出。解碼器使我們能夠?qū)⑸傻臐撛谙蛄坑成浠卦驾斎肟臻g。

下面是說明這種兩階段訓練方法的示意圖。在相應階段學習參數(shù)的網(wǎng)絡標有 「?」 符號,因為這幾乎總是使用基于梯度的學習方法。參數(shù)被凍結(jié)的網(wǎng)絡標有雪花符號。

打開網(wǎng)易新聞 查看精彩圖片

潛在生成模型的訓練方法:兩階段訓練。

在兩個訓練階段中涉及幾種不同的損失函數(shù),這在圖中以紅色標出:

  • 為確保編碼器和解碼器能夠高保真地將輸入表征轉(zhuǎn)換為潛在向量再轉(zhuǎn)換回來,多個損失函數(shù)用于約束重建(解碼器輸出)與輸入的關系。這些通常包括簡單的回歸損失、感知損失和對抗損失。
  • 為了限制潛在向量的容量,在訓練期間通常會直接對它們應用額外的損失函數(shù),盡管并非總是如此。我們將此稱為瓶頸損失,因為潛在表征在自編碼器網(wǎng)絡中形成了一個瓶頸。
  • 在第二階段,生成模型使用其自身的損失函數(shù)進行訓練,這與第一階段使用的損失函數(shù)分開。這通常是負對數(shù)似然損失(用于自回歸模型)或擴散損失。

深入觀察基于重建的損失函數(shù),我們有以下幾種:

  • 回歸損失:有時是在輸入空間(例如像素空間)中測量的平均絕對誤差(MAE),但更常見的是均方誤差(MSE)。
  • 感知損失:形式多樣,但通常利用另一個凍結(jié)的預訓練神經(jīng)網(wǎng)絡來提取感知特征。該損失函數(shù)鼓勵重建和輸入之間的這些特征相匹配,從而更好地保留回歸損失大多忽視的高頻內(nèi)容。對于圖像處理,LPIPS 是一種流行的選擇。
  • 對抗損失:使用與自編碼器協(xié)同訓練的判別網(wǎng)絡,類似于生成對抗網(wǎng)絡(GAN)的方法。判別網(wǎng)絡負責區(qū)分真實輸入信號和重建信號,而自編碼器則努力欺騙判別網(wǎng)絡使其出錯。目的是提高輸出的真實性,即使這意味著進一步偏離輸入信號。在訓練開始時,通常會暫時禁用對抗損失,以避免訓練過程中的不穩(wěn)定。

以下是一個更詳細的示意圖,展示了第一階段的訓練過程,并明確顯示了在此過程中通常發(fā)揮作用的其他網(wǎng)絡。

打開網(wǎng)易新聞 查看精彩圖片

這是第一訓練階段的更詳細版本的圖,展示了所有參與的網(wǎng)絡。

不言而喻,這個通用方法在音頻和視頻等應用中常常會有各種變體,但我試圖總結(jié)出在大多數(shù)現(xiàn)代實際應用中常見的主要元素。

我們是如何走到這一步的

打開網(wǎng)易新聞 查看精彩圖片

如今,自回歸和擴散模型這兩種主要的生成模型范式,最初都是應用于「原始」數(shù)字感知信號的,即像素(pixels)與波形(waveforms)。例如,PixelRNN 和 PixelCNN 是逐像素生成圖像的,而 WaveNet 和 SampleRNN 則是逐樣本生成音頻波形的。在擴散模型方面,最初引入和建立這種建模范式的作品都是通過像素來生成圖像的,早期的研究如 WaveGrad 和 DiffWave 則是通過生成波形來產(chǎn)生聲音的。

然而,人們很快意識到這種策略在擴展性方面存在很大挑戰(zhàn)。其主要原因可以概括為:感知信號大多由不可察覺的噪聲組成。換句話說,在給定信號的總信息量中,只有一小部分真正影響我們的感知。因此,確保我們的生成模型能夠高效利用其容量,并專注于建模這一小部分信息是非常重要的。這樣,我們就可以使用更小、更快且更便宜的生成模型,同時不犧牲感知質(zhì)量。

潛在自回歸模型

隨著具有里程碑意義的 VQ-VAE 論文的發(fā)表,圖像自回歸模型取得了巨大飛躍。該論文提出了一種實用策略,通過在自編碼器中插入矢量量化瓶頸層,利用神經(jīng)網(wǎng)絡學習離散表征。為了學習圖像的離散潛在表征,一個具有多個下采樣階段的卷積編碼器生成了一個矢量的空間網(wǎng)格,其分辨率比輸入圖像低 4 倍(在高度和寬度上均為輸入圖像的 1/4,因此空間位置減少了 16 倍),然后這些矢量通過瓶頸層進行量化。

現(xiàn)在,我們可以使用類似 PixelCNN 的模型一次生成一個潛在向量,而不是逐像素生成圖像。這顯著減少了所需的自回歸采樣步驟數(shù)量,但更重要的是,在潛在空間而不是像素空間中測量似然損失,有助于避免在不可察覺的噪聲上浪費模型容量。這實際上是一種不同的損失函數(shù),更側(cè)重于感知相關的信號內(nèi)容,因為許多感知無關的信號內(nèi)容在潛在向量中并不存在(關于這個問題,可以參閱我在典型性方面的博客文章)。該論文展示了從在 ImageNet 上訓練的模型生成的 128×128 圖像,這種分辨率在當時只有 GANs 才能達到。

離散化對于其成功至關重要,因為當時的自回歸模型在離散輸入下表現(xiàn)更好。但或許更重要的是,潛在表征的空間結(jié)構(gòu)使得現(xiàn)有的基于像素的模型可以非常容易地進行適配。在此之前,變分自編碼器(VAEs)通常會將整個圖像壓縮到一個單一的潛在向量中,導致表征沒有任何拓撲結(jié)構(gòu)?,F(xiàn)代潛在表征的網(wǎng)格結(jié)構(gòu)與「原始」輸入表征的網(wǎng)格結(jié)構(gòu)相鏡像,生成模型的網(wǎng)絡架構(gòu)利用這種結(jié)構(gòu)來提高效率(例如,通過卷積、循環(huán)或注意力層)。

VQ-VAE 2 進一步將分辨率提高到 256×256,并通過擴大規(guī)模和使用多層次的潛在網(wǎng)格(以層次化結(jié)構(gòu)組織)顯著提升了圖像質(zhì)量。隨后,VQGAN 將 GANs 的對抗學習機制與 VQ-VAE 架構(gòu)相結(jié)合。這使得分辨率降低因子從 4 倍增加到 16 倍(與像素輸入相比,空間位置減少了 256 倍),同時仍然能夠生成銳利且逼真的重建圖像。對抗損失在其中發(fā)揮了重要作用,即使無法緊密遵循原始輸入信號,也能鼓勵生成逼真的解碼器輸出。

VQGAN 成為近五年來我們在感知信號生成建模方面取得快速進展的核心技術(shù)。其影響怎么強調(diào)都不為過 —— 我甚至可以說,這可能是 GANs 在 2024 年 NeurIPS 大會上獲得「時間考驗獎」的主要原因。VQGAN 論文提供的「助攻」,使 GANs 即使在被擴散模型幾乎完全取代用于媒體生成的基礎任務之后,依然保持著相關性。

值得一提的是,上一節(jié)中提到的許多方法在這個論文中都被構(gòu)思出來了。如今,迭代生成器通常不是自回歸的(Parti、xAI 最近的 Aurora 模型以及 OpenAI 的 GPT-4o 是顯著例外),量化瓶頸也被替代了,但其他一切都還在。尤其是簡單的回歸損失、感知損失和對抗損失的組合,盡管看似復雜,卻一直頑固地存在。在快速發(fā)展的機器學習領域,這種持久性極為罕見 —— 也許只有基本未變的 Transformer 架構(gòu)和 Adam 優(yōu)化器能與之媲美!

(雖然離散表征在使?jié)撛谧曰貧w模型在大規(guī)模應用中發(fā)揮作用方面至關重要,但我想指出,最近連續(xù)空間中的自回歸模型也取得了良好的效果。)

潛在擴散

隨著潛在自回歸模型在 2010 年代后期逐漸嶄露頭角,以及擴散模型在 2020 年代初期取得突破,將這兩種方法的優(yōu)勢相結(jié)合成為了順理成章的下一步。如同許多應運而生的想法一樣,我們在 2021 年下半年見證了一系列探討這一主題的論文在 arXiv 上接連發(fā)布。其中最為人熟知的是 Rombach 等人的《High-Resolution Image Synthesis with Latent Diffusion Models》,他們沿用了先前的 VQGAN 研究成果,并將自回歸 Transformer 換成基于 UNet 的擴散模型,這一成果構(gòu)成了穩(wěn)定擴散模型的基礎。其他相關工作雖然規(guī)模較小,或者針對的是非圖像類數(shù)據(jù),但也進行了類似探索。

這種方法主流化花了點時間。早期商業(yè)文生圖模型使用所謂分辨率級聯(lián),即基礎擴散模型直接在像素空間生成低分辨率圖像,一個或多個上采樣擴散模型則基于低分辨率輸入生成高分辨率輸出。典型例子包括 DALL-E 2 和 Imagen 2。穩(wěn)定擴散模型問世后,大多轉(zhuǎn)為基于潛在空間的方法(包括 DALL-E 3 和 Imagen 3)。

自回歸模型和擴散模型一個關鍵區(qū)別在于訓練所用的損失函數(shù)。自回歸模型訓練相對簡單,最大化似然即可(盡管也曾嘗試過其他方法)。擴散模型則復雜些,其損失函數(shù)是針對所有噪聲級別的期望,這些噪聲級別的相對權(quán)重顯著影響模型學習內(nèi)容。這為將典型的擴散損失解釋為一種感知損失函數(shù)提供了依據(jù),這種損失函數(shù)更強調(diào)在感知上更為顯著的信號內(nèi)容。

初看之下,這會讓兩階段方法顯得多余,因其與擴散損失函數(shù)的方式類似,即過濾掉感知無關信號內(nèi)容,避免浪費模型容量。但實際中這兩種機制相當互補,原因如下:

  • 小尺度和大尺度下的感知工作機制似乎有根本區(qū)別,尤其是視覺領域。例如,建模紋理和細粒度細節(jié)需要單獨處理,對抗方法可能更適合。我將在下文詳細討論。
  • 訓練大型強大擴散模型計算密集,使用更緊湊的潛在空間可避免處理笨重的輸入表征,有助于減少內(nèi)存需求,加快訓練和采樣速度。

早期確實有工作嘗試端到端方法,聯(lián)合學習潛在表征和擴散先驗,但未流行。盡管從實用角度看,避免多階段訓練的序列依賴是可取的,但感知和計算優(yōu)勢使這些麻煩值得。

為什么需要兩個階段?

打開網(wǎng)易新聞 查看精彩圖片

如前所述,確保感知信號的生成模型能夠高效利用其容量至關重要,因為這能使它們更具成本效益。這基本上就是兩階段方法所實現(xiàn)的目標:通過提取更緊湊的表征,專注于信號內(nèi)容中與感知相關部分,并對這一表征進行建模而非原始表征,我們能夠使相對較小的生成模型發(fā)揮超越其規(guī)模的效果。

大多數(shù)感知信號中的信息實際上在感知上并不重要,這并非新發(fā)現(xiàn):這也是有損壓縮背后的關鍵思想,它使我們能夠以更低的成本存儲和傳輸這些信號。像 JPEG 和 MP3 這樣的壓縮算法利用了信號中的冗余以及我們對低頻比高頻更敏感的事實,從而用更少的比特表征感知信號。(還有其他感知效應,例如聽覺掩蔽,但非均勻的頻率敏感性是最重要的。)

那么,我們?yōu)槭裁床灰赃@些有損壓縮技術(shù)為基礎來構(gòu)建生成模型呢?這并非一個壞主意,一些研究確實為此目的使用了這些算法或其部分組件。但我們很自然地傾向于用更多的機器學習來解決問題,看看是否能超越這些 “手工設計” 的算法。

這不僅僅是機器學習研究者的自大:實際上,使用學習得到的潛在表征而非預先存在的壓縮表征有一個非常好的理由。與壓縮設置不同,在壓縮設置中越小越好,尺寸是唯一重要的因素,生成建模的目標還施加了其他約束:某些表征比其他表征更容易建模。至關重要的是,表征中保留了一些結(jié)構(gòu),我們可以通過賦予生成模型適當?shù)臍w納偏置來加以利用。這一要求在重建質(zhì)量和潛在表征的可建模性之間創(chuàng)造了權(quán)衡,我們將在下一節(jié)中探討這一點。

潛在表征有效性的另一個重要原因是它們?nèi)绾卫梦覀兏兄诓煌叨壬喜煌ぷ鞯氖聦?。在音頻領域,這一點顯而易見:幅度的快速變化會產(chǎn)生音高的感知,而在較粗時間尺度上的變化(例如鼓點)則可以被單獨辨別。鮮為人知的是,這種現(xiàn)象在視覺感知中也扮演著重要角色:顏色和強度的快速局部波動被感知為紋理。我曾在 Twitter 上嘗試解釋這一點,并在此處改寫該解釋:

一種思考方式是紋理與結(jié)構(gòu)的對比,或者有時人們稱之為東西與物體的對比。

在一張狗在田野中的圖像里,草的紋理(東西)是高熵的,但我們不善于感知這種紋理各個實例間的差異,我們只是將其感知為不可數(shù)的「草」。我們無需逐一把每一根草葉看在眼里,就能確定我們看到的是田野。

這種紋理的實現(xiàn)如果稍有不同,我們通常無法察覺,除非把圖像直接疊在一起。用對抗自編碼器做實驗很有趣:當把原始圖像和重建圖像并排放在一起比較時,它們往往看起來一模一樣。但如果把它們疊在一起,來回切換查看,常常會發(fā)現(xiàn)圖像之間的差異,尤其是在紋理豐富的區(qū)域。

對于物體(有形的東西)來說,情況則不同,例如狗的眼睛,類似程度的差異會立刻顯現(xiàn)出來。 一個好的潛在表征會抽象化紋理,但盡量保留結(jié)構(gòu)。這樣一來,在重建中對草紋理的表現(xiàn)可以與原始不同,而不會明顯影響重建的保真度。這使得自編碼器能夠舍棄許多模式(即同一紋理的其他表現(xiàn)形式),并在其潛在空間中更簡潔地表征該紋理的存在。

這反過來也應該使?jié)撛诳臻g中的生成建模變得更容易,因為它現(xiàn)在可以對紋理的有無進行建模,而無需捕捉與該紋理相關的所有復雜變化。

打開網(wǎng)易新聞 查看精彩圖片

一張狗在田野中的圖片。圖片的上半部分熵值很低:組成天空的像素可以從其相鄰像素中很容易地預測出來。而下半部分熵值很高:草地的紋理使得附近的像素很難被預測。

由于兩階段方法提供的顯著效率提升,我們似乎愿意忍受它帶來的額外復雜性 —— 至少目前是這樣。這種效率的提升不僅使訓練運行更快、更便宜,而且更重要的是,它還可以大大加速采樣。對于執(zhí)行迭代細化的生成模型來說,這種顯著的成本降低非常受歡迎,因為生成單個樣本需要多次通過模型進行前向傳播。

權(quán)衡重建質(zhì)量和可建模性

打開網(wǎng)易新聞 查看精彩圖片

深入探討有損壓縮和潛在表征學習之間的差異是值得的。雖然機器學習可以用于兩者,但如今廣泛使用的大多數(shù)有損壓縮算法并沒有使用機器學習。這些算法通?;诼适д胬碚?,該理論形式化并量化了我們能夠壓縮信號的程度(率)與我們允許解壓縮信號與原始信號偏離的程度(失真)之間的關系。

對于潛在表征學習,我們可以通過引入可建模性或可學習性的概念來擴展這種權(quán)衡,該概念描述了生成模型捕捉這種表征分布的難度。這導致了一個三方的率失真可建模性權(quán)衡,這與 Tschannen 等人在表征學習的背景下討論的率失真有用性權(quán)衡密切相關。(在機器學習背景下,另一種流行的擴展這種權(quán)衡的方式是率失真感知權(quán)衡,它明確區(qū)分了重建保真度和感知質(zhì)量。為了避免過于復雜,我在這里不會做這種區(qū)分,而是將失真視為在感知空間中測量的量,而不是輸入空間。)

為什么這甚至是一個權(quán)衡并不立即顯而易見 —— 為什么可建模性與失真相沖突?要理解這一點,考慮有損壓縮算法的工作方式:它們利用已知的信號結(jié)構(gòu)來減少冗余。在這個過程中,這種結(jié)構(gòu)通常從壓縮表征中被移除,因為解壓縮算法能夠重建它。但輸入信號中的結(jié)構(gòu)也在現(xiàn)代生成模型中被廣泛利用,例如以架構(gòu)歸納偏差的形式,這些偏差利用信號屬性,如平移等變性或頻率譜的特定特征。

如果我們有一個神奇的算法,能夠高效地從輸入信號中移除幾乎所有冗余,我們將使生成模型捕捉壓縮信號中剩余的無結(jié)構(gòu)變異性變得非常困難。如果我們的目標僅僅是壓縮,這是完全可以的,但如果我們要進行生成建模,就不是這樣了。因此,我們必須找到一個平衡:一個好的潛在表征學習算法會檢測并移除一些冗余,但同時也會保留一些信號結(jié)構(gòu),以便為生成模型留下一些可以利用的東西。

在這種情況下,一個不好的例子是熵編碼,它實際上是一種無損壓縮方法,但也被用作許多有損方案的最后階段(例如 JPEG/PNG 中的霍夫曼編碼,或 H.265 中的算術(shù)編碼)。熵編碼算法通過為頻繁出現(xiàn)的模式分配更短的表征來減少冗余。這并沒有移除任何信息,但它破壞了結(jié)構(gòu)。因此,輸入信號中的小變化可能導致相應的壓縮信號發(fā)生更大的變化,從而使熵編碼序列的建模難度大大增加。

相比之下,潛在表征傾向于保留大量的信號結(jié)構(gòu)。下面的圖展示了一些圖像的 Stable Diffusion 潛在表征的可視化(取自 EQ-VAE 論文)。僅通過視覺檢查潛在表征,就可以很容易地識別出動物。它們基本上看起來像是帶有扭曲顏色的噪聲低分辨率圖像。這就是為什么我喜歡將圖像潛在表征視為僅僅是「高級像素」,捕捉了一些普通像素不會捕捉的額外信息,但大部分仍然像像素一樣表現(xiàn)。

打開網(wǎng)易新聞 查看精彩圖片

從幾幅圖像中提取的 Stable Diffusion 潛在表征的可視化,取自 EQ-VAE 論文。潛在空間的前三個主成分分別對應于顏色通道。從潛在表征的視覺檢查中,圖像中的動物仍然大多可以被識別出來,這表明編碼器保留了大量原始信號的結(jié)構(gòu)。

可以說,這些潛在表征相當?shù)蛯哟?。傳統(tǒng)的變分自編碼器(VAE)會將整個圖像壓縮成一個特征向量,通常會得到一個能夠進行語義操作的高級表征,而現(xiàn)代用于圖像生成建模的潛在表征實際上更接近像素層面。它們具有更高的容量,繼承了輸入的網(wǎng)格結(jié)構(gòu)(盡管分辨率較低)。網(wǎng)格中的每個潛在向量可能會抽象掉一些低層次的圖像特征,例如紋理,但它并沒有捕捉到圖像內(nèi)容的語義。這也是為什么大多數(shù)自編碼器并不使用任何額外的條件信號,例如文字描述,因為這些信號主要約束的是高層次的結(jié)構(gòu)(盡管也有例外)。

可控性

打開網(wǎng)易新聞 查看精彩圖片

兩個關鍵的設計參數(shù)控制著具有網(wǎng)格結(jié)構(gòu)的潛在空間的容量:下采樣因子和表征的通道數(shù)。如果潛在表征是離散的,碼本大小也很重要,因為它對潛在表征能夠包含的信息位數(shù)施加了一個硬性限制。(除了這些,正則化策略也起著重要作用,但我們將在下一節(jié)討論它們的影響。)

以一個示例來說,編碼器可能會接收一張 256×256 像素的圖像作為輸入,并生成一個帶有 8 個通道的 32×32 連續(xù)潛在向量網(wǎng)格。這可以通過使用跨步卷積堆?;蜓a丁大小為 8 的視覺轉(zhuǎn)換器(ViT)來實現(xiàn)。降采樣因子會同時降低寬度和高度方向的維度,因此潛在向量的數(shù)量比像素少 64 倍 —— 但每個潛在向量有 8 個分量,而每個像素只有 3 個(RGB)。

總體而言,潛在表征的張量組件數(shù)量(即浮點數(shù))比表征原始圖像的張量少。我喜歡將這個數(shù)字稱為張量尺寸縮減因子(TSR),以避免與空間或時間降采樣因子混淆。

打開網(wǎng)易新聞 查看精彩圖片

展示文本中描述的輸入和潛在維度的示意圖。

如果我們把編碼器的下采樣因子增加 2 倍,潛在網(wǎng)格的大小就會變成 16×16,然后我們可以把通道數(shù)增加 4 倍到 32 個通道,以保持相同的 TSR(總空間冗余)。對于給定的 TSR,通常有幾種不同的配置在重建質(zhì)量方面表現(xiàn)得大致相當,尤其是在視頻的情況下,我們可以分別控制時間和空間的下采樣因子。然而,如果我們改變 TSR(通過改變下采樣因子而不改變通道數(shù),或者反之),這通常會對重建質(zhì)量和可建模性產(chǎn)生深遠的影響。

從純數(shù)學角度來看,這是令人驚訝的:如果潛在變量是實值的,網(wǎng)格的大小和通道的數(shù)量就不應該有關系,因為單個數(shù)字的信息容量已經(jīng)是無限的(這被 Tupper 的自指公式巧妙地證明了)。但當然,有一些實際的限制因素限制了潛在表征的單個組成部分能夠攜帶的信息量:

  • 我們使用浮點數(shù)來表征實數(shù),而浮點數(shù)的精度是有限的;
  • 在許多公式中,編碼器會添加一定量的噪聲,這進一步限制了有效的精度;
  • 神經(jīng)網(wǎng)絡并不擅長學習其輸入的高非線性函數(shù)。

第一個原因顯而易見:如果用 32 位(單精度)來表征一個數(shù)字,那么它最多也只能傳遞 32 位的信息。加入噪聲會進一步減少可用的位數(shù),因為一些低位數(shù)字會被噪聲掩蓋。

最后一個限制其實更為嚴格,但目前理解還不夠充分:難道神經(jīng)網(wǎng)絡不就是為了學習非線性函數(shù)嗎?確實如此,但神經(jīng)網(wǎng)絡天然傾向于學習相對簡單的函數(shù)。這通常是一個優(yōu)點,而不是缺點,因為它增加了學習到的函數(shù)能夠泛化到未見數(shù)據(jù)的概率。但如果我們要把大量信息壓縮到幾個數(shù)字中,這很可能需要高度的非線性。雖然有一些方法可以幫助神經(jīng)網(wǎng)絡學習更復雜的非線性函數(shù)(例如傅里葉特征),但在我們的場景中,高度非線性的映射實際上會對可建模性產(chǎn)生負面影響:它們會掩蓋信號結(jié)構(gòu),因此這不是一個好的解決方案。具有更多組件的表征會提供更好的權(quán)衡。

同樣的道理也適用于離散潛在表征:離散化對表征的信息內(nèi)容設定了一個硬性上限,但是否能夠高效地利用這一容量主要取決于編碼器的表達能力以及量化策略在實際中的效果(即是否通過盡可能均勻地使用不同碼字來實現(xiàn)高碼本利用率)。目前最常用的仍然是 VQ-VAE 中的原始 VQ 瓶頸,但最近一種通過「旋轉(zhuǎn)技巧」提供更好梯度估計的改進方法在碼本利用率和端到端性能方面似乎很有前景。一些不使用顯式學習碼本的替代方案也逐漸受到關注,例如有限標量量化(FSQ)、無查找量化(LFQ)和二進制球面量化(BSQ)。

總結(jié)來說,選擇合適的 TSR(總空間冗余)至關重要:更大的潛在表征能夠帶來更好的重建質(zhì)量(更高的率,更低的失真),但可能會對可建模性產(chǎn)生負面影響。更大的表征意味著有更多的信息位需要建模,因此需要生成模型具備更高的容量。在實踐中,這種權(quán)衡通常是通過經(jīng)驗來調(diào)整的。這可能是一個成本較高的過程,因為目前還沒有任何可靠且計算成本低的可建模性代理指標。因此,需要反復訓練足夠大的生成模型才能得到有意義的結(jié)果。

Hansen-Estruch 等人最近對潛在空間容量及其各種影響因素進行了廣泛的探索(他們的關鍵發(fā)現(xiàn)已在文中明確突出顯示)。目前有一個趨勢是增加空間下采樣因子,并相應地增加通道數(shù)以保持 TSR,以便在更高分辨率下進行圖像和視頻生成(例如 LTX-Video 中的 32×、GAIA-2 中的 44×,以及 DCAE 中的 64×)。

梳理和塑造潛在空間

打開網(wǎng)易新聞 查看精彩圖片

到目前為止,我們已經(jīng)討論了潛在表征的容量,即應該在其中包含多少位信息。同樣重要的是,要精確控制原始輸入信號中的哪些位信息應該被保留在潛在表征中,以及這些信息是如何呈現(xiàn)的。我將前者稱為梳理潛在空間,后者稱為塑造潛在空間 —— 這種區(qū)分雖然微妙,但很重要。許多正則化策略已經(jīng)被設計出來,用于塑造、梳理和控制潛在表征的容量。我將專注于連續(xù)情況,但其中許多考慮同樣適用于離散潛在表征。

VQGAN 與 KL 正則化潛變量

Rombach 等人提出了兩種針對連續(xù)潛在空間的正則化策略:

  • 遵循原始 VQGAN 的設計理念,并將量化步驟重新解釋為解碼器的一部分(而非編碼器的一部分),從而獲得連續(xù)潛在表征(即 VQ 正則化,VQ-reg);
  • 完全移除 VQGAN 中的量化操作,轉(zhuǎn)而像標準變分自編碼器(Variational Autoencoder,VAE)那樣引入 KL 散度懲罰項(即 KL 正則化,KL-reg)。

這種只對 VQGAN 作出最小改動、以適配擴散模型(Diffusion Model)而生成連續(xù)潛變量的思路可謂巧妙:此類結(jié)構(gòu)在自回歸模型(Autoregressive Model)中表現(xiàn)良好,而訓練過程中的量化步驟也起到了某種「安全閥」作用,防止?jié)撟兞繑y帶過多的信息。

然而,正如我們之前所討論的,這種機制在多數(shù)情況下可能并非真正必要,因為編碼器的表達能力往往才是生成模型性能的瓶頸所在。

相比之下,KL 正則化本身是傳統(tǒng) VAE 架構(gòu)的核心組成部分:它是構(gòu)成證據(jù)下界(Evidence Lower Bound,ELBO)的兩項損失之一。ELBO 是對數(shù)據(jù)似然的下界,用于間接地、但在數(shù)值上可行地最大化樣本的對數(shù)似然。該項正則化鼓勵潛變量服從某一預設先驗分布(通常為高斯分布)。

但關鍵在于,ELBO 僅在 KL 項前未引入縮放超參數(shù)(scale parameter)的前提下,才是真正意義上的似然下界。然而在實際應用中,為了訓練穩(wěn)定性及重建質(zhì)量的考慮,KL 正則項幾乎總是被大幅縮放(通常縮小幾個數(shù)量級),這幾乎切斷了它與變分推斷原始語境之間的聯(lián)系。

造成這一調(diào)整的原因也很直接:未經(jīng)縮放的 KL 項具有過強的限制作用,會顯著壓縮潛在空間的容量,繼而嚴重影響圖像重建質(zhì)量。出于工程可行性上的考慮,業(yè)界普遍的做法是顯著降低其在總損失函數(shù)中的權(quán)重。

(順便提一下:在某些更關注語義可解釋性或潛變量解耦(disentanglement)質(zhì)量、而非重建效果的任務中,增加 KL 權(quán)重也是一種有效且常見的策略,例如 β-VAE)。

接下來屬于明顯的主觀觀點,但我認為當前關于 KL 項效果的討論中還存在相當多的 “神秘化思維”。例如,KL 項被廣泛認為能引導潛變量服從高斯分布 —— 然而在實際應用中的縮放因子下,這一效果微弱到幾乎可以忽略。即使是在 “真正的” VAE 中,總體后驗分布(aggregate posterior)也很少呈現(xiàn)出標準高斯形態(tài)。

因此,在我看來,「VAE」中那個「V」(即 「Variational」,變分)如今幾乎已失去實質(zhì)意義 —— 其存在意義更多是歷史遺留。與其如此,我們倒不如將這類模型稱為「KL 正則化自編碼器」(KL-regularised autoencoders),這在概念上對當前主流實踐更貼切。

在這種設定下,KL 項最主要的作用,是抑制潛變量分布中的離群點,并在一定程度上約束其數(shù)值尺度。換句話說:盡管 KL 項通常被當作限制潛變量容量的機制來闡述,其在現(xiàn)實中起到的作用,更多是對潛變量形狀的輕度限制 —— 而這種限制也遠沒有想象中那么強。

調(diào)整重建損失

重建損失的「三件套」(即回歸損失(regression loss)、感知損失(perceptual loss)與對抗損失(adversarial loss))在最大程度提高重建信號質(zhì)量方面無疑發(fā)揮著關鍵作用。

然而,值得進一步研究的是,這些損失項如何影響潛在變量(latents),特別是在「內(nèi)容篩選」(curation,即潛變量學會編碼哪些信息)方面的作用。如第 3 節(jié)(為什么需要兩個階段?)所討論的,在視覺領域中,一個良好的潛在空間應在一定程度上實現(xiàn)對紋理的抽象(abstraction)。這些損失是如何幫助實現(xiàn)這一目標的?

一個有啟發(fā)性的思維實驗是,假設我們將感知損失和對抗損失去除,僅保留回歸損失,如傳統(tǒng)的變分自編碼器(VAE)所采用的做法。這種設置通常會導致模糊的重建結(jié)果。回歸損失在設計上不會偏向于特定類型的信號內(nèi)容,因此在圖像任務中,往往會更關注于低頻信息,原因僅僅是這種信息在圖像中占比較大。

在自然圖像中,不同空間頻率的能量通常與其頻率的平方成反比 —— 頻率越高,能量越?。ㄓ嘘P該現(xiàn)象的圖示分析,請參閱我先前的博文)。由于高頻成分在總信號能量中所占比例極小,因此使用回歸損失時,模型更傾向于準確地預測低頻分量,而非高頻部分。

然而,從人類感知的角度看,高頻信息的主觀重要性遠遠高于它們在信號能量中所占的比例,這也就導致了大家熟知的「模糊感」重建結(jié)果。

打開網(wǎng)易新聞 查看精彩圖片

圖片來自 VQGAN 論文。與僅使用回歸損失訓練的 DALL-E VAE 的對比展示了感知與對抗損失所帶來的顯著影響。

由于紋理主要由這些高頻成分構(gòu)成,而回歸損失幾乎忽略這些高頻信息,最終我們得到的潛在空間不僅無法做出紋理抽象,反而是直接抹去了與紋理相關的信息。從感知質(zhì)量的角度講,這是一種很差的潛在空間結(jié)構(gòu)。這也直接說明了感知損失與對抗損失的重要性:它們確保潛在變量中能夠編碼一定的紋理信息。

既然回歸損失具有上述這些不理想的性質(zhì),并且往往需要其他損失項來加以彌補,那我們是否可以干脆將其完全舍棄呢?事實證明,這種做法也不可行。因為感知損失與對抗損失的優(yōu)化過程更為復雜,且容易陷入病態(tài)的局部最優(yōu)解(畢竟,這些損失通常是基于預訓練神經(jīng)網(wǎng)絡構(gòu)建的)。在訓練過程中,回歸損失起到某種「正則化器」的角色,持續(xù)為優(yōu)化過程提供約束與指引,避免模型陷入錯誤的參數(shù)空間。

當前已有諸多策略嘗試采用不同形式的重建損失,以下僅列舉部分文獻中的實例,展示該方向的多樣性:

  • 前文提到的 DCAE46 模型,其方法在整體上與原始的 VQGAN 配方差異不大,只是將 L2 回歸損失(均方誤差,MSE)替換為 L1 損失(平均絕對誤差,MAE)。它依然保留了 LPIPS 感知損失(Learned Perceptual Image Patch Similarity)以及 PatchGAN49 判別器。該方法的不同之處在于其采用了多階段訓練,僅在最后階段啟用對抗損失。
  • ViT-VQGAN50 模型結(jié)合了兩種回歸損失:L2 損失與 logit-Laplace 損失 51,并使用 StyleGAN52 判別器以及 LPIPS 感知損失。
  • LTX-Video44 模型引入了一種基于離散小波變換(Discrete Wavelet Transform,DWT)的「視頻感知損失」,并提出了其獨特的對抗損失策略,稱為 reconstruction-GAN。

正如經(jīng)典菜肴千人千味,在這種「配方」問題上,每位研究者都有各自的解法!

表征學習 vs 重建

此前我們探討的諸多設計選擇,不僅影響重建質(zhì)量,同時也深刻影響所學習的潛在空間的性質(zhì)。其中,重建損失事實上承擔了雙重任務:既保證了解碼器輸出的高質(zhì)量,又在潛在空間的形成中發(fā)揮了關鍵作用。這不禁引出一個問題:像我們現(xiàn)在這樣「一石二鳥」的做法,真的合適嗎?我認為答案是否定的。

一方面,為生成建模(generative modelling)學習出良好且緊湊的表征;另一方面,將這一表征解碼回原始輸入空間,這其實是兩項截然不同的任務。而現(xiàn)代自動編碼器通常被期望能同時完成這兩項任務。

盡管從實踐角度看,這種做法效果相當不錯,無疑也簡化了流程(畢竟自動編碼器訓練已經(jīng)是完整系統(tǒng)中第一階段的訓練部分,我們自然希望盡可能避免進一步復雜化,盡管訓練多個階段的自動編碼器也并非聞所未聞。但這一方法實則混淆了兩個任務,其間某些適用于一個任務的設計,或許在另一個任務上并不理想。

當解碼器采用自回歸架構(gòu)時,這種任務合并的問題尤為突出,因此我們提出使用一個獨立的非自回歸(non-autoregressive)輔助解碼器(auxiliary decoder)來為編碼器提供學習信號。

主解碼器(main decoder)則完全不會影響潛在表征,因為其梯度在訓練中不會反傳至編碼器。這使其專注于優(yōu)化重建質(zhì)量,而輔助解碼器則承擔起潛在空間的塑造任務。整個自動編碼器各組件仍可聯(lián)合訓練,因此增加的訓練復雜度非常有限。雖然輔助解碼器會增加訓練成本,但它在訓練完成后即可被舍棄。

打開網(wǎng)易新聞 查看精彩圖片

這種帶有兩個解碼器的自動編碼器結(jié)構(gòu)中:主解碼器僅用于重建,其梯度不回傳到編碼器(通常我們用虛線來表示這一點)輔助解碼器則專注于構(gòu)建潛在空間,它可以采用不同的架構(gòu)、優(yōu)化不同的損失函數(shù),或者兩者兼而有之。

盡管我們在那篇論文中使用自回歸解碼器來處理像素空間的想法,如今已經(jīng)不再適用(可以說很不合時宜),但我仍然相信將表征學習與重建任務分開的這一策略在當前仍具有高度相關性。

一個輔助解碼器,如果它優(yōu)化的是另一種損失,或者采用了與主解碼器不同的架構(gòu)(抑或兩者兼具),就可能為表征學習提供更有效的訓練信號,從而帶來更優(yōu)的生成建模效果。

Zhu 等人最近也得出了同樣的結(jié)論(見其論文第 2.1 節(jié)),他們使用 K-means 對 DINOv2 提取的特征進行離散化建模,并結(jié)合一個單獨訓練的解碼器。在生成建模中復用自監(jiān)督學習(self-supervised learning)得到的表征,這一思路在音頻建模領域早已較為普遍 —— 可能是因為音頻領域研究者原本就習慣于訓練聲碼器(vocoder),將預定義的中間表征(例如梅爾頻譜圖)轉(zhuǎn)換回波形信號。

通過正則化提升模型能力

對潛在變量容量的塑造、梳理和限制都會影響其可建模性:

  • 容量限制決定了潛在變量中的信息量。容量越高,生成模型就必須越強大,才能充分捕捉其包含的所有信息;
  • 塑造對于實現(xiàn)高效建模至關重要。相同的信息可以用多種不同的方式表征,有些方式比其他方式更容易建模。縮放和標準化對于正確建模至關重要(尤其是對于擴散模型而言),但高階統(tǒng)計量和相關結(jié)構(gòu)也同樣重要;
  • 梳理會影響可建模性,因為某些類型的信息比其他類型的信息更容易建模。如果潛在變量編碼了輸入信號中不可預測的噪聲信息,那么它們的可預測性也會降低。

以下是一條有趣的推文,展示了這如何影響穩(wěn)定擴散 XL VAE:

打開網(wǎng)易新聞 查看精彩圖片

圖源:https://x.com/rgilman33/status/1911712029443862938

在這里,我想將其與 Xu et al. 提出的 V-information 聯(lián)系起來,它擴展了互信息的概念,使其能夠考慮計算約束。換句話說,信息的可用性取決于觀察者辨別信息的計算難度,我們可以嘗試量化這一點。如果一條信息需要強大的神經(jīng)網(wǎng)絡來提取,那么輸入中的 V-information 量就會低于使用簡單線性探測的情況 —— 即使以比特為單位的絕對信息量相同。

顯然,最大化潛在表征的 V-information 量是可取的,以便最大限度地降低生成模型理解潛在表征所需的計算需求。我之前提到的 Tschannen et al. 描述的速率 - 失真 - 實用性權(quán)衡也支持同樣的結(jié)論。

如前所述,KL 懲罰對高斯化或平滑潛在空間的作用可能不如許多人認為的那么大。那么,我們可以做些什么來使?jié)撛谀P透菀捉D兀?/p>

  • 使用生成先驗:與自動編碼器共同訓練一個(輕量級)潛在生成模型,并通過將生成損失反向傳播到編碼器中,使?jié)撛谀P鸵子诮?,就像?LARP 或 CRT 中一樣。這需要仔細調(diào)整損失權(quán)重,因為生成損失和重構(gòu)損失相互矛盾:當潛在模型完全不編碼任何信息時,它們最容易建模!
  • 使用預訓練的表征進行監(jiān)督:鼓勵潛在模型對現(xiàn)有高質(zhì)量表征(例如 DINOv2 特征)進行預測,就像在 VA-VAE、MAETok 或 GigaTok 中一樣。
  • 鼓勵等變性:使輸入的某些變換(例如重縮放、旋轉(zhuǎn))產(chǎn)生相應的潛在表征,這些表征也進行類似變換,就像在 AuraEquiVAE、EQ-VAE 和 AF-VAE 中一樣。我在第 4 部分中使用的 EQ-VAE 論文中的圖表展示了這種約束對潛在空間的空間平滑度產(chǎn)生的深遠影響。Skorokhodov et al. 基于潛在空間的譜分析得出了相同的結(jié)論:等變性正則化使?jié)撛谧V與像素空間輸入的譜更相似,從而提高了可建模性。

這只是一些可能的正則化策略的一小部分,所有這些策略都試圖以某種方式增加潛在向量的 V-information。

向下擴散

一類用于學習潛在表征的自編碼器值得深入研究:帶有擴散解碼器的自編碼器。雖然更典型的解碼器架構(gòu)采用前饋網(wǎng)絡,該網(wǎng)絡在一次前向傳遞中直接輸出像素值,并且采用對抗式訓練,但一種越來越流行的替代方案是使用擴散來完成潛在解碼任務以及對潛在表征的分布進行建模。這不僅會影響重構(gòu)質(zhì)量,還會影響學習到的表征類型。

SWYCC、?-VAE 和 DiTo 是近期一些探索這種方法的研究成果,它們從幾個不同的角度闡述了這一方法:

  • 使用擴散解碼器學習的潛在特征提供了一種更具原則性、理論基礎的層級生成建模方法;
  • 它們可以僅使用 MSE 損失進行訓練,這簡化了過程并提高了魯棒性(畢竟對抗性損失的調(diào)整相當棘手);
  • 將迭代改進的原理應用于解碼可以提高輸出質(zhì)量。

我無法反駁這些觀點,但我確實想指出擴散解碼器的一個顯著弱點:它們的計算成本及其對解碼器延遲的影響。我認為,目前大多數(shù)商業(yè)部署的擴散模型都是潛在模型的一個關鍵原因是:緊湊的潛在表征有助于我們避免在輸入空間進行迭代細化,而這種做法既慢又貴。在潛在空間中執(zhí)行迭代采樣過程,然后在最后通過一次前向傳播回到輸入空間,速度要快得多??紤]到這一點,在我看來,在解碼任務中重新引入輸入空間迭代細化,在很大程度上違背了兩階段方法的初衷。如果我們要付出這樣的代價,不妨選擇一些簡單的擴散方法來擴展單階段生成模型。

你可能會說,別急 —— 我們難道不能使用眾多擴散蒸餾方法來減少所需的步驟數(shù)嗎?在這樣的設置中,由于具有非常豐富的條件信號(即潛在表征),這些方法確實被證明是有效的,甚至在單步采樣機制下也是如此:條件越強,獲得高質(zhì)量蒸餾結(jié)果所需的步驟就越少。

DALL-E 3 的一致性解碼器就是一個很好的實踐案例:他們重用了穩(wěn)定擴散潛在空間,并訓練了一個基于擴散的新解碼器,然后通過一致性蒸餾將其精簡為僅兩個采樣步驟。雖然在延遲方面,它的開銷仍然比原始對抗解碼器更高,但輸出的視覺保真度得到了顯著提升。

打開網(wǎng)易新聞 查看精彩圖片

DALL-E 3 基于 Stable Diffusion 潛在空間的一致性解碼器顯著提高了視覺保真度,但代價是延遲更高。

Music2Latent 是這種方法的另一個例子,它基于音樂音頻的聲譜圖表征進行操作。它們的自編碼器帶有一致性解碼器,采用端到端訓練(不同于 DALL-E 3 的自編碼器,后者復用了預訓練的編碼器),并且能夠一步生成高保真輸出。這意味著解碼過程再次只需要一次前向傳遞,就像對抗性解碼器一樣。

FlowMo 是一款帶有擴散解碼器的自編碼器,它使用后訓練階段來鼓勵模式搜索行為。如前所述,對于解碼潛在表征的任務,丟失模態(tài)以及專注于真實性而非多樣性實際上是可取的,因為它需要的模型容量較少,并且不會對感知質(zhì)量產(chǎn)生負面影響。對抗性損失往往會導致模態(tài)丟失,但基于擴散的損失則不會。這種兩階段訓練策略使擴散解碼器能夠模擬這種行為 —— 盡管仍然需要大量的采樣步驟,因此計算成本遠高于典型的對抗性解碼器。

一些早期關于擴散自編碼器的研究,例如 Diff-AE 和 DiffuseVAE,更側(cè)重于學習類似于老式 VAE 的高級語義表征,沒有拓撲結(jié)構(gòu),并且注重可控性和解耦。DisCo-Diff 介于兩者之間,它利用一系列離散潛在表征來增強擴散模型,這些潛在表征可以通過自回歸先驗建模。

消除對抗訓練的必要性無疑會簡化事情,因此擴散自編碼器在這方面是一個有趣(最近也相當流行)的研究領域。然而,在延遲方面,與對抗性解碼器競爭似乎頗具挑戰(zhàn)性,所以我認為我們還沒有準備好放棄它們。我非常期待一個更新的方案:它不需要對抗性訓練,但在視覺質(zhì)量和延遲方面卻能與當前的對抗解碼器相媲美!

網(wǎng)格統(tǒng)治一切

打開網(wǎng)易新聞 查看精彩圖片

感知模態(tài)的數(shù)字表征通常采用網(wǎng)格結(jié)構(gòu),因為它們是底層物理信號的均勻采樣(和量化)版本。圖像產(chǎn)生二維像素網(wǎng)格,視頻產(chǎn)生三維網(wǎng)格,音頻信號產(chǎn)生一維網(wǎng)格(即序列)。均勻采樣意味著相鄰網(wǎng)格位置之間存在著固定的量子(即距離或者時間量)。

從統(tǒng)計意義上講,感知信號在時間和空間上也趨于近似平穩(wěn)。與均勻采樣相結(jié)合,這產(chǎn)生了豐富的拓撲結(jié)構(gòu),我們在設計用于處理它們的神經(jīng)網(wǎng)絡架構(gòu)時會充分利用這種結(jié)構(gòu):使用廣泛的權(quán)重共享來利用不變性和等變性等特性,這些特性通過卷積、循環(huán)和注意力機制來實現(xiàn)。

毫無疑問,對網(wǎng)格結(jié)構(gòu)的利用正是我們能夠構(gòu)建如此強大的機器學習模型的關鍵原因之一。由此推論,在設計潛在空間時保留這種結(jié)構(gòu)是一個絕佳的主意。我們最強大的神經(jīng)網(wǎng)絡設計在架構(gòu)上依賴于它,因為它們最初就是為直接處理這些數(shù)字信號而構(gòu)建的。如果潛在表征具有相同的結(jié)構(gòu),它們將更擅長處理這些表征。

網(wǎng)格結(jié)構(gòu)也為學習生成潛在空間的自編碼器帶來了顯著的優(yōu)勢:由于平穩(wěn)性,并且它們只需要學習局部信號結(jié)構(gòu),因此可以在較小的裁剪圖像或輸入信號片段上進行訓練。如果我們施加正確的架構(gòu)約束(限制編碼器和解碼器中每個位置的感受野),它們將能夠開箱即用地泛化到比訓練時更大的網(wǎng)格。這有可能大大降低第一階段的訓練成本。

然而,事情并非總是那么美好:我們已經(jīng)討論過感知信號是如何高度冗余的,遺憾的是,這種冗余分布不均。信號的某些部分可能包含大量感知上顯著的細節(jié),而其他部分則幾乎沒有信息。在我們之前使用的田野里狗的圖像中,考慮一個以狗的頭部為中心的 100×100 像素塊,然后將其與圖像右上角僅包含藍天的 100×100 像素塊進行比較。

打開網(wǎng)易新聞 查看精彩圖片

田野里的狗的圖像,其中突出顯示了兩個具有不同冗余度的 100×100 像素塊。

如果我們構(gòu)建一個繼承輸入二維網(wǎng)格結(jié)構(gòu)的潛在表征,并用它來編碼這幅圖像,則必然會使用完全相同的容量來編碼這兩個圖像塊。如果我們讓表征足夠豐富,能夠捕捉到狗頭所有相關的感知細節(jié),那么將浪費大量容量來編碼類似大小的天空圖像塊。換句話說,保留網(wǎng)格結(jié)構(gòu)會顯著降低潛在表征的效率。

這就是我所說的「網(wǎng)格統(tǒng)治一切」:我們用神經(jīng)網(wǎng)絡處理網(wǎng)格結(jié)構(gòu)數(shù)據(jù)的能力已經(jīng)非常成熟,偏離這種結(jié)構(gòu)會增加復雜性,使建模任務變得更加困難,并且對硬件的兼容性也更差,所以通常不會這樣做。但就編碼效率而言,這實際上相當浪費,因為視聽信號中感知顯著的信息分布并不均勻。

Transformer 架構(gòu)實際上相對適合對抗這種統(tǒng)治:雖然我們通常將其視為序列模型,但它實際上是為處理集值(set-valued)數(shù)據(jù)而設計的,任何將集合元素相互關聯(lián)的附加拓撲結(jié)構(gòu)都通過位置編碼來表達。這使得偏離常規(guī)網(wǎng)格結(jié)構(gòu)比卷積或循環(huán)架構(gòu)更為實用。幾年前,我和同事探索了使用可變速率離散表征進行語音生成的這個想法。在兩階段生成模型的背景下,放松潛在空間的拓撲結(jié)構(gòu)似乎最近越來越受到關注,包括如下:

  • TiTok 和 FlowMo 從圖像中學習序列結(jié)構(gòu)化的潛在表征,將網(wǎng)格維度從二維降低到一維。大型語言模型的發(fā)展為我們帶來了極其強大的序列模型,因此這是一種合理的目標結(jié)構(gòu);
  • One-D-Piece 和 FlexTok 也采用了類似的方法,但使用了嵌套的 dropout 機制,在潛在序列中引入了由粗到細的結(jié)構(gòu)。這使得序列長度能夠根據(jù)每個輸入圖像的復雜度以及重建所需的細節(jié)級別進行調(diào)整。CAT 也探索了這種自適應性,但仍然保留了二維網(wǎng)格結(jié)構(gòu),并且僅調(diào)整其分辨率;
  • TokenSet 更進一步,使用了一種生成「token 袋」的自動編碼器,完全摒棄了網(wǎng)格。

除了 CAT 之外,所有這些方法的共同點在于:它們學習的潛在空間在語義上比我們目前主要討論的那些要高級得多。就抽象層次而言,它們可能介于「高級像素」和老式 VAE 的矢量值潛在空間之間。FlexTok 的一維序列編碼器需要使用現(xiàn)有二維網(wǎng)格結(jié)構(gòu)編碼器的低級潛在空間作為輸入,實際上是在現(xiàn)有低級潛在空間之上構(gòu)建了一個額外的抽象層。TiTok 和 One-D-Piece 也利用現(xiàn)有的二維網(wǎng)格結(jié)構(gòu)潛在空間作為多階段訓練方法的一部分。一個相關的思路是:將語言域重用為圖像的高級潛在表征。

在離散環(huán)境下,一些工作利用語言 tokenisation 的思想,研究了網(wǎng)格中常見的 token 模式是否可以組合成更大的子單元:DiscreTalk 是語音領域的一個早期示例,它在 VQ token 之上使用了 SentencePiece。Zhang et al 的 BPE Image Tokenizer 是這一思路的較新體現(xiàn),它在 VQGAN token 上使用了一種增強的字節(jié)對編碼算法。

其他模態(tài)的潛在變量

打開網(wǎng)易新聞 查看精彩圖片

到目前為止,我們主要關注視覺領域,僅在一些地方簡要提及音頻。這是因為學習圖像的潛在特征是我們已經(jīng)非常擅長的事情,而且近年來,使用兩階段方法的圖像生成已經(jīng)得到了廣泛的研究并投入生產(chǎn)!。我們在感知損失方面擁有成熟的研究體系,以及大量的判別器架構(gòu),使對抗訓練能夠?qū)W⒂诟兄嚓P的圖像內(nèi)容。

對于視頻,我們?nèi)匀煌A粼谝曈X領域,但引入了時間維度,這帶來了一些挑戰(zhàn)。人們可以簡單地重復使用圖像的潛在特征并逐幀提取它們來獲得潛在的視頻表征,但這可能會導致時間偽影(例如閃爍)。更重要的是,它無法利用時間冗余。我認為我們用于時空潛在表征學習的工具還遠遠不夠完善,而且目前人們對如何利用人類對運動的感知來提高效率的理解也不夠深入。盡管視頻壓縮算法都利用運動估計來提高效率,但情況仍然如此。

音頻也是如此:雖然兩階段方法已被廣泛采用,但對于使其適用于這種模態(tài)所需的修改,似乎并未達成廣泛的共識。如前所述,對于音頻,更常見的做法是重用通過自監(jiān)督學習習得的表征。

那么語言呢?語言并非感知模態(tài),但兩階段方法或許也能提高大型語言模型的效率嗎?事實證明,這并非易事。語言本質(zhì)上比感知信號更難壓縮:它作為一種高效的溝通方式發(fā)展起來,因此冗余度要低得多。但這并不意味著語言就不存在:香農(nóng)曾有一個著名的估計:英語的冗余度為 50%。但請記住,圖像、音頻和視頻可以在相對較小的感知失真下壓縮幾個數(shù)量級,而語言則不可能在不丟失細微差別或重要語義信息的情況下做到這一點。

用于語言模型的 Tokeniser 往往是無損的(例如 BPE、SentencePiece),因此生成的 token 通常不被視為「潛在 token」(然而,Byte Latent Transformer 在其動態(tài) tokenisation 策略中確實使用了這種框架)。然而,語言中相對缺乏冗余并沒有阻止人們嘗試學習有損的高級表征!用于感知信號的技術(shù)可能無法沿用,但人們已經(jīng)探索了幾種其他用于學習句子或段落級別表征的方法。

端到端會是最后贏家嗎?

打開網(wǎng)易新聞 查看精彩圖片

當深度學習興起時,主流觀點是:我們將盡可能用端到端學習取代手工構(gòu)建的特征。聯(lián)合學習所有處理階段將使這些階段能夠相互適應和協(xié)作,從而最大限度地提高性能,同時從工程角度簡化流程。這或多或少也正是計算機視覺和語音處理領域最終發(fā)生的事情。從這個角度來看,頗具諷刺意味的是,當今感知信號的主流生成建模范式是兩階段方法。雖然兩個階段都傾向于學習,但并非完全端到端!

如今產(chǎn)品中部署的文本轉(zhuǎn)圖像、文本轉(zhuǎn)視頻和文本轉(zhuǎn)音頻模型大多使用中間潛在表征。值得思考的是,這種現(xiàn)狀是暫時的,還是會持續(xù)下去?畢竟,兩階段訓練確實引入了相當多的復雜性,除了更加優(yōu)雅之外,端到端學習還可以幫助確保系統(tǒng)的所有部分都與單一的總體目標完美地保持一致。

如上所述,輸入空間的迭代細化速度慢且成本高昂,我認為這種情況可能會持續(xù)一段時間 —— 尤其是在我們不斷提升生成信號的質(zhì)量、分辨率和 / 或長度的情況下。我們不太可能放棄潛在層在訓練效率和采樣延遲方面的優(yōu)勢,目前尚無可行的替代方案被證明能夠大規(guī)模應用。這是一個頗具爭議的觀點,因為一些研究人員似乎認為是時候轉(zhuǎn)向端到端方法了。我個人認為現(xiàn)在還為時過早。

那么,我們何時才能準備好回歸單階段生成模型呢?像簡單擴散、Ambient Space Flow、Transformers 和 PixelFlow 這樣的方法已經(jīng)證明:即使在相對較高的分辨率下,這種方法也能很好地發(fā)揮作用,只是目前還不夠劃算。但硬件正以驚人的速度不斷改進和提升,因此我推測我們最終會達到一個臨界點:即相對低效的輸入空間模型在經(jīng)濟上優(yōu)于工程復雜性日益增加的潛在空間模型。至于何時實現(xiàn),則取決于具體模態(tài)、硬件改進的速度以及研究的進展,因此我不會做出具體的預測。

過去,我們需要潛在向量來確保生成模型專注于學習感知相關的信號內(nèi)容,同時忽略視覺上不顯著的熵。回想一下,輸入空間中的似然損失在這方面尤其糟糕,而切換到在潛在空間中測量似然值可以顯著改善基于似然模型的結(jié)果??梢哉f,這種情況已不再存在,因為我們已經(jīng)找到了如何在感知上重新加權(quán)自回歸和擴散模型的似然損失函數(shù),從而消除了擴展的一個重要障礙。盡管如此,潛在空間模型的計算效率優(yōu)勢仍然一如既往地重要。

第三種替代方案,我目前為止只是簡要提到過,是分辨率級聯(lián)方法。這種方法不需要表征學習,但仍然將生成模型問題分解為多個階段。一些早期的商業(yè)模型曾使用這種方法,但它似乎已經(jīng)不再受歡迎了。我認為這是因為不同階段之間的分工不夠完善 —— 上采樣模型必須完成太多的工作,這使得它們更容易在各個階段積累錯誤。