小样本利器2.文本对立+半监督 FGSM & VAT & FGM代码完成

上一章咱们聊了聊经过一致性正则的半监督计划,运用大量的未标示样原本进步小样本模型的泛化才能。这一章咱们结合FGSM,FGM,VAT看下怎么运用对立练习,以及对立练习结合半监督来进步模型的鲁棒性。本章咱们会混着CV和NLP一同来说,VAT的两篇是CV领域的论文,而FGM是CV迁移到NLP的完成计划,一作都是同一位作者大大。tensorflow完成详见Github-SimpleClassification,pytorch完成详见Github-ClassicSolution

咱们会会集评论3个问题

  • 对立样本为何存在
  • 对立练习完成计划
  • 对立练习为何有用

存在性

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

对立练习

下面咱们看下怎么在模型练习过程中引入对立样本,并练习模型给出正确的猜测

监督使命

这儿的对立练习和GAN这类生成对立练习不同,这儿的对立主要指细小扰动,在CV领域能够简略解说为肉眼不行见的轻微扰动(如下图)

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

不过两类对立练习的原理都能够被经典的min-max公式包括

  • max:对立的部分经过核算delta来最大化丢失
  • min:练习部分针对扰动后的输入进行练习最小化丢失函数

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

以上丢失函数的视角,也能够切换成成极大似然估量的视角,也便是FGM中如下的公式,经过核算r,来使得扰动后y的条件概率最小化

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

所以问题就被简化成了怎么核算扰动。最简略的计划便是和梯度下降相同沿用当时位置的一阶导数,梯度下降是沿graident去最小化丢失,那沿反方向进行扰动不就能够最大化丢失函数。不过由于梯度自身是对当时位置拟合曲线的线性化,所以需求操控步长来确保局部的线性,反向传播中咱们用learning rate来操控步长,这儿则需求操控扰动的巨细。一起对立扰动自身也需求操控扰动的起伏,不然就不契合细小扰动这个条件,放到NLP能够理解为为了避免扰动造成语义自身发生改变。

FGSM运用了l∞l_{\infty} norm来对梯度进行正则化,只保留了方向信息丢掉了gradient各个维度上的scale

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

而FGM中作者挑选了l2 norm来对梯度进行正则化,在梯度上更多了更多的信息,不过感觉在模型初始拟合的过程中也或许引入更多的噪音。

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

有了对立样本,下一步便是怎么让模型对扰动后的样本给出正确的分类结果。所以最简略的练习方法便是结合监督loss,和施加扰动之后的loss。FGSM中作者简略用0.5的权重来做交融。所以模型练习的方法是样本向前传递核算Loss,冻结梯度,核算扰动,对样本施加扰动再核算Loss,两个loss加权核算梯度。不过部分完成也有只保留对立loss的操作,无妨作为超参对不同使命进行调整~

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

在运用对立扰动时有两个需求留意的点

  1. 施加扰动的位置:对输入层扰动更合理
  2. 扰动和扰动层的scale:扰动层归一化

关于CV使命扰动位置有3个挑选,输入层,躲藏层,或者输出层,关于NLP使命由于输入离散,所以输入层被替换成look up之后的embedding层。

作者根据全能迫临定理【简略说便是一个线性层+躲藏层如果有unit足够多能够迫临Rn上的恣意函数0】指出由于输出层自身不满足全能迫临定理条件,所以对输出层(linear-softmax layer)扰动一般会导致模型underfit,由于模型会没有足够的才能来学习怎么反抗扰动。

而关于激活函数范围在[-inf, inf]的躲藏层进行扰动,会导致模型经过扩大躲藏层scale来忽略扰动的影响。

因此一般是对输入层进行扰动,在下面FGM的完成中作者对word embedding进行归一化来躲避上面scale的问题。不过这儿有一个疑问便是对BERT这类预练习模型是不能对输入向量进行归一化的,那么怎么确保BERT在微调的过程中不会经过扩大输入层来躲避扰动呢?后来想到的一个点是在勘探Bert Finetune对向量空间的影响中说到的,微调对BERT各个层的影响是越接近底层影响越小的,所以从这个视点来说也是针对输入层做扰动更合理些~

