胡 軍 石藝杰
(重慶郵電大學計算智能重慶市重點實驗室 重慶 400065)
目前,深度神經網絡(Depp Neural Networks,DNN)在很多領域的性能已經達到甚至超過人類的水平,因而在圖像分類、自然語言識別、惡意軟件檢測等實際問題中得到廣泛應用[1-3]。然而,研究發現DNN在實際應用中可能存在安全隱患[4]。以圖像分類任務為例,攻擊者在原始輸入上添加對人類來說不可察覺的擾動,可能導致DNN的分類精度急劇下降。這種在原始輸入中加入擾動形成的樣本被稱為對抗樣本。
對抗攻擊根據攻擊者所掌握目標模型的信息可以分為白盒攻擊和黑盒攻擊。白盒攻擊指攻擊者對目標模型的模型參數和架構是已知的,攻擊者可以不受限制地訪問目標模型,因而其攻擊成功率一般較高。這類攻擊方法主要有快速梯度符號法(Fast Gradient Sign Method, FGSM)[5]、投影梯度下降法(Project Gradient Descent, PGD)[6]以及C&W攻擊算法(Carlini and Wagner attacks, C&W)[7]。黑盒攻擊指攻擊者只能通過模型的輸入以及輸出訪問模型,比如基于遷移性的黑盒攻擊[8]和基于查詢的平方攻擊(square attack)[9],該類攻擊只要求部分模型知識就可以進行攻擊。由于對抗樣本本身存在遷移性,并且通過如Nesterov迭代快速梯度下降法(Nesterov Iterative Fast Gradient Sign Method,NI-FGSM)[10]以及Adam-Nesterov迭代快速梯度下降法(Adam-Nesterov Iterative Fast Gradient Sign Method, ANI-FGSM)[11]可以提高黑盒攻擊的遷移性,所以黑盒攻擊在現實中更加容易部署,也更可能成為攻擊者的攻擊手段。
為應對對抗樣本的攻擊,對抗防御策略基本可以分為3類:在模型中引入隨機性、添加額外的模塊以及改進原始模型。隨機性防御策略主要分為輸入隨機化以及模型隨機化。輸入隨機化對原始輸入進行隨機處理,例如通過對原始圖像進行隨機裁剪、填充或者壓縮顏色位深度來打亂擾動[12]。模型隨機化主要基于隨機丟棄(Dropout)[13]思想,例如根據激活值隨機修剪DNN每層中的一部分激活子集[14]以提高模型魯棒性,在DNN的卷積層以及線性層之后設置Dropout層以增強對抗訓練[15]。在原模型中添加額外的模塊也能達到防御效果,例如Meng等人[16]訓練以自編碼器以及分類器為核心的附加網路,對大擾動的對抗樣本拋棄,對小擾動的對抗樣本進行重構之后重新分類;Song等人[17]利用像素生成器重構對抗樣本等。在改進原始模型上,網絡蒸餾[18]類似知識蒸餾,采用兩階段的模型訓練,并且對Logit層進行了輸出平滑,該算法對FGSM幾乎可以完全防御。Madry等人[6]提出了PGD并利用PGD攻擊產生的對抗樣本擴充訓練數據來訓練模型,即對抗訓練算法(Adversarial Tiran, AT),通過該算法提高模型的對抗魯棒性。
對抗訓練使用對抗樣本擴充訓練數據集,以便訓練出的模型可以同時適用干凈樣本和對抗樣本。然而,經過對抗訓練的模型雖然對對抗樣本的識別精度有一定提升,但與干凈樣本的識別精度相比仍有一定的差距,并且對抗訓練往往會降低模型對干凈樣本的識別精度。本文對上述問題進行了分析,將動量思想應用于對抗防御中,提出動量增強特征圖算法(Momentum Enhanced Feature maps, MEF)。實驗結果表明,MEF算法可以很好地結合對抗訓練,并且與AT算法相比,部署MEF算法的模型在干凈樣本與對抗樣本的識別精度上均有提高。
對抗訓練的基本思想是使用對抗攻擊產生的對抗樣本作為訓練數據來訓練DNN模型以提高DNN模型對對抗攻擊的魯棒性。Madry等人[6]通過實驗發現在L∞約束下,基于1階攻擊產生的損失函數的損失值基本相同,其提出的PGD攻擊采用了隨機初始化以及隨機噪聲,這會使PGD生成一個損失函數的集合,這些損失函數基本覆蓋1階攻擊可以產生的損失值,繼而保證PGD攻擊在1階攻擊中的通用性。所以利用PGD攻擊生成的對抗樣本對模型進行對抗訓練可以提高模型的對抗魯棒性。
在對抗訓練的改進上,Xie等人[19]在原始模型中添加去噪模塊來對卷積層的中間結果進行去噪,去噪塊中使用了多種去噪算法,其中基于高斯濾波的非局部去噪算法效果最佳。
He等人[20]提出了參數噪聲注入(Parametric Noise Injection, PNI)算法,PNI算法將高斯噪聲注入卷積核中,PNI算法的卷積核表達式如式(1)所示
其中,vl,i是第i層的卷積核矩陣,αi是生成噪聲的權重參數,用來衡量注入噪聲的大小。ηl,i是在高斯分布中生成的噪聲項,均值為0,方差與本層的卷積核矩陣的方差相同。
Jeddi等人[21]提出了特征擾動(Learn2Perturb, L2P)算法,與PNI算法相似,L2P算法仍將高斯噪聲主動注入模型中,但不同的是噪聲注入位置是通過卷積進行特征提取得到的特征圖,L2P算法表達式為
其中,fl是第l層的特征提取函數,fl(Xl,Wl)是第l層的特征圖,Q(θl) 是第l層生成的噪聲。L2P算法在每層卷積得到的特征圖中注入高斯的噪聲,以此來提高DNN模型對對抗樣本的魯棒性。
Zhang等人[22]基于可視化分析提出了特征對齊算法(Hierarchical Feature Alignment, HFA)。HFA算法認為對抗樣本與干凈樣本高維特征圖的差異是導致DNN模型對對抗樣本分類失敗的主要原因,并且使用Wasserstein距離度量這種差異。HFA算法以上述差異為基礎重構了模型訓練的損失函數,在損失函數中加入了干凈樣本與對抗樣本特征圖的Wasserstein距離,訓練DNN模型對兩類樣本高維特征圖相同的部分進行特征提取,從而使得特征提取差異最小化,以此提高模型對對抗樣本的魯棒性。HFA算法訓練模型時,損失函數表達式為
其中,前2項ΓCE指干凈樣本與對抗樣本的交叉熵損失函數,第3項指兩類樣本高維特征圖差異的Wasserstein距離,并且該距離在損失函數中所占權重用λ表示。
通過可視化DNN模型對輸入進行的特征提取,發現隨著卷積層數的增加,對抗樣本特征圖與干凈樣本特征圖之間的差異逐漸增大,這里將這種差異稱為對抗特征。基于上述發現,本文認為在干凈樣本以及對抗樣本的特征提取過程中,兩者的原始輸入以及淺層卷積層的特征圖差異較小,說明此時卷積層對對抗樣本的特征提取是有效的。并且,DNN的整個特征提取過程是逐層深入逐漸抽象的,層與層之間的特征提取具有連續性。因此可以利用原始輸入以及淺層特征圖逐層地對更深層的特征提取進行增強,通過穩定特征提取的方向來保證特征圖的有效性,減弱對抗特征。基于此思想本文提出了MEF算法。
MEF算法基于動量思想進行卷積層特征提取過程中的特征增強與更新,其特征提取過程如圖1所示。
圖1 MEF算法的特征提取過程
圖1的數字代表特征提取時的算法步驟,該圖展示了MEF算法中第l層的特征提取以及特征增強圖的更新,其中Xl-1是本層輸入,Hl-1是上層的特征增強圖,特征提取過程為
其中,c(·) 指 卷積操作,f(·)是對上層的特征增強圖進行的調整,通過下采樣算法以及1×1的卷積層來調整特征增強圖的尺寸以及通道數,以匹配Xl-1經過卷積之后得到的特征圖的維度。Xl-1經過特征提取以及特征增強后得到第l層的特征圖Xl。
總結來說,特征增強就是將前層的特征增強圖疊加在本層的特征提取圖上,利用淺層特征增強圖保留的特征來弱化隨著特征提取逐漸深入而顯現的對抗特征。在特征提取之后還會利用得到的特征圖Xl對特征增強圖Hl-1進行更新,原因是隨著卷積的深入,提取的特征更加抽象,所以特征增強圖需要隨著網絡層次的加深而更新,以此來保證每層特征增強圖的有效性。特征增強圖的更新表示為
其中,β是加權值,決定了每次卷積提取后的特征圖對特征增強圖更新的權重。
圖2是用來部署MEF算法的特征增強塊(Feature Enhancement Block, FEB),特征增強塊是在原有特征提取層上添加一層特征增強層構成的基礎模塊,利用FEB完成對本層特征圖的增強以及更新特征增強圖。
圖2 特征增強塊
算法1 MEF算法
算法1是DNN模型部署FEB后完整的學習流程。MEF算法結合特征提取的連續性,通過貫穿全局不斷更新的特征增強圖,保證每個階段特征提取的有效性,減弱因逐層特征提取而逐漸顯現的對抗特征,以此來提高模型的魯棒性。
本文在ResNet18中集成特征增強塊進行對抗防御。ResNet18的基本結構是殘差塊,原始輸入經過1層卷積后進入4層集成層,每層集成層都由兩個殘差塊組成,每個殘差塊都包括兩層卷積。部署MEF算法后的ResNet18模型如圖3所示,保持Res-Net18的層次結構不變,在第1層的卷積層以及每個基礎殘差塊上增加特征增強層,構成特征增強塊。此時ResNet18的基本構成不再是殘差塊,而是特征增強塊。
圖3 部署MEF算法的ResNet18模型
本節對部署MEF算法的ResNet18網絡進行對抗防御實驗來對比MEF算法與其他防御算法的性能。
4.1.1 數據集
選用CIFAR-10作為實驗數據集,該數據集由32×32像素大小的彩色圖像組成,其中包含了50 000個訓練樣本和10 000個測試樣本。CIFAR-10有10個不同的類,每個類包含6 000張圖片。在訓練過程中對訓練集使用了數據增強,主要使用隨機裁剪以及隨機增強方法。此外,為了使攻擊者可以直接攻擊原始輸入圖像,在數據增強中不包含輸入歸一化,而是在網絡前面添加一個參數固定、不可訓練的數據歸一化層。
4.1.2 訓練設置
在ResNet18網絡上部署MEF算法,MEF算法中的變量β設置為0.5,訓練的batch_size為256,使用SGD優化器,權重衰減為1e-4,動量設置為0.9,初始的學習率為1e-3,學習率的衰減周期為1/4個周期,衰減率為0.1。對目標模型進行對抗訓練前先進行20個周期的預訓練,之后使用160個周期進行對抗訓練,同時使用參數0.1的標簽平滑防止過擬合。本文使用PGD作為對抗訓練的攻擊方法,設置攻擊的迭代次數為10次,攻擊閾值為8/255,攻擊步長為0.01。
對ResNet18模型的特征圖進行可視化。實驗中的輸入是CIFAR-10中一張類別為“船”的圖片,使用PGD攻擊部署AT算法與MEF算法的ResNet18網絡,之后將干凈樣本與對抗樣本輸入模型中,在ResNet18網絡第1層卷積層以及前2層集成層中分別抽取一張特征圖進行展示。
圖4是部署AT算法后模型的特征圖,觀察到針對AT算法產生的對抗樣本在背景上產生了許多明顯的像素變化,并且隨著卷積深入,對抗樣本與干凈樣本特征圖的差異也逐漸增大。圖5是部署MEF算法后模型的特征圖,與圖4相比,針對MEF算法進行攻擊產生的對抗樣本與原圖差別較小,并且不同卷積層次特征圖的差異也在可控范圍內,并未導致模型分類錯誤。
圖4 部署AT算法后ResNet18模型的特征圖
圖5 部署MEF算法后ResNet18模型的特征圖
總結可知,部署MEF算法的DNN模型可以通過輸入以及淺層特征圖不斷修正深層網絡的特征提取,減弱可能出現的對抗特征,從而保證特征提取的平滑過度。并且MEF算法可以保證特征提取的穩定性,即MEF算法使得模型對對抗樣本與干凈樣本的特征提取趨于一致。同時與Xie等人[19]提出的算法相比,MEF算法只是修正特征,并不會無差別的過濾去噪,所以基本不會造成特征信息損失。MEF算法良好的特征提取為以圖像識別為基礎的其他研究如目標檢測、圖像分割等提供了應用基礎。
實驗使用基于遷移性的黑盒攻擊以及Square攻擊來測試MEF算法。對于基于遷移性的黑盒攻擊,為了保證對抗樣本的遷移性,使用較大的攻擊閾值,PGD與FGSM的攻擊閾值為L∞=16/255,PGD的迭代次數為20次,C&W使用學習率為0.01的ADAM優化器,最大迭代次數為1 000次,攻擊常數 c的初始值為0.01,攻擊的二分搜索步驟為9步,梯度下降迭代次數為10次。攻擊在CIFAR-10上預訓練的ResNet18模型生成對抗樣本,之后將對抗樣本輸入防御模型以測試模型的對抗魯棒性。實驗結果如表1所示,可以看出除了FGSM攻擊,MEF算法對基于C&W以及PGD攻擊的遷移攻擊有更好的防御效果。
表1 MEF算法與AT算法對遷移攻擊的防御精度
之后進行Square攻擊的防御實驗,該攻擊中攻擊精度與允許查詢模型輸出結果的次數N是成正比的,允許查詢次數越多越容易找到對損失函數效果更好的擾動,攻擊效果也就越明顯。同樣與AT算法進行對比實驗,查詢次數分別為1 000, 3 000,5 000次。實驗結果如表2所示,可以發現隨著查詢次數增多,MEF算法明顯優于AT算法,表現出良好的魯棒性。
表2 MEF算法與AT算法對查詢攻擊的防御精度
實驗采用控制變量原則,在同一攻擊設置下使用C&W, FGSM以及PGD攻擊對比MEF算法與其他防御算法的魯棒性。根據MEF的特性,實驗分為3部分。第1部分實驗中C&W攻擊使用學習率為5e-4的ADAM優化器,最大迭代次數為1 000次,攻擊常數c的初始值為0.01,攻擊的二分搜索步驟為9步,梯度下降迭代次數為10次。通常該設置下基于L2范數的C&W攻擊可以對任何防御達到幾乎100%的攻擊成功率,所以模型的魯棒性并不一定意味著針對任何攻擊方法都能獲得良好的防御精度。此時生成的對抗樣本與干凈樣本的L2范數距離可以更好地評估模型的魯棒性。實驗中隨機抽取了32張測試樣本,在不同的置信度K值下計算對抗樣本與干凈樣本的L2距離,實驗結果如表3所示。從表3可以看出相同攻擊參數下,與AT算法相比,使用C&W攻擊算法攻擊MEF算法產生的對抗樣本與干凈樣本差異更大,原因是需要擾動更多的像素才能達到攻擊效果。這說明MEF算法對模型魯棒性的提升要大于AT算法。
表3 C&W攻擊中MEF算法與AT算法對抗樣本的 L2距離對比
第2部分實驗中PGD攻擊的參數設置:迭代次數為13次,攻擊閾值ε=8/255 ,攻擊步長為ε/6。與Xiao等人[23]的實驗結果進行對比如表4所示。表4中展示了AT,GS以及MEF算法在PGD攻擊下的防御精度以及干凈樣本識別精度。由表4可知,MEF算法無論在對抗樣本還是干凈樣本的識別精度上都優于其他兩種防御算法。
表4 AT,GS以及MEF算法針對PGD攻擊的防御精度
第3部分實驗中對比PNI,L2P,HFA以及MEF算法對PGD攻擊以及FGSM攻擊的防御性能。在PGD攻擊實驗中,PGD的攻擊步長為0.01,根據攻擊閾值ε不同分為3組,每組分別迭代10, 20,30次。實驗結果如表5所示。
表5 PNI, L2P, HFA以及MEF算法的對比試驗
由表5可知,攻擊閾值與對抗訓練相同時,L2P算法的防御精度最高,但是隨著攻擊迭代次數的增多,PNI算法取得較高的防御精度以及最高的均值。當使用比訓練時攻擊參數更強的對抗攻擊時,MEF算法的性能更優,在攻擊閾值設置為0.06與0.07的防御實驗中取得最高的均值,并且MEF算法的魯棒性始終優于HFA算法。
FGSM的對比實驗中ε取值為[0.03,0.10],并且添加AT算法以更好地進行對抗樣本識別精度的對比。實驗結果如圖6所示,橫軸表示FGSM的攻擊閾值,縱軸表示5種算法在不同攻擊閾值下的防御精度。可以看到,在不斷增加攻擊閾值的對抗攻擊下,相比其他4種防御算法,MEF算法的準確率曲線斜率最低,防御效果最為穩定。
圖6 強FGSM的防御魯棒性對比
分析上述實驗,PNI算法與L2P算法都通過人工注入噪聲進行防御,這原是針對提高干凈樣本精確度提出的魯棒性策略。在對抗防御中可以通過人工注入的噪聲來打亂由對抗攻擊注入的擾動,之后結合模型本身對一定程度的噪聲的魯棒性來達到對抗防御的目的。本文認為PNI算法與L2P算法在強攻擊中表現欠佳是因為這兩種模型都是通過對抗訓練來學習注入的噪聲大小,所以最終注入的噪聲與訓練時的對抗攻擊的設置相關。當使用比訓練時更強的攻擊設置對模型進行攻擊時,此時注入的噪聲不足以達到打亂對抗擾動的目的,所以在這種程度的攻擊下,PNI算法與L2P算法防御表現欠佳。同時HFA算法的魯棒性與DNN模型的規模相關,DNN模型的卷積層數越多,進行特征對齊的效果就越好。而MEF算法則是通過對抗訓練學習模型參數,使特征提取以及特征增強可以得到更好的擬合,從而切實提高模型的魯棒性。
從實驗效果看,上述算法都可以有效地防御與訓練時攻擊參數一致的對抗攻擊,而MEF算法在面對強對抗攻擊時防御效果最佳。
本節通過自測Athalye等人[24]提出的判斷模糊梯度防御的檢查項來檢查MEF防御算法是否是通過模糊梯度來提高模型的對抗魯棒性。非隨機性防御自測結果如表6所示。
表6 MEF的非模糊梯度測試
(1)上述實驗可知MEF對單步攻擊FGSM的防御成功率高于迭代攻擊PGD的防御成功率,所以針對MEF算法的攻擊,單步攻擊性能優于迭代攻擊。(2)對比第4節的實驗,基于遷移性的黑盒攻擊以及Square攻擊的攻擊成功率都低于FGSM以及PGD攻擊的攻擊成功率。(3)C&W攻擊算法對MEF算法的攻擊成功率可以達到100%。(4)圖7展示了PGD成功攻擊MEF防御算法后生成的對抗樣本,其中上側是干凈樣本,下側是攻擊成功后生成的對抗樣本。(5)根據圖6以及表5可知FGSM以及PGD對MEF算法的攻擊成功率隨著擾動閾值的增加而增加。
圖7 PGD攻擊MEF算法產生的對抗樣本
綜上,基于MEF算法的防御策略通過了所有非模糊梯度測試,這說明MEF對模型的防御性能提升是基于提升模型魯棒性實現的,即使MEF算法中存在部分梯度模糊,但這也不是MEF算法中提高模型魯棒性的主要因素。
本文提出一種基于動量思想的端到端對抗防御算法MEF,其結合原始輸入以及淺層特征圖增強深層特征圖,通過穩定特征提取方向來弱化對抗特征。MEF算法使用特征增強塊代替傳統的特征提取,特征增強塊負責每層卷積層的特征提取、特征增強以及特征增強圖的更新工作,通過局部的特征增強來達到全局特征增強的目的。相比對抗訓練,MEF算法實現了對抗樣本與干凈樣本特征提取的統一。從實驗效果看,MEF算法在傳統對抗訓練的基礎上進一步提高了模型對干凈樣本與對抗樣本的識別精度,與目前先進的對抗防御算法比,MEF算法表現出更高的魯棒性。