概
这篇文章提出了对比学习结合adversarial training的一个思路.
主要内容
对比学习的强大之处在于正负样本对的构造, 一个结合adversarial training的很自然的思路是, 将普通样本与其相对应的对抗样本作为一组正样本对. 令(x in mathcal{X})为样本, (t in mathcal{T})为一augmentation, 则((x, t(x)))便构成了一正样本对, 再假设有一组负样本({x_{neg}}), 则
[mathcal{L}_{con} (x, t(x), {x_{neg}}) = -log frac{exp (z^T z_{pos}/ au)}{exp (z^T z_{pos}/ au)+sum_{z_{neg}}exp(z^Tz_{neg}/ au)},
]
其中(z)是经过标准化的特征, ( au)是temperature. 很自然的, 我们可以通过上面的损失构造(x)的对抗样本(x_{adv}):
[x_{adv} := prod_{B(x;epsilon)} (x+alpha cdot mathrm{sign} (
abla_{x_{adv}} mathcal{L}_{con}(x, x_{adv}, {x_{neg}})).
]
稍有不同的是, 作者实际采用的是利用(mathcal{L}_{con}(t(x), t'(x), {x_{neg}}))来构建对抗样本, 最后的用于训练的损失是
[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}}),
]
多的项即希望对抗样本和其他样本区别开来.
注:
[mathcal{L}_{con} (x, {t(x), t'(x)}, {x_{neg}}) = -log frac{sum_{z_{pos}}exp (z^T z_{pos}/ au)}{sum_{z_{pos}}exp (z^T z_{pos}/ au)+sum_{z_{neg}}exp(z^Tz_{neg}/ au)}.
]
Linear Part
因为自监督只是单纯提取了特征, 一般用于下游的分类任务需要再训练一个线性分类器, 很自然的, 作者选择在训练下游分类器的时候同样使用adversarial training:
[arg min_{psi} mathbb{E}_{(x, y) sim mathbb{D}} [max_{delta in B(x, epsilon)} mathcal{L}_{ce}(psi, x+delta,y)] ,
]
其中(psi)为线性分类器(l(cdot))的的参数.
另外, 作者还融合的随机光滑的技巧, 即在估计的时候
[S(x) = arg max_{c in Y} mathbb{E}_{t in mathcal{T}} (l_c(f(t(x)))=c),
]
一般的随机光滑是对样本随机加噪声, 这里的随机光滑是随机选择augmentation, 这倒是很让人眼前一亮.