【筆記】強監督的對比學習
Supervised Contrastive Learning
對比學習是自監督的,這篇文章將其擴充套件至強監督。
Introduction
業界廣泛使用cross-entropy作為loss
許多工作嘗試改進cross-entropy,但是,往往在實際應用中,特別是大資料集上,效果並不好
許多工作在嘗試使用對比學習,他們用augmented data作為正樣本,其他作為負樣本
這篇文章提出了一個新的loss,把對比學習擴充套件至了強監督
利用強監督的label,現在同一類物體的normalized embeddings會距離更近
Method
Representation Learning Framework
Data Augmentation Module \(Aug(\cdot)\)
對於每個輸入 \(\mathbf{x}\), augment 兩組資料
\[\widetilde{\mathbf{x}} = Aug(\mathbf{x}) \]Encoder Network \(Enc(\cdot)\)
Encoder network maps \(\mathbf{x}\) to a vector \(\mathbf{r}\).
Both augmented samples are inputed into a encoder to get a pair of representation vectors, which are then normalized to unit vectors.
Projection Network \(Proj(\cdot)\)
Projection network maps \(\mathbf{r}\) to a vector \(\mathbf{z}\). (2048 to 128)
The output \(\mathbf{z}\) is also normalized.
Contrastive Loss Functions
對每個sample,augment得到兩組samples,後者稱為multiviewed batch
Self-Supervised Contrastive Loss
自監督的對比學習Loss是這樣的
\[\mathcal L^{self} = -\sum_{i\in I}\log \dfrac{\exp(\dfrac{z_i\cdot z_{j(i)}}{\tau})}{\sum_{a\in A(i)}\exp(\dfrac{z_i\cdot z_a}{\tau})} \]其中\(I\)
也就是說,\(i\)是anchor,\(j(i)\)是正樣本,其餘都認為是負樣本
Supervised Contrastive Loss
強監督要解決的問題是,利用label,把同類的物體拉近
給出兩種最直接的解決方案
\[\mathcal L _{out}^{sup}j = \sum_{i\in I} \dfrac{-1}{|P(i)|}\sum_{p\in P(i)}\log \dfrac{\exp(\dfrac{z_i\cdot z_{p}}{\tau})}{\sum_{a\in A(i)}\exp(\dfrac{z_i\cdot z_a}{\tau})} \] \[\mathcal L _{in}^{sup}j = \sum_{i\in I}-\log \left\{ \dfrac{-1}{|P(i)|}\sum_{p\in P(i)} \dfrac{\exp(\dfrac{z_i\cdot z_{p}}{\tau})}{\sum_{a\in A(i)}\exp(\dfrac{z_i\cdot z_a}{\tau})}\right\} \]這裡\(P(i)\)表示\(\{p\in A(i)| \widetilde y_p = \widetilde {y}_i\}\),也就是\(i\)同類的所有樣本,正樣本集
這裡的in和out,區分求和\(\sum_{p\in P(i)}\)在log內還是外
這兩個loss,都具有如下性質
- 對任意數量的正樣本都適用
- 負樣本越多,對比效果越好
- 挖掘強正負樣本的能力?
這兩個loss不完全一樣,不等式證得\(\mathcal L_{in}^{sup} \le \mathcal L_{out}^{sup}\),out是更好的loss
作者認為,in的結構不適合訓練,out的normalization在log外面,有更強的去bias能力
Experiments
對壞標籤也有很robust