FGM-对抗训练

1.加入对抗训练的目的

对抗训练经常用在CV领域和NLP领域,是一种引入噪声的训练方法,在尽量不改变原样本的分布,对样本增加扰动,使得模型能够忽视这种扰动,从而提升模型的鲁棒性和在下游任务的泛化性。

2.对抗训练是什么

论文名称:ADVERSARIAL TRAINING METHODS FOR SEMI-SUPERVISED TEXT CLASSIFICATION

论文地址:https://arxiv.org/abs/1605.07725

对抗样本:对输入增加微小扰动得到的样本。旨在增加模型损失

对抗训练:训练模型去区分样例是真实样例还是对抗样本的过程。对抗训练不仅可以提升模型对对抗样本的防御能力,还能提升对原始样本的泛化能力

论文在词向量上做了扰动,因为一句话如果变更了某个词(例如同义词替换),可能会使得整句话的意思发生变化,且扰动的力度也不好控制。

在词向量进行扰动,会使得产生的对抗样本(词)其实对应不到真实的词,因此这块也与图像上的对抗有明显区别。

下面是扰动项r加在词向量上:

FGM-对抗训练_第1张图片

对于每个x:
  1.计算x的前向loss、反向传播得到梯度
  2.根据embedding矩阵的梯度计算出r,并加到当前embedding上,相当于x+r
  3.计算x+r的前向loss,反向传播得到对抗的梯度,累加到(1)的梯度上
  4.将embedding恢复为(1)时的值
  5.根据(3)的梯度对参数进行更新

 3.总结

对抗训练中关键的是需要找到对抗样本(尽量让模型预测出错的样本),通常是对原始的输入添加一定的扰动来构造,然后用来给模型训练

参考:

2207-论文-对抗训练-fgm - 知乎

FGM对抗训练_Mr.奇的博客-CSDN博客_fgm对抗训练

你可能感兴趣的:(FGM-对抗训练)