概
本文介绍了一种利用对比学习进行对抗预训练的方法.
主要内容
思想是很简单的, 就是利用对比学习进行训练(样本的augumentation多一个 δ \delta δ), 然后再通过此方法训练得到的参数进行finetune.
比较特别的是, 有三种预训练的方案:
- Adversarial-to-Adversarial (A2A): 即样本对均加了对抗扰动 ( x ~ i + δ i , x ~ j + δ j ) (\tilde{x}_i+\delta_i, \tilde{x}_j + \delta_j) (x~i+δi,x~j+δj);
- Adversarial-to-Standard (A2S): ( x ~ i + δ i , x ~ j ) (\tilde{x}_i+\delta_i, \tilde{x}_j) (x~i+δi,x~j);
- Dual Stream (DS): 作者在实验中发现, 单独使用A2A, 侵略性太强, 故采取了一种中和的方法, 即同时加上Standard-to-Standard (S2S)的损失.
实验结果也显示, DS的效果是最好的, 即
ℓ
=
ℓ
N
T
(
f
∘
g
(
x
~
i
,
x
~
j
;
θ
,
θ
b
n
)
)
+
α
⋅
ℓ
N
T
(
f
∘
g
(
x
~
i
+
δ
i
,
x
~
j
+
δ
j
,
θ
b
n
a
d
v
)
)
,
\ell = \ell_{NT} (f \circ g(\tilde{x}_i, \tilde{x}_j; \theta, \theta_{bn}))+ \alpha \cdot \ell_{NT}(f \circ g (\tilde{x}_i +\delta_i, \tilde{x}_j +\delta_j, \theta_{bn^{adv}})),
ℓ=ℓNT(f∘g(x~i,x~j;θ,θbn))+α⋅ℓNT(f∘g(x~i+δi,x~j+δj,θbnadv)),
需要注意的是
θ
b
n
,
θ
b
n
a
d
v
\theta_{bn}, \theta_{bn^{adv}}
θbn,θbnadv, 因为作者作者发现(其实之前便有文章指出过这个问题了), 如果对抗样本和普通样本使用的是同一个batchnorm, 最后结果会变差, 所以作者训练DS或者A2S的时候, 都是使用两个独立的BN的.
本文还有一些在半监督下的分析, 这里就不多赘述了.