Masked Autoencoders Are Scalable Vision Learners


Masked Autoencoders Are Scalable Vision Learners

https://arxiv.org/pdf/2111.06377.pdf

構建自編碼器,對mask的圖片進行重建

先看效果

左:mask的圖片

中:重建的圖片

右:ground truth

image

摘要

這篇文章展示masked autoencoder(MAE)是CV中可擴展的自監督學習器。

MAE的方法很簡單:隨機mask輸入圖片的一些塊,然后重建這些缺失像素。

基於兩個核心設計:

  1. 開發了一個非對稱encoder-decoder結構。encoder只對可見塊子集進行處理(不使用mask token),一個輕量級decoder使用隱表示和mask token對原圖片進行重建。
  2. 將圖片很大比例進行mask(例如75%),會變成一個有意義的自監督任務。

結合這兩個設計,可以高效且有效地訓練更大的模型:加速訓練(3x 或更多)並提升了准確性。

本可擴展方法可以學習大容量模型並能更好地泛化。下游任務的遷移性能優於有監督的預訓練,並顯示出非常好的擴展行為。

介紹

在NLP中,使用自監督預訓練模型取得了很多成功。例如使用自回歸的GPT和masked autoencoding的BERT。他們的思想都很簡單:移除一部分數據,然后學習去預測這部分被移除的內容。

作者認為需要考慮:視覺和語言中的masked autoencoding到底有什么區別。

嘗試從以下觀點進行考慮:

  1. 架構不同。視覺中,主要采用了卷積網絡,卷積通常在網格級處理,不包含mask token和位置編碼。這種架構隔閡,已經由Vision Transformers (ViT)解決,不再是阻礙。

  2. 視覺和語言的信息密度不同。語言是人類生成的信號,有很高的語義和信息密度。當訓練一個模型僅僅對每句話預測少量丟失單詞時,任務可以轉化成復雜的語言理解問題。相反,圖片是有着很多空間冗余的自然信號(一個缺失的塊可以由周圍的塊進行恢復,周圍的塊包含目標、場景等高級信息)。為了克服這種區別、鼓勵學習有用特征。作者展示了一個CV的簡單策略:隨機mask了很大比例的塊。這個策略很大程度上減少了冗余,為自監督任務提升了難度,超越了低級別圖像統計的理解范疇。

  3. 自編碼器的decoder,將隱表示映射回輸入,這在重建文本和圖像中有所不同。在視覺中,decoder重建像素,因此decoder的得到是一個相比於目標識別任務更低語義級別的輸出。這與語言不同,語言中預測的缺失單詞包含了豐富的語義特征。盡管在BERT中,decoder可以很簡單(一個MLP),但對於圖片,decoder在決定學習隱表示的語義級別時起關鍵作用。

方法

Masked autoencoder(MAE)是一種自編碼方法,給定原始信號的部分觀測,然后對原始信號進行重建。

和其他自編碼器方法類似,本文的方法中:一個encoder將一個觀測信號映射為隱表示,一個decoder使用隱表示對原始信號進行重建

與傳統自編碼器不同,采用了非對稱設計,允許encoder只處理部分、觀測到的信號,一個輕量級decoder以隱表示和mask token進行重建。如圖

image

Masking

參考 ViT,將圖像分成規則的非重疊塊。然后采樣得到塊的一個子集,然后mask掉剩下部分。

采樣策略比較直接:采用均勻分布,不放回隨機采樣。稱之為"隨機抽樣"

使用高mask率的隨機采樣大幅消滅冗余性。因此可以得到一個任務,在這里,不能輕易地通過從可見鄰塊進行推斷。

均勻分布防止了潛在的中心偏差(更多在中心附近的塊被mask)

最終,得到了高度稀疏的輸入,可以設計更有效的encoder

MAE encoder

encoder參考ViT,但是只應用於可見的、未被mask的塊。和標准ViT一樣,encoder使用線性投影和位置編碼得到patch的embedding。然后通過一系列Transformer block處理結果集合。

然后,encoder只對(25%左右)的小子集進行處理。masked塊被移除,沒有使用mask token。這幫助在訓練巨大encoder的時候只占用更小的計算量和內存。

MAE decoder

MAE decoder的輸入是token的整個集合,包含了:

  • 編碼后的可見塊
  • mask token

每個mask token是一個可學習的共享變量,表示預測缺失塊的存在性.

對全體集合的所有token添加位置編碼。如果沒有位置編碼,mask token就會缺失在圖片中的位置信息。

decoder也有另外一系列的Transformer block

MAE decoder只在用於圖像重建任務的預訓練時候使用。(Encoder用來在識別中提供圖像表示)

因此,decoder的結構在設計時可以與encoder進行獨立,並且可以靈活設計。

作者實驗了很小的decoder,比encoder更窄更淺。例如,與encoder相比,默認decoder在每個token上計算量小於10%。

使用這種非對稱設計,token的完整集合只由輕量decoder進行處理,減少了預訓練時間

重建目標

MAE通過對每個mask塊預測像素值,來重建輸入。

decoder輸出的每個元素是表示預測塊的像素值的向量。

decoder的最后一層是一個線性投影,輸出通道的數量等於塊像素值的數量。對decoder輸出進行reshape,得到一個重建圖片。

采用MSE作為損失函數,計算重建圖片和原始圖片在像素空間的誤差。

與BERT類似,只對mask的塊中計算loss。

作者還研究了一個變種方法:重建目標是對每個mask塊的normalized像素值。對每個塊,計算了所有像素的均值和方差,然后用來對塊進行normalize。實驗中,使用標准化像素作為重建目標提升了表示質量。

簡單實現

MAE預訓練可以有效進行實現,無需特別稀疏操作。

首先,對每個輸入塊生成一個token(使用線性投影加位置編碼)

然后隨機shuffle了token列表,根據mask率,移除了列表的后面部分。這與不放回抽樣等價,等到了所有token的一個小子集。

編碼后,在encoded塊列表后面添加mask token的列表,unshuffle這個完整列表,對齊所有token和目標

decoder應用這個完整列表(其中包含位置編碼)。

無需稀疏操作,其中的操作例如shuffle和unshuffle很快。

總結

個人認為,作者主要采用大力出奇跡的方法。認為圖像中存在大量的冗余信息,這樣可以只需要很小一部分就能提取出合適的語義。


免責聲明!

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



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