NLP與對抗訓練

對抗訓練(Adversarial Training)簡介

大致可以分爲下面兩種類型:

  1. Injecting adversarial examples(加入對抗樣本)
  2. min-max optimization.(最小最大優化)

部分內容參照博客:
https://nlpblog.cl.uni-heidelberg.de/index.php/2019/09/20/adversarial-training/#identifier_22_286

1 Adversarial Examples(對抗樣本)

Szegedy et al. (2014)1首先引入了對抗樣本的概念,通過對圖像添加一些擾動,這些擾動對於人眼是不可察覺的imperceptible,使得神經網絡作出錯誤的判斷。

隨後Goodfellow et al. (2015)2提出了一個快速生成對抗樣本的方法,直接朝着損失函數對於輸入梯度的方向移動,而不是搜索給定數據點的所有鄰居。

隨後Miyato et al. (2016)3提出了Virtual Adversarial Training的方法。

爲什麼難以應用到NLP任務中?

兩個主要的原因,首先對於分類任務而言,模型出錯是比較直觀的可解釋的,但是對於一些其他的任務,則需要更加複雜的評價準則,例如序列標註和語言生成;其次NLP模型輸入通常是單詞組成的,所以自然的形成一個離散空間,很難知道怎麼對輸入數據添加對抗擾動。

基於一個假設,即單詞經過嵌入後會映射到一個連續的空間,Miyato et al. (2017)4通過對嵌入後的信息做對抗擾動,對文本做對抗訓練。在多個文本分類任務中取得了突破,並且學到了高質量的詞嵌入表示。

2 Adversarial Game(Min-Max Optimization)

引入一個不同的訓練方法,對抗訓練,這裏的對抗指的是模型不同的部分追求相反的目標,用到了博弈論(Game Theory)的一點概念。這個方法最先由Goodfellow et al. (2014)5 (GAN)引入,模型由兩部分組成,一部分試圖生成數據分佈(生成器),另一部分(辨別器)區分真實數據和生成的數據。雙方都使用辨別器的準則做訓練信號,直至達到一個飽和態,這叫做min-max優化。

應用到文本中的對抗訓練

在ICLR2020會議,Chen Zhu et al. (2020) 6 提出了FreeLB面向自然語言處理的對抗訓練方法,基於以往訓練方法的改進,在添加擾動然後訓練完K步之後,再做參數的反向傳播。訓練目標可以用下面公式表示:
minθE(Z,y)D[1Kt=0K1maxδtItL(fθ(X+δt),y)] \min_{\theta}\mathbb{E}_{(Z, y)\sim D} \left[\frac{1}{K}\sum_{t=0}^{K-1}\max_{\delta_t \in \mathcal{I}_t}L(f_{\theta}(X + \delta_t), y) \right]

其中ZZ爲詞的one-hot編碼向量,XX爲one-hot編碼經詞嵌入後的向量,δ\delta爲添加到詞向量XX的擾動,yy是標籤,fθf_\theta爲預測模型,LL爲損失函數,KK爲每次訓練內部進行擾動訓練的次數,It\mathcal{I}_t爲兩個球的交集,表達式爲:It=BX+δ0(αt)BX(ϵ)\mathcal{I}_t = \mathcal{B}_{X+\delta_0}(\alpha t) \cap \mathcal{B}_X(\epsilon),其中爲ϵ\epsilon對添加擾動後詞向量的Frobenius範式限制。

這種方法可以看作採用batch爲K的擾動做訓練。實驗結果表明,該方法在BERT、AlBERT等預訓練模型基礎上上取得了不錯的提升效果。

隨後Linyang Li et al. (2020) 7基於FreeLB的方法提出了一個改進,即給每個單詞添加一個全局的擾動η\eta,和局部的擾動δ\delta結合起來,作者認爲比起FreeLB,他的方法能夠對擾動產生一個更靈活的範式限制。訓練目標可以用下面的公式表示:
minθE(Z,y)D[1Kt=0K1maxδt+ηtItL(fθ(X+δt+ηt),y)] \min_{\theta}\mathbb{E}_{(Z, y)\sim D} \left[\frac{1}{K}\sum_{t=0}^{K-1}\max_{\delta_t + \eta_t \in \mathcal{I}_t}L(f_{\theta}(X + \delta_t + \eta_t), y) \right]


  1. Szegedy et al. (2014) Intriguing properties of neural networks, https://arxiv.org/abs/1312.6199 ↩︎

  2. Goodfellow et al. (2015) Explaining and Harnessing Adversarial Examples, https://arxiv.org/abs/1412.6572 ↩︎

  3. Miyato et al. (2016) Distributional Smoothing with Virtual Adversarial Training, https://arxiv.org/abs/1507.00677 ↩︎

  4. Miyato et al. (2017) Adversarial Training Methods for Semi-Supervised Text Classifications, https://arxiv.org/abs/1605.07725 ↩︎

  5. Goodfellow et al. (2014) Generative Adversarial Nets, https://arxiv.org/abs/1406.2661 ↩︎

  6. Chen Zhu et al. (2020) FreeLB: Enhance Adversarial Training for Natural Language Understanding, https://arxiv.org/abs/1909.11764 ↩︎

  7. Linyang Li et al. (2020) TextAT: Adversarial Training for Natural Language Understanding with Token-Level Perturbation, https://arxiv.org/abs/1909.11764 ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章