1 引入
1.1 题目
1.2 摘要
提出了一个高效的有监督对比学习框架,称为自对比学习 (Self-contrastive (SelfCon) learning),以在来自多输出网络 (Multi-exit network) 的不同级别的多个输出中进行自对比。单视角下的自对比学习无需额外的增强样本,这使得它解决了多视图下批处理的一些问题,例如,高计算成本和泛化错误。与先前基于无监督学习多视图之间互信息 (Mutual information, MI) 的方法不同:
1)在有监督单视图框架下证明了SelfCon损失的MI界限;
2)实证分析了自对比学习的成功与来自单视图和子网络下的正则化效果有关。
1.3 Bib
@article{Bae:2021:self,
author = {Sangmin Bae and Sungnyun Kim and Jongwoo Ko and Gihun Lee and Seungjong Noh and Se-Young Yun},
title = {Self-contrastive learning: {A}n efficient supervised contrastive framework with single-view and sub-network},
journal = {arXiv:2106.15499},
year = {2021}
}
2 自对比学习
首先定义编码器结构,令 F F F表示骨架网络; G G G表示子网络,其将骨架的参数共享到某个中间层。令 T T T表示产生中间特征的共享层。注意 F F F和 G G G包括编码器后的投影头。如图1所示,锚样本 (Anchor sample) 的正负对分别使用绿色和红色突出显示。
2.1 SupCon损失
为了缓解交叉熵损失的不足,例如泛化性能降低和利润率不佳的可能性,Khosla等人提出了一个对比损失的有监督版本,其定义正对为具有相同真实标签的样本。重新制定的SubCon损失如下:
L
s
u
p
=
∑
i
∈
I
[
−
1
∣
P
i
∣
∑
p
∈
P
i
F
(
x
i
)
T
F
(
x
p
)
+
log
(
∑
p
∈
P
i
e
F
(
x
i
)
T
F
(
x
p
)
+
∑
n
∈
N
i
e
F
(
x
i
)
T
F
(
x
n
)
)
]
I
≡
{
1
,
…
,
2
B
}
,
P
i
≡
{
p
∈
I
∖
{
i
}
∣
y
p
=
y
i
}
,
N
i
≡
{
n
∈
I
∣
y
n
≠
y
i
}
(1)
\tag{1} \begin{array}{ll} \mathcal{L}_{sup}=& \sum\limits_{i\in I}\Bigg[-\frac{1}{|P_i|}\sum\limits_{p\in P_i}F(x_i)^TF(x_p)\\ &+\log\left(\sum\limits_{p\in P_i}e^{F(x_i)^TF(x_p)}+\sum\limits_{n\in N_i}e^{F(x_i)^TF(x_n)}\right)\Bigg]\\ &I\equiv\{1,\dots,2B\},\\ &P_i\equiv\{p\in I\setminus\{i\}|y_p=y_i\},\\ &N_i\equiv\{n\in I|y_n\neq y_i\} \end{array}
Lsup=i∈I∑[−∣Pi∣1p∈Pi∑F(xi)TF(xp)+log(p∈Pi∑eF(xi)TF(xp)+n∈Ni∑eF(xi)TF(xn))]I≡{1,…,2B},Pi≡{p∈I∖{i}∣yp=yi},Ni≡{n∈I∣yn=yi}(1)其中
B
B
B是批次大小。为了简洁,温度参数
τ
\tau
τ被省略,其用于软化或者硬化softmax值,以及省略了锚样本求和的除数常量
1
/
∣
I
∣
1/|I|
1/∣I∣。
I
I
I表示用于多时间批处理的索引的集合,其连接了原始的
B
B
B个图像和增量图像,即
x
B
+
i
x_{B+i}
xB+i是
x
i
x_i
xi的一个增量对。
P
i
P_i
Pi和
N
i
N_i
Ni是屈服于锚点
i
i
i的正负对索引的集合。公式1是分类交叉熵的一种,第一项包含正对,第二项包含所有的正负对。当
P
i
≡
{
(
i
+
B
)
m
o
d
2
B
}
P_i\equiv\{(i+B)mod\ 2B\}
Pi≡{(i+B)mod 2B}时该公式等价于NT-Xent损失。
2.2 SelfCon损失
我们的目标是最大化骨架网络与子网络输出之间的相似性。因此定义了SelfCon损失,它为每个输出形成一个自对比任务,包括来自子网络的特征。
L
self
=
∑
i
∈
I
,
ω
∈
Ω
[
−
1
∣
P
i
1
∣
∣
Ω
∣
∑
p
1
∈
P
i
1
,
ω
1
∈
Ω
ω
(
x
i
)
⊤
ω
1
(
x
p
1
)
+
log
∑
ω
2
∈
Ω
(
∑
p
2
∈
P
i
2
e
ω
(
x
i
)
⊤
ω
2
(
x
p
2
)
+
∑
n
∈
N
i
e
ω
(
x
i
)
⊤
ω
2
(
x
n
)
)
]
I
≡
{
{
1
,
…
,
B
}
(SelfCon-S)
{
1
,
…
,
2
B
}
(SelfCon-M)
,
P
i
j
≡
{
p
j
∈
I
\
{
i
}
∣
y
p
j
=
y
i
}
,
N
i
≡
{
n
∈
I
∣
y
n
≠
y
i
}
(2)
\tag{2} \begin{aligned} &\mathcal{L}_{\text {self }}=\sum_{\substack{i \in I, \boldsymbol{\omega} \in \Omega}}\left[-\frac{1}{\left|P_{i 1}\right||\Omega|} \sum_{\substack{p_{1} \in P_{i 1}, \boldsymbol{\omega}_{1} \in \Omega}} \omega\left(x_{i}\right)^{\top} \boldsymbol{\omega}_{1}\left(x_{p_{1}}\right)\right.\\ &\left.+\log \sum_{\boldsymbol{\omega}_{2} \in \Omega}\left(\sum_{p_{2} \in P_{i 2}} e^{\boldsymbol{\omega}\left(x_{i}\right)^{\top} \boldsymbol{\omega}_{2}\left(x_{p_{2}}\right)}+\sum_{n \in N_{i}} e^{\boldsymbol{\omega}\left(x_{i}\right)^{\top} \boldsymbol{\omega}_{2}\left(x_{n}\right)}\right)\right]\\ &I \equiv\left\{\begin{array}{ll} \{1, \ldots, B\} & \text { (SelfCon-S) } \\ \{1, \ldots, 2 B\} & \text { (SelfCon-M) } \end{array},\right.\\ &P_{i j} \equiv\left\{p_{j} \in I \backslash\{i\} \mid y_{p_{j}}=y_{i}\right\}, N_{i} \equiv\left\{n \in I \mid y_{n} \neq y_{i}\right\} \end{aligned}
Lself =i∈I,ω∈Ω∑⎣
⎡−∣Pi1∣∣Ω∣1p1∈Pi1,ω1∈Ω∑ω(xi)⊤ω1(xp1)+logω2∈Ω∑⎝
⎛p2∈Pi2∑eω(xi)⊤ω2(xp2)+n∈Ni∑eω(xi)⊤ω2(xn)⎠
⎞⎦
⎤I≡{{1,…,B}{1,…,2B} (SelfCon-S) (SelfCon-M) ,Pij≡{pj∈I\{i}∣ypj=yi},Ni≡{n∈I∣yn=yi}(2)其中
Ω
=
{
F
,
G
}
\Omega=\{F,G\}
Ω={F,G}是骨架网络和子网络的一个函数集合。
ω
1
\omega_1
ω1是用于生成正对的函数,
ω
2
\omega_2
ω2是用于从多输出网络生成对比对的函数。当输出特征来自于不同的输出路径时,我们包含了一个锚样本到正集合中,即
P
i
j
←
P
i
j
∪
{
i
}
P_{ij}\leftarrow P_{ij}\cup\{i\}
Pij←Pij∪{i}。例如,
G
(
x
i
)
G(x_i)
G(xi)是关于
F
(
x
i
)
F(x_i)
F(xi)的一个正对。这里依然省略了
τ
\tau
τ和除数常量。
尽管流行的对比方法强制通过数据增强生成多视图批次,但SelfCon学习中的子网络起着增强的作用,并提供了特征空间的替代视图。因此,在没有额外的增强样本的情况下,我们使用单视图批次 (SelfCon-S) 和多视图批次 (SelfCon-M) 来制定SelfCon损失函数。