半监督使命

以上的对立练习只适用于标示样本,由于需求经过loss来核算梯度方向,而未标示样本无法核算loss,最简略的计划便是用模型预估来替代真实label。所以最大化loss的扰动,变成使得猜测散布改变最大的扰动。

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

以上的虚拟扰动r无法直接核算,所以泰勒打开再次登场,不过这儿由于把y替换成了模型预估p,所以一阶导数为0,所以最大化KL近似为最大化二阶导数的部分

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

而以上r的求解,其实便是求解二阶海森矩阵的最大特征值对应的特征向量,以下u便是最大特征值对应的单位特征向量

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

由于海森矩阵的核算复杂度较高,一般会采用迭代近似的方法来核算(详见REF12),简略说便是随机向量d(和u非正交),经过重复的下述迭代会趋近于u

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

而以上Hd相同能够被近似核算,由于上面KL的一阶导数为0,所以咱们能够用KL~rHr的一阶差分来估量Hd,所以也就得了d的近似值

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

哈哈近似了一圈估量有的盆友们已经蒙圈了,能够对照着下面的核算计划再回来理解下上面的公式,核算虚拟扰动的算法如下(其间1~4能够多次迭代)

  1. 对embedding层施加随机扰动d
  2. 向前传递核算扰动后的logit
  3. 扰动logit和原始logit核算KL间隔
  4. 对KL核算梯度
  5. 对梯度做归一化得到虚拟扰动的近似
  6. 对embedding层施加虚拟扰动,再核算一遍KL作为虚拟对立部分的loss

这儿暂时没有完成VAT由于时刻复杂度有些高,之后有需求再补上VAT的部分

合理性

对立扰动能够理解为一种正则计划,中心是为了进步模型鲁棒性,也便是样本外的泛化才能,这儿给出两个视角

  1. 对比L1正则

小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现

  1. 对比一致性正则

这儿和上一章咱们说到的半监督之一致性正则有着相通之处,一致性正则着重模型应该对轻微扰动的样本给出一致的猜测,但并没有对扰动自身进行太多的探讨,而对立练习的中心在于怎么对样本进行扰动。但中心都是扩大标示样本的覆盖范围,让标示样本的近邻拥有一致的模型猜测。

作用

FGM论文是在LSTM,Bi-LSTM上做的测验会有比较显着的2%左右ErrorRate的下降。我在BERT上参加FGM在几个测验集上测验指标作用并不显着,不过这儿开源数据上测验集和练习集相似度比较高,而FGM更多是对样本外的泛化才能的进步。不过我在公司数据上运用FMG输出的猜测概率的置信度会明显下降,一般bert微调会容易得到0.999这类高置信度猜测,而参加FGM之后prob的散布变得更加合理,这个作用更容易用正则来进行解说。以下也给出了两个比赛计划链接里面都是用fgm做了优化也有一些insights,感兴趣的朋友或许在你的测验集上也实验下~

不过一言以蔽之,FGM的对立计划,主要经过正则来束缚模型学习,更多是如虎添翼,想要学中送碳主张盆友们兢兢业业的去优化样本,优化标示,以及承认你的使命方针定义是否合理~


Reference

  1. FGSM- Explaining and Harnessing Adversarial Examples, ICLR2015
  2. FGM-Adversarial Training Methods for Semi-Supervised Text Classification, ICLR2017
  3. VAT-Virtual adversarial training: a regularization method for supervised and semi-supervised learning
  4. VAT-Distributional Smoothing with Virtual Adversarial Training
  5. Min-Max公式 Towards Deep Learning Models Resistant to Adversarial Attacks
  6. FGM-TF完成
  7. VAT-TF完成
  8. NLP中的对立练习
  9. 苏神yyds:对立练习浅谈:含义、方法和考虑(附Keras完成)
  10. 天池大赛疫情文本挑战赛线上第三名计划分享
  11. 根据同音同形纠错的问题等价性判别第二名计划
  12. Eigenvalue computation in the 20th century