ResNet被全面超越了,是Transformer干的:依圖科技開源“可大可小”T2T-ViT,輕量版優於MobileNet


 

 


 

  磐創AI分享  

來源 | 極市平台

作者 | Happy

審稿 | 鄧富城

 

【導讀】又一篇Transformer來了!本文在ViT方面進行了一次突破性探索,提出了首次全面超越ResNet,甚至輕量化版本優於MobileNet系列的T2T-ViT。

 

本文是依圖科技在ViT方面的一次突破性的探索。與之前ViT、Detr、Deit等不同之處在於:本文針對ViT的特征多樣性、結構化設計等進行了更深入的思考,提出了一種新穎的Tokens-to-Token機制,用於同時建模圖像的局部結構信息與全局相關性,同時還借鑒了CNN架構設計思想引導ViT的骨干設計。最終,僅僅依賴於ImageNet數據,而無需JFT-300M預訓練,所提方案即可取得全面超越ResNet的性能,且參數量與計算量顯著降低;與此同時,在輕量化方面,所提方法只需簡單減少深度與隱含層維度即可取得優於精心設計的MobileNet系列方案的性能。強烈推薦各位同學研究一下該文。

 

前言

語言模型中主流的Transformer已經開始對CV任務開始了降維打擊,比如目標檢測中NETR,low-level任務中的IPT,圖像分類任務中的ViT與DeiT等等。ViT方案首先將輸入圖像拆分為定長的tokens序列,然后采用多個Transformer層對其進行全局相關性建模並用於圖像分類。但ViT背靠比ImageNet更大的訓練取得了優於純CNN的性能,但如果僅采用ImageNet的話,其性能反而不如CNN方案。

作者通過分析發現:(1) 輸入圖像的簡單token化難以很好的建模近鄰像素間的重要局部結構(比如邊緣、線條等),這就導致了少量樣本時的低效性;(2) 在固定計算負載與有限訓練樣本約束下,ViT中的冗余注意力骨干設計限制了特征的豐富性。可參考下圖:

圖片

ResNet50可以逐步捕獲到期望的局部結構(比如邊緣、線條、紋理等),然而ViT的結構建模信息較差,反而全局相關性被更好的獲取。與此同時,可以看到:ViT的特征中存在零值,這導致其不如ResNet高效,限制了其特征豐富性

為克服上述局限性,作者提出了一種新的Tokens-to-Token Vision Transformer,T2T-ViT,它引入了(1) 層級Tokens-to-Token變換通過遞歸的集成近鄰Tokens為Token將漸進的將圖像結構化為tokens,因此局部結構可以更好的建模且tokens長度可以進一步降低;(2) 受CNN架構設計啟發,設計一種高效的deep-narrow的骨干結構用於ViT。

相比標准ViT,所提T2T-ViT的參數量與MACs可以減低200%,並取得2.5%的性能提升(注僅用ImageNet從頭開始訓練);所提T2T-ViT同樣取得了優於ResNet的性能,比如,在ImageNet數據集上,T2T-ViT-ResNet50取得了80.7%的Top1精度。可參考下圖。

圖片

總而言之,本文的主要貢獻包含以下幾個方面:

  • 首次通過精心設計Transformer結構在標准ImageNet數據集上取得了全面超越CNN的性能,而無需在JFT-300M數據進行預訓練;
  • 提出一種新穎的漸進式Token化機制用於ViT,並證實了其優越性,所提T2T模塊可以更好的協助每個token建模局部重要結構信息;
  • CNN的架構設計思想有助於ViT的骨干結構設計並提升其特征豐富性、減少信息冗余。通過實驗發現:deep-narrow結構設計非常適合於ViT。

T2TViT方法簡介

前面對ViT存在的問題以及本文的主要改進思路進行了簡單的介紹,接下來我們將着重針對本文所提的T2T、deep-narrow骨干設計進行重點介紹與分析。

Tokens-to-Token

Tokens-to-Token(T2T)模塊旨在克服ViT中簡單Token化機制的局限性,它采用漸進式方式將圖像結構化為token並建模局部結構信息;而Tokens的長度可以通過漸進式迭代降低,每個T2T過程包含兩個步驟:Restructurization與SoftSplit,見下圖。

圖片

Re-structurization

如上圖所示,給定Tokens序列T,將通過自注意力模塊對齊進行變換處理,可以描述為:

注:MSA表示多頭自注意力模塊,MLP表示多層感知器。經過上述變換后,Tokens將在空間維度上reshape為圖像形式,描述如下:

注:Reshape表示將轉換為。

Soft Split

正如上圖所示,在得到重結構化圖像I后,作者對其進行軟拆分操作以建模局部結構信息,降低Tokens長度。為避免圖像到tokens過程中的信息損失,將圖像拆分為重疊塊,也就是說:每個塊將與近鄰塊之間構建相關性。每個拆分塊內的Token將通過Concat方式變換為一個Token(即Tokens-to-Token),因此可以更好的建模局部信息。作者假設每個塊大小為,重疊尺寸為s,padding為p,對於重建圖像,其對應的輸出Token可以表示為如下尺寸:

注:每個拆分塊尺寸為。最后將所有塊在空域維度上flatten為Token。這里所得到的輸出Token將被送入到下一個T2T處理過程。

T2T module

通過交替執行上述Re-structurization與Soft Split操作,T2T模塊可以逐漸的減少Token的長度、變換圖像的空間結構。T2T模塊可以表示為如下形式:

