CVPR 2022|一文詳解MSRA提出的掩碼圖像建模的簡(jiǎn)單框架SimMIM

極市導(dǎo)讀
?SimMIM 是繼 BEiT 之后,MSRA 又提出的一個(gè) MIM 任務(wù)上的預(yù)訓(xùn)練 CV 模型。這個(gè)模型也是直接回歸預(yù)測(cè)原始像素 RGB 值,而不是像 BEiT 或者 iBOT 一樣重建 tokens。作者在這篇論文中想探討的是:究竟是什么使得 MIM 任務(wù)能夠使得目標(biāo)網(wǎng)絡(luò)能學(xué)到更好的 visual representation。?>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺(jué)的最前沿
深度了解自監(jiān)督學(xué)習(xí),就看這篇解讀 !Hinton團(tuán)隊(duì)力作:SimCLR系列
深度了解自監(jiān)督學(xué)習(xí),就看這篇解讀 !微軟首創(chuàng):運(yùn)用在 image 領(lǐng)域的BERT
深度了解自監(jiān)督學(xué)習(xí),就看這篇解讀 !何愷明新作MAE:通向CV大模型
本文目錄
1 SimMIM
1.1 SimMIM 方法概述
1.2 Masking Strategy
1.3 Encoder 結(jié)構(gòu)
1.4 Prediction head
1.5 Prediction target
1.6 Evaluation protocols
1.7 Masking strategy 對(duì)表征學(xué)習(xí)的影響
1.8 Projection head 對(duì)表征學(xué)習(xí)的影響
1.9 Projection resolution 對(duì)表征學(xué)習(xí)的影響
1.10 Projection target 對(duì)表征學(xué)習(xí)的影響
1.11 ImageNet-1k 實(shí)驗(yàn)結(jié)果
1.12 可視化結(jié)果
Self-Supervised Learning,又稱為自監(jiān)督學(xué)習(xí),我們知道一般機(jī)器學(xué)習(xí)分為有監(jiān)督學(xué)習(xí),無(wú)監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)。而 Self-Supervised Learning 是無(wú)監(jiān)督學(xué)習(xí)里面的一種,主要是希望能夠?qū)W習(xí)到一種通用的特征表達(dá)用于下游任務(wù) (Downstream Tasks)。其主要的方式就是通過(guò)自己監(jiān)督自己。作為代表作的 kaiming 的 MoCo 引發(fā)一波熱議, Yann Lecun也在 AAAI 上講 Self-Supervised Learning 是未來(lái)的大勢(shì)所趨。所以在這個(gè)系列中,我會(huì)系統(tǒng)地解讀 Self-Supervised Learning 的經(jīng)典工作。
1 SimMIM
論文名稱:SimMIM: A Simple Framework for Masked Image Modeling
論文地址:
https://arxiv.org/abs/2111.09886
前段時(shí)間,何愷明等人的一篇論文成為了計(jì)算機(jī)視覺(jué)圈的焦點(diǎn)。這篇論文僅用簡(jiǎn)單的 idea(即掩蔽自編碼器,MAE)就達(dá)到了非常理想的性能,讓人們看到了 Transformer 擴(kuò)展到 CV 大模型的光明前景,給該領(lǐng)域的研究者帶來(lái)了很大的鼓舞:
深度了解自監(jiān)督學(xué)習(xí),就看這篇解讀 !何愷明新作MAE:通向CV大模型
SimMIM 是繼 BEiT 之后,MSRA 又提出的一個(gè) MIM 任務(wù)上的預(yù)訓(xùn)練 CV 模型。這個(gè)模型更像是 kaiming 的 MAE,也是直接回歸預(yù)測(cè)原始像素 RGB 值,而不是像 BEiT 或者 iBOT 一樣重建 tokens。作者在這篇論文中想探討的是:究竟是什么使得 MIM 任務(wù)能夠使得目標(biāo)網(wǎng)絡(luò)能學(xué)到更好的 visual representation。得出了以下3條結(jié)論:(1) 在 MIM 任務(wù)中,mask patch 的大小如果是32×32,就能使得預(yù)訓(xùn)練任務(wù)成為一個(gè) strong pre-text task,非常有利于預(yù)訓(xùn)練大模型性能的提升。(2) 直接回歸預(yù)測(cè)原始像素 RGB 值的效果并不比復(fù)雜設(shè)計(jì)的patch分類方法差。(3) prediction head 可以設(shè)計(jì)成輕量化的模型,比如一個(gè)線性層,它的表現(xiàn)不比 heavy 模型差。
1.1 SimMIM 方法概述
上來(lái)先引用一句名言:)
“What I cannot create, I do not understand.” — Richard Feynman
作者可能是想說(shuō):要想玩明白 Masked Signal Learning 任務(wù) (就是指這樣一種任務(wù):擋住輸入信號(hào)的一部分,把殘缺的信號(hào)送入模型,希望模型能夠預(yù)測(cè)出這些被 masked 掉的信號(hào)),或者說(shuō),要想讓模型創(chuàng)造出這些被 masked 掉的信號(hào),就得使得模型首先理解它們。
對(duì)于自監(jiān)督學(xué)習(xí)的任務(wù)而言,我們之前介紹的方法,如 MoCo,MoCo v2,MoCo v3,SimCLR,BYOL 等,它們都是采用對(duì)比學(xué)習(xí)的策略完成,屬于自監(jiān)督學(xué)習(xí)范式中的 Contrastive 系列。問(wèn):對(duì)于圖像而言,Contrastive Learning 的做法真的是最好的嗎?或者,直接把 NLP 領(lǐng)域的 MLM 方法遷移到 CV 領(lǐng)域的 MIM,是可取的嗎?
第一,我們知道對(duì)于圖像信號(hào)而言,相鄰像素之間聯(lián)系非常緊密 (highly correlated),所以解決 MIM 問(wèn)題的好方法可能是更多地借助或者 copy masked 部分周圍的像素,而不是更高維的語(yǔ)義信息的推理。
第二,語(yǔ)言和視覺(jué)信號(hào)的語(yǔ)義高度不同,這點(diǎn)和 kaiming 的信息密度的觀點(diǎn)是一致的,即:視覺(jué)信號(hào)是 raw 和 low-level 的,而文本信號(hào)是 high-level 的。那么,預(yù)測(cè) low level 信號(hào)會(huì)有利于 high level 的圖像識(shí)別問(wèn)題嗎?
第三,視覺(jué)信號(hào)通常是連續(xù)的,而文本信號(hào)通常是離散的。
總之,基于以上3點(diǎn)分析,作者提出了 SimMIM 模型,和一周之前 kaiming 的 MAE 在思路上面十分相似,很多具體做法都是一樣的,但是在模型設(shè)計(jì)上給出了不同的見(jiàn)解。不一樣的地方是:MAE 重建所有的 patches,不論是 masked 還是 unmasked,MAE 本質(zhì)上屬于 Reconstruction 的任務(wù);而 SimMIM 實(shí)驗(yàn)證明重建所有的 patches 的效果不如只重建 masked patches 的效果,SimMIM 本質(zhì)上屬于 Prediction 的任務(wù)。值得注意的是二者是完全同期的工作 (前后只差一周),說(shuō)明實(shí)力很強(qiáng)的大廠對(duì)于 CV 大模型的訓(xùn)練和設(shè)計(jì)都得出了比較相似的結(jié)論。
1.2 Masking Strategy
SimMIM 的 Masking Strategy 和 kaiming 的 MAE 不同,MAE 采取的做法是直接扔掉被 mask 的 patches,但是 SimMIM 采取的做法和 BEiT,BERT 一致,即把 mask 的 patches 替換成可學(xué)習(xí)的 mask token vector,并隨著網(wǎng)絡(luò)一起訓(xùn)練。mask 的基本單位仍然是 Image Patches,對(duì)于 ViT 模型,masked patch size 使用32×32;對(duì)于 Swin Transformer 模型,masked patch size 使用4×4-32×32。
1.3 Encoder 結(jié)構(gòu)
即目標(biāo)網(wǎng)絡(luò)的架構(gòu),實(shí)際使用了 ViT 模型和 Swin Transformer 模型。
1.4 Prediction head
只要輸入與 Encoder 的輸出一致,輸出達(dá)到預(yù)測(cè)目的,Prediction head 就可以具有任意結(jié)構(gòu),哪怕是一個(gè) Linear Layer。
1.5 Prediction target
作者希望 Prediction head 的輸出就是重建之后的原圖,所以,為了預(yù)測(cè)輸入圖像在 full-resolution 下的所有像素值,我們將 feature map 映射回原始分辨率,并由這個(gè) feature map 負(fù)責(zé)對(duì)相應(yīng)原始像素的預(yù)測(cè)。
比如,當(dāng)使用 Swin Transformer Encoder 時(shí),輸出是 downsample 32倍的 feature map。此時(shí)要先通過(guò)1×1的卷積 (或者叫 Linear Layer),輸出維度是3072=3×32×32。再使用 loss:

