作者發(fā)現(xiàn)深層ViT出現(xiàn)的注意力崩潰問題,提出了新穎的Re-attention機制來解決观腊,而且計算量和內存開銷都很少铛绰。通過Re-attention機制,在增加ViT深度時能夠保持性能不斷提高
來源:曉飛的算法工程筆記 公眾號
論文: DeepViT: Towards Deeper Vision Transformer
[圖片上傳失敗...(image-320fda-1666536099045)]
Introduction
[圖片上傳失敗...(image-5546ca-1666536099045)]
? 作者在ViT上效仿CNN堆疊更多層來提升性能的做法泡垃,但如圖1所示,ViT的性能隨著層數(shù)的增加會快速飽和羡鸥。經(jīng)過深入研究蔑穴,作者發(fā)現(xiàn)這種縮放困難可能是由注意力崩潰問題引起。隨著網(wǎng)絡的深入惧浴,各層計算的注意力圖逐漸變得相似存和,甚至在某些層之后幾乎相同。這一事實表明衷旅,在ViT更深層中哑姚,self-attention機制無法有效地學習特征提取規(guī)律,阻礙了模型獲得預期的性能提升芜茵。
? 為了解決注意力崩潰問題并有效地擴展ViT的深度叙量,作者提出了簡單而有效的Re-attention方法。通過可學習的方式九串,該方法能夠在多頭自注意力(MHSA)的多個Head間進行信息交換绞佩,重新生成注意力圖寺鸥。重新生成的注意力圖能夠增加層的多樣性,而且額外增加的計算和內存成本可以忽略不計品山。
? 在沒有任何額外的數(shù)據(jù)增強和正則化策略的情況下胆建,只需用Re-attention替換ViTs中的MHSA模塊,就可以訓練非常深的ViT模型并得到相應的性能提升肘交,如圖2所示笆载。
? 總體而言,論文的貢獻如下:
- 深入研究ViT的行為涯呻,觀察到ViT不能像CNN那樣堆疊更多層中持續(xù)來提升性能凉驻,并且進一步確定了這種反直覺現(xiàn)象背后的根本原因為注意力崩潰。
- 提出了Re-attention复罐,一種簡單而有效的注意機制涝登,通過在不同注意頭之間的進行信息交換來生成新的注意力圖。
- 第一個在ImageNet-1k上成功從零開始訓練32層ViT并獲得相應的性能提升效诅,達到SOTA胀滚。
Revisiting Vision Transformer
[圖片上傳失敗...(image-2d6208-1666536099045)]
? ViT模型如圖2(a) 所示,由三個主要組件組成:用于Patch Embedding的線性層(即將高分辨率輸入圖像映射到低分辨率特征圖)乱投,用于特征編碼的多個包含MHSA和MLP的Transformer Block咽笼,用于分類分數(shù)預測的線性層。
[圖片上傳失敗...(image-4a215e-1666536099045)]
? 其中戚炫,最關鍵的MHSA層如公式1所示剑刑,也是Re-attention替換的目標。
Attention Collapse
? 作者對ViT隨深度增加而變化的性能進行了系統(tǒng)研究嘹悼。首先根據(jù)DeiT的設置將中間層維度和MHSA的Head數(shù)量分別固定為384和12叛甫,然后堆疊不同數(shù)量的transformer blocks(從12到32不等)來構建不同深度的ViT模型层宫。如前面所說的杨伙,作者驚訝地發(fā)現(xiàn)分類準確率會隨著模型的深入而緩慢提高并快速飽和,在使用24個transformer blocks后提升就停止了萌腿。這一現(xiàn)象表明限匣,現(xiàn)有的ViT難以從更深層次的架構中獲益。
? 這樣的問題非常違反直覺毁菱,也值得探索米死。在CNN的早期開發(fā)階段也觀察到了類似的問題(即如何有效地訓練深層模型),但后來被ResNet妥善解決了贮庞。通過更深入地研究transfromer的架構峦筒,作者認為自注意機制在ViT中起著關鍵作用,這使得它與CNN有顯著不同窗慎。因此物喷,作者首先研究自注意機制卤材,觀察其生成的注意力圖如何隨著模型的深入而變化
? 為了測量各層注意力圖的變化,需計算不同層注意力圖之間的相似度:
[圖片上傳失敗...(image-8c8655-1666536099045)]
? 其中峦失,是層p
和q
的注意力圖之間的余弦相似度矩陣扇丛,每個元素衡量headh
和tokent
對應的層間注意力圖的相似度。 是一個T維向量尉辑,表示輸入token序列t
對T
個輸出標記中的每一個的貢獻程度帆精。因此,提供了關于token的權重如何從p
層變化到q
層的度量手段隧魄。當等于1
時卓练,這意味著token序列t
在層p
和q
中對self-attention的作用完全相同。
[圖片上傳失敗...(image-d063c2-1666536099045)]
? 基于公式2堤器,將ImageNet-1k上預訓練32層ViT模型的所有注意力圖之間的相似性進行可視化昆庇。如圖3a所示,在第17層之后闸溃,相鄰層的注意力圖的相似度大于90%整吆,這表明后面學習的注意力圖都是相似的,即注意力崩潰問題辉川。
? 為了進一步驗證不同深度的ViT是否存在這種現(xiàn)象表蝙,我們分別對12、16乓旗、24和32層的ViT進行了相同的實驗府蛇,并計算了具有相似注意力圖的塊的數(shù)量。結果如圖3b所示屿愚,當添加更多層時汇跨,相似注意力圖的層數(shù)量與總層數(shù)的比率增加。
[圖片上傳失敗...(image-585f4-1666536099045)]
? 為了解注意力崩潰如何影響ViT模型的性能妆距,作者基于32層ViT模型穷遂,比較最終輸出特征與每個中間層輸出余弦相似度。結果如圖4所示娱据,學習到的特征在第20層之后停止變化蚪黑,而且注意力圖相似度的增加與特征相似度之間存在密切的相關性。這一觀察表明中剩,注意力崩潰是造成ViT不可擴展問題的根本原因忌穿。
Re-attention for Deep ViT
? 將ViT擴展到更深的一個主要障礙是注意力崩潰問題,作者提出了兩種解決方法结啼,一種是增加自注意計算的中間維度掠剑,另一種是Re-attention機制。
Self-Attention in Higher Dimension Space
? 克服注意力崩潰的一種直接解決方案是增加每個token的embedding維度郊愧。增加維度能夠增強每個token embedding的表達能力朴译,從而編碼更多信息沸伏,生成更加多樣化的注意力圖以及減少相似性。
[圖片上傳失敗...(image-f8d49e-1666536099045)]
[圖片上傳失敗...(image-7808d7-1666536099045)]
? 作者基于12層ViT進行了不同中間維度的快速實驗动分,維度范圍從256到768毅糟。如圖5和表1所示,增加embedding維度能夠減少具有相似注意力圖的層數(shù)以及緩解注意力崩潰澜公,模型性能也得到相應的提高姆另。這驗證了作者的核心假設,注意力崩潰是ViT擴展的主要瓶頸坟乾。盡管這個方法有效迹辐,但持續(xù)增加embedding維度會顯著增加計算成本,而且?guī)淼男阅芴嵘矔p弱甚侣。此外明吩,更大的模型通常需要更多的數(shù)據(jù)進行訓練,存在過擬合風險以及降低訓練效率殷费。
Re-attention
? 雖然不同transformer block之間的注意力圖的相似性很高印荔,但作者發(fā)現(xiàn)來自同一個Transformer block的不同Head的注意力圖的相似性非常小,如圖3c所示详羡。實際上仍律,同一自注意力層的不同Head主要關注輸入token的不同方面。于是作者打算建立Head間交互來重新生成注意力圖实柠,使得訓練的深層ViT的性能更優(yōu)水泉。
[圖片上傳失敗...(image-dbeeda-1666536099045)]
? Re-attention使用Head的注意力圖作為基礎,通過動態(tài)聚合生成一組新的注意力圖窒盐。為了實現(xiàn)這一點草则,首先定義一個可學習的變換矩陣,在乘以V
之前蟹漓,使用該矩陣混合多個Head的注意力圖重新生成新的注意力圖炕横。具體來說,Re-attention可定義為以下公式:
[圖片上傳失敗...(image-657ac9-1666536099045)]
? 其中變換矩陣沿Head
維度乘以自注意力圖A
牧牢,Norm
是歸一化函數(shù)看锉,用于減少每層的方差姿锭,是可端到端學習的塔鳍。
? Re-attention 的優(yōu)點有兩個:
- 與其他注意力增強方法相比(隨機丟棄注意力圖元素或調節(jié)
SoftMax
溫度),Re-attention利用Head之間的交互來收集互補信息呻此,可以更好地提高注意力圖的多樣性轮纫。 - Re-attention高效且易于實現(xiàn),與原始的自注意力相比焚鲜,只需要幾行代碼和可忽略不計的計算開銷掌唾,比增加嵌入維度的方法更高效放前。
?
Experiments
[圖片上傳失敗...(image-279349-1666536099045)]
? 實驗的基礎模型配置,輸入圖片大小都是224x224
。
More Analysis on Attention Collapse
-
Attention reuse
? 作者在24層和32層ViT模型上進行注意力復用的實驗,將一個block的的注意力圖直接共享給之后的所有塊淘邻,block的選擇為最后一個注意力圖與相鄰層的相似度小于90%的block浴滴。更多實現(xiàn)細節(jié)可以在補充材料中找到。
[圖片上傳失敗...(image-27a2e8-1666536099045)]
? 結果如表3所示蒲凶,共享注意力圖的性能下降并不明顯,這意味著注意力崩潰問題確實存在。當模型很深時炒辉,添加更多層的效率低下。
-
Visualization
[圖片上傳失敗...(image-650d8a-1666536099045)]
? 原始MHSA和Re-attention的注意力圖可視化如圖6所示泉手。原始的MHSA學在較早層中主要關注相鄰token之間的局部關系黔寇,并且隨著層的深入逐漸覆蓋更多token,最后在深層中具有高度相似性全局平均注意力圖斩萌。在添加Re-attention后缝裤,深層的注意力圖保持了多樣性,并且與相鄰層具有較小的相似性
Analysis on Re-attention
-
Re-attention v.s. Self-attention
[圖片上傳失敗...(image-9d2843-1666536099045)]
? 不同層數(shù)ViT上替換Re-attention對比颊郎。
-
Comparison to adding temperature in self-attention
[圖片上傳失敗...(image-961786-1666536099045)]
? 對比不同的緩解注意力圖平滑問題的策略倘是。
-
Comparison to dropping attentions
[圖片上傳失敗...(image-9d4375-1666536099045)]
? 對比注意力圖dropout以及溫度調節(jié)對相似性的影響。
Comparison with other SOTA models
[圖片上傳失敗...(image-e527c1-1666536099045)]
? 對比SOTA方法袭艺。
Conclusion
? 作者發(fā)現(xiàn)深層ViT出現(xiàn)的注意力崩潰問題搀崭,提出了新穎的Re-attention機制來解決,而且計算量和內存開銷都很少猾编。通過Re-attention機制瘤睹,在增加ViT深度時能夠保持性能不斷提高。
?
?
?
如果本文對你有幫助答倡,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的算法工程筆記】