什么是对抗训练呢?说起“对抗”,我们就想起了计算机视觉领域的对抗生成网络(GAN)。在计算机视觉中,对抗思想的基本配置是一个生成器,一个判别器。生成器希望能够生成一些样本能够“欺骗”判别器,让判别器无法正确判别样本。而判别器当然需要不断增强自己的判别能力,使得生成器不能够欺骗自己啦。在这个相互作用下,判别器的能力不断增强,从而得到一个很好的判别器。

 

众所周知,在 CV 中我们可以通过在原图像中加入噪点,但是并不影响原图像的性质。而在 NLP 领域,我们并不能直接的通过在词编码上添加噪点,因为词嵌入本质上就是 one-hot,如果在 one-hot 上增加上述噪点,就会对原句产生歧义。因此,一个自然的想法就是在 embedding 上增加扰动。
本文探讨了NLP中常见的几种对抗训练方式。其实对抗训练在 NLP 中的效果还是不错的,笔者介绍的几种对比算法都是在前人的基础上不断地进行改进,FGSM->FGM->PGD->FreeLB,虽然每个改动点都不是很大,但是确实比较有效果。当然,并不是说 FreeLB 就是最有效的。每个数据集都会有差异,从而会出现 PGD 在某数据集效果是最好的,但是在另外一个数据集反而不如 FGM 的情况也是有可能的。希望本文能对读者们在对抗训练方法方面有一定的帮助,能够有进一步的认识。

内容中包含的图片若涉及版权问题,请及时与我们联系删除