何愷明團隊最新研究:定義ViT檢測遷移學習基線
點擊下方“AI算法與圖像處理”,一起進步!
重磅干貨,第一時間送達
導讀
?本文是FAIR的何愷明團隊關于ViT在COCO檢測任務上的遷移學習性能研究。它以Mask R-CNN作為基線框架,以ViT作為骨干網絡,探索了不同初始化策略對于模型性能的影響。實驗表明:masking機制的無監(jiān)督學習機制(如MAE、BEiT)首次在COCO檢測任務遷移學習中取得了令人信服的性能提升?。

論文鏈接:https://arxiv.org/abs/2111.11429
本文是FAIR的何愷明團隊關于ViT在COCO檢測任務上的遷移學習性能研究。它以Mask R-CNN作為基線框架,以ViT作為骨干網絡,探索了不同初始化策略對于模型性能的影響;與此同時,為盡可能保證對比的公平性,還對不同超參數(shù)進行了大量的實驗;此外,為將ViT作為多尺度模式,參考XCiT對ViT不同部分的特征進行尺度調整以達成多尺度特征輸出;為使得ViT模型能處理大分辨率圖像,還對ViT的架構進行了改進,引入了全局與局部自注意力機制,進一步提升了模型性能取得了更佳的均衡。該文的一系列實驗表明:masking機制的無監(jiān)督學習機制(如MAE、BEiT)首次在COCO檢測任務遷移學習中取得了令人信服的性能提升 。
Abstract
為測試預訓練模型能否帶來性能增益(準確率提升或者訓練速度提升),目標檢測是一個常用的且非常重要的下游任務。面對新的ViT模型時,目標檢測的復雜性使得該基線變得尤為重要(non-trivial )。然而架構不一致、緩慢訓練、高內存占用以及未知訓練機制等困難阻礙了標準ViT在目標檢測任務上的遷移學習。
本文提出了訓練技術以克服上述挑戰(zhàn),并采用標準ViT作為Mask R-CNN的骨干。這些工具構成了本文的主要目標:我們比較了五種ViT初始化,包含SOTA自監(jiān)督學習方法、監(jiān)督初始化、強隨機初始化基線。
結果表明:近期提出的Masking無監(jiān)督學習方法首次提供令人信服的遷移學習性能改善 。相比監(jiān)督與其他自監(jiān)督預訓練方法,它可以提升 指標高達4% ;此外masking初始化具有更好的擴展性,能夠隨模型尺寸提升進一步提升其性能。
Method
因其在目標檢測與遷移學習領域的無處不在性,我們采用Mask R-CNN作為基線方案。該選擇也旨在對簡潔性與復雜性進行均衡,同時提供具有競爭力(也許并非SOTA)的結果。相比原始版本,我們?yōu)镸ask R-CNN提供了不同的改進模塊與訓練方案。
ViT Backbone
接下來,我們將解決如下兩個ViT作為Mask R-CNN骨干的技術障礙
如何與FPN適配;
如何降低內存占用與推理耗時。
FPN Compatibility ?Mask R-CNN可以與輸出單尺度特征的骨干,也可與輸出多尺度特征(多尺度特征將被送入FPN處理)的骨干協(xié)同工作。由于FPN能夠提供更好的檢測結果,故我們采用了FPN方案。
然而,采用FPN存在這樣一個問題:ViT僅輸出單尺度特征,而非CNN的多尺度特征 。為解決該問題,我們采用了XCiT中的技術對ViT中間特征進行上/下采樣以提供四種不同分辨率的特征(可參見上面圖示綠框部分)。
第一個模塊采用兩個stride=2的轉置卷積進行4倍上采樣;第二個模塊采用一個stride=2的轉置卷積進行2倍上采樣;第三個模塊不做任何處理;最后一個模塊采用stride=2的MaxPool進行下采樣。
假設塊尺寸為16,這些模塊將輸出stride分別為4、8、16、32的特征并被送入到FPN中。
注:Swin與MViT通過修改VIT架構解決了ViT無法輸出多尺度特征的問題。這種處理方式也是一個重要的研究方向,但它與ViT的簡單設計相悖,會阻礙新的無監(jiān)督學習(如MAE)探索。因此,本文僅聚焦于上述生成多尺度特征的改動方式。
Reducing Memory and Time Complexity ?采用ViT作為Mask R-CNN的骨干會導致內存與耗時挑戰(zhàn)。ViT中的每個自注意力操作會占用空間。
在預訓練過程中,該復雜度是可控的()。而在目標檢測中,標準圖像尺寸為,這就需要近21倍多的像素和圖像塊,這種高分辨率用于檢測小目標。由于自注意力的復雜度,哪怕基線ViT-B也需要占用20-30G GPU顯存(batch=1,F(xiàn)P16) 。
為降低空間與時間復雜度,我們采用Windowed Self-attention,即局部自注意力,而非全局自注意力。我們將圖像塊拆分為非重疊窗口并在每個窗口獨立計算自注意力。這種處理方式可以大幅降低空間復雜度與時間復雜度,我們默認設置。
Windowed Self-attention的一個缺陷在于:骨干不能跨窗口聚合信息。針對此,我們每 隔模塊添加一個全局自注意力模塊 。
Upgraded Modules
相比原始Mask R-CNN,我們對其內置模塊進行了如下改動:
FPN中的卷積后接BN;
RPN中采用兩個卷積,而非一個卷積;
RoI分類與Box回歸頭采用四個卷積(帶BN)并后接一個全連接,而非原始的兩層MLP(無BN);
Mask頭中的卷積后接BN
Training Formula
相比原始訓練機制,我們采用了從頭開始訓練+更長訓練周期的訓練機制(如400epoch)。我們希望讓超參盡可能的少,同時抵制采用額外的數(shù)據(jù)增廣與正則技術。然而,我們發(fā)現(xiàn):DropPath對于ViT骨干非常有效(性能提升達2),故我們采用了該技術。
總而言之,訓練機制如下:
LSJ數(shù)據(jù)增廣(分辨率,尺度范圍[0.1,2.0]);
AdamW+Cosine學習率衰減+linear warmup
DropPath正則技術;
batch=64,混合精度訓練。
當采用預訓練初始時,微調100epoch;當從頭開始訓練時,訓練400epoch。
Hyperparameter Tuning Protocol
為使上述訓練機制適用于同模型,我對學習率lr、權值wd衰減以及drop path rate三個超參進行微調,同時保持其他不變。我們采用ViT-B+MoCoV3進行了大量實驗以估計合理的超參范圍,基于所得估計我們構建了如下調節(jié)機制:
對每個初始化,我們固定dp=0.0,對lr與wd采用grid搜索,固定搜索中心為,以此為中心搜索;
對于ViT-B,我們從中選擇dp(預訓練參數(shù)時,訓練50epoch;從頭開始時,則訓練100epoch),dp=0.1為最優(yōu)選擇;
對于ViT-L,我們采用了ViT-B的最后lr與wd,并發(fā)現(xiàn)dp=0.3是最佳選擇。
注:在訓練與推理過程中,圖像將padding到尺寸。
Initialization Methods
在骨干初始化方面,我們比較了以下五種:
Random:即所有參數(shù)均隨機初始化,無預訓練;
Supervised:即ViT骨干在ImageNet上通過監(jiān)督方式預訓練,分別為300和200epoch;
MoCoV3:即在ImageNet上采用無監(jiān)督方式預訓練ViT-B與ViT-L,300epoch;
BEiT:即采用BEiT方式對ViT-B與ViT-L預訓練,800epoch;
MAE:即采用MAE對ViT-B與ViT-L預訓練,1600eoch;
Nuisance Factors in Pre-training
盡管我們盡可能進行公平比較,但仍存一些“令人討厭”的不公因子:
不同的預訓練方法采用了不同的epoch;
BEiT采用可學習相對位置偏置,而非其他方法中的絕對位置嵌入;
BEiT在預訓練過程中采用了layer scale,而其他方法沒采用;
我們嘗試對與訓練數(shù)據(jù)標準化,而BEiT額外采用了dVAE。
Experiments&Analysis
上表比較了不同初始化方案的性能,從中可以看到:
無論何種初始化,采用ViT-B/L作為骨干的Mask R-CNN訓練比較平滑,并無不穩(wěn)定因素,也不需要額外的類似梯度裁剪的穩(wěn)定技術 ;
相比監(jiān)督訓練,從頭開始訓練具有1.4指標提升(ViT-L)。也即是說:監(jiān)督預訓練并不一定比隨機初始化更強;
MoCoV3具有與監(jiān)督預訓練相當?shù)男阅埽?/p>
對于ViT-B,BEiT與MAE均優(yōu)于隨機初始化與監(jiān)督預訓練;
對于ViT-L,BEiT與MAE帶來的性能提升進一步擴大,比監(jiān)督預訓練高達4.0.
上圖給出了預訓練是如何影響微調收斂的,可以看到:相比隨機初始化,預訓練初始化可以顯著加速收斂過程,大約加速4倍 。
Discussion
對于遷移學習來說,COCO數(shù)據(jù)集極具挑戰(zhàn)性。由于較大的訓練集(約118K+0.9M標準目標),當隨機初始化訓練時可以取得非常好的結果。我們發(fā)現(xiàn):
現(xiàn)有的方法(如監(jiān)督預訓練、MoCoV3無監(jiān)督預訓練)的性能反而會弱于隨機初始化基線方案 。
已有的無監(jiān)督遷移學習改進對比的均為監(jiān)督預訓練,并不包含隨機初始化方案;
此外,他們采用了較弱的模型,具有更低的結果(約40),這就導致:不確定如何將已有方法遷移到SOTA模型中。
我們發(fā)現(xiàn):MAE與BEiT提供了首個令人信服的COCO數(shù)據(jù)集上的指標提升 。更重要的是:這些masking方案具有隨模型大小提升進一步改善檢測遷移學習能力的潛力 ,而監(jiān)督預訓練與MoCoV3等初始化方式并無該能力。
Ablations and Analysis

