zoukankan      html  css  js  c++  java
  • Adversarial Self-Supervised Contrastive Learning

    Kim M., Tack J. & Hwang S. Adversarial Self-Supervised Contrastive Learning. In Advances in Neural Information Processing Systems, 2020.

    这篇文章提出了对比学习结合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, 这倒是很让人眼前一亮.

    代码

    原文代码

  • 相关阅读:
    史上最全Html与CSS布局技巧
    Discuz! X的CSS加载机制
    关于input框只能输入纯数字问题
    对象的数据属性
    vue中将光标定位到Input上的问题
    端口占用问题解决方案
    el-button如何消除右边计数样式
    如何改变vscode的背景颜色
    为什么——要实例化对象?
    call()&apply()
  • 原文地址:https://www.cnblogs.com/MTandHJ/p/13905157.html
Copyright © 2011-2022 走看看