Parametric Contrastive Learning

Cui J., Zhong Z., Liu S., Yu B. and Jia J. Parametric contrastive learning. In International Conference on Computer Vision (ICCV), 2021.

概

一种特殊的 supervised contrastive learning, 主要是希望解决先前工作在长尾问题上的不足.

符号说明

本文是建立在 MoCo 的基础上, 即带有 momentum queue 的.

  • \(n\), 类别个数;
  • \(Z_{v1}, Z_{v2}\), 一个batch的图片经由不同的数据增强变换后得到的两组特征表示;
  • \(Q\), mementum queue 所代表的集合;
  • \(A(i) := \{z_k \in Q \cup Z_{v1} \cup Z_{v2} \} \setminus \{z_k \in Z_{v1}: k = i\}\), 队列中的特征表示加上一个 batch 中类别不为 \(i\) 的特征表示 (仅 \(Z_{v1}\));
  • \(P(i) = \{z_k \in A(i): y_k = y_i\}\), 来自 \(Q \cup Z_{v2}\);

主要内容

Supervised Contrastive Learning

作者首先给出了基于 MoCo 的 supervised contrastive learning 的损失函数:

\[\mathcal{L}_i := - \sum_{z_+ \in P(i)} \log \frac{\exp(z_+ \cdot T(x_i))}{\sum_{z_k \in A(i)} \exp(z_k \cdot T(x_i))}, \]

其中 \(x_i\) 是 \(X_i\) 在 query 编码器中的一个特征表示, \(T(\cdot)\) 是变换, 感觉指的是 projection head, normalization 之类的. 此外, 这里的下标 \(i\) 应当是表示该样本 \(X\) 的标签为 \(y = i\), 并不是习惯上的表示次序.

该损失函数实际上就是希望对于样本 \(X_i\) 而言, 它的特征标表示应当和所有的其它同类别的特征表示靠近, 而与其它的非同类的样本远离.

注意到, 在最理想的情况,

\[\exp(T(x_i) \cdot z_k) = 0, \: \forall z_k \in A(i) \text{ and } y(z_k) \not= i, \]

这个时候, 匹配的概率大约为

\[\frac{1}{K_i}, \: K_i \approx |Q| \cdot q(i), \]

\(q(i)\) 表示类别 \(i\) 的特征表示在 \(Q\) 中占据的一个比例. 也就是说, 样本数多的样本所对应的损失有一个更高的一个下界, 所以往往会占据主导地位 ?

本文的思想

本文主要就是一个普通的交叉熵损失和 InfoNCE 的一个结合:

\[\mathcal{L}_i := - \sum_{z_+ \in P(i) \cup \{w_i\}} \alpha(z_+) \log \frac{\exp(z_+ \cdot T(x_i))}{\sum_{z_k \in A(i) \cup W} \exp(z_k \cdot T(x_i))}, \]

其中

\[\alpha(w_i) = 1, \]

否则 \(\alpha(z_+) = \alpha\). 并且

\[z \cdot T(x) = \left \{ \begin{array}{ll} z \cdot \mathcal{G}(x_i) & z \in A(i) \\ z \cdot x_i & z \in W \\ \end{array} \right . \]

其中 \(\mathcal{G}\) 就是在对比学习中常用的 two-layer projection head.

观测上面的损失可以发现, 它希望 \(T(x_i)\) 逼近同类的特征表示, 以及类别 \(i\) 的 embedding, 同时远离其他类的样本的特征表示, 和其它类的 embeddings.

后面的关于参数的选择就不讲了, 感觉并没有特别的意思.

代码

[offical]

posted @ 2022-06-08 13:04  馒头and花卷  阅读(375)  评论(3)    收藏  举报