對抗訓練(Adversarial Training)簡介
大致可以分爲下面兩種類型:
- Injecting adversarial examples(加入對抗樣本)
- 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步之後,再做參數的反向傳播。訓練目標可以用下面公式表示:
其中爲詞的one-hot編碼向量,爲one-hot編碼經詞嵌入後的向量,爲添加到詞向量的擾動,是標籤,爲預測模型,爲損失函數,爲每次訓練內部進行擾動訓練的次數,爲兩個球的交集,表達式爲:,其中爲對添加擾動後詞向量的Frobenius範式限制。
這種方法可以看作採用batch爲K的擾動做訓練。實驗結果表明,該方法在BERT、AlBERT等預訓練模型基礎上上取得了不錯的提升效果。
隨後Linyang Li et al. (2020) 7基於FreeLB的方法提出了一個改進,即給每個單詞添加一個全局的擾動,和局部的擾動結合起來,作者認爲比起FreeLB,他的方法能夠對擾動產生一個更靈活的範式限制。訓練目標可以用下面的公式表示:
Szegedy et al. (2014) Intriguing properties of neural networks, https://arxiv.org/abs/1312.6199 ↩︎
Goodfellow et al. (2015) Explaining and Harnessing Adversarial Examples, https://arxiv.org/abs/1412.6572 ↩︎
Miyato et al. (2016) Distributional Smoothing with Virtual Adversarial Training, https://arxiv.org/abs/1507.00677 ↩︎
Miyato et al. (2017) Adversarial Training Methods for Semi-Supervised Text Classifications, https://arxiv.org/abs/1605.07725 ↩︎
Goodfellow et al. (2014) Generative Adversarial Nets, https://arxiv.org/abs/1406.2661 ↩︎
Chen Zhu et al. (2020) FreeLB: Enhance Adversarial Training for Natural Language Understanding, https://arxiv.org/abs/1909.11764 ↩︎
Linyang Li et al. (2020) TextAT: Adversarial Training for Natural Language Understanding with Token-Level Perturbation, https://arxiv.org/abs/1909.11764 ↩︎