式中, 是輸入的 RGB 值和預(yù)測(cè)值, 是 element 的數(shù)量。
1.6 Evaluation protocols
作者使用的評(píng)價(jià)指標(biāo)是 Fine-tuning,即在模型最后添加一層線性分類器 Linear Classifier (它其實(shí)就是一個(gè) FC 層) 完成分類,同時(shí)使用全部 label 訓(xùn)練目標(biāo)網(wǎng)絡(luò) Backbone 部分的權(quán)重和分類器的權(quán)重。也報(bào)了 linear probing 的結(jié)果,即把目標(biāo)網(wǎng)絡(luò) Backbone 部分的權(quán)重凍結(jié),在模型最后添加一層線性分類器 Linear Classifier 完成分類,只訓(xùn)練 Linear Classifier 的參數(shù)。
1.7 Masking strategy 對(duì)表征學(xué)習(xí)的影響
作者采用 Swin-B 作為消融研究的默認(rèn)骨干。為了減少實(shí)驗(yàn)開(kāi)銷,默認(rèn)的輸入圖像大小為 192×192,并將窗口大小調(diào)整為6以適應(yīng)改變的輸入圖像大小。
預(yù)訓(xùn)練配置: AdamW,100 epochs,cosine learning rate scheduler,batch size=2048,base lr=8e-4,weight decay=0.05,warmup epochs=10。
預(yù)訓(xùn)練 Data Augmentation: Random resize cropping,比例范圍為[0.67,1],寬高比范圍為[3/ 4,4 /3],Random flipping + Color normalization。
Fine-tuning 配置: AdamW,100 epochs,cosine learning rate scheduler,batch size=2048,base lr=5e-3,weight decay=0.05,warmup epochs=10,stochastic depth ratio=0.1。
Fine-tuning Data Augmentation: RandAug,Mixup,Cutmix,Label smoothing,Random erasing。
首先研究了不同 masking strategy 對(duì)表征學(xué)習(xí)的影響,結(jié)果如下圖1所示。最佳的 random masking strategy 使得 Accuracy 達(dá)到了83.0%。此時(shí)超參數(shù)是 mask patch size=32,mask ratio=50%,即擋住50%的原圖。這個(gè)結(jié)果比 BEiT 高0.3%。
此外,當(dāng) mask patch size=32 時(shí),mask ratio 在10%-70%時(shí)都能夠取得很不錯(cuò)的結(jié)果。作者認(rèn)為這個(gè)實(shí)驗(yàn)結(jié)果產(chǎn)生的原因是:一個(gè) mask 中心的像素距離邊界可見(jiàn)像素是足夠遠(yuǎn)的,因此可以強(qiáng)迫網(wǎng)絡(luò)學(xué)習(xí)到一些 long-range 的關(guān)系,即使 mask 掉的像素足夠多。將 mask ratio 由0.4增加至0.8,在 patch size 大小為4,8和16的情況下,準(zhǔn)確率分別提高了0.2%,0.4%和0.4%。使用更大的 mask ratio ,這也證明了相對(duì)較小的 patch 尺寸有利于微調(diào)性能。然而,這些較小的 patch 的總體精度不如較大的 patch(32) 的高。進(jìn)一步將 patch 大小增加到64的觀測(cè)精度下降,可能是由于預(yù)測(cè)距離太大。