對於輸入圖像,作者采用SoftSplit操作將其拆分為Token:。在完成最后的迭代后,輸出Token具有固定IG長度,因此T2T-ViT可以在上建模全局相關性。

另外,由於T2T模塊中的Token長度要比常規形式的更大,故而MAC與內存占用會非常大。為克服該局限性,在T2T模塊中,作者設置通道維度為32(或者64)以降低MACs。

T2T-ViT Backbone

由於ViT骨干中的不少通道是無效的,故而作者計划設計一種高效骨干以降低冗余提升特征豐富性。T2T-ViT將CNN架構設計思想引入到ViT骨干設計以提升骨干的高效性、增強所學習特征的豐富性。由於每個Transformer具有類似ResNet的跳過連接,一個最直接的想法是采用類似DenseNet的稠密連接提升特征豐富性;或者采用Wide-ResNet、ResNeXt結構改變通道維度。本文從以下五個角度進行了系統性的比較:

  • Dense Connection,類似於DenseNet;
  • Deep-narrow vs shallow-wide結構,類似於Wide-ResNet一文的討論;
  • Channel Attention,類似SENet;
  • More Split Head,類似ResNeXt;
  • Ghost操作,類似GhostNet。

結合上述五種結構設計,作者通過實驗發現:(1) Deep-Narrow結構可以在通道層面通過減少通道維度減少冗余,可以通過提升深度提升特征豐富性,可以減少模型大小與MACs並提升性能;(2) 通道注意力可以提升ViT的性能,但不如Deep-Narrow結構高效。

基於上述結構上的探索與發現,作者為T2T-ViT設計了Deep-Narrow形式的骨干結構,也就是說:更少的通道數、更深的層數。對於定長Token,將類Token預期Concat融合並添加正弦位置嵌入(Sinusoidal Position Embedding, SPE),類似於ViT進行最后的分類:

T2T-ViT Architecture

圖片

上圖給出了T2T-ViT的網絡結構示意圖,它包含T2T模塊與T2T骨干兩部分。上圖給出了n=2的結構示意圖(即n+1=3個soft split,n個Re-structurization)。每個Soft Split的塊大小分別為[7,3,3],重疊為[3,1,1]。

圖片

為更好的與常見手動設計CNN進行對比,作者設計了不同復雜度的T2T-ViT模型,見上表。比如對標ResNet50的T2T-ViT-14,對標ResNet101的T2T-ViT-19,對標ResNet152的T2T-ViT-24,對標MobileNetV1、MoblieNetV2的T2T-ViT-7,T2T-ViT-10,T2T-ViT-12。

 

實驗

為更好說明所提方案的有效性,將其與ViT進行了對比,結果見下表。從表中數據可以看到:相比ViT,所提方案具有更少的參數量、MAC,但取得了更高的性能

圖片

下表給出了所提方案與ResNet的對比。從中可以看到:在相同模型大小與MACs約束下,所提方案能夠以1%-2.5%的性能優勢超過ResNet

圖片

與此同時,本文還給出了所提方案與輕量化網絡MobileNet系列的對比,見下表。可以看到:在輕量化網絡層面,所提方案可以取得比MobileNet系列更好的性能。注:由於MobileNet系列采用了高效卷積(Depthwise)操作導致其計算量要比T2T-ViT稍低,而T2T-ViT的設計則更為簡單,只需要調整深度、隱含層維度即可得到不同計算量的模型。

圖片

最后還給出了不同CNN結構設計思想在T2T-ViT的性能對比,見下表。

圖片

從上表可以看到:

  • 無論是SE還是Deep-Narrow結構有益於T2T-ViT,但Deep-Narrow結構設計更為有效;
  • 稠密連接會損害ViT和T2T-ViT的性能;
  • SE有助於提升ViT與T2T-ViT的性能;
  • ResNeXt結構與ViT與T2T-ViT的影響非常小,幾乎可以忽略;
  • Ghost可以進一步壓縮T2T-ViT的模型大小、降低MACs,但會造成性能的下降。

圖片

最后的最后,本文還對所提T2T模塊與Deep-Narrow結構設計進行了消融分析,結果見上表。從中可以看到:(1) T2T模塊比卷積更優,這是因為它可以同時建模全局相關性與結構信息;(2) 相比Shallow-Wide結構,Deep-Narrow結構可以帶來2.9%的性能提升

全文到此結束,更多消融實驗分析建議好看原文,筆者強烈建議對Transformer感興趣的同學研究一下該文,文中不少思想值得各位思考與借鑒。

 

代碼

開源的才是好工作,在paper放出來之前先開源的更是好工作。就在昨天,依圖科技就將T2T-ViT相關code與預訓練模型在github上進行了開源。

在極市平台公眾號后台回復:T2TViT,即可獲得上述論文、code以及預訓練模型下載鏈接。

◎作者檔案
Happy,一個愛“胡思亂想”的AI行者個人公眾號:AIWalker歡迎大家聯系極市小編(微信ID:fengcall19)加入極市原創作者行列

 

圖片

 

掃碼看好書,滿100減50超值優惠活動等你哦

圖片

✄------------------------------------------------

看到這里,說明你喜歡這篇文章,請點擊「在看」或順手「轉發」「點贊」。

歡迎微信搜索「panchuangxx」,添加小編磐小小仙微信,每日朋友圈更新一篇高質量推文(無廣告),為您提供更多精彩內容。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM