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

  • 2021 年 1 月 6 日
  • AI

作者 | 青暮、陳大鑫
編輯 | 青暮
你上一次聽到用Transformer生成影像,應該還是iGPT剛問世的時候吧?當時OpenAI用GPT-2來分類和補全影像,取得了令人驚艷的成果。遺憾在於,iGPT生成的影像最大只有64×64像素。
現在,我要告訴你,最上面這張影像也是Transformer生成的,解析度有1280×460之高。合成這張影像的模型名叫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補全的影像最大只有64×64像素,而於2018年提出的「Image Transformer」生成的也是解析度很低的影像,如下圖所示。
這是因為,自注意力機制相對於CNN存在普遍性,也意味著它必須學習所有的關係,而CNN被設計成利用影像中強局部相關性的先驗知識。因此,由於考慮了所有成對的相互作用,Transformers表達能力的增加相應地帶來了計算成本的二次增加。因此,目前的Transformers SOTA模型由於高耗能和高耗時,為將其擴展到處理高解析度影像帶來了根本性的問題。
那麼,除了完全替代,還有其它方案嗎?

3

Transformer傾向於學習卷積結構 

實際上,基於自注意力機制和卷積層的相似性,Transformer和CNN也可以結合應用,今天要介紹的這篇論文就採用了這樣的思想。
此外,這也是第一個語義引導生成百萬像素影像的Transformer架構。
論文:Taming Transformers for High-Resolution Image Synthesis
論文鏈接://arxiv.org/pdf/2012.09841.pdf
項目主頁://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方法。

參考文獻:
//arxiv.org/pdf/2012.12556v1.pdf 
//cdn.openai.com/papers/Generative_Pretraining_from_Pixels_V2.pdf
//arxiv.org/pdf/1802.05751.pdf
//arxiv.org/pdf/1911.03584.pdf
//arxiv.org/abs/2012.00364

[贈書福利]

AI科技評論本次聯合【博文視點】為大家帶來15本「《labuladong 的演算法小抄》」正版新書。

在1月1日頭條文章我多篇高峰會論文在手,面試AI演算法崗時竟然還要刷演算法題?| 元旦送書福利》留言區暢所欲言,談一談你刷演算法的故事,或你對2020的總結或者是對2021年的規劃和心愿,甚至可以是新的一年對AI科技評論的建議和期待,有哪些喜歡看的報道,還希望看到什麼樣的報道?

AI 科技評論將會在留言區選出 15名讀者,每人送出《labuladong 的演算法小抄》一本。

活動規則:

1. 在1月1日頭條文章(注意不是本文!)下面留言,留言點贊最高的前 15 位讀者將獲得贈書。獲得贈書的讀者請聯繫 AI 科技評論客服(aitechreview)。

2. 留言內容會有篩選,例如「選我上去」等內容將不會被篩選,亦不會中獎。

3. 本活動時間為2021年1月1日 – 2020年1月7日(23:00),活動推送內僅允許中獎一次。

點擊閱讀原文,直達AAAI小組!

由於微信公眾號試行亂序推送,您可能不再能準時收到AI科技評論的推送。為了第一時間收到AI科技評論的報道, 請將「AI科技評論」設為星標帳號,以及常點文末右下角的「在看」。