NLP中的对抗学习VS对比学习-1

文章目录

  • 1 对抗学习的目的是什么?
  • 2 embedding是什么?
  • 3 对抗训练
  • 4 常见的对抗训练方式
    • 4.1 FGM
    • 4.2 PGD
    • 4.3 FreeAT
    • 4.4 FreeLB
  • 5 对抗训练和constractive learning
  • 6 对比学习的history and achievement

思维导图链接:https://www.processon.com/mindmap/64159f9ff502f062b5d616be

1 对抗学习的目的是什么?

是为了让模型更鲁棒,对噪声更加的不敏感。
在实现这一点上,有对抗防御、对抗攻击和对抗训练。
对抗防御是识别出更多的样本
对抗攻击是为了构造更多的样本
对抗训练是将样本添加到模型中,以提高模型的鲁棒性

2 embedding是什么?

embedding是词的表示的一种,一般是可以互相替换的词之间的相似度是比较高的。
大概还是和最初的训练objective 有关,一般的Word embedding的训练是根据自监督方式完成,即预测下一个字
如果两个字是可以同时接在下一个字后面的话,相似度理应高一些。比如:我喜欢你和我讨厌你。
参考链接:https://spaces.ac.cn/archives/4122

3 对抗训练

深度学习中的对抗,一般会有两个含义:一个是生成对抗网络(Generative Adversarial Networks,GAN),代表着一大类先进的生成模型;另一个则是跟对抗攻击、对抗样本相关的领域,它跟GAN相关,但又很不一样,它主要关心的是模型在小扰动下的稳健性。
原文链接:https://spaces.ac.cn/archives/7234
最好还是看原文,讲的很透彻。
NLP中的对抗学习VS对比学习-1_第1张图片
NLP中的对抗学习VS对比学习-1_第2张图片
NLP中的对抗学习VS对比学习-1_第3张图片

问题

1.FGM从思想上来说,我理解它的意思是,在原始输入样本x上加对抗r,但这个对抗肯定没法在原始token上加,所以就加在E = nn.word_embedding(x) = x * W_emb上,所以简单描述应该是x_adv = x * W_emb + r;
但从你的FGM的代码实操来看,似乎是将扰动r加在了embedding层的权重W_emb上,即x_adv’ = x * (W_emb + r)
= x * W_emb + x * r,似乎扰动r被多加了(x-1)倍?当然,这种略带玄学的东西本就不该十分一丝不苟,因为好不好用应该是实践说了算,不过我担心是我理解有误,所以请教一下这个问题~

你可能感兴趣的:(论文记录,自然语言处理,学习,人工智能)