沈志東,岳恒憲
(武漢大學 國家網絡安全學院,武漢 430000)
對抗樣本是通過向輸入的樣本添加一個細微的擾動來增加機器學習模型產生的損失[1-2],導致模型以高置信度給出一個錯誤的輸出。目前的機器學習模型,即使是最先進的卷積神經網絡都無法正確分類對抗樣本。對抗訓練(Adversarial Training,AT)是訓練模型可以正確分類未修改的原始樣本和對抗樣本的過程,不僅能夠提高神經網絡的魯棒性,而且還能夠增強模型的泛化性能。
與圖像分類領域取得的成功不同,AT 不能直接應用于自然語言處理(Natural Language Processing,NLP)分類中的任務,這主要是因為其無法為NLP 中的任務計算擾動輸入,輸入由離散符號組成,而不是在圖像處理中使用的連續空間。文獻[3]提出一種新的策略來改進NLP 任務的對抗訓練,即將對抗訓練應用于連續的詞嵌入空間,而不是文本的離散輸入空間。該方法的優點是保留了圖像處理領域的背景,并且具有正則化的效果,顯著提高了任務性能,并在多個文本分類任務中實現了最優的性能,它的另一個顯著優勢是架構簡潔,因為只需要通過損失函數的梯度來獲得對抗擾動。梯度計算是在模型訓練期間更新模型參數的標準計算過程,可以以較小的計算成本在詞嵌入空間中獲得對抗擾動,而無須添加任何額外的復雜架構。
以往的研究主要是將對抗訓練應用于圖像分類任務中。對抗性擾動通常涉及對許多真實值輸入的較小修改,對于文本分類,輸入是離散的,通常表示為一維獨熱向量。由于一維獨熱向量集不允許無限小的擾動,因此將擾動添加在連續的詞嵌入而不是離散的詞輸入。傳統的對抗訓練可以解釋為正則化策略[1-2],也可以解釋為對能夠提供惡意輸入的對手的防御。
特定的攻擊算法不會生成所有可能的對抗樣本,解決內部最大化問題是AT 成功的關鍵。文獻[4-5]方法訓練多種攻擊手段,可以看作是對文獻[6]內部問題的更詳細描述,但仍然缺乏對許多不同攻擊方法的準確描述。由于文本不能像圖像一樣直接進行處理,主要是因為文本不是連續變量的,只有將文本通過嵌入層后才能如AT[7]那樣連續解決文本對抗分布訓練(Textual Adversarial Distribution Training,TADT)的最小化問題。
本文提出一種基于概率分布式訓練的文本對抗訓練方法,旨在提高神經網絡的魯棒性和泛化能力。通過將每個輸入示例的對抗分布最大化,并最小化對抗分布的預期損失,使用可訓練參數的對抗分布,引入熵的正則化項來防止對抗分布坍縮為一個點,并通過生成模型直接生成對抗分布的參數,降低訓練成本,改善深度學習模型在面對不同攻擊時的防御性能。
對抗樣本最初是由SZEGEDY 等[1]在2013 年提出并定義的。對抗樣本是在輸入數據上人為加入人類視覺無法察覺的非隨機擾動,以改變目標模型的推理結果。文獻[8]基于盲點假設提出一種Limitedmemory BFGS(L-BFGS)算法來生成對抗樣本。文獻[2]基于線性假設利用損失函數在原始圖像像素值上的梯度來降低損失函數值,并通過優化提出一種計算成本大幅降低的快速梯度符號法(Fast Gradient Sign Method,FGSM)。之后基于FGSM 方法衍生出許多算法:如迭代梯度符號法(I-FGSM)[9]、動量迭代快速梯度符號法(MI-FGSM)[10]等。另外,一些基于梯度掩蔽來防御白盒攻擊的算法被提出,最具代表性的如防御性蒸餾方法[11]。此后,對抗樣本的攻防不斷迭代。基于優化的C&W 攻擊[12]打破了實現梯度掩蔽的防御蒸餾,解決了FGSM[13]中的一些基本缺陷。文獻[14]利用對抗樣本與正常樣本的數據差異進行檢測,重新設計網絡結構或增加網絡子模塊,消除了對抗干擾,將對抗樣本恢復為正常數據[15]。
在對抗樣本的攻防發展中,由于研究人員制定的指標和標準不統一,衡量各自算法的優劣成為制約對抗樣本研究發展的重要因素。為此,研究人員將他們的算法應用到各種競賽中,如NIPS 對抗樣本攻防[16]、GeekPwn 的CAAD 對抗樣本攻防、IJCAI 對抗樣本競賽等。大量的攻防算法在這些比賽中得到了充分的驗證,很多算法也成為了后續研究的基礎,極大地促進了對抗樣本的發展,比如著名的ATN 全卷積對抗樣本生成網絡就是通過生成對抗網絡不斷訓練得到的。對抗樣本生成器可以批量生成對抗樣本,大幅壓縮了以往攻擊所需的計算時間,成為基于生成器的對抗樣本攻擊算法中極具啟發性的算法。
近年來,基于深度學習技術本身可能存在的內在缺陷,研究人員進行了更加深入的分析和研究。由于深度模型具有黑盒特性,因此提高模型的可解釋性可以解決基于對抗樣本的AI 安全問題[10,17]。由于對抗樣本是可遷移的,因此了解特征的生成方式至關重要[18-20],研究人員已經從理論上證明了模型的魯棒性或安全邊界。然而,對抗樣本的根本原因當前尚無定論和發展,例如QIN 等[21]否定了之前局部線性導致對抗樣本的觀點,證明了局部線性的特性可以提高魯棒性。一般來說,大多數人認為魯棒性和準確性之間存在平衡,引入對抗性訓練會降低原始數據的準確性。然而,XIE 等[22]的研究結果表明,對抗訓練可以同時提高模型的準確性和魯棒性,他們觀察到之前結合干凈樣本和對抗樣本的方法都沒有提前進行區分,因此提出一種新的訓練方案,即用兩個簡單但是高效的批歸一化層分離兩個文本對抗分布,能夠通過對抗樣本改進模型。但是,提高模型的魯棒性和對不同攻擊的泛化性,仍需進一步探索。
本文主要考慮的是標準分類任務,其基礎數據集D分布在成對的示例xi?Rd和相應的標簽yi?[k]上。AT 可以表述為極小極大問題,即:
其中:fθ表示參數為θ的神經網絡模型,其輸出是所有類的概率;S={δ:‖δ‖∞≤?}是一個擾動集,?>0;L為損失函數;n為類別數。本文方法還可以擴展到其他威脅模型,如L2 范數。
極小極大問題通常是順序求解的,即首先通過求解內部最大化來生成對抗樣本,然后根據生成的對抗樣本優化模型參數。本文考慮一個基于單詞替換的簡單模型,其中輸入句子中的每個單詞都可以被其同義詞替換。給定一個句子和一組同義詞,確保使用對抗訓練的模型預測不會被基于單詞替換的任何擾動所改變。然而,由于可能擾動的數量隨句子長度呈指數增長,因此數據擴充無法覆蓋輸入句子的所有擾動。
如前文所述,對抗訓練雖然有效,但并非沒有問題。針對特定攻擊的對抗訓練可能會導致模型過度擬合某種攻擊方式[9,23-25],影響訓練模型抵抗其他攻擊的能力,這主要是因為單一的攻擊算法無法探索對抗空間中所有可能的擾動,降低了模型的泛化性[23,26]。為了解決這些問題,本文通過文本對抗分布訓練來計算每個輸入對抗性擾動的分布,而不是僅找到局部最優解。本文從p(δi)中采樣的對抗分布被添加到每個自然示例xi中形成對抗樣本,其中p(δi)包含在S中。假設給定一個合適的損失函數L(θ,x,y),例如神經網絡的交叉熵損失函數,通常θ?RP是模型參數集。本文的目標是找到能使期望E(x,y)~D[L(θ,x,y)]最小化的模型參數θ:
其中:P={p:supp(p)?S}是一組支撐包含在S中的分布。式(2)的內部最大化目標是學習一個對抗分布,該分布中的任何一點都是這個樣本的對抗樣本。相反,外部最小化的目標是通過最小化由內部問題引起的最壞情況對抗分布的預期損失來訓練模型的魯棒性。值得注意的是,AT 是TADT 的特例,是指分布族P只包含delta 分布時的特例。
對于TADT 的內部最大化,即:
從式(3)可以看出,通過解決TADT 的內部問題獲得的最優分布有可能退化為delta 分布,這將導致對抗分布無法覆蓋更多的對抗樣本,TADT 變為了AT。為了解決這個問題,在目標中添加了一個熵的正則化項,即:
其中:H(p(δi)) 是p(δi)的熵;λ是平衡 超參數;L(p(δi),θ)表示整體損失函數。為了防止整個分布退化為一個點,通過加入熵λH(p(δi))來防止這種情況發生。
在圖像對抗攻擊中,只需改變圖片中的一個或幾個像素點就可達到攻擊者的目的。在文本攻擊中,可以通過僅改變詞嵌入向量中的某些元素來實現攻擊者的目標。因此,在對抗訓練中,希望能夠訓練分類器,使其對嵌入的擾動具有魯棒性。
由于在預訓練的詞向量空間中同義詞的詞向量之間的距離很近,可以認為每個樣本都有一個對抗分布空間,這個空間中的每個點都是它的對抗樣本。將T個單詞的序列表示為{w(t)|t=1,2,…,T},并將相應的目標表示為y。為了將離散詞輸入轉換為連續向量,將詞嵌入矩陣定義為V?R(K+1)×D,其中,K是詞匯表中的詞數,每行vk對應于第i個詞的詞嵌入。
僅通過一種攻擊方式來增加對抗擾動是有缺陷的,由于它只能防御這一種攻擊方式。因此,需要為每個樣本添加一個對抗擾動分布。本文的目標就是找到每個樣本的對抗分布。
對輸入數據周圍的對抗空間建模的方法是具有顯式密度函數的對抗分布TADTEXP。為了定義pΦi(δi)在S上的適當分布,本文采用隨機變量的變換,如式(5)所示:
其中:Ui是從均值為μi和標準差為σi?Rd的正態分布中采樣得到的,Ui在通過tanh 函數轉換后乘以?得到δi。本文定義的顯式對抗分布首先假設每個維度的均值和標準差滿足|μi,j| 為了解決內部問題,需要估計參數?i上預期損失的梯度。一種常見的方法是低方差重參數化技術[5,12],如圖1 所示,用相應的可微分變換代替目標變量的采樣過程。運用該技術,梯度可以直接從樣本反向傳播到分布參數。在本文方法中,通過δi=?·tanh (ui)=?·tanh (μi+σir)重新參數化?i,其中,r是遵循標準高斯分布N(0,1)的輔助噪聲向量。增加的熵的正則化項變為: 式(7)是對數密度(即熵)的估計。在實際中,可以通過蒙特卡羅采樣逼近式(6)中的期望,并繼續對?i執行T步梯度上升來解決內部問題。在獲得最優參數后,再使用對抗分布更新模型參數θ。 TADT 方法的核心是內部最大化問題的求解,形式化表示見式(6)。本文的基本思想是用可訓練參數Φi重參數化內部問題的分布。運用參數化pΦi(δi),內部問題轉化為最大化預期損失Φi。 與圖像領域不同,組成文本的詞語一般都是以 獨熱向量或者是詞索引向量來表示的,可以視作是離散的,而非圖像中連續的RGB 值,如果直接在原始文本上進行擾動,則有可能擾動的方向和大小都沒有任何明確的語義對應,但詞嵌入表示可以是連續的,因此需要對文本進行一些處理。如上所述,本文將對抗性擾動直接應用于詞嵌入,而不再是應用于原始輸入。為了定義詞嵌入的對抗性擾動,表示一個串聯[vˉ1,vˉ2,…,vˉT]的詞嵌入向量序列(歸一化)為s、y,其中模型條件概率p(y|s;θ)給定s,θ是模型參數,那么s上的對抗擾動rTADT定義為: 為了使式(8)中定義的對抗性擾動具有魯棒性,本文將對抗損失定義為: 其中:N是標記示例的數量。在本文的實驗中,對抗訓練是指使用隨機梯度下降[29]負對數似然加上LTADT。這里需要計算最小化損失函數的擾動分布,選擇負對數是為了改變梯度方向,選擇朝著梯度上升的方向添加擾動,將這樣的擾動分布輸入模型進行訓練,再進行反向傳播更新模型參數,從而達到提升模型魯棒性的目的。 AT 和TADT 之間的主要區別在于:對于每個自然輸入xi,AT 找到一個最壞情況的對抗樣本,TADT學習包含各種對抗樣本的最壞情況的對抗分布。由于可以通過多種攻擊生成對抗樣本,本文預計這些對抗樣本可能位于對抗分布的高概率區域,因此最小化該分布的預期損失會導致訓練好的分類器具有更好的泛化能力,并可以使模型抵抗交叉攻擊。此外,在式(4)中添加了一個熵的正則化項,以防止對抗性分布退化為單一的對抗性訓練,與概率加權詞顯著性(Probability Weighted Word Saliency,PWWS)等單一攻擊方法相比,發現了更多的對抗樣本。文本對抗分布訓練也考慮了同義詞嵌入向量的相似性,具有更好的泛化能力。最大限度地減少這些不同對抗樣本的損失,有助于在輸入的自然樣本周圍學習更平滑、更平坦的損失曲面。因此,TADT 比AT更能提高整體魯棒性。 算法1TADT 的通用算法 輸入訓練數據D,損失函數L(p(δi),θ),每次梯度估計的蒙特卡羅采樣次數k,訓練批次N,學習率η 輸出準確率 1.將文本的獨熱向量轉化為詞嵌入向量W,初始化模型參數θ 2.初始化rTADT 3.用式(9)計算k 次蒙特卡羅損失 4.更新rTADT 5.使用隨機梯度下降法更新模型參數θ 第3.3 節提到的算法為TADT 提供了一種學習顯式概率分布的簡單方法,但它需要計算每個輸入樣本的分布參數,進行多次迭代,時間開銷太大。與之前基于對抗性攻擊的AT 相比,TADTEXP大約慢k倍,因為?i梯度的每一步都需要k次蒙特卡羅采樣。本節提出一種效率更高的訓練方法,能夠直接生成TADTEXP參數(μi,σi)的內部分布,并將此方法命名為TADTEXP-GE。 本文沒有繼續選擇去學習每個數據xi可能存在的概率分布,而是選擇去學習映射g?:Rd→P,它定義了對抗分布p?(δi|xi)以條件概率的方式作為每個輸入。本文通過映射生成器網絡實例化g?,以樣本xi作為輸入,輸出參數為(μi,σi)。這種方法的特點是生成器網絡可以直接學習給定樣本的擾動空間概率分布的參數,而不需要進行多次采樣[3,30],即不再需要對每個數據xi進行過度優化,可節省大量時間。 在TADTEXP-GE對抗訓練中,由于分布未知,假設每個樣本服從正態分布,并將TADT 的極小極大問題重寫為: 本節用VAE[31]來實現生成器網絡,通過它可以直接計算得到每個輸入樣本對抗分布的參數。此外,該目標還是數據真實對數似然的有效下界。 本節在文本分類的數據集上進行實驗,使用CNN 和LSTM 兩個神經網絡模型來評估本文提出的TADT方法和其他防御方法的性能,如圖2所示,圖2(a)是基于CNN 網絡架構,圖2(b)是基于LSTM 網絡架構。實驗通過多種攻擊方法進行測試。 圖2 神經網絡模型整體架構Fig.2 Overall architecture of neural network model 文獻[32]描述一種概率加權詞顯著性(PWWS)的貪心算法,并在同義詞替換策略的基礎上,提出一種由詞性顯著性和分類概率確定的詞替換方法,將PWWS 算法作為對樣本進行詞級擾動的手段,使用GA 對擾動后的樣本進行優化。文獻[33]提出一種基于梯度下降的攻擊方法UAT,并給出基于令牌的梯度引導搜索方法。本節對每個數據集隨機選擇的1 000 個測試樣本采用PWWS、GA 和UAT 3 種攻擊算法測試它們對對抗攻擊的防御性能,并與對抗訓練(ADV)[34]、基于間隔傳播(IBP)等防御方法[35]進行比較。 本節首先在互聯網電影數據庫(IMDB)[23]文本分類數據集上進行訓練,分別使用LSTM 和CNN兩個模型完成文本分類任務。LSTM 首先通過詞嵌入網絡將每個輸入詞轉化為近似連續可微分的向量,然后根據具有D維隱藏狀態的雙向遞歸神經網絡,在訓練過程中計算出每個詞的對抗分布,在得到每個詞的對抗分布模型后訓練網絡參數。CNN 與LSTM 模型流程類似,通過預訓練的GloVe[36]詞嵌入模型得到單詞的詞向量。TADT 模型使用對抗分布損失進行訓練,且它們的超參數在驗證集上進行調整。表1 和表2 所示為CLN 干凈數據集與PWWS、GA 和UAT 3 種攻擊算法在CNN 和LSTM 模型上的準確率。 表1 不同方法在CNN 模型上的準確率 Table 1 Accuracy of different methods on CNN model % 表2 不同方法在LSTM 模型上的準確率 Table 2 Accuracy of different methods on LSTM model % 從表1 和表2 可以看出,TADT 在干凈數據集上的精確率優于ADV 和IBP,并且在所有攻擊算法下的準確率也是最優的。在文本分類中,LSTM 比CNN 模型更容易受到對抗性攻擊。在GA 算法的攻擊下,ORIG、ADV、IBP 和RAN 訓練的LSTM 準確率分別為0.2%、32.0%、64.3% 和35.5%,而TADT 訓練的LSTM 準確率仍然可以達到82.9%。由于IMDB 中句子的平均長度為255 個單詞,句子越長,對手可以對基于單詞替換的擾動就越多。總地來說,TADT 在CLN 干凈數據集上優于IBP,與ADV相當,并且在所有攻擊方式下都優于其他防御方法。結果表明,本文TADT 方法具有更高的性能和更好的魯棒性。 本文方法在TADTEXP中計算每個樣本的對抗分布時,對每個樣本分布的估計都需要進行k次采樣,并進行T次梯度上升,這會耗費大量時間,使訓練時間成倍增加,消耗大量的計算資源。本文在TADTEXP-GE中添加了一個VAE 網絡,減少了上述的k次采樣步驟,在相同條件下訓練時間要少得多。一般來說,在給定相同的網絡結構的情況下,使用TADTEXP增強模型魯棒性的訓練時間比TADTEXP-GE的訓練時間慢4~5 倍。表3 所示為TADTEXP-GE訓練方式的性能提升。可以看出,TADTEXP-GE效率明顯提高。 表3 兩種訓練方式的性能提升 Table 3 Performance improvement of the two training methods 本節對TADT 進行消融實驗,分析TADT 面對不同變化的穩健性和泛化性能。消融實驗結果如表4所示,其中,w/o PRE 表示原始模型在對抗性攻擊下的準確性,ADV 對抗訓練算法的原始模型表示為w/o ADV-TRAIN,TADT 為使用本文方法進行訓練的原始模型。 表4 消融實驗結果 Table 4 Results of ablation experiment % 從表4 可以看出,由于沒有使用對抗防御算法,在沒有任何保護下,原始模型受影響最大。在相同的神經網絡模型下,與TADT 相比,在PWWS、GA 和UAT 算法攻擊下,w/o PRE 準確率分別下降了50.4%、63.2%和34.2%,w/o ADV-TRAIN 準確率分別下降了30.5%、43.7%和30.2%。 本文選擇同義詞替換攻擊,主要是因為它是最有影響力和使用最廣泛的文本對抗攻擊方法之一。目前基于這種思路的攻擊方法較多,例如HotFlip[37]、PWWS[32]、GA[36]、TextWitter[38]等。另外,本文還 針對基于梯度下降的攻擊方法進行測試,證明該方法也是非常有效的。 本文基于文本分類任務提出一種基于分布式擾動的防御對抗攻擊方法,能夠在不犧牲性能的情況下大幅提高正確分類對抗樣本的準確性。TADT 是一種用于文本對抗分布的方法,可在熵的正則化下描述自然樣本周圍的對抗樣本。實驗結果表明,使用對抗分布訓練的分類模型在具有不同網絡結構的數據集上優于其他對抗防御方法。下一步將對更多文本分類模型進行訓練研究,將本文方法擴展到其他文本分類任務中。3.2 文本對抗分布訓練
3.3 TADTEXP的通用算法
4 對抗訓練時間復雜度的改善
5 實驗

5.1 文本分類實驗


5.2 訓練性能

5.3 消融實驗

6 結束語