Transformer又來搞事情!百萬像素高清圖輕松合成,效果迷人

作者 | 青暮、陳大鑫
編輯 | 青暮
你上一次聽到用Transformer生成圖像,應該還是iGPT剛問世的時候吧?當時OpenAI用GPT-2來分類和補全圖像,取得了令人驚艷的成果。遺憾在于,iGPT生成的圖像最大只有64x64像素。

現在,我要告訴你,最上面這張圖像也是Transformer生成的,分辨率有1280x460之高。合成這張圖像的模型名叫VQGAN,而且,它能做的事情遠不止于此。
先看看VQGAN和iGPT的對比,前者生成的圖像明顯高清得多。

VQGAN還能用語義圖引導生成樣本:

用深度圖引導生成樣本:

用姿態圖引導合成樣本:

用類別引導合成樣本:

隨機合成樣本:

執行超分辨率任務:

說了那么多,它們的共同點是啥?
當然是高清啦!
最后再展示一些用語義圖引導合成的樣本,從上往下的分辨率分別是:1280×832、1024×416、1280×240。
沒錯,都是百萬像素級別的。

VQGAN功能多,生成的圖像又高清,就用下圖來總結一下。

本文提出的Transformers統一了廣泛的圖像合成任務。圖中展示了在不同條件輸入和數據集上的256×256合成結果,所有這些結果都是用同樣的方法獲得的,即VQGAN——利用基于CNN的有效歸納偏置,并結合Transformer結構的表達能力。
第一行:在ImageNet上進行無條件訓練來補全圖像。
第二行:以深度圖為條件生成圖像。
第三行:語義圖引導合成。
第四行:姿態圖引導合成。
第五行:類別引導合成。
然后,我們來比較一下模型尺寸。iGPT提出了四個模型,即iGPT-S、iGPT-M、iGPT-L、iGPT-XL,參數數量分別為76M、455M、14 億、68億,而VQGAN的參數數量則在85M到470M之間。
如下表所示,作者在多個數據集上(比如CIFAR-10、DeepFashion等)訓練了不同大小的模型,表中列出了模型的超參數。

超參數列表
參數數量遠低于iGPT,生成的圖像分辨率又遠高于iGPT,VQGAN是怎么做到的?我們先從Transformer的發展歷史談起。
1
Transformer:從NLP走向CV
Transformer最初應用于自然語言處理(NLP)任務,并帶來了顯著的進步。
例如,“Attention is all you need”首先提出了僅基于注意力機制的用于機器翻譯和英語選區解析任務的Transformer。
BERT通過共同在左和右上下文進行條件預處理,以通過未標記文本訓練Transformer,BERT在當時的11個NLP任務上獲得了SOTA。
OpenAI在45TB數據上預訓練了基于巨型Transformer的GPT-3模型,該模型具有1,750億個參數,并且無需微調即可在各種類型的下游自然語言任務上實現出色的性能。
這些基于Transformer的模型都顯示了強大的表示能力。受此啟發,最近人們開始將Transformer擴展到計算機視覺(CV)任務。
CNN曾經是計算機視覺網絡架構的基本組成部分,但Transformer顯示出了替代CNN的潛力。
iGPT訓練序列Transformer來自回歸地預測像素,并在圖像分類任務上與CNN取得相近結果。
ViT將純Transformer直接應用于圖像補丁序列,并在多個圖像識別基準上獲得了SOTA。
除了基本的圖像分類,Transformer還被用于解決更多的計算機視覺問題,例如目標檢測、語義分割、圖像處理和視頻理解,并且都得到了出色的結果。
基于Transformer的視覺模型如雨后春筍般冒起,下表按照應用場景對視覺Transformer模型進行了分類。

視覺Transformer的代表性工作。
其中主要的研究主題包括基本圖像分類、高級視覺、低級視覺和視頻處理。
高級視覺處理是指對圖像關鍵內容的標記,例如目標檢測、語義分割和車道檢測。
人們已經提出了許多用于解決高級視覺任務的Transformer模型,例如DETR、deformable DETR用于目標檢測,以及Max-DeepLab用于語義分割。
低級圖像處理的典型應用包括超分辨率、圖像去噪和風格遷移。在這個領域很少使用到Transformer,不過近期華為諾亞、北大等在論文“Pre-Trained Image Processing Transformer”中提出了IPT模型,在降噪、去雨、超分等底層視覺任務上刷榜,再次刷新人們認知。
此外,由于視頻的順序特性,Transformer可以自然地應用于視頻。
與傳統的CNN或RNN相比,Transformer開始在這些任務上顯示出具有競爭力的性能。
下圖展示了視覺Transformer關鍵工作的時間表,相信未來會有越來越多的優秀工作將被刻在里程碑上。

