趙玉明,顧慎凱
(南京工業(yè)大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,南京 211816)
人工智能已經(jīng)成為了備受追捧的重點(diǎn)領(lǐng)域,在深度學(xué)習(xí)領(lǐng)域的研究都已獲得了驚人的成果,例如自然語言處理、圖像生成、語音識別等。隨著深度學(xué)習(xí)在相關(guān)領(lǐng)域的應(yīng)用[1]逐漸展開,其安全性問題也成為了備受關(guān)注的話題,尤其是在醫(yī)療、自動駕駛、航空等領(lǐng)域?qū)扔休^高要求的場景中。隨著深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)的大規(guī)模研究及應(yīng)用,其面對對抗樣本的脆弱性也隨之被發(fā)現(xiàn)。精心設(shè)計的對抗樣本具有攻擊深度神經(jīng)網(wǎng)絡(luò)的能力,導(dǎo)致網(wǎng)絡(luò)模型輸出錯誤的預(yù)測結(jié)果[2]。在這樣的背景下,有關(guān)對抗樣本的生成和防御問題通過探索模型缺陷,進(jìn)而指導(dǎo)模型進(jìn)化,漸漸成為了學(xué)者們新的研究熱點(diǎn)。
Szegedy 等[3]提出了“對抗樣本”的概念,發(fā)現(xiàn)將精心設(shè)計的微小擾動注入模型的輸入樣本圖像,極有可能使得模型輸出錯誤的分類結(jié)果。這種擾動往往十分微小,幾乎無法被人眼察覺,卻可以實(shí)現(xiàn)欺騙網(wǎng)絡(luò)模型的目的。隨后Goodfellow等[4]解釋了對抗樣本的原理,提出神經(jīng)網(wǎng)絡(luò)易受對抗樣本攻擊的原因在于它們的高維線性特性,這與早期研究認(rèn)為的高維非線性和過擬合相違背。文獻(xiàn)[3]中給出了一個通過快速梯度符號法(Fast Gradient Sign Method,F(xiàn)GSM)生成對抗樣本的算法,利用在梯度上加入增量的行為造成模型對樣本進(jìn)行誤分類。由于FGSM 的攻擊基于梯度,效果較好且易于操作,其他學(xué)者在這一思路下繼續(xù)改進(jìn),相繼提出了許多基于梯度的攻擊算法,如投影梯度下降(Projected Gradient Descent,PGD)[5]、DeepFool[6]等。為了對抗這類攻擊,學(xué)者嘗試了對抗訓(xùn)練的方法,即將對抗樣本視為真實(shí)數(shù)據(jù)加入原始數(shù)據(jù)集來訓(xùn)練模型,從而來增強(qiáng)模型的魯棒性。模型的魯棒性越好,表示該模型對對抗樣本的防御成功率越高。
此外還有不少針對攻擊算法提出的防御算法。He 等[7]提出參數(shù)噪聲注入(Parametric Noise Injection,PNI),通過解決Min-Max 優(yōu)化問題,在每一層的激活或權(quán)重進(jìn)行可訓(xùn)練的高斯噪聲注入,實(shí)驗(yàn)結(jié)果表明PNI 有效提升了對白盒和黑盒攻擊的魯棒性,Jeddi 等[8]提出了一種端到端的特征擾動學(xué)習(xí)方法,將新的擾動注入模塊增加網(wǎng)絡(luò)的不確定性,并引入交替反向傳播訓(xùn)練算法,增強(qiáng)了對PGD 對抗訓(xùn)練的魯棒性。Khong 等[9]提出了Bayes without Bayesian learning 的防御算法,在抵抗對抗性攻擊時不添加訓(xùn)練階段,可應(yīng)用于任何具有學(xué)習(xí)參數(shù)的模型,加速防御方法的計算,在高強(qiáng)度攻擊下能夠顯著提高卷積神經(jīng)網(wǎng)絡(luò)模型的準(zhǔn)確性。Wicker 等[10]提出了可靠的BNN(Bayesian Neural Network)對抗訓(xùn)練框架,利用約束松弛技術(shù)修改標(biāo)準(zhǔn)交叉熵誤差模型,增強(qiáng)對輸入點(diǎn)周圍ε?balls 中最壞情況擾動的后驗(yàn)魯棒性,在MNIST 等數(shù)據(jù)集能夠訓(xùn)練出可靠的模型。
Goodfellow 等[11]早期提出的生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)雖然在生成圖像方面取得了一定成功,但有模式坍塌、訓(xùn)練不穩(wěn)定等缺陷[12]。為了解決這些問題,學(xué)者們在此基礎(chǔ)上提出了改進(jìn)方法[13-16],隨著GAN 研究的不斷深入,近幾年也取得了新的進(jìn)展,Pan 等[17]對此進(jìn)行了系統(tǒng)性的分析和總結(jié),介紹了GAN 的相關(guān)應(yīng)用,并對未來的發(fā)展方向進(jìn)行了討論。由于對抗樣本的出現(xiàn),不少國內(nèi)外學(xué)者開始轉(zhuǎn)向GAN 在分類及對抗攻擊方面的研究[18-21]。Odena 等[18]提出的ACGAN(Auxiliary Classifier GAN),本質(zhì)是在CGAN(Conditional GAN)的基礎(chǔ)上進(jìn)一步拓展,加入輔助分類器,對GAN 引入圖像分類的功能。Liu 等[22]證明了GAN和對抗攻擊的融合可以使兩者相互增強(qiáng),通過在GAN 中加入對抗性攻擊可以提高網(wǎng)絡(luò)收斂速度并指導(dǎo)訓(xùn)練出更好的生成器,而在對抗訓(xùn)練過程中加入生成器又可以提高分類器對對抗樣本的防御成功率。
雖然這些防御算法在一定程度上提高了模型對對抗樣本的防御成功率,但從模型結(jié)構(gòu)的角度出發(fā),模型自身對圖像特征提取能力不足,且防御整張圖像上的擾動,未對圖像關(guān)鍵區(qū)域特征給予更多的關(guān)注。針對這些問題,本文提出一種融合殘差密集自注意力機(jī)制和生成對抗網(wǎng)絡(luò)的攻擊防御模型——RD-SA-DefGAN(Defense model fuse Residual Dense Block Self-Attention mechanism and Generative Adversarial Network)。用PGD 算法生成的對抗樣本作為模型GAN 部分的訓(xùn)練數(shù)據(jù),并在網(wǎng)絡(luò)中加入條件約束從而穩(wěn)定GAN 的訓(xùn)練過程,RD-SA-DefGAN 中的殘差密集塊[23]用于提升模型在特征提取上的表現(xiàn),自注意力模塊[24]用于增強(qiáng)圖像關(guān)鍵特征在分類任務(wù)中的貢獻(xiàn)度,提高神經(jīng)網(wǎng)絡(luò)對對抗樣本的防御成功率。實(shí)驗(yàn)結(jié)果表明本文模型在對抗樣本防御成功率上有更優(yōu)良的表現(xiàn)。
GAN 是由Goodfellow 等提出,受博弈論啟發(fā),將網(wǎng)絡(luò)劃分為生成器(Generator)與判別器(Discriminator)兩個模型,通過這兩個網(wǎng)絡(luò)模型的博弈,判別器可以更好地判斷生成圖片的真?zhèn)?,保證生成器生成圖片的質(zhì)量。具體訓(xùn)練過程如下:首先由生成器在給定噪聲中(一般是指均勻分布或者正態(tài)分布)生成隨機(jī)抽樣數(shù)據(jù),判別器判別產(chǎn)生的數(shù)據(jù)看起來是否“正?!薄S?xùn)練的過程中,判別器設(shè)法更完美地分辨生成器創(chuàng)建的樣本和真實(shí)數(shù)據(jù),與此同時,生成器設(shè)法生成更真實(shí)的樣本以此騙過判別器。由此,兩個網(wǎng)絡(luò)在對抗中進(jìn)步,在進(jìn)步后繼續(xù)對抗,生成數(shù)據(jù)也越來越完美,逼近真實(shí),從而可以生成想要的數(shù)據(jù)。兩個網(wǎng)絡(luò)的權(quán)值配置在這個過程中不斷被更新,直至達(dá)到一個動態(tài)平衡的狀態(tài),其目標(biāo)函數(shù)如式(1)所示:
其中:E代表數(shù)學(xué)期望,x代表在真實(shí)數(shù)據(jù)采樣分布的樣本,z代表采樣于先驗(yàn)分布pz(z)的噪聲,D(x)代表判別模型判斷真實(shí)樣本為真樣本的概率,D(G(z))代表判別模型判pdata(x)判斷出來自生成模型以隨機(jī)噪聲生成的樣本的實(shí)際概率,V(D,G)代表判別模型和生成模型的值函數(shù),理想狀態(tài)下希望判別模型的值函數(shù)取得最大值,生成模型的值函數(shù)取得最小值。
Szegedy 等[3]通過研究發(fā)現(xiàn)通過給樣本添加細(xì)微擾動形成的輸入樣本(即“對抗樣本”),會使得分類網(wǎng)絡(luò)輸出錯誤的預(yù)測。隨著這個概念的提出,對抗攻擊在深度學(xué)習(xí)領(lǐng)域中的研究也隨之深入展開,國內(nèi)外學(xué)者提出了各種攻擊算法,其中最為代表性的幾個算法如下。
1.2.1 FGSM
Goodfellow 等[4]認(rèn)為高維空間下的線性行為能夠生成對抗樣本,從而提出了FGSM(Fast Gradient Sign Method)算法。該算法的工作原理是首先計算出模型對輸入數(shù)據(jù)的導(dǎo)數(shù),利用符號函數(shù)求得其梯度方向,然后與一個自定義步長相乘計算出擾動,最后與原輸入數(shù)據(jù)相加構(gòu)建FGSM 對抗樣本,其生成方法如式(2)所示:
其中:xadv表示對抗樣本,x表示原始樣本,?x表示x處計算出的梯度大小,ε表示攻擊強(qiáng)度調(diào)控系數(shù)。與其他改進(jìn)的攻擊算法相比,F(xiàn)GSM 對抗樣本生成僅計算一次梯度即可,計算數(shù)據(jù)量更小、效率更高。
1.2.2 BIM
Kurakin 等[25]針對FGSM 對數(shù)據(jù)攻擊成功率不高的問題進(jìn)行了改進(jìn),從而提出了BIM(Basic Iterative Method)算法。在FGSM 的基礎(chǔ)上將單一步長分解成多次小步迭代的方式,在每一次小步迭代的過程中,梯度都會重新計算,以此構(gòu)造出更加精準(zhǔn)的擾動,攻擊效果較好,但其代價是增大了計算量。該算法的計算方法如式(3)所示:
1.2.3 PGD
PGD(Projected Gradient Descent)攻擊是Madry 等[5]提出的BIM 的變體,其攻擊效果相比BIM 更好,所以本文在實(shí)驗(yàn)中選用該算法生成對抗樣本。該算法增加了迭代次數(shù),在給定樣本x及其真實(shí)標(biāo)簽y,通過PGD 攻擊算法的優(yōu)化函數(shù)來計算對抗擾動δ,其對抗擾動δ計算過程如式(4)所示:
其中:f(?;w)表示權(quán)重w參數(shù)化的網(wǎng)絡(luò);?(?,·)表示損失函數(shù),在實(shí)驗(yàn)中為了方便求解本文使用?范數(shù)(其他范數(shù)也是可行的),式(4)的目的在于找到某個點(diǎn)xadv?x+δ讓xadv的損失值最大,使得這個點(diǎn)最可能成為對抗樣本。
對于對抗樣本防御技術(shù)的研究思路主要分為數(shù)據(jù)層面的防御方法和模型層面的防御方法兩大類。數(shù)據(jù)層面的防御方法可以分為修改訓(xùn)練模型參數(shù)[26-28]和在測試階段修改輸入樣本[29-30];模型層面的防御方法則可以分為修改網(wǎng)絡(luò)結(jié)構(gòu)[31-32]和使用附加模型[33-34],下面將介紹幾個與本文實(shí)驗(yàn)相關(guān)的對抗防御方法。
1.3.1 對抗訓(xùn)練
對抗訓(xùn)練最早由Madry 等[5]提出的一種對抗樣本的防御方法。其主要思想是:利用攻擊算法生成的對抗樣本作為原數(shù)據(jù)集的擴(kuò)充,一并加入到模型的訓(xùn)練,相當(dāng)于數(shù)據(jù)增廣的一種方式,該方法在提升神經(jīng)網(wǎng)絡(luò)的魯棒性的同時也有利于加強(qiáng)其泛化能力。對抗訓(xùn)練的最大最小化公式可以被表述如式(5)所示:
其中:內(nèi)層(中括號內(nèi))是求解一個損失函數(shù)的最大化,x和y表示樣本的輸入和標(biāo)簽,δ表示疊加在輸入上的擾動,L(f(x+δ;w),y)表示樣本x加上擾動δ,再經(jīng)過神經(jīng)網(wǎng)絡(luò)函數(shù)f(x+δ;w)與y比較得到的損失。max(L)是優(yōu)化目標(biāo),即尋找使損失函數(shù)最大的擾動。函數(shù)外層是神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化的最小化公式,即當(dāng)擾動固定的情況下,訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型使得訓(xùn)練數(shù)據(jù)的損失最小。
1.3.2 Rob-GAN
Liu 等[22]創(chuàng)新性地把對抗學(xué)習(xí)和GAN 合并為一個全新的模型,將生成器、判別器和對抗攻擊者組合起來進(jìn)行訓(xùn)練,提出一種新的框架Rob-GAN。該框架通過在ACGAN 中引入對抗學(xué)習(xí)中的對抗攻擊者,將攻擊算法生成的對抗樣本作為新的訓(xùn)練樣本加入到GAN 的訓(xùn)練過程中,該方法不僅可以加速GAN 的訓(xùn)練,提高生成圖像質(zhì)量,更重要的是可以得到魯棒性更好的判別器。為了避免生成器生成出特別差的樣本,并希望模型能正確分類并判別出真假樣本,該算法將損失函數(shù)分成了LC1和LC2,其最終的損失函數(shù)如式(6)~(10)所示:
其中:Xreal和Xfake表示真樣本和假樣本,E表示數(shù)學(xué)期望,S表示判別器的輸出,C表示分類器的輸出。
1.3.3 Adv-BNN
Adv-BNN(Adversarial-trained Bayesian Neural Network)是Liu 等[35]提出的一種新的抵抗對抗攻擊提升神經(jīng)網(wǎng)絡(luò)的新算法。作者提出在BNN 框架下對隨機(jī)性建模,以一種可伸縮的形式學(xué)習(xí)模型的后驗(yàn)分布,同時在BNN 中構(gòu)造了極大極小問題,將對抗訓(xùn)練與貝葉斯網(wǎng)絡(luò)結(jié)合,讓模型學(xué)習(xí)在對抗攻擊下的最優(yōu)分布,得到一個對抗訓(xùn)練的貝葉斯神經(jīng)網(wǎng)絡(luò)。其損失函數(shù)如式(11)所示:
對于圖像分類任務(wù)中已有的神經(jīng)網(wǎng)絡(luò)模型,目前依舊存在分類對象特征表征能力不足等一系列問題,自注意力機(jī)制經(jīng)過對凸顯特征圖中含有較多有效信息的特征表示,并抑制無用信息的影響,從而達(dá)到對網(wǎng)絡(luò)模型的表征能力和圖像分類性能上的優(yōu)化[36-38],廣泛應(yīng)用于計算機(jī)視覺任務(wù)。
自注意力機(jī)制可以使模型重視有助于預(yù)測的部分,增大關(guān)鍵特征的貢獻(xiàn)度,抑制或忽略不相關(guān)的部分,從而作出更準(zhǔn)確的判斷結(jié)果,自注意力機(jī)制結(jié)構(gòu)如圖1 所示。
圖1 自注意力機(jī)制Fig.1 Self-attention mechanism
首先將前一隱藏層x∈RC×N的圖像特征轉(zhuǎn)變?yōu)閮蓚€特征空間f(x)=Wfx、g(x)=Wgx,并計算出注意力特征圖,計算式如式(12)所示:
其中:βj,i表示合并第j個鄰域時模型注意到第i處位置的程度,C表示通道數(shù),N表示前一隱藏層特征位置的特征數(shù),注意力層的輸出o=(o1,o2,…,oj,…,oN) ∈RC×N:
其中:Wg∈RCˉ×C、Wf∈RCˉ×C、Wh∈RCˉ×C以及Wv∈RCˉ×C都是經(jīng)過1× 1 卷積后學(xué)習(xí)得到的權(quán)重矩陣,Cˉ表示前一層與隱藏層通道數(shù)。
進(jìn)一步將注意力層輸出與一個比例參數(shù)相乘,并加回到輸入特征映射,最終輸出如式(14)給定:
其中:γ是可學(xué)標(biāo)量,默認(rèn)初始化為0,其目的是使網(wǎng)絡(luò)先依賴局部鄰域信息,逐漸更容易學(xué)會分配更多的權(quán)重給非局部區(qū)域。
本文通過將GAN 和PGD 攻擊算法相結(jié)合,提出了RDSA-DefGAN。該模型在生成器和判別器網(wǎng)絡(luò)中,各自引入殘差密集塊以及自注意力模塊,重構(gòu)生成器和判別器,充分提取圖像深層特征,加強(qiáng)特征傳播,使得模型可以高效獲取更多特征內(nèi)部的全局依賴關(guān)系。通過這一方法,有效引導(dǎo)判別器提高對樣本的判別能力和分類能力。此外,模型中通過引入殘差密集塊,可以大幅減少網(wǎng)絡(luò)參數(shù),緩解網(wǎng)絡(luò)訓(xùn)練中梯度消失、過擬合等問題。該方法通過PGD 攻擊算法生成的對抗樣本作為真實(shí)訓(xùn)練樣本,參與到模型訓(xùn)練中,這樣有助于穩(wěn)定模型的訓(xùn)練,一定程度上提高模型訓(xùn)練的收斂速度,訓(xùn)練完成后可以得到對對抗樣本防御成功率更高的分類器。
在生成對抗模型中,生成器和判別器兩者在訓(xùn)練過程不斷博弈,在博弈中提升彼此,生成器生成更接近真實(shí)的樣本,判別器盡可能區(qū)分樣本真假性以及其類別。原始樣本經(jīng)PGD 算法攻擊形成對抗樣本,且具有遷移性,雖然對抗樣本難以騙過人眼,然而分類器卻不能將其正確分類。本文模型的思想是將PGD 對抗樣本作為真實(shí)樣本加入到生成對抗網(wǎng)絡(luò)的訓(xùn)練中去,利用GAN 在數(shù)據(jù)學(xué)習(xí)上的優(yōu)勢來提升模型自身魯棒性,抵抗對抗樣本的能力更強(qiáng),同時結(jié)合RDB 和Self-attention 充分提取圖像深層特征以及增強(qiáng)圖像關(guān)鍵區(qū)域在分類任務(wù)中的作用,進(jìn)一步提高模型對對抗樣本的防御成功率。因此,模型制定的總體目標(biāo)如下:給定隨機(jī)噪聲z、隨機(jī)類別標(biāo)簽、真實(shí)樣本x以及x對應(yīng)類別y,生成器和判別器在判別損失和分類損失的指導(dǎo)下進(jìn)行交替訓(xùn)練,逐漸增強(qiáng)模型判別和分類對抗樣本的能力。
本文模型RD-SA-DefGAN 主要由生成器G、判別器D 以及攻擊算法fPGD組成,其總體架構(gòu)如圖2 所示。fPGD負(fù)責(zé)完成對抗樣本的生成,生成的對抗樣本作為模型的訓(xùn)練數(shù)據(jù)集,fPGD中參數(shù)ε表示擾動閾值,ε越大表示PGD 算法生成對抗樣本的攻擊強(qiáng)度越大。生成器G 的工作是將隨機(jī)噪聲轉(zhuǎn)化為具有語義信息的逼真樣本,判別器D 的工作則是盡可能辨別出輸入數(shù)據(jù)是否真實(shí),并對其分類。另外,本文還結(jié)合了CGAN 的思想,生成器的輸入加入了類別信號,進(jìn)而指導(dǎo)模型訓(xùn)練,控制生成樣本的類別,讓其具有指定的語義。本文的對抗損失函數(shù)來源于PGD 攻擊算法的優(yōu)化函數(shù)。
圖2 RD-SA-DefGAN模型架構(gòu)Fig.2 Architecture of RD-SA-DefGAN model
模型中真實(shí)樣本x以及標(biāo)簽y作為攻擊算法fPGD輸入,輸出對抗樣本x′和對抗樣本對應(yīng)的標(biāo)簽y′,生成器G 接收隨機(jī)噪聲z和隨機(jī)標(biāo)簽,生成虛假圖像,判別器D 對真假判別損失Ltf(G)和分類損失Lcls(G)。D 接收x′并輸出x′的真假樣本判定損失Ltf(D)和分類損失Lcls(D)。損失函數(shù)Ltf(G)、Lcls(G)、Ltf(D)和Lcls(D)一同指導(dǎo)模型的訓(xùn)練過程。
實(shí)驗(yàn)中使用的生成器和判別器的模型結(jié)構(gòu)分別如圖3和圖4 所示,本文采用殘差密集塊作為生成器和判別器的基本結(jié)構(gòu),為了避免“棋盤效應(yīng)”,不采取反卷積方式,僅使用普通卷積層,上采樣使用UpSampling2D,下采樣使用AvgPooling2D,卷積核大小為3×3,步長為1。生成器的最后一層使用Tanh 激活函數(shù)代替ReLU(Rectified Linear Unit)激活函數(shù)。本文對RDB 進(jìn)行改進(jìn),歸一化使用IN(Instance Normalization)來代替BN(Batch Normalization)。經(jīng)實(shí)驗(yàn)驗(yàn)證,模型使用IN 的效果會比BN 的更好。另外,針對不同的數(shù)據(jù)集,本文在模型的末層引入1~2 層自注意力模塊,從而優(yōu)化網(wǎng)絡(luò)模型的表征能力和圖像分類性能。
圖3 生成器的結(jié)構(gòu)Fig.3 Generator structure
圖4 判別器的結(jié)構(gòu)Fig.4 Discriminator structure
2.2.1 生成器模型(RD-SA-DefGAN-G)
模型中生成器主要任務(wù)是進(jìn)行特征提取,本文在生成網(wǎng)絡(luò)中引入殘差密集塊(結(jié)構(gòu)如圖5 所示),任意兩層之間都是直接連接,可以充分提取深層特征和細(xì)節(jié)信息,加強(qiáng)特征傳播,緩解梯度消失問題。將自注意力機(jī)制引入生成網(wǎng)絡(luò)中可以促使生成器在生成圖像過程中,利用生成器高效獲取特征內(nèi)部的全局依賴關(guān)系,改善了模型對長相關(guān)性與局部相關(guān)性計算不足的弊端,優(yōu)化生成圖像的質(zhì)量。
圖5 殘差密集塊的結(jié)構(gòu)Fig.5 Structure of residual dense block
生成器具體流程如算法1 所示,當(dāng)判別器模型固定,生成器負(fù)責(zé)生成接近原始數(shù)據(jù)集真實(shí)分布的樣本。具體做法是:首先,讓判別器模型對生成器生成樣本的類別和真假性作出預(yù)測,將真假預(yù)測結(jié)果和真樣本標(biāo)簽1-label作BCEWLogitsLoss 運(yùn)算建立生成樣本的判別損失函數(shù),通過該損失函數(shù)建立z~Pz映射關(guān)系,然后,將類別預(yù)測與假類別標(biāo)簽作交叉熵運(yùn)算建立生成樣本的分類損失函數(shù),接著優(yōu)化計算梯度的損失函數(shù),合并判別損失函數(shù)和分類損失之后,對總損失函數(shù)反向傳播并對判別器的參數(shù)進(jìn)行更新,每迭代次數(shù)達(dá)到迭代周期h時,對優(yōu)化器的學(xué)習(xí)率執(zhí)行減半操作。
算法1 RD-SA-DefGAN生成器算法(RD-SA-DefGAN-G)。
參數(shù)需求 學(xué)習(xí)率lr,批處理大小m,迭代次數(shù)n,生成器網(wǎng)絡(luò)初始參數(shù)θ,優(yōu)化器參β1和β2,擾動閾值ε。
2.2.2 判別器模型(RD-SA-DefGAN-D)
判別器中本文使用RDB 進(jìn)行特征提取,殘差密集單元內(nèi)的每個輸出都會與該單元的每個卷積層的輸出建立短連接,實(shí)現(xiàn)信息連續(xù)傳遞,提高網(wǎng)絡(luò)的梯度相關(guān)性,并且一定程度上降低參數(shù)量,具有一定的抗過擬合效果。因此,該模型能夠提升判別器的分類能力和對對抗樣本的防御效果。模型中自注意力機(jī)制則利用特征圖自主學(xué)習(xí)權(quán)重分布,再將其與特征進(jìn)行融合,增大訓(xùn)練過程對分類任務(wù)貢獻(xiàn)大的特征的影響,減小貢獻(xiàn)度小的特征的影響,提高判別器分類準(zhǔn)確率。
本文提出的模型中判別器的有兩個作用:1)與生成器不斷的博弈學(xué)習(xí),提升辨別輸入的圖像是真實(shí)圖像還是生成圖像的能力;2)以對抗樣本作為訓(xùn)練樣本加入到訓(xùn)練,訓(xùn)練出魯棒性強(qiáng)、防御效果好的分類器。RD-SA-DefGAN-D 中判別器結(jié)構(gòu)與原始GAN 有所不同,其有兩個輸出:一個表示判別真?zhèn)屋敵?,另一個表示對數(shù)據(jù)集類別的預(yù)測cls(類別的數(shù)目)。
判別器具體工作如算法2 所示,當(dāng)生成器模型固定,判別器學(xué)習(xí)預(yù)測PGD 對抗樣本的類別以及使判別器盡可能準(zhǔn)確辨別出對抗樣本和生成樣本,具體做法是:首先,對真實(shí)樣本添加PGD 攻擊擾動,獲得對抗樣本,并讓判別器模型對對抗樣本的類別和真假作出預(yù)測;隨后將預(yù)測的類別與真類別標(biāo)簽作交叉熵運(yùn)算(CrossEntropyLoss)從而建立對抗樣本的分類損失函數(shù),同時對抗樣本與生成樣本分別作HingeLoss運(yùn)算來構(gòu)造判別損失,通過該損失建立x~Pdata和z~Pz兩組映射函數(shù);接著優(yōu)化計算梯度的損失函數(shù),合并判別損失函數(shù)和分類損失之后,對總損失函數(shù)反向傳播并對判別器的參數(shù)進(jìn)行更新,每迭代次數(shù)達(dá)到迭代周期h時,對優(yōu)化器的學(xué)習(xí)率執(zhí)行減半操作。
算法2 RD-SA-DefGAN判別器算法(RD-SA-DefGAN-D)。
參數(shù)需求 學(xué)習(xí)率lr,批處理大小m,迭代次數(shù)n,判別器網(wǎng)絡(luò)初始參數(shù)θ,優(yōu)化器參β1和β2,擾動閾值ε。
輸入 原始樣本x、真實(shí)類別標(biāo)簽y;
輸出 真假概率ptf′、類別概率pcls′。
為使得GAN 的生成器和判別器分別達(dá)到訓(xùn)練目標(biāo),本文設(shè)計生成器G 和判別器D 的損失函數(shù)如下:
2.3.1 生成器損失函數(shù)
對于生成器G 以隨機(jī)噪聲z和隨機(jī)標(biāo)簽為輸入,得到生成樣本,判別器D 負(fù)責(zé)對進(jìn)行判別和分類,本文將G 的損失函數(shù)L(G)定義為兩個損失函數(shù),分別為Ltf(G)和Lcls(G):
式中:α、β是平衡不同損失項(xiàng)的參數(shù),且α+β=1。
Ltf(G)是判別器D 對生成樣本的判別損失,其目的是通過加入條件標(biāo)簽指導(dǎo)樣本生成,訓(xùn)練生成器分布逼近目標(biāo)分布,從而讓生成器生成逼真樣本并誤導(dǎo)判別器,其損失函數(shù)可寫為:
Lcls(G)是判別器D 對生成樣本的分類損失,其目的是使判別器能夠輸出生成樣本的類別預(yù)測結(jié)果,其損失函數(shù)可寫為:
2.3.2 判別器損失函數(shù)
式中:α、β是平衡判別損失和分類損失的參數(shù),且α+β=1。
Ltf(D)是對對抗樣本x′和生成樣本辨別真?zhèn)蔚呐袆e損失,其目的是能夠正確分辨出樣本和生成樣本,輸出為真?zhèn)慰梢钥醋鞫诸悊栴},本文使用Hinge 損失函數(shù),損失函數(shù)可寫為:
Lcls(D)是判別器對x′類別預(yù)測的分類損失,其目的是能夠正確分類攻擊樣本,其損失函數(shù)可寫為:
為了驗(yàn)證本文模型的有效性,在CIFAR10、STL10 和ImageNet20 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),運(yùn)行環(huán)境為PyTorch 開源框架。
1)CIFAR10 數(shù)據(jù)集由10 個類共計60 000 張彩色圖像組成,圖像大小均為32 像素×32 像素,其中訓(xùn)練樣本有50 000個,測試樣本有10 000 個。
2)STL10 是包含10 類物體的圖像數(shù)據(jù)集,圖像大小是96像素×96 像素,每類有1 300 張圖片,其中訓(xùn)練樣本500 張,測試樣本800 張,此外還包含了無類標(biāo)圖像10 萬張。
3)ImageNet20 是ImageNet 數(shù)據(jù)集[39]中第274~294 個類別子集,ImageNet 是一個計算機(jī)視覺系統(tǒng)識別項(xiàng)目,是世界上最大的圖像識別數(shù)據(jù)庫,有超過100 萬個樣本,包含1 000多個類。
在訓(xùn)練過程中,本文模型使用圖4 和圖5 的結(jié)構(gòu)作為RD-SA-DefGAN 的生成器和判別器對上述數(shù)據(jù)集進(jìn)行訓(xùn)練,實(shí)驗(yàn)采用Adam 優(yōu)化器[40],該優(yōu)化器是計算每個參數(shù)自適應(yīng)學(xué)習(xí)率的一種方法,本文所有實(shí)驗(yàn)均采用PGD 攻擊算法生成對抗樣本作為模型的訓(xùn)練,實(shí)驗(yàn)過程中超參數(shù)設(shè)置如表1所示。
表1 超參數(shù)設(shè)置Tab.1 Hyperparameters settings
本文將整個實(shí)驗(yàn)分為兩個部分:1)采用殘差密集模塊作為模型的基本結(jié)構(gòu)(RD-DefGAN)在上述3 個數(shù)據(jù)集中進(jìn)行實(shí)驗(yàn);2)在1)的基礎(chǔ)上向模型中引入自注意力機(jī)制(RD-SADefGAN)在上述3 個數(shù)據(jù)集中進(jìn)行實(shí)驗(yàn)。
為了測試模型訓(xùn)練的最佳擾動閾值ε,本文在CIFAR10數(shù)據(jù)集上分別對不同的擾動閾值ε進(jìn)行了測試,實(shí)驗(yàn)結(jié)果如圖6 所示,由圖得知當(dāng)擾動閾值ε=0.02,模型對對抗樣本的分類準(zhǔn)確率最高。為進(jìn)一步驗(yàn)證模型在測試集上的防御成功率,本文測試了不同擾動閾值的已訓(xùn)練模型在CIFAR10 測試集的防御成功率,如表2 所示,在不同擾動閾值的PGD 對抗樣本攻擊下,ε=0.02 時模型的防御成功率最高。該擾動閾值作為后續(xù)實(shí)驗(yàn)的擾動參數(shù)。
圖6 不同擾動閾值在訓(xùn)練集上的分類準(zhǔn)確率Fig.6 Training accuracies with different perturbation thresholds
表2 擾動閾值對模型防御成功率的影響 單位:%Tab.2 Influence of disturbance threshold on rate of successful defense unit:%
在模型訓(xùn)練過程中,為了直觀感受本文提出模型所體現(xiàn)出來的優(yōu)勢,圖7 展示了RD-DefGAN 與RD-SA-DefGAN 兩個模型在CIFAR10、STL10 和ImageNet20 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果。RD-SA-DefGAN 的分類準(zhǔn)確率有明顯的提升,證明自注意力機(jī)制的引入增強(qiáng)了圖像關(guān)鍵特征的貢獻(xiàn)度,提升了分類效果。
圖7 訓(xùn)練集分類準(zhǔn)確率隨迭代次數(shù)的變化Fig.7 Training accuracy over iterations
另外本文對判別器的損失函數(shù)值(d_loss)也進(jìn)行了分析,如圖8 所示,對比RD-DefGAN 與RD-SA-DefGAN,加入自注意力機(jī)制后,判別器損失函數(shù)的收斂速度明顯加快,并且可以收斂到更優(yōu)的狀態(tài),意味著判別器對樣本的真假判定及防御對抗樣本的能力更強(qiáng)。另外從圖中觀察到每隔50 個epoch,其損失函數(shù)出現(xiàn)了較大幅度的震蕩狀態(tài),呈階梯狀下降,這是因?yàn)樵谀P陀?xùn)練過程中每50 個epoch 對Adam 優(yōu)化器的學(xué)習(xí)率進(jìn)行了減半衰減操作,說明在訓(xùn)練過程中使用學(xué)習(xí)率衰減能夠提高模型損失函數(shù)的收斂速度。
圖8 判別器損失函數(shù)值隨迭代次數(shù)的變化Fig.8 Value of discriminator’s loss function over iterations
對比不同擾動閾值ε的PGD 所產(chǎn)生對抗樣本的分類準(zhǔn)確率,以分析PGD 攻擊下擾動閾值ε對模型防御效果的影響,實(shí)驗(yàn)結(jié)果如表3 中RD-DefGAN 和RD-SA-DefGAN 所示。通過對RD-DefGAN 和RD-SA-DefGAN 的實(shí)驗(yàn)結(jié)果分析,模型在加入了殘差密集模塊的基礎(chǔ)上結(jié)合自注意力機(jī)制,增強(qiáng)了對圖像分類任務(wù)貢獻(xiàn)度大的特征,抑制了貢獻(xiàn)度小的特征,使得模型對對抗樣本的防御成功率有了一定提升,相較于RD-DefGAN、RD-SA-DefGAN 的表現(xiàn)更好。
本文將RD-DefGAN 和RD-SA-DefGAN 分別在不同攻擊算法生成的對抗樣本在CIFAR10 數(shù)據(jù)集上進(jìn)行了測試,如表3 所示。FGSM 對抗樣本的攻擊強(qiáng)度較小,防御成功率最高,其次是BIM 對抗樣本,PGD 對抗樣本攻擊強(qiáng)度最大,因此模型對PGD 對抗樣本的防御成功率低于其余兩個攻擊算法生成的對抗樣本。通過對表中數(shù)據(jù)的對比,RD-SA-DefGAN 在防御成功率上有著顯著優(yōu)勢。
表3 不同攻擊算法下的防御成功率 單位:%Tab.3 Rates of successful defense under different attack algorithms unit:%
為了驗(yàn)證本文所提模型的有效性,本文將RD-SADefGAN 與對抗訓(xùn)練(Adv.Training)、Adv-BNN 以及Rob-GAN在CIFAR10、STL10 和ImageNet20 數(shù)據(jù)集進(jìn)行對比,表4 展現(xiàn)的是在不同擾動閾值的PGD 攻擊算法生成的對抗樣本攻擊下的防御成功率。通過對比和分析,RD-SA-DefGAN 對于對抗樣本具有較好的抵抗力,防御成功率比其他防御模型更高;尤其是在與本文所提模型結(jié)構(gòu)相似的Rob-GAN 的對比中,在CIFAR10、STL10 以及ImageNet20 數(shù)據(jù)集下,RD-SADefGAN 在擾動閾值為0.015~0.070 時,防御成功率分別提升了5.0~9.1 個百分點(diǎn)、0.8~3.2 個百分點(diǎn)、1.8~5.3 個百分點(diǎn)。另外從表4 可知,在CIFAR10 和ImageNet20 這兩個數(shù)據(jù)集中,當(dāng)擾動閾值ε=0 時RD-SA-DefGAN 模型分類準(zhǔn)確率效果反而不如Adv.Training 和Adv-BNN,這可能是因?yàn)楸疚哪P突谏蓪咕W(wǎng)絡(luò),生成對抗網(wǎng)絡(luò)的優(yōu)勢在生成圖像的方面,而在處理圖像分類任務(wù)時,與深度神經(jīng)網(wǎng)絡(luò)相比還稍顯不足;但與同樣基于生成對抗網(wǎng)絡(luò)的Rob-GAN 相比,RDSA-DefGAN 模型的防御成功率更高。
表4 不同防御模型在PGD攻擊下的防御成功率 單位:%Tab.4 Rates of successful defense under PGD attack by various defense models unit:%
針對深度學(xué)習(xí)模型受到的對抗攻擊問題,本文將生成對抗模型和PGD 攻擊算法結(jié)合,從修改網(wǎng)絡(luò)結(jié)構(gòu)的角度思考出了一種攻擊防御模型RD-SA-DefGAN。本文所提出模型使用了殘差密集塊和自注意力機(jī)制來充分提取圖像特征,增大圖像關(guān)鍵特征在分類任務(wù)中的貢獻(xiàn)度,并抑制無用信息對分類的影響,模型訓(xùn)練完成后,模型可以對對抗樣本正確分類,提升了對對抗樣本的防御成功率。RD-SA-DefGAN 通過在CIFAR10、STL10 以及ImageNet20 數(shù)據(jù)集上驗(yàn)證了其有效性,取得了更好的實(shí)驗(yàn)結(jié)果。
然而,該模型仍有不足之處,例如當(dāng)擾動閾值ε=0 時模型的分類能力與基于深度神經(jīng)網(wǎng)絡(luò)的模型相比稍弱等。在接下來的工作中,計劃通過優(yōu)化模型的網(wǎng)絡(luò)結(jié)構(gòu)及超參數(shù)設(shè)置等手段,進(jìn)一步探究如何提高模型的防御成功率。