1. 程式人生 > 其它 >【筆記】強監督的對比學習

【筆記】強監督的對比學習

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\)

\({1,2,\cdots,2N}\),表示augmented data,\(j(i)\)表示和\(i\)同源的另一組augmented data,\(A(i)\)\(I - \{i\}\)\(z_i=Proj(Enc(\widetilde {x_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