Benchmarking Detection Transfer Learning with Vision Transformers(2021-11)
這篇文章是何凱明在MAE之后關于純transformer架構用于目標檢測下游任務的探索,在MAE最后有所提及,之后還有一篇文章ViTDET一脈相承。對于VIT架構用于視覺任務帶來了很多啟發。
簡介
目標檢測作為一個中心的下游任務經常用來測試預訓練模型的性能,例如訓練速度或者精度等。當新的架構如VIT出現時,目標檢測任務的復雜性使得這種基準測試變得更加重要。事實上,一些困難(如架構不兼容、訓練緩慢、內存消耗高、未知的訓練公式等)阻礙了VIT遷移到目標檢測任務研究。論文提出了使用VIT作為Mask RCNN backbone,實現了最初的研究目的:作者對比了五種VITs初始化,包括自監督學習方法、監督初始化以及較強的隨機初始化baseline。
無監督/自監督深度學習是常用的預訓練方法用來初始化模型參數,之后他們遷移到下游任務,例如圖像分類和目標檢測進行finetune。無監督算法的有效性常常使用下游任務的指標(精度度、收斂速度等)來衡量與baseline作一個比較,例如有監督預訓練或者 從頭訓練的網絡(不適用預訓練).
視覺領域的無監督深度學習通常使用CNN模型,因為CNNs廣泛用于大部分下游任務,因此基準原型很容易被定義,可以將使用CNN的無監督算法視為一種即插即用的參數初始化模型。
論文使用Mask RCNN框架評估ViT模型在目標檢測和語義分割領域COCO數據集上的性能,對ViT作最小程度的修改,保留它的簡單、靈活的特性。
結論
論文給出了在Mask RCNN架構中使用VIT基礎模型作為backbone的有效方法。這些方法在訓練內存和時間上都可以被接受,同時沒有使用太多復雜擴展的情況下實現了COCO的強大效果。
- 得到了有效的訓練公式,能夠對五種不同的ViT初始化方法進行基準測試。實驗表明,Random initation花費的時間比任何pre-training 的初始化都要長4倍,但獲得了比ImageNet-1k監督前訓練更高的AP。MoCo v3,對比無監督學習的代表性算法,表現出了與監督預訓練幾乎相同的性能(但比隨機初始化更差)。
- 重要的是,一個令人興奮的新結果:基于mask的方法(BEiT和MAE)在監督和隨機初始化方面顯示出了相當可觀的增益,這些增益隨著模型大小的增加而增加。基于supervise的初始化和基于MoCo v3的初始化都沒有觀察到這種sacling 行為。
VIT backbone
使用ViT 作為Mask RCNN 的backbone有兩個問題:
針對第1點:
為了適應FPN的多尺度輸入,對ViT中間層產生的feature map通過四個不同分辨率的模塊進行上采樣或者下采樣產生多尺度特征,如上圖所示綠色module,這四個模塊之間的間隔都為d4\fracze8trgl8bvbq{4}4d?,ddd是transformer blocks的數目,也就是等間隔劃分。
- 第一個綠色module,通過使用兩個stride-two 的2×22 \times 22×2的轉置卷積對特征映射進行4倍上采樣,首先使用一個2×22 \times 22×2轉置卷積,然后通過Group Normaliztion ,再經過一個Gelu非線性函數,接著再使用一個stride-two 2×22 \times 22×2轉置卷積.
- 接下來的d4\fracze8trgl8bvbq{4}4d?block 采用一個stride-two2×22 \times 22×2轉置卷積進行2倍上采樣,不使用歸一化和非線性函數。
- 第三個d4\fracze8trgl8bvbq{4}4d?block 輸出不做任何變化
- 最后一個block進行stride為2 的2×22 \times 22×2的max pooling 兩倍下采樣。
這些module,每一個都保留了ViT的Embeding/channel 維度,對于一個size =16 的patch 來說產生的feature map stride 分別為4,8,16,32,然后輸入FPN。(因為原始的ViT 產生的feature 大小為input 116\frac{1}{16}161?,上采樣下采樣后就是論文所說的大小)
針對第2點:
ViT中每一個self-attention計算具有O(h2w2)O(h^2w^2)O(h2w2)的空間復雜度,以及把圖像展開成不重疊的h×wh \times wh×w的patches花費的時間。
在預訓練的時候這種復雜度是可控的,因為一般圖像大小為224×224224 \times 224224×224,patch大小為161616,h=w=14h=w=14h=w=14這是典型設置。但是在目標檢測下游任務中,標準圖像大小為1024×10241024 \times 10241024×1024,這通常是預訓練像素以及patch的20倍大,這么大的分辨率也是為了檢測較大和較小目標所需要的。因此這種情況下,即使是以ViT-base作為Mask RCNN的backbone,在小批量和半精度浮點數的情況下通常也需要消耗20-30GB的GPU內存。
為了減少空間和時間復雜度,采用受限制的self-attention(也叫 windowed self-attention)(來源于attention is all you need ,沒印象,要去查一下,第一印象是Swin的window attention)。將h×wh \times wh×w的拼接圖像劃分為r×rr \times rr×r個不重疊的窗口,在每個窗口單獨計算self-attention。這種windowed self-attention 擁有O(rh2w2)O(rh^2w^2)O(rh2w2)的空間和時間復雜度。設置 r 為全局自注意力的尺寸,典型值為14。(共有hr×wr個windows,每個window擁有O(r2)復雜度\frac{h}{r} \times \frac{w}{r}個windows,每個window擁有O(r^2)復雜度rh?×rw?個windows,每個window擁有O(r2)復雜度)。
這種做法的一個副作用就是window之間沒有跨窗口信息交互,因此采用了一種混合方法,就像圖中所示,包含4個全局自注意力模塊,與FPN相吻合,這里也就是作者所說的添加額外部分使VIT產生多尺度特征。
對Mask RCNN module的修改
修改代碼位于:https://github.com/facebookresearch/detectron2/blob/main/MODEL_ZOO.md #new-baselines-using-large-scale-jitter-and-longer-training-schedule
采用不同預訓練方法的差異
實驗部分
- 初始化方法的比較,隨機初始化是沒有預訓練的。
- finetune epoch 從25-400的收斂比較,可以看到任何一種方法收斂都要比隨機初始化快,并且各種方法取得的AP各不相同,其中MAE與BeiT類似,但顯然ViT-B比起ViT-L 與BeiT的差距更大,這是隨著模型尺寸增大而增大的,表明他們具有很強的伸縮性。
大部分方法在長時間訓練后,都表現出了過擬合跡象,AP值有所下降,同時觀察到隨機初始化方法的AP要高于MoCo V3 和有監督的IN1k,這是因為COCO數據集對于遷移學習來說是一個有挑戰性的設置,因此隨機初始化可能取得較好的性能。MAE和BEiT提供了第一個令人信服的結果,基于預訓練COCO AP得到極大改善,并且隨著模型尺寸增大AP還有很大的提升潛能。
消融實驗
- 基于FPN的多尺度以及單一尺度的變種 對比。
- 減少時間和內存消耗的策略對比,有四種方案。
第二個方案在精度和訓練時間以及內存方面取得較好的平衡,令人驚訝的是全部使用window attention表現并沒有那么糟糕。這可能是由于卷積操作引入的跨窗口計算以及在Mask R-CNN的RoI Align的其余部分導致的。
- 位置信息的影響。
-在BEiT中VIT被修改為在每一個transformer block中使用realtive positional bias,而不是添加absolute positional Embeeding 到Patch embeeding。這種選擇是一種正交增強,其他預訓練方法都沒有使用。
為了公平比較,默認在所有微調模型中包括relative positional bias(和絕對位置嵌入)。
表格中含義
relative position biases (rel)
absolute position embeddings (abs)
pt: initialized with pre-trained values;
rand: random initialization;
zero: initialized at zero;
no: this positional information is not used in the fine-tuned model
- 預訓練epoch的影響。隨著epoch增大,AP也增大。
- 繪制了ΔAPbox@0.5\Delta AP^{box}@0.5ΔAPbox@0.5的指標。每一條代表修正某種錯誤后可以提升的APAPAP值。
cls:定位正確(IoU>0.5),分類錯誤
loc:分類正確但是定位錯誤 (IoU in [0.1, 0.5))
cls+loc: 分類和定位都出錯
dup: detection would be correct if not for a higher scoring correct detection
bg: detection is in the background (IoU <0.1)
miss: all undetected ground-truth objects not covered by other error types.
基于mask的方法(MAE /BEiT)比起MoCo V3和有監督初始化方法有更少的定位錯誤,漏檢次數也更少。
- 模型復雜度。從頭開始訓練時,ResNet101 與ViT-B都取得了48.9APboxAP^{box}APbox,在訓練中VIT-B訓練200個epoch就達到了峰值,ResNet-101要400個epoch.ResNet-101的fps明顯更快。
總結
以上是生活随笔為你收集整理的Benchmarking Detection Transfer Learning with Vision Transformers(2021-11)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国超声诊断仪市场研究与未来预测报告(2
- 下一篇: 好文分享:Google的潘多拉星球