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

本文探讨了自然语言处理中对抗学习的目的和对抗训练,解释了embedding的概念,并详细介绍了对抗训练的不同方法,如FGM、PGD、FreeAT和FreeLB。同时,对比了对抗训练与对比学习的区别,强调了两者在模型鲁棒性和表示学习中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思维导图链接: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
最好还是看原文,讲的很透彻。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题

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)倍?当然,这种略带玄学的东西本就不该十分一丝不苟,因为好不好用应该是实践说了算,不过我担心是我理解有误,所以请教一下这个问题~

1 如果加在bias的位置的话,反向传播的话,加不加都不会产生任何影响,这时候FGM就没有意义了;
2 为什么不能加?严格来说,NLP里面就没有真正的对抗样本,因为真正的对抗样本是需要加了扰动之后仍然能够在vocab中有对应的index,而NLP里面很难做到。

2.此外,再问个更小白的问题——我理解必须先算出原始embedding对应的loss,才能在此基础上算出embedding空间加扰动r之后的对抗loss,从而反向传播得到grad以进行参数更新。但我不理解的是,为何第二次backward()要在第一次backward()基础上进行?即最终得到的grad,是由原始loss对应的grad+对抗loss对应的grad加和而得,我个人理解是,模型训练只需要使用更难更容易出大loss的对抗样本即可,那为何还要保留

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YJII

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值