自監督學習算法--Barlow Twins Abstract Introduction Method Result

Abstract

  • SSL需要學習對輸入的擾動(可以理解爲一張圖像的不同視角)保持不變的編碼(embedding)。但是這會造成平凡常數解(trivial constant solutions)。
  • 論文提出了一種目標函數可以避免這種崩潰,將一張圖像的兩個視角,傳送兩個相同網絡得到的輸出,計算二者的互相關矩陣(cross-correlation matrix),使得她儘可能接近一個單位矩陣
  • Twins不需要大batchsize,predictor network, gradient stopping,權重動量更新等操作。

Introduction

  • 現有的對比式自監督學習希望能夠對同一張圖像的不同視角學習到相同的表徵,實現的方法是對同一圖像的不同視角用Siamese networks 的變體學習到的表徵,最大化二者相似度。
  • 這一問題存在平凡解(trivial solutions),比如兩個網絡輸出常數作爲表徵。現有方法藉助一系列方式解決此問題。
  • 本文設計了一種目標函數,對兩個表徵的互相關矩陣(cross-correlation matrix),約束她儘可能接近一個單位矩陣。從這個角度來解決平凡解的問題。
  • Twins 不需要大batch,predictor network, momentum encoders,stop-gradients。高維度的特徵編碼對Twins的性能有幫助。

Method

  • 損失函數的設計:目的是對角線上的元素接近1,其他位置元素接近0.



    C是用ZA ZB計算得到的互相關矩陣,同一batch的C的計算方法如下:


  • 相對與基於INFONCE的方法,twins有兩個優點。1)不需要的大量的負樣本,也就不需要大的batch,2)能從高維度的embeding中受益。
  • 數據增強細節:採用random cropping, resizing to 224 × 224,
    horizontal flipping, color jittering, converting to grayscale,
    Gaussian blurring, and solarization.前兩個多做,後5個隨機。
  • 模型架構細節:編碼器採用ResNet-50 (無最後的分類層,2048個輸出單元)+投射網絡(三個線性層,8192個輸出神經元)。投射器的前兩層跟着BN和rectified linear units。編碼器的輸出稱爲representations,投射頭的輸出稱爲embeddings。representations用於下游任務。embeddings使用本文的損失函數進行優化。


  • 優化。與BYOL類似,使用LARS優化器,1000 epochs,2048batch。batch小如256時模型也能很好工作。訓練使用32 V100 GPUs 分佈訓練124小時。 相同硬件BYOLbatch爲4096,訓練113小時。

Result

在ImageNet ILSVRC-2012 dataset上用自監督的方法進行預訓練,在圖像分類和目標檢測任務上進行驗證。

  • Linear evaluation on ImageNet
    Top1 73.2%


  • IMAGENET 半監督性能
    用預訓練的twins在imagnet的1%和10%有標籤的子集進行半監督學習測試。


  • 在image net預訓練應用在其他分類數據集上的遷移性能


  • 目標檢測和分割的遷移性能
    將卷積層參數進行調參應用在檢測與分割任務。
    (與常用的檢測分割性能差異還是蠻大的,對比的監督型方法沒啥參考價值。)


  • 消融實驗
    對小bantch_size不敏感,其他基於INFOnce損失函數的方法,batch越高,性能越高。



    對於去掉某些數據增強方法敏感,與simclr類似,不如byol魯棒。



    投射頭的維度越大,性能越強。(但是未做更多batch以超過byol的實驗,可能是更大的batch會帶來不利的性能表現)

    其他方法依賴停止梯度,增加預測網絡等方法提升性能,實驗證明twins不需要這些技術,並且增加這些結構反而會降低模型性能。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章