深度學習論文: Emerging Properties in Self-Supervised Vision Transformers
Emerging Properties in Self-Supervised Vision Transformers
PDF: https://arxiv.org/pdf/2104.14294v1
PyTorch代碼: https://github.com/shanglianlm0525/CvPytorch
PyTorch代碼: https://github.com/shanglianlm0525/PyTorch-Networks
1 概述
本文探討自監督學習是否為Vision Transformer(ViT)帶來了相較于卷積網絡的新特性。發現自監督ViT特征包含明確的圖像語義分割信息,并展現出色的k-NN分類性能。同時,強調了動量編碼器、多裁剪訓練及小補丁在ViT中的重要性。基于這些發現,提出了DINO這一無標簽自蒸餾方法,與ViT結合在ImageNet上實現了80.1%的top-1準確率。
2 DINO
DINO框架結合了自監督學習和知識蒸餾的特點。在知識蒸餾中,學生網絡gθs的目標是模仿教師網絡gθt的輸出。兩個網絡對輸入圖像x產生K維概率分布Ps和Pt,通過softmax函數歸一化網絡輸出得到。
2-1 SSL with Knowledge Distillation
從給定圖像中,生成一組不同的視圖V。該組包含兩個全局視圖xg1和xg2以及幾個較小分辨率的局部視圖(切圖)。所有的局部視圖都通過學生網絡,只有全局視圖通過教師網絡,從而鼓勵“局部到全局”的對應關系。最小化損失:
DINO中使用2個全局視圖,分辨率為224x224,覆蓋原始圖像的大區域(例如大于50%),以及幾個分辨率為96x96的局部視圖,僅覆蓋原始圖像的小區域(例如小于50%)。
教師網絡不是預先給定的,而是從學生網絡的過去迭代中構建。使用指數移動平均(EMA)作為教師網絡參數的更新規則,這在DINO框架中效果良好。
網絡架構由主干網絡(如ViT或ResNet)和投影頭(MLP)組成,學生和教師網絡共享相同的架構但參數不同。DINO不使用批量歸一化(BN),特別是在使用ViT作為主干時。
為了避免模型坍塌,DINO結合了動量教師輸出的居中和銳化操作。居中防止模型輸出偏向單一維度,而銳化則增強輸出分布的銳度。通過這種方式,DINO能夠在不同批次大小下穩定工作。
2-2 Implementation and evaluation protocols
Vision Transformer (ViT):
- 描述了Vision Transformer的機制,參考了相關文獻中的Transformer和圖像適應細節。
- 本文使用的ViT配置總結在表1中,ViT輸入為N×N分辨率的圖像塊網格,通常N=16或8。
- 通過線性層將圖像塊轉換為嵌入,加入一個額外的可學習類別標記[CLS],并通過Transformer網絡處理。
實現細節:
- 在無標簽的ImageNet數據集上預訓練模型,使用adamw優化器和1024的批量大小。
- 學習率根據線性縮放規則調整,并采用余弦退火和權重衰減。
- 使用BYOL的數據增強方法和雙三次插值,模型代碼和可復現結果公開。
評估協議:
- 自監督學習的評估包括在凍結特征上訓練線性分類器或對下游任務特征進行微調。
- 線性評估使用隨機裁剪和水平翻轉的數據增強,微調評估則在預訓練權重基礎上調整網絡。
- 引入k-NN分類器作為特征質量的評估,簡化了評估過程,避免了超參數調整和數據增強的復雜性。
3 Results
3-1 Comparing with SSL frameworks on ImageNet
3-2 Properties of ViT trained with SSL