文章目录
概
这篇文章提出了对比学习结合adversarial training的一个思路.
主要内容
对比学习的强大之处在于正负样本对的构造, 一个结合adversarial training的很自然的思路是, 将普通样本与其相对应的对抗样本作为一组正样本对. 令
x
∈
X
x \in \mathcal{X}
x∈X为样本,
t
∈
T
t \in \mathcal{T}
t∈T为一augmentation, 则
(
x
,
t
(
x
)
)
(x, t(x))
(x,t(x))便构成了一正样本对, 再假设有一组负样本
{
x
n
e
g
}
\{x_{neg}\}
{xneg}, 则
L
c
o
n
(
x
,
t
(
x
)
,
{
x
n
e
g
}
)
=
−
log
exp
(
z
T
z
p
o
s
/
τ
)
exp
(
z
T
z
p
o
s
/
τ
)
+
∑
z
n
e
g
exp
(
z
T
z
n
e
g
/
τ
)
,
\mathcal{L}_{con} (x, t(x), \{x_{neg}\}) = -\log \frac{\exp (z^T z_{pos}/\tau)}{\exp (z^T z_{pos}/\tau)+\sum_{z_{neg}}\exp(z^Tz_{neg}/\tau)},
Lcon(x,t(x),{xneg})=−logexp(zTzpos/τ)+∑znegexp(zTzneg/τ)exp(zTzpos/τ),
其中
z
z
z是经过标准化的特征,
τ
\tau
τ是temperature. 很自然的, 我们可以通过上面的损失构造
x
x
x的对抗样本
x
a
d
v
x_{adv}
xadv:
x
a
d
v
:
=
∏
B
(
x
;
ϵ
)
(
x
+
α
⋅
s
i
g
n
(
∇
x
a
d
v
L
c
o
n
(
x
,
x
a
d
v
,
{
x
n
e
g
}
)
)
.
x_{adv} := \prod_{B(x;\epsilon)} (x+\alpha \cdot \mathrm{sign} (\nabla_{x_{adv}} \mathcal{L}_{con}(x, x_{adv}, \{x_{neg}\})).
xadv:=B(x;ϵ)∏(x+α⋅sign(∇xadvLcon(x,xadv,{xneg})).
稍有不同的是, 作者实际采用的是利用
L
c
o
n
(
t
(
x
)
,
t
′
(
x
)
,
{
x
n
e
g
}
)
\mathcal{L}_{con}(t(x), t'(x), \{x_{neg}\})
Lcon(t(x),t′(x),{xneg})来构建对抗样本, 最后的用于训练的损失是
L
R
o
C
L
:
=
L
c
o
n
(
t
(
x
)
,
{
t
′
(
x
)
,
t
(
x
)
a
d
v
}
,
{
t
(
x
)
n
e
g
}
)
L
t
o
t
a
l
:
=
L
R
o
C
L
+
λ
L
c
o
n
(
t
(
x
)
a
d
v
,
t
′
(
x
)
,
{
t
(
x
)
n
e
g
}
)
,
\mathcal{L}_{RoCL} := \mathcal{L}_{con}(t(x), \{t'(x), t(x)_{adv}\}, \{t(x)_{neg}\}) \\ \mathcal{L}_{total}:= \mathcal{L}_{RoCL} + \lambda \mathcal{L}_{con}(t(x)^{adv},t'(x), \{t(x)_{neg}\}),
LRoCL:=Lcon(t(x),{t′(x),t(x)adv},{t(x)neg})Ltotal:=LRoCL+λLcon(t(x)adv,t′(x),{t(x)neg}),
多的项即希望对抗样本和其他样本区别开来.
注:
L
c
o
n
(
x
,
{
t
(
x
)
,
t
′
(
x
)
}
,
{
x
n
e
g
}
)
=
−
log
∑
z
p
o
s
exp
(
z
T
z
p
o
s
/
τ
)
∑
z
p
o
s
exp
(
z
T
z
p
o
s
/
τ
)
+
∑
z
n
e
g
exp
(
z
T
z
n
e
g
/
τ
)
.
\mathcal{L}_{con} (x, \{t(x), t'(x)\}, \{x_{neg}\}) = -\log \frac{\sum_{z_{pos}}\exp (z^T z_{pos}/\tau)}{\sum_{z_{pos}}\exp (z^T z_{pos}/\tau)+\sum_{z_{neg}}\exp(z^Tz_{neg}/\tau)}.
Lcon(x,{t(x),t′(x)},{xneg})=−log∑zposexp(zTzpos/τ)+∑znegexp(zTzneg/τ)∑zposexp(zTzpos/τ).
Linear Part
因为自监督只是单纯提取了特征, 一般用于下游的分类任务需要再训练一个线性分类器, 很自然的, 作者选择在训练下游分类器的时候同样使用adversarial training:
arg
min
ψ
E
(
x
,
y
)
∼
D
[
max
δ
∈
B
(
x
,
ϵ
)
L
c
e
(
ψ
,
x
+
δ
,
y
)
]
,
\arg \min_{\psi} \mathbb{E}_{(x, y) \sim \mathbb{D}} [\max_{\delta \in B(x, \epsilon)} \mathcal{L}_{ce}(\psi, x+\delta,y)] ,
argψminE(x,y)∼D[δ∈B(x,ϵ)maxLce(ψ,x+δ,y)],
其中
ψ
\psi
ψ为线性分类器
l
(
⋅
)
l(\cdot)
l(⋅)的的参数.
另外, 作者还融合的随机光滑的技巧, 即在估计的时候
S
(
x
)
=
arg
max
c
∈
Y
E
t
∈
T
(
l
c
(
f
(
t
(
x
)
)
)
=
c
)
,
S(x) = \arg \max_{c \in Y} \mathbb{E}_{t \in \mathcal{T}} (l_c(f(t(x)))=c),
S(x)=argc∈YmaxEt∈T(lc(f(t(x)))=c),
一般的随机光滑是对样本随机加噪声, 这里的随机光滑是随机选择augmentation, 这倒是很让人眼前一亮.