摘要
Transformer是一種基於自注意力機制的深度神經網路,於2017年橫空出世,谷歌的研究人員將該結構率先應用於自然語言處理領域。自2020年以來,Transformer開始在計算機視覺領域大放異彩:影像分類(ViT、Perceiver、BiT-L),目標檢測(DETR,Deformable DETR),語義分割(SETR,MedT)、車道線檢測(LSTR)、影片處理(GANsformer)等。與CNN相比,Transformer的自注意力機制可獲得長距離資訊而非固定且有限的感受野。因此,基於Transformer的模型在各種公開資料集上表現出了更具競爭力的效能。本文以Transformer入手,以影像分類任務為例,對兩種Visual Transformer模型——ViT、Perceiver進行討論,分析其模型特點的同時對Visual Transformer的未來研究方向進行探討。
Transformer 首先應用於自然語言處理 (NLP) 領域,在效能上取得了顯著的突破。Vaswani等人在2017年[1]首次提出了完全基於注意力機制進行機器翻譯解析。Devlin等人於2019年提出了考慮到每個單詞的上下文資訊,可在未標記的文字上預訓練Transformer的一種新的語言表示模型BERT[2]。該模型在多個 NLP 任務上均展示了最出色的效能。2020年,OpenAI [3]使用 1750 億個引數在 45 TB 的壓縮文字資料上預訓練了一個名為 GPT-3的大規模Transformer模型。這些基於Transformer的模型,憑藉其強大的表示能力,在NLP領域得到了廣泛的應用並取得了重大的突破。
受到Transformer模型在NLP領域上取得的重大成果的啟發,近幾年研究人員逐漸將Transformer模型應用於語音和計算機視覺領域,而在本週剛結束的圖神經網路競賽OGB Large-Scale Challenge中,Transformer模型獲得了冠軍,Ying等人[8]提出並證明了Transformer在圖表示學習任務上具有更強的表達能力,各領域關於Transformer的研究都在逐漸升溫。
計算機視覺領域中應用Transformer的一個經典模型是Google於2020年提出的影像分類的模型ViT[4],它在多個影像識別基準上取得了最優異的效能。除了影像分類,Transformer 還被用來解決其他計算機視覺問題,包括目標檢測、語義分割和影片理解等。由於其卓越的效能,基於Visual Transformer的模型已成為處理視覺任務的一個主流研究方向。本文將重點討論ViT模型和Perceiver模型。
Transformer是第一個完全依賴自注意力機制來計算輸入和輸出表示的模型[5]。Transformer模型中採用的是編碼器—解碼器(Encoder-Decoder)結構。Encoder將自然語言序列對映到隱藏層,使其含有自然語言序列的數學表達。Decoder將隱藏層再對映為自然語言序列,從而使其應用於情感分析、語義關係抽取和摘要生成等任務。
值得注意的是,在Encoder的Self-Attention模組、Decoder的Self-Attention模組和Encoder-Decoder注意力模組中都使用了多頭自注意力機制(Multi-Head Attention)。該注意力機制採用縮放點積注意力(Scaled Dot-Product Attention)的實現方式來計算注意力特徵向量。多頭自注意力機制將輸入向量形成多個子空間,使得模型具備捕捉來自不同位置的子空間資訊的能力。在Transformer 的架構中,自注意力並行且獨立進行多次計算,輸出經過串聯並進行線性轉換。
Encoder包含兩層結構,一層結構為自注意力模組(Self-Attention),另一層為前饋神經網路(Feed Forward Neural Network)。結構資料首先經過自注意力模組得到加權後的特徵向量Z,其中Z為公式(1)中的
。將得到的特徵向量Z作為前饋神經網路的輸入得到如式(2)所示的特徵向量
。
Decoder與Encoder的不同之處在於Decoder多了一個Encoder-Decoder注意力模組(Encoder-Decoder Attention),兩個Attention分別用於計算輸入和輸出的權值。在解碼器的第一個Self-Attention模組需新增序列掩碼,將特徵向量的某些值進行掩蓋,使解碼輸出僅依賴於當前時刻之前的輸出。為了能夠使得Decoder中的每一項都能夠有重點的利用到編碼器中所有單詞的資訊,在Decoder的Self-Attention模組之後,增加了Encoder-Decoder Attention模組。
ViT: Transformers for Image Recognition at Scale
ViT[6]是在谷歌在2020年提出的將Transformer直接應用於影像分類的模型,該模型結構如圖1所示。ViT的Embedding過程如下:輸入的2D影像記作
,其中H和W分別表示輸入影像的高和寬,C表示通道數;透過切塊操作得到一系列的影像塊記作
,其中
;接著將影像塊展平至大小為
的1D特徵向量;然後透過線性變換將影像塊對映到維度D記為
。由於ViT的自注意力模組(Self-Attention)具有置換不變性,為了降低模型的學習成本,ViT採用可學習的positional embedding來編碼影像塊的位置資訊。除此之外,ViT增加了一個特殊的class embedding,
最終將patch embedding和class embedding進行拼接後與positional embedding求和作為Transformer Encoder的輸入。
ViT的Transformer Encoder由6個Self-attention以及FFN堆疊而成。對於給定的query向量
,透過內積計算來匹配N個key向量
,得到的內積透過softmax函式歸一化得到N個權重,則對於query而言Attention的輸出實際為N個key向量(
)對應的value向量(
)的加權平均值。對於N個query向量(
),透過矩陣運算的Attention輸出如公式(1)所示。
ViT的模型公式表達見公式(3)、(4)、(5)和(6)。
表示Transformer Encoder的輸入embedding,包括patch embedding、positional embedding和class embedding。
和
分別表示MSA和MLP的輸出。公式(4)是對class embedding對應的輸出做layer norm,最終進行影像分類。
ViT定義了三種不同大小的模型,模型中引數資訊如表1所示。
表1 Vision Transformer 不同模型引數資訊[6]
實驗結果表明:當ViT直接在ImageNet上訓練時,同水平的ViT模型效果要比ResNet差,但如果規模較大的資料集上預訓練後微調,模型效果可以超越ResNet。例如ViT在Google的300M JFT資料集上預訓練後,在ImageNet上的最高Top-1 acc可達88.55%。
ViT是基於影像層面將標準的Transformer遷移於CV領域的創新性嘗試。ViT直接應用標準的Transformer,類比NLP自然語言處理的tokens,將輸入影像取patch操作並將patch embedding和class embedding進行拼接後與positional embedding求和作為Transformer Encoder的輸入來完成有監督的影像分類任務。在沒有引入任何的卷積操作到模型中的情況下,取得了不錯的分類效果:中等規模的資料集上分類準確率略弱於CNN,大規模資料集上效能更佳。一方面可以看出,ViT充分展示了Transformer模型的通用性,併為後續Encoder-Decoder結構的研究指明瞭道路。另一方面,ViT受資料集規模影響較大,需要先在大規模資料集上進行預訓練後,再遷移到目標資料集上獲得較好的分類效果。
Perceiver: General Perception with Iterative Attention
Google DeepMind在2021年發表了Perceiver: General Perception with Iterative Attention[7]這篇文章。目前大多數AI方法,都是侷限在“單模態”上,如限於NLP語言,或是限於語音,亦或是限於影像。Perceiver作為更加接近人類感知的演算法,在不需要改變模型結構的前提下處理多模態資料。與ViT不同的是,Perceiver直接在影像的畫素層面進行注意力計算,其模型結構如圖2所示。模型總體上由兩大基礎結構組成:交叉注意力機制(cross-attention)和Transformer 編碼器(latent transformer)。
圖2 基於注意力機制的Perceiver模型架構示意圖[7]
交叉注意力機制(cross-attention)的結構可參考Transformer解碼器的多頭注意力機制。輸入向量(byte array)由按畫素層面展開為1D得到,類比標準Transformer的input,向量長度為M。隱向量(latent array)由隨機初始化得到,類比標準Transformer的output,向量長度為
,N為自定的超引數。輸入向量透過MLP獲得K和V向量,隱向量也透過MLP獲得Q向量。Q、K、V透過交叉注意力機制融合後得到長度為N的隱向量,這樣將原始輸入資料的長度M降低為隱向量的長度N。
可以理解為,隱向量的獲得Q向量多次與輸入向量進行區域性匹配,從而實現對輸入向量的壓縮。對標準的Transformer而言,直接對畫素層面的影像輸入進行Attention計算時具有平方複雜度。即一張影像展開為1D向量後的長度為M,需要產生向量
,
,
,此時Attention機制中
的計算複雜度為
。而Perceiver的交叉注意力機制引入非對稱Q、K、V,即K(
)和V(
)來自byte array,而Q(
)來自latent array,此時Attention機制中
的計算複雜度為
。這使得模型直接處理原始大小的影像成為可能。
Transformer 編碼器(latent transformer)包括Multi-head self-attention和FFN。隱向量先經過交叉注意力機制更新,在經過latent transformer更新。由於經過交叉注意力機制處理後的向量長度變為
,再進行Attention計算時的時間複雜度為
。相比於標準的Transformer,複雜度由
下降到
,複雜度大大降低。雖然透過從輸入向量中提取K、V向量再送入交叉注意力機制可達到降維目的,但是這樣的操作會限制模型從輸入資料中捕捉足夠的資訊。這樣多個堆疊的cross-attention和latent transformer這樣的結構迭代地從輸入資料中獲取資訊,相鄰的cross-attention或者相鄰的latent transformer之間進行引數共享,大大提高了引數利用率。
Perceiver將不同模型在ImageNet資料集上進行了分類實驗,發現在沒有引入任何先驗知識的條件下,Perceiver的Top-1分類準確率可以達到最高。同時將資料集中影像的畫素分別做相同規則打亂和隨機打亂,比較不同模型在不同打亂方式下的Top-1分類準確率。結果表明,當對影像中的畫素進行隨機打亂時,其餘方法的效能大幅度下降,只有基於Transformer和Perceiver方法的效能趨於穩定,並且基於Perceiver方法的Top-1分類準確率可高達76.4%。作者比較了不同模型在AudioSet 資料集上的目標檢測的mAP,結果表明不論在單獨使用影片或音訊,以及兩者結合使用,Perceiver都達到了最好的結果。最後,實驗分析了不同模型在Model-Net40點雲資料集上的分類準確率,得出了在不引入任何額外的幾何特徵和增強技術的條件下,Perceiver在Model-Net40點雲資料集中分類效果是最佳的結論。
一方面與大多數Vision Transformer對原始輸入訊號的處理方式不同的是,Perceiver直接在影像的畫素層面進行注意力計算。Perceiver的交叉注意力機制引入非對稱Q、K、V,即K和V向量來自byte array,而V向量來自latent array,此時Attention機制的計算複雜度為
,這使得模型可直接處理原始大小的影像。交叉注意力機制將高維輸入向量對映為低維隱向量,Transformer編碼器將該低維隱向量的特徵空間對映到同維度的另一特徵空間,與標準的Transformer相比,時間複雜度大大降低。
另一方面,雖然Perceiver引入非對稱機制可以在一定程度上降低計算複雜度,但該操作會限制模型從輸入資料中捕捉足夠的資訊。所以Perceiver堆疊了多個cross-attention和Transformer的模組不斷迭代來充分挖掘輸入向量的資訊。總體來說,Perceiver在幾乎沒有做任何關於輸入資料之間關係的結構性假設的前提下,可以擴充套件處理多種模態的高維資料。該方法的提出不僅提供處理多模態資料的新思路,也是對已有的Vision Transformer的進一步擴充套件。
本文就ViT及Perceiver討論了Visual Transformer類模型的特點,並對Visual Transformer的未來研究方向進行探討。總體來說,Transformer憑藉其與 CNN 相比的效能競爭力和巨大潛力,正在成為計算機視覺領域的熱門話題。目前大多數應用都保留了Transformer在NLP任務中的原始形態,這一形態在未來是否會有更加適合視覺任務的改進版本尚且未知。除此之外,Transformer需要先在大規模資料集上進行預訓練後,再遷移到目標資料集上獲得較好的效果。未來Visual Transformer模型可能朝向通用性的模型框架發展,強調效能的同時進行高效的部署與執行。
[1] Ashish Vaswani, Noam Shazeer, NikiParmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. Attention is all you need. Advances in neural information processing systems, 30:5998–6008, 2017.
[2] Jacob Devlin, Ming-Wei Chang, KentonLee, and Kristina Toutanova. Bert: Pre-training of deep bidirectional transformers for language understanding. In NAACL-HLT (1), 2019.
[3] Tom B Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, PranavShyam, Girish Sastry, Amanda Askell, et al. Language models are few-shot learners. arXiv preprint arXiv:2005.14165, 2020.
[4] Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, et al. Animage is worth 16×16 words: Transformers for image recognition at scale. arXiv preprintarXiv:2010.11929, 2020.
[5] Vaswani, Ashish, et al. "Attention is all you need."Advances in Neural Information Processing Systems. 2017.
[6] Dosovitskiy A, Beyer L, Kolesnikov A, et al. An Image is Worth 16×16 Words: Transformers for Image Recognition atScale[J]. 2020.
[7] Jaegle A, Gimeno F, Brock A, et al.Perceiver: General Perception with Iterative Attention[J]. 2021.
[8] Ying C, Cai T, Luo S, et al. Do Transformers Really Perform Bad for Graph Representation?[J]. arXiv preprint arXiv:2106.05234, 2021.