論文筆記 — A Simple Framework for Contrastive Learning of Visual Representations(SimCLR)
原文網址:https://arxiv.org/pdf/2002.05709.pdf
Abstract
本文提出了 SimCLR:一個用於視覺表示對比學習的簡單框架。我們簡化了最近提出的 Contrast Self-supervised Learning Algorithm,
我們系統表明:
(1) Data Augmentation 很重要
(2)在 representation 和對比損失之間引入可學習的非線性變換能夠有效提高學習representation的質量
(3) 與監督學習相比,對比學習受益於更大的Batch size和更多的training steps。
通過結合這些發現,我們能夠大大優於以前在 ImageNet 上進行自我監督和半監督學習的方法。在 SimCLR 學習的自監督表示上訓練的線性分類器實現了 76.5% 的 top-1 準確率,比之前的最新技術提高了 7%,與監督 ResNet50 的性能相匹配。
2. Method
2.1. The Contrastive Learning Framework
受最近對比學習算法的啟發,SimCLR 通過潛在空間中的對比損失最大化同一筆數據但使用不同的Data Augmentation的不同圖片之間的一致性來學習表示。
如上圖所示,該框架包括以下四個主要組件:
(1) 一個隨機數據增強模塊,它隨機轉換任何給定的數據示例,同一筆數據產生兩個圖片,表示為 x̃i 和 x̃j,我們將其視為positive pair。我們依次應用三個簡單的增強:隨機裁剪,然後將大小調整回原始大小、隨機顏色失真和隨機高斯模糊。
(2) 一個basic Encoder f (·),它從data augmentation 後的圖片例子中提取表示向量。我們在這裡選擇簡單,採用常用的 ResNet 來得到 hi = f(x ̃i) = ResNet(x ̃i)(3) 一個小型神經網絡projection head g(·),將前面的表示向量映射到計算對比損失的空間。 我們使用具有一個隱藏層的 MLP 來獲得 zi = g(hi) = W(σ(W (hi)),其中 σ 是 ReLU 非線性。
(4) 為對比預測任務定義的對比損失函數。 給定一個集合 {x ̃k}。
我們隨機抽取 N 個示例的 minibatch,並在從 minibatch 上產生的增強pair 上定義對比預測任務,得到 2N 個數據。
我們沒有明確地抽樣負面例子。 相反,給定一對正例,我們將minibatch中的其他 2(N-1) 個增強示例視為負例。 正例對 (i, j) 的損失函數定義:
其中 cosine similarity sim()定義為:
2.2. Training with Large Batch Size
為簡單起見,我們不使用Memory Bank(Wu et al., 2018; He et al., 2019)。相反的,我們將訓練Batch 大小 N 從 256 更改為 8192。批量大小為 8192 為我們提供了來自兩個增強視圖的每個正對的 16382 個負樣本。當使用具有linear learning rate 的標準 SGD/Momentum 時,大批量的訓練可能會不穩定。為了穩定訓練,我們對所有批量大小使用 LARS 優化器,根據Batch 大小使用 32 到 128 個kernel 做計算。
2.3. Evaluation Protocol
在這一小節,作者制定了一些規則來協助挑選不同設計的框架。
Dataset and Metrics
我們對無監督預訓練(學習 Encoder f)的大部分研究都是使用 ImageNet ILSVRC-2012 數據集完成的。 為了評估學習出來的表示向量,我們遵循widely used linear evaluation protocol ,其中線性分類器在frozen的基礎網絡上進行訓練,用test accuracy來評估其質量。
Default setting
對於數據增強,我們使用隨機裁剪和調整大小(隨機翻轉)、顏色失真和高斯模糊。 我們使用 ResNet50 作為基礎Encoder 網絡,使用 2 層 MLP projection head 將表示投影到 128 維潛在空間。 使用 NTXent以及 LARS 對損失進行優化,學習率為 4.8 (= 0.3 × BatchSize/256),權重衰減為 10−6。 我們以 4096 的Batch size 訓練 100 個 epoch。
3. Data Augmentation for Contrastive Representation Learning
3.1. Composition of data augmentation operations is crucial for learning good representations
為了系統地研究數據增強的影響,我們在這裡考慮幾種常見的增強。 一種類型的增強涉及數據的空間/幾何變換,例如裁剪和調整大小、旋轉,如下圖:
3.2. Contrastive learning needs stronger data augmentation than supervised learning
為了進一步證明顏色增強的重要性,我們調整了顏色增強的強度,如上表 所示。更強的顏色增強顯著提高了學習的無監督模型的線性評估。我們的實驗表明,與監督學習相比,無監督對比學習受益於更強的(顏色)數據增強。
4. Architectures for Encoder and Head
4.1. Unsupervised contrastive learning benefits (more) from bigger models
下圖顯示增加深度和寬度都可以提高性能。 雖然類似的發現也適用於監督學習,但我們發現監督模型和在無監督模型上訓練的線性分類器之間的差距隨著模型大小的增加而縮小,這表明非監督學習比監督模型更受益於更大的模型。
4.2. A nonlinear projection head improves the representation quality of the layer before it
然後我們研究包括projection head 的重要性,即 g(h)。 下圖顯示了對頭部使用三種不同架構的線性評估結果:(1)identity mapping (2) linear projection (3) 有一個附加隱藏層(和 ReLU 激活)的默認非線性投影。
我們觀察到非線性投影優於線性投影(+3%),並且比無投影(>10%)好得多。 當使用projection head時,無論輸出尺寸如何,都可以觀察到類似的結果。 此外,即使使用非線性投影,projection head 之前的層 h 仍然比之後的層 z = g(h) 好得多(>10%),這證明projection head之前的隱藏層是擁有相對更好的表示。
5. Loss Functions and Batch Size
5.1. Normalized cross entropy loss with adjustable temperature works better than alternatives
我們將 NT-Xent 損失與其他常用的對比損失函數進行比較,例如logistic loss 和margin loss。下表顯示了目標函數以及損失函數的梯度:
藉由查看它們的梯度,我們觀察到 (1)l2 normalization 以及temperature 可以幫助模型從hard negative 中學習; (2)與cross entropy不同,這些函數不會通過它們的相對硬度來衡量negative value。因此,必須對這些損失函數使用semi-hard negative terms 計算梯度。
為了使比較公平,我們對所有損失函數使用相同的 l2 norm,我們調整超參數,並報告它們的最佳結果。 待最後結果證明,雖然semi-hard negative mining 有幫助,但最好的結果仍然比我們默認的 NT-Xent loss差很多。
5.2. Contrastive learning benefits (more) from larger batch sizes and longer training
上圖顯示了在針對不同數量的 epoch 訓練模型時Batch size的影響。 我們發現,當訓練 epoch 的數量較少(例如 100 個 epoch)時,較大的Batch siz e比較小的Batch 具有顯著優勢。 隨著更多的訓練步驟/時期,不同Batch size之間的差距會減小或消失。 與監督學習 相比,在對比學習中,更大的Batch提供更多的負樣本,促進收斂。 訓練時間更長也會提供更多的負面例子,從而改善結果。
6. Comparison with State-of-the-art
Linear evaluation
將我們的模型與其他SOTA相比,結果如下圖:
Semi-supervised learning
我們的方法在 僅標籤1% 和 10% 資料上都顯著提高了最先進的水平。 有趣的是,在完整的 ImageNet 上微調我們預訓練的 ResNet-50(2×,4×)也明顯優於從頭開始訓練,如下圖:
Transfer learning
我們在固定特徵提取器(linear evaluation)和 fine-tune 中評估了 12 個natural image datasets 的遷移學習性能。 我們為每個model — dataset組合執行超參數調整,並在驗證集上選擇最佳超參數。 下表顯示了 ResNet-50 (4×) 模型的結果。 經過fine-tune後,我們的simCLR在 5 個數據集上顯著優於監督 baseline。