點藍色字關注「機器學習算法工程師」
設為星標,乾貨直達!
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模型,例如DETR、deformable DETR用於目標檢測,以及Max-DeepLab用於語義分割。低級圖像處理的典型應用包括超解析度、圖像去噪和風格遷移。在這個領域很少使用到Transformer,不過近期華為諾亞、北大等在論文「Pre-Trained Image Processing Transformer」中提出了IPT模型,在降噪、去雨、超分等底層視覺任務上刷榜,再次刷新人們認知。此外,由於視頻的順序特性,Transformer可以自然地應用於視頻。與傳統的CNN或RNN相比,Transformer開始在這些任務上顯示出具有競爭力的性能。下圖展示了視覺Transformer關鍵工作的時間表,相信未來會有越來越多的優秀工作將被刻在裡程碑上。Transformer的裡程碑,視覺Transformer模型為紅色。那麼,Transformer能取代CNN的秘密在哪裡呢?不一定要完全替代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模型由於高耗能和高耗時,為將其擴展到處理高解析度圖像帶來了根本性的問題。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.pdfhttps://arxiv.org/pdf/1802.05751.pdfhttps://arxiv.org/pdf/1911.03584.pdfhttps://arxiv.org/abs/2012.00364推薦閱讀
PyTorch 源碼解讀之 torch.autograd
SWA:讓你的目標檢測模型無痛漲點1% AP
CondInst:性能和速度均超越Mask RCNN的實例分割模型
centerX: 用新的視角的方式打開CenterNet
mmdetection最小復刻版(十一):概率Anchor分配機制PAA深入分析
MMDetection新版本V2.7發布,支持DETR,還有YOLOV4在路上!
CNN:我不是你想的那樣
TF Object Detection 終於支持TF2了!
無需tricks,知識蒸餾提升ResNet50在ImageNet上準確度至80%+
不妨試試MoCo,來替換ImageNet上pretrain模型!
重磅!一文深入深度學習模型壓縮和加速
從源碼學習Transformer!
mmdetection最小復刻版(七):anchor-base和anchor-free差異分析
mmdetection最小復刻版(四):獨家yolo轉化內幕
機器學習算法工程師
一個用心的公眾號