論文:https://arxiv.org/pdf/2004.11362.pdf
代碼:https://github.com/HobbitLong/SupContrast
交叉熵損失有很多缺點,例如對嘈雜標簽缺乏魯棒性,分類邊距可能較差,導致泛化性能下降。
作者在對比學習的基礎上加上了標簽信息,提出了一種監(jiān)督學習的損失,讓來自相同類別的特征比不同類別的特征更靠近。

方法
給定一批輸入數(shù)據,首先應用兩次數(shù)據增強,獲得該 batch 的兩個副本。兩個副本都通過編碼器網絡向前傳播,獲得 2048 維的歸一化嵌入。在訓練期間,該特征表示通過一個投影網絡進一步傳播。監(jiān)督對比損失是在投影網絡的輸出上計算的。為了使用經過訓練的模型進行分類,作者使用交叉熵損失在凍結的特征表示之上訓練了一個線性分類器。
特征學習框架
主要組成部分是:
- 數(shù)據增強模塊,
。對于每個輸入樣本
,生成兩個隨機增強
,每個代表數(shù)據的不同視角(view),并包含原始樣本中信息的一些子集。
在實驗中,包括了4種實現(xiàn):AutoAugment, RandAugment,SimAugment, Stacked RandAugment。
- 編碼器網絡,
,它將
映射到表示向量
。兩個增強樣本分別輸入到同一個編碼器,產生一對表示向量。
被歸一化為
中的單位超球面(本文所有實驗中的
= 2048),實驗表明這種歸一化提高了 top-1 的準確性。
實驗中,的結構有 ResNet-50,ResNet-101,ResNet-200。
- 投影網絡,
,將
映射到向量
。作者將
設置為為一個多層感知器 ,具有一個大小為 2048 的隱藏層和大小為
的輸出向量,或者只是一個大小為
的線性層。作者在對比訓練結束時丟棄
。因此,在推理時模型包含與使用相同編碼器
的交叉熵模型完全相同數(shù)量的參數(shù)。
對比損失函數(shù)
對比學習中的 infoNCE loss:

其中, 是網絡輸出特征,
是anchor,
是所有正樣本。
作者提出的有監(jiān)督對比loss加入了多個正樣本:

作者認為這兩個版本的loss:
- 能夠泛化到任意數(shù)量的正樣本,作者讓同一個batch里的同一個類別的都作為正樣本,讓來自同一類別的樣本更加靠近
- 對比能力隨著負樣本數(shù)量增強
- 能夠更好的實現(xiàn)強負樣本(正樣本)的選擇
但是這兩種 loss 并不是等價的,作者通過推導證明了 ,也就是
是
的上界,因此作者選擇了
。
與其他 loss 的聯(lián)系
作者證明了 Triplet Loss 是使用一正一負樣本時對比損失的特例。當使用多個負數(shù)時,作者表明 SupCon Loss 等同于 N-pairs Loss。
實驗

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