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