上表對比了單尺度與多尺度版本Mask R-CNN的性能,從中可以看到:多尺度FPN設計可以帶來1.3-1.7指標提升 ,而耗時僅提升5-10%,多尺度內存占用提升小于1%。
上表對比了降低顯存與時間復雜度的不同策略,可以看到:
局部+全局的組合方式(即第二種)具有最佳的內存占用與耗時均衡;
相比純局部自注意力方式,全局自注意力可以帶來2.6指標提升。
上表比較了不同位置信息的性能對比,從中可以看到:
對于僅使用絕對位置嵌入的預訓練模型,在微調階段引入相對位置偏置可以帶來0.2-0.3指標提升;
預訓練相對位置偏置可以帶來0.1-0.3指標增益;
相對位置偏置會引入額外的負載:訓練與推理耗時分別增加25%和15%,內存占用提升15%。

上圖對比了預訓練周期對于性能的影響,可以看到:
在100-800epoch預訓練周期下,越多的預訓練周期帶來越高的遷移學習性能;
在800-1600epoch下,仍可帶來0.2指標的性能增益。
上圖給出了TIDE工具生成的誤差分析,可以看到:
對于正確定位的目標,所有的初始化可以得到相似的分類性能;
相比其他初始化,MAE與BEiT可以改善定位性能。
上表給出了不同骨干的復雜度對比(ViT-B與ResNet-101具有相同的性能:48.9),可以看到:
在推理耗時方面,ResNet-101骨干更快;
在訓練方面,ViT-B僅需200epoch即可達到峰值性能,而ResNet-101需要400epoch。
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有美顏、三維視覺、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群
個人微信(如果沒有備注不拉群!) 請注明:地區(qū)+學校/企業(yè)+研究方向+昵稱
下載1:何愷明頂會分享
在「AI算法與圖像處理」公眾號后臺回復:何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經典工作的總結分析
下載2:終身受益的編程指南:Google編程風格指南
在「AI算法與圖像處理」公眾號后臺回復:c++,即可下載。歷經十年考驗,最權威的編程規(guī)范!
下載3 CVPR2021 在「AI算法與圖像處理」公眾號后臺回復:CVPR,即可下載1467篇CVPR?2020論文 和 CVPR 2021 最新論文