上述觀察和分析也可以很好地反映在一個(gè)新提出的 AvgDist 度量,該度量測(cè)量掩碼像素到最近的可見(jiàn)像素的平均歐氏距離。 不同掩碼策略與不同掩蔽率的 AvgDist 如圖2(a)所示。從圖中可以看出,所有的 masking strategy 的AvgDist 都隨著 masking ratio 的增大而平滑增大。對(duì)于隨機(jī)掩碼策略,當(dāng) patch size 較小 (如4或8) 時(shí), AvgDist 相對(duì)較低,且隨著掩碼率的增加而增長(zhǎng)緩慢。另一方面,當(dāng) patch size 較大時(shí) (如64),很小的 mask ratio (如10%) 仍然會(huì)產(chǎn)生較大的 AvgDist。
圖2(b)繪制了微調(diào)精度和 AvgDist 度量之間的關(guān)系,它遵循山脊 (ridge) 形狀。微調(diào)精度高的條目大致分布在 AvgDist 的[10,20]范圍內(nèi),而 AvgDist 越小或越高的條目表現(xiàn)越差。這表明掩碼圖像建模中的預(yù)測(cè)距離應(yīng)該適中,既不要太大,也不要太小。

在掩碼預(yù)測(cè)中,AugDist 太小的話,網(wǎng)絡(luò)可能會(huì)學(xué)習(xí)到太多的短連接,AugDist 太大的話,網(wǎng)絡(luò)可能會(huì)很難學(xué)習(xí)。這些結(jié)果也表明,AvgDist可能是一個(gè)很好的指標(biāo)用于檢測(cè)掩碼建模的有效性。
實(shí)際使用的 mask ratio=0.6,patch size=32。
1.8 Projection head 對(duì)表征學(xué)習(xí)的影響
下圖3對(duì)比了不同結(jié)構(gòu)的 Projection head 對(duì)結(jié)果的影響。作者依次嘗試了 Linear layer,2層 MLP,inverse 的 Swin-T 和 inverse 的 Swin-B 架構(gòu)。發(fā)現(xiàn)參數(shù)量大的 Projection head 會(huì)帶來(lái)更低的 loss,但是 Top-1 的 Accuracy 反而變低了。這意味著預(yù)訓(xùn)練 impainting 的能力并不代表下游任務(wù)的能力。

