原於2018年1月在實驗室組會上做的分享,今天分享給大家,希望對大家科研有所幫助。
今天給大家分享一下對抗訓練(Adversarial Training,AT)。
為何要選擇這個主題呢?
我們從上圖的Attention的搜索熱度可以看出,Attention在出現后,不斷被人們所重視,基本上現在的頂會論文都離不開Attention。
同樣,AT的搜索熱度也持續高漲,因此,我們有理由相信AT也能像Attention一樣,在學術界大放光彩。
原本的AT,最初是在樣本中加入對抗擾動使神經網絡失效,當時AT並不廣為人知。
但是后來GAN(Generative Adversarial Networks )的出現,使AT受到了大量的關注,並且也被用於各種任務中。
下面,我們通過三篇論文來介紹一下AT能夠應用於何種場景,以及能夠取得何種效果。
首先,我們來介紹一下《Domain-Adversarial Training of Neutral Networks》
這篇論文的核心任務是領域適配(Domain Adaptation),也是我們常說的遷移學習。主要涉及兩個領域,一個目標領域(target domain)和源領域(source domain),通常,源領域的資源、語料較多、比較適合特征建模,但是並不是任務需要的領域,僅僅是相關領域;但是目標領域雖然是任務需要的領域,但是由於資源、語料少,難於建模。因此,通過在源領域學習特征后,遷移到目標領域,即領域適配。
本文的主要貢獻是①一種新的擴充訓練集的方式②提出了梯度方向層(Gradient Reversal Layer, GRL)
本文的模型包括三個部分,分別為特征抽取器(feature extractor)、標簽預測器(label predictor)和領域分類器(domain classifier)。
特征抽取器主要用於抽取兩個領域的特征,而標簽預測器用於對源領域的樣本進行標簽預測(目標領域的語料少,這里假設目標語料沒有標注數據,所以不需要對目標語料進行預測)。領域分類器借助GRL對樣本是來源於目標領域還是源領域進行預測。
本文的理論依據是如果抽取的特征是兩個領域中公共的特征(即僅僅使用該特征無法區分該樣本是來自目標領域還是源領域),則該特征比較適合領域適配(即可以利用該特征進行遷移學習,且效果較好)。
那么如何評價領域適配的好於壞呢?
領域適配中涉及目標誤差(target error)和源誤差(source error),領域適配的好壞可以通過目標誤差的大小來衡量。而目標誤差可以通過源誤差+兩領域之間的距離來衡量。
源誤差通過損失函數很容易衡量,那么,問題的焦點可以轉移到兩領域的距離如何衡量上。
在論文中,作者指出可以使用領域散度(domain divergence)來衡量兩個領域的距離。但是由於計算復雜,作者又引入代理距離(Proxy Distance)來計算。即代理距離可以通過分類器在兩領域上的誤差來衡量(ε表示分類器在兩領域上得到的最小損失)。
源誤差可以通過神經網絡來衡量,而距離可以通過代理距離來衡量,則整個領域適配的損失函數便是兩者的相加。
源領域的誤差可以通過最小化標簽分類器的誤差來達到最小化;在領域分類器上,由於代理距離的衡量需要最小化分類器的損失,因此模型需要最小化領域分類器的誤差。同時由於要尋找兩個領域公共的特征,也就是特征抽取的特征不能最小化領域分類器的誤差,必須要最大化。這樣與普通的后向傳播有很大的區別。為此,作者提出使用GRL來將領域分類器傳給特征分類器的梯度進行反向。這樣在最小化領域分類器的誤差時,從特征抽取器的角度看是最大化領域分類器,而從領域分類器的角度看,是最小化領域分類器的誤差,這樣就形成了對抗,這就是本文的對抗的體現。
通過對抗訓練,特征抽取器抽取的特征是兩領域中公共的特征,那么就可以利用這些公共特征來進行遷移學習。同時由於本模型不需要目標語料的標簽,因此可以大幅度的擴充訓練語料規模。
作者在MNIST數據集上對本文模型進行了測試,可以看出文本模型的確有所提升。
AT的另一個應用便是《Adversarial Multi-task Learning for Text classification》,本文可以看成是《Domain-Adversarial Training of Neutral Networks》的一種擴展,基本沒有特別大的創新點。
本文主要的任務是多任務學習,也就是某些任務相互關聯,而且語料都很少,如果每一任務單獨訓練一個模型很容易造成過擬合,但是如果將他們一起訓練,尋找這些任務中的公共特征,那么模型在這些任務上都有提升。
本文的創新點主要有①通過AT來區分特定任務的特征和公共特征②通過正交化來確保兩種特征不產生交集。
本文的模型如上所示,每個任務都有一個LSTM來用提取本任務特定的特征,同時所有的任務都公用一個LSTM來提取公共特征。這兩者的區分是通過梯度反向層GRL和正交化來實現的
特定任務的損失直接通過softmax來衡量,而對抗訓練通過GRL來實現。
正交化直接通過F范數實現。
作者通過實驗也證明本文模型的有效性。
由於《Adversarial Multi-task Learning for Text classification》和《Domain-Adversarial Training of Neutral Networks》相識性,我們可以將這兩者進行對比,可以發現本文僅僅是對后者的多類別擴充。
下面,來介紹AT的另一種應用,即《Adversarial Training for Relation Extraction》。
本文的主要貢獻在於①將AT視為一種正則化方法②提出對抗噪音,也就是AT正則化的原理。
本文的主要任務是多標簽學習。在關系抽取中,由於人工標注語料較少,同時目前的知識庫較多(如百度百科、維基等)。因此相關研究者提出通過知識庫來自動的創建語料,但是由於是自動標注,因而存在偏差,即標簽不一定正確。為了解決標簽不一定正確的問題,多標簽學習便被提出。
本文的模型首先通過RNN或者PCNN抽取特征,然后通過選擇注意力(selective attention)來選擇當前實體對最有可能的標簽,最后通過softma即可得到模型損失。
本文的對抗是通過在輸入層也就是詞向量層加入對抗擾動(該擾動能夠最大化模型損失)來實現。
本文的對抗的作用與在模型中加入高斯噪音有着相似的效果。與隨機的高斯噪音不同,本文的對抗噪音是非隨機的,能夠使模型損失變大的噪音。能夠最大化提高模型的泛化性能。
作者在NYT和UW兩個數據集上證明了本文方法的有效性。
我們可以將這三篇論文進行對比,來對AT進行更加深入的理解。
目前,AT主要是用於提取公共特征上,通過這種方式可以有效地擴大訓練集。同時還可以將AT作為一種正則化的方法,來提高模型的泛化性能。
但是,缺點也很明顯,現在的AT大多是用於遷移學習、多任務學習,這會涉及兩個以上的領域,那么對於特定領域、單任務能夠利用AT呢?能否在單任務的關系抽取中利用AT呢?
在單任務中利用AT的挑戰主要是無法找到生成器(G)和判別器(D),既然G和D不明確,那么對抗也就無從談起。
同時對抗的另一個缺點便是需要大量的數據,在圖像領域,由於數值的連續性,可以很容易的獲得大量數據。但是文本領域中的大量數據卻不是很好獲得。前兩篇論文通過多任務來獲得大量數據,而最后一篇論文通過遠程監督來獲得大量數據(通過知識庫來自動標注數據集這一技術被稱為遠程監督)。