論文筆記-Supervised Contrastive Learning

論文:https://arxiv.org/pdf/2004.11362.pdf
代碼:https://github.com/HobbitLong/SupContrast

交叉熵損失有很多缺點,例如對嘈雜標簽缺乏魯棒性,分類邊距可能較差,導致泛化性能下降。

作者在對比學習的基礎上加上了標簽信息,提出了一種監(jiān)督學習的損失,讓來自相同類別的特征比不同類別的特征更靠近。

方法

給定一批輸入數(shù)據,首先應用兩次數(shù)據增強,獲得該 batch 的兩個副本。兩個副本都通過編碼器網絡向前傳播,獲得 2048 維的歸一化嵌入。在訓練期間,該特征表示通過一個投影網絡進一步傳播。監(jiān)督對比損失是在投影網絡的輸出上計算的。為了使用經過訓練的模型進行分類,作者使用交叉熵損失在凍結的特征表示之上訓練了一個線性分類器。

特征學習框架

主要組成部分是:

  • 數(shù)據增強模塊,Aug(·)。對于每個輸入樣本 x,生成兩個隨機增強 \tilde{x}= Aug(x),每個代表數(shù)據的不同視角(view),并包含原始樣本中信息的一些子集。
    在實驗中,Aug(·) 包括了4種實現(xiàn):AutoAugment, RandAugment,SimAugment, Stacked RandAugment。
  • 編碼器網絡,Enc(·),它將 x 映射到表示向量 r= Enc(x) ∈ \mathcal{R}^{D_E} 。兩個增強樣本分別輸入到同一個編碼器,產生一對表示向量。 r 被歸一化為 \mathcal{R}^{D_E} 中的單位超球面(本文所有實驗中的 D_E = 2048),實驗表明這種歸一化提高了 top-1 的準確性。
    實驗中,Enc(·) 的結構有 ResNet-50,ResNet-101,ResNet-200。
  • 投影網絡,Proj(·),將r 映射到向量z= Proj(r) ∈ \mathcal{R}^{D_P}。作者將 Proj(·) 設置為為一個多層感知器 ,具有一個大小為 2048 的隱藏層和大小為 D_P = 128 的輸出向量,或者只是一個大小為D_P = 128的線性層。作者在對比訓練結束時丟棄 Proj(·)。因此,在推理時模型包含與使用相同編碼器 Enc(·) 的交叉熵模型完全相同數(shù)量的參數(shù)。

對比損失函數(shù)

對比學習中的 infoNCE loss:


其中, z_l 是網絡輸出特征,i是anchor,j(i) 是所有正樣本。

作者提出的有監(jiān)督對比loss加入了多個正樣本:


作者認為這兩個版本的loss:

  • 能夠泛化到任意數(shù)量的正樣本,作者讓同一個batch里的同一個類別的都作為正樣本,讓來自同一類別的樣本更加靠近
  • 對比能力隨著負樣本數(shù)量增強
  • 能夠更好的實現(xiàn)強負樣本(正樣本)的選擇

但是這兩種 loss 并不是等價的,作者通過推導證明了 L_{in}^{sup} \leq L_{out}^{sup},也就是L_{out}^{sup}L_{in}^{sup} 的上界,因此作者選擇了L_{out}^{sup} 。

與其他 loss 的聯(lián)系
作者證明了 Triplet Loss 是使用一正一負樣本時對比損失的特例。當使用多個負數(shù)時,作者表明 SupCon Loss 等同于 N-pairs Loss。

實驗

實驗也證明了確實有提高:


?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容