另外,一個(gè)有意思的發(fā)現(xiàn)是:之前的基于 Contrastive learning 的自監(jiān)督學(xué)習(xí)工作,如 MoCo,MoCo v2,MoCo v3,SimCLR 等等它們發(fā)現(xiàn) Projection head 用2層的比單層 MLP 好一點(diǎn)。原因是 Projection head 太深的話會(huì)導(dǎo)致 Pre-text 的任務(wù)學(xué)習(xí)到的 latent representation 與下游任務(wù)需要的差距過(guò)大。所以 SimMIM 發(fā)現(xiàn) Projection head 就用一層 MLP 就非常好,也意味著 Contrastive learning 任務(wù)設(shè)計(jì) Projection head 的方法可能并不適用于 MIM 任務(wù)。
1.9 Projection resolution 對(duì)表征學(xué)習(xí)的影響
下圖4對(duì)比了不同的 Projection resolution 對(duì)結(jié)果的影響。大范圍的分辨率 (12×12-192×192) 都能表現(xiàn)良好。傳輸性能只有在6×6的分辨率的低分辨率下才會(huì)下降,可能是因?yàn)?×6的分辨率丟棄了太多信息。這些結(jié)果反映了下游圖像分類任務(wù)所需的信息粒度。也告訴我們:MLM 任務(wù)的 pre-text 屬于分類任務(wù),但是這并不意味著 MIM 任務(wù)的 pre-text 的最優(yōu)選擇也是分類任務(wù),比如 MAE 和 SimMIM 的 pre-text 屬于回歸任務(wù)。

1.10 Projection target 對(duì)表征學(xué)習(xí)的影響
下圖5對(duì)比了不同的 Projection target 對(duì)結(jié)果的影響。使用 loss,smooth loss, loss 的結(jié)果都差不多。