Transformer的里程碑,視覺Transformer模型為紅色。
那么,Transformer能取代CNN的秘密在哪里呢?
2
不一定要完全替代CNN
CNN由于可以搭配GPU進行有效的并行卷積計算而獲得了無數成功。此外,CNN也具有平移不變性和局部敏感性的歸納偏置。但是,后者也決定了卷積神經網絡只能關注局部信息的網絡結構。
它的這種計算機制導致了它在文本信息處理上難以捕捉和存儲長距離的依賴信息,也就是缺乏對數據本身的整體把握。人們一方面想擴大卷積核、增加通道數來捕捉長期依賴,一方面還害怕由于擴大模型所導致的維度災難。
相比之下,Transformer背后的Self Attention除了兼具并行計算的優點,還能挖掘長距離依賴,不受優先考慮局部相互作用的歸納偏置的限制,從而具有很強的表達性。此外,由于不存在這種限制,自注意力機制還能根據任務目標和自注意力層的位置來學習最合適的歸納偏置。
在“ON THE RELATIONSHIP BETWEEN SELF-ATTENTION AND CONVOLUTIONAL LAYERS”這篇發表在ICLR 2020的論文中,作者提出了理論和經驗證據,表明自注意力層可以(并且確實)像卷積層那樣起作用:
從理論上講,存在建設性的證據,表明自注意力層可以表示任何卷積層。具體來說,使用相對位置編碼的單個多頭自注意力層可以重新參數化以表示任何卷積層。
實驗表明,僅使用自注意力的架構的前幾層確實學習了如何在每個查詢像素周圍加入網格狀模式。
所以,自注意力機制和卷積層是很相似的。
人們近期一直在探索極端的替代方案,就是用Transformer完全替代CNN。
然而,對于高分辨率的輸入來說,自注意力機制層的計算量很大,因此它只適用于較小的空間維度輸入的數據場景。比如,iGPT補全的圖像最大只有64x64像素,而于2018年提出的“Image Transformer”生成的也是分辨率很低的圖像,如下圖所示。

這是因為,自注意力機制相對于CNN存在普遍性,也意味著它必須學習所有的關系,而CNN被設計成利用圖像中強局部相關性的先驗知識。因此,由于考慮了所有成對的相互作用,Transformers表達能力的增加相應地帶來了計算成本的二次增加。因此,目前的Transformers SOTA模型由于高耗能和高耗時,為將其擴展到處理高分辨率圖像帶來了根本性的問題。那么,除了完全替代,還有其它方案嗎?
3
Transformer傾向于學習卷積結構
實際上,基于自注意力機制和卷積層的相似性,Transformer和CNN也可以結合應用,今天要介紹的這篇論文就采用了這樣的思想。
此外,這也是第一個語義引導生成百萬像素圖像的Transformer架構。
論文:Taming Transformers for High-Resolution Image Synthesis

論文鏈接:https://arxiv.org/pdf/2012.09841.pdf
項目主頁:https://compvis.github.io/taming-transformers/
作者受到上文提到的“Transformers傾向于學習卷積結構”的現象的啟發,提出了這個問題:“我們是否在每次訓練視覺模型時,必須從頭開始重新學習已知的關于圖像局部結構和規律性的所有知識,或者我們是否能夠有效地編碼歸納偏置,同時仍然保持Transformers的靈活性?”
作者假設低層次的圖像結構是由局部連通性即卷積結構來描述的,而這種結構假設在更高的語義層次上不再有效。
進一步說,CNN不僅表現出很強的局部性偏差,而且通過在所有位置使用共享的權值,還表現出對空間不變性的偏差。而如果需要對輸入進行更全面的理解,這些偏差將變得無效。
高分辨率圖像合成需要一個能夠理解圖像全局組件的模型,使其能夠生成局部真實和全局一致的模式。因此,本文不是用像素來表示圖像,而是將其表示為codebook的感知豐富的圖像成分的合成。這些思想綜合起來就是,卷積和Transformer架構可以共同用于建模視覺世界的組成性質:我們使用卷積方法高效地學習上下文豐富的視覺部分的codebook,然后學習其全局組成的模型。這些組合中的遠程交互需要一個富有表達力的Transformer 架構來對其一致的可視部分上的分布進行建模。
此外,作者利用對抗性的方法來確保局部部分的字典捕獲感知上重要的局部結構,以減輕用Transformer架構建模低層統計的需要。從而讓Transformers專注于其獨特的優勢——建模遠程關系——使其能夠生成高分辨率圖像。作者提出的公式通過調節有關所需目標類別或空間布局的信息,可以直接控制生成的圖像內容。
通過學習如3.1節所述的高效的編碼,可以顯著縮短合成的描述長度,從而能夠有效地用3.2節中描述的Transformer架構在圖像中建模它們的全局相互關系。在下圖中總結的這種方法能夠在無條件和有條件的設置中生成真實和一致的高分辨率圖像。

作者使用卷積VQGAN來學習上下文豐富的視覺部分的codebook,codebook的組件隨后用自回歸transformer 架構來建模。離散的codebook提供了這些架構之間的接口,基于patch的判別器實現了強大的壓縮能力,同時保持了較高的感知質量。該方法引入了卷積方法在基于transformer的高分辨率圖像合成中的有效性。

VQGAN編碼解碼器的高級結構。網絡的設計遵循“Denoisingdiffusionprobabilisticmodels”中提出的架構,沒有跳躍連接(skip-connections)。對于判別器,本文使用了一個基于patch的模型,參見“Image-to-ImageTranslationwithConditionalAdversarialNetworks”。其中

,

。
實驗證明,本文的方法保留了Transformers的優點,并優于以前基于卷積結構和codebook的SOTA方法。
參考文獻:
https://arxiv.org/pdf/2012.12556v1.pdf
https://cdn.openai.com/papers/Generative_Pretraining_from_Pixels_V2.pdf
https://arxiv.org/pdf/1802.05751.pdf
https://arxiv.org/pdf/1911.03584.pdf
https://arxiv.org/abs/2012.00364


轉載自公眾號:AI科技評論 作者:青暮、陳大鑫 本文經授權發布,不代表51LA立場,如若轉載請聯系原作者。
更多互聯網行業動態>>請關注微信公眾號“我要啦統計”(微信ID:Analysis_51la)