值得注意的是:SimMIM 和 MAE 的另一個(gè)很重要的不同是:SimMIM 只重建 masked patches (Prediction),而 MAE 則重建所有的 patches (Reconstruction)。SimMIM 也做了實(shí)驗(yàn):如果目標(biāo)設(shè)置為重建所有的 patches,則性能略有下降。
1.11 ImageNet-1k 實(shí)驗(yàn)結(jié)果
預(yù)訓(xùn)練實(shí)驗(yàn)設(shè)置:800 epochs,cosine learning rate scheduler,20 epochs linear warm-up。
Fine-tuning 實(shí)驗(yàn)設(shè)置:200 epochs,layer-wise learning rate decay。
下圖6為實(shí)驗(yàn)結(jié)果,SimMIM 超過(guò)了 DINO 和 BEiT,因?yàn)楹?MAE,iBOT 是2021年11月同時(shí)期的工作,所以它們之間沒(méi)有互相對(duì)比性能。

1.12 可視化結(jié)果
下圖7想研究的是 SimMIM 模型通過(guò)預(yù)訓(xùn)練 masked image modeling 任務(wù)獲得了一種什么樣的能力。我們看到每一行里面的 mask 分為 Random mask,擋住主要物體的 mask,擋住全部主要物體的 mask。結(jié)果顯示:
1. 如果使用 Random mask,物體的形狀和紋理可以得到重建。但是,unmasked 部分因?yàn)槟P蜎](méi)有學(xué)習(xí)這部分的重建,導(dǎo)致最終結(jié)果出現(xiàn)了很多的 artifacts。
2. 如果擋住主要物體的 mask,模型仍然能夠重建出物體的部分。
3. 如果擋住全部主要物體的 mask,則模型就使用背景去填充。

下圖9對(duì)比了只重建 masked patches (Prediction),或者重建所有的 patches (Reconstruction) 的結(jié)果。每組圖片的1是原圖,2是 Corrupted image,3是重建所有的 patches 的復(fù)原結(jié)果,4是只重建 masked patches 的復(fù)原結(jié)果。顯然,4視覺(jué)效果更好,說(shuō)明只重建 masked patches 的效果更好,這個(gè)結(jié)論是 MAE 沒(méi)注意到的。

下圖10對(duì)比了不同大小的 mask patches 的重建結(jié)果。注意所有實(shí)驗(yàn) mask ratio=0.6,結(jié)果發(fā)現(xiàn)當(dāng) mask patches 較小時(shí),可以得到更好的重建結(jié)果。

總結(jié)
SimMIM 是繼 BEiT 之后,MSRA 又提出的一個(gè) MIM 任務(wù)上的自監(jiān)督預(yù)訓(xùn)練 CV 模型。這個(gè)模型更像是 kaiming 的 MAE,也是直接回歸預(yù)測(cè)原始像素 RGB 值,而不是像 BEiT 或者 iBOT 一樣重建 tokens。和 MAE 作法一致的地方是:(1) 隨機(jī) mask image patches。(2) 直接回歸預(yù)測(cè)原始像素 RGB 值。(3) Decoder (Prediction head) 是輕量的模型。不一樣的地方是:MAE 重建所有的 patches,不論是 masked 還是 unmasked,MAE 本質(zhì)上屬于 Reconstruction 的任務(wù);而 SimMIM 實(shí)驗(yàn)證明重建所有的 patches 的效果不如只重建 masked patches 的效果,SimMIM 本質(zhì)上屬于 Prediction 的任務(wù)。
公眾號(hào)后臺(tái)回復(fù)“CVPR 2022”獲取論文打包合集下載~


#?極市平臺(tái)簽約作者#
科技猛獸
知乎:科技猛獸
清華大學(xué)自動(dòng)化系19級(jí)碩士
研究領(lǐng)域:AI邊緣計(jì)算 (Efficient AI with Tiny Resource):專注模型壓縮,搜索,量化,加速,加法網(wǎng)絡(luò),以及它們與其他任務(wù)的結(jié)合,更好地服務(wù)于端側(cè)設(shè)備。
作品精選


