陳晉音 吳長安 鄭海斌 王 巍 溫 浩
隨著計算機硬件計算力的發展,深度學習技術[1]憑借其良好的性能和較強的擬合能力廣泛應用于計算機視覺[2]、自然語言處理[3]、語音識別[4]、工業控制[5]等領域.然而,近期研究發現,深度學習模型容易受到精心制作的微小擾動的影響[6].對抗攻擊可以定義為:在模型測試階段,攻擊者通過在原始數據上添加精心設計的微小擾動得到對抗樣本,從而使得深度學習模型完全失效并以較高置信度誤判的惡意攻擊.在應用深度模型的各個領域,對抗樣本均可實現較高概率的攻擊,如何設計高效的防御方法提高深度學習模型的魯棒性是其進一步推廣應用的安全保障[7].
已有大量面向深度學習的對抗攻擊研究工作,根據其對抗樣本生成原理不同,可分為基于梯度的攻擊方法、基于優化的攻擊方法和其他攻擊方法[7].其中,基于梯度的攻擊方法利用模型的參數信息,通過目標損失函數對輸入的求導得到梯度信息,獲取對抗擾動,例如:快速梯度符號法(Fast gradient sign method,FGSM[8])、動量迭代的快速梯度符號法(Momentum iterative fast gradient sign method,MI-FGSM[9])、基于雅克比的顯著圖攻擊(Jacobian-based saliency map attack,JSMA)[10]等.基于優化的攻擊方法通過多次查詢樣本的輸出置信度或類標,優化對抗擾動,或者通過等價的梯度信息進行攻擊,例如:基于零階優化的攻擊(Zeroth order optimization,ZOO)[11]和基于邊界的攻擊(Boundary)[12].相比于基于梯度的攻擊,基于優化的攻擊方法由于需要多次查詢計算,因此算法復雜度和運行成本都較高.除此之外,還有基于生成式對抗網絡(Generative adversarial network,GAN)的攻擊[13]、基于遷移的攻擊[14]等.
隨著對抗攻擊研究的深入,相應的對抗攻擊防御方法的研究也相繼展開,根據防御方式的差異,可分為基于數據修改的防御、基于模型修改的防御和基于附加網絡的防御[7].其中,基于數據修改的防御對模型的輸入進行修改,包括數據重編碼、數據變換、對抗訓練等;基于模型修改的防御包括修改模型的目標損失、在模型中加入隨機層、“蒸餾”得到新的網絡等;基于附加網絡的防御包括添加擾動整流網絡、自編碼器網絡、生成式對抗網絡等.已有的防御方法研究大多關注防御成功率,在實際應用中仍面臨以下一些挑戰:
1)對抗樣本依賴,即防御的效果依賴于預先已知的對抗樣本的數量和質量,如對抗訓練,當遇到新的攻擊方法時防御效果不明顯;
2)影響良性樣本的識別精度,即防御的效果以犧牲良性樣本的識別精度為代價,如隨機縮放圖像操作雖然能夠破壞對抗擾動,但也干擾了良性樣本識別;
3)參數敏感性與防御實時性,即需要根據數據集和攻擊方法調整參數,如數據變換中的圖像縮放和圖像旋轉需要多次測試得到合適的參數,附加網絡防御方法增加了計算步驟,降低了模型的處理速度.
通用對抗擾動攻擊方法[15]是不斷對對抗樣本的擾動進行疊加和優化,得到通用擾動,隨后疊加到任意良性樣本上都能夠實現攻擊.受到通用對抗擾動攻擊[15]的啟發,本文提出一種基于通用逆擾動(Universal inverse perturbution,UIP)的對抗樣本防御方法(UIP defense,UIPD),通過設計具有通用逆擾動的矩陣,疊加到對抗樣本,實現對抗樣本的重識別防御.此外,對抗樣本魯棒特征的提出[16],認為樣本包含魯棒特征和非魯棒特征,且都會影響預測結果.良性樣本中兩者一致因此得到正確識別結果;而對抗樣本中魯棒特征不受影響,非魯棒特征變化較大,影響了識別結果.因此,可以通過設計強化樣本中的非魯棒特征,即類相關特征,實現對對抗樣本的防御,抵消對抗擾動對非魯棒特征的影響;而且根據非魯棒特征在數據分布中的相似性和通用性,設計生成通用逆擾動進行抵消.
本文的主要貢獻如下:
1)設計一種基于通用逆擾動的對抗樣本防御方法UIPD,僅依據良性樣本即可快速生成通用逆擾動矩陣,有效防御多種未知的攻擊方法;
2)UIPD 不影響良性樣本的識別,在生成UIP的過程中,通過對良性樣本的類相關特征進行強化,實現良性樣本識別精度提升的效果;
3)UIPD 的參數敏感性低且防御速度快,在多個數據集和多個模型上的實驗結果表明了UIPD對各類攻擊都具有良好的防御效果.
本文其余部分結構如下:第1 節介紹了對抗攻防的相關工作;第2 節詳細說明了UIPD 方法;第3 節實驗從多個角度驗證UIPD 的性能;最后對全文進行總結和展望,更多的通用逆擾動可視化圖示例參見附錄A.
本節主要介紹實驗中涉及到的對抗攻擊方法與已有的防御方法.
已有的對抗攻擊方法眾多,根據對抗樣本的生成機理,可以分為以下兩類:
1)基于梯度的攻擊:指在基于梯度的迭代過程中,尋找圖像中關鍵的像素點進行擾動.Szegedy 等[6]首次證明了可以通過對圖像添加無法察覺的擾動誤導網絡做出錯誤分類.但由于問題的復雜度太高,于是轉而求解簡化后的問題,將其稱為約束型擬牛頓法(Box-constrained limited memory Broyden-Fletcher-Goldfarb-Shanno,L-BFGS).Goodfellow 等[8]在此基礎上,提出快速梯度符號法(FGSM),通過計算單步梯度快速生成對抗樣本.Madry 等[17]提出投影梯度下降法(Project gradient descent,PGD),可以將其看作是FGSM 的改進版——KFGSM (K 表示迭代的次數),每次迭代都會將擾動限制到規定范圍,提高攻擊的有效性.Kurakin 等[18]提出基本迭代法(Basic iterative methods,BIM),將一大步運算擴展為通過多個小步增大損失函數,從而提高對抗樣本的攻擊成功率并且減小對抗擾動.Carlini 等[19]提出一種對抗攻擊方法C&W,通過梯度迭代優化的低擾動對抗樣本生成算法,限制L∞、L2和L0范數使得擾動無法被察覺,但是攻擊速度較慢.Moosavi-Dezfooli 等[20]提出了深度欺騙攻擊(DeepFool),通過迭代計算的方法生成最小規范對抗擾動,將位于分類邊界內的圖像逐步推到邊界外,直到出現錯誤分類.此方法添加的對抗性擾動比FGSM 更小,同時能夠達到相似的攻擊效果.一般攻擊方法均采用限制L2或L∞范數的值控制擾動,而Papernot 等[10]提出基于雅克比的顯著圖攻擊(JSMA),采取限制L0范數的方法,即僅改變良性樣本幾個像素生成對抗樣本,使得添加的擾動更小.一般的攻擊方法只能針對單個樣本生成對抗擾動,Moosavi-Dezfooli 等[15]研究并設計了一種通用對抗擾動(Universal adversarial perturbation,UAP)攻擊,與DeepFool 攻擊相似,使用對抗擾動將圖像推出分類邊界,但是同一個擾動針對的是所有的圖像,結果顯示即使是當時最優的深度網絡模型也難以抵抗通用擾動的攻擊.此外,通用的對抗擾動具有很強的遷移性,即跨數據集、跨模型有效.
2)基于優化的攻擊:通過將對抗樣本的生成問題轉化為多目標的優化問題,使分類模型損失最大化,對抗擾動最小化,導致模型分類錯誤.Brendel 等[12]提出邊界攻擊,通過對樣本引入最小擾動來改變模型對樣本的決策.受C&W 攻擊的啟發,Chen 等[11]提出基于零階優化的攻擊(ZOO),使用對稱差商來估計梯度,進行對抗擾動的優化更新.通過在樣本中添加噪聲并進行對抗擾動優化是一種常見的對抗攻擊方法,Rauber等[21]提出在樣本中添加高斯噪聲(Additive Gaussian noise attack,AGNA)使分類器出錯,添加的擾動是通過多次迭代優化直到使分類器出錯的最小擾動.除此以外,Rauber 等[21]通過改變添加的噪聲類型,提高攻擊的效率,如添加均勻噪聲(Additive uniform noise attack,AUNA)和添加椒鹽噪聲(Salt and pepper noise attack,SPNA).
本文提出的UIPD 在上述的對抗攻擊中均取得了良好的防御效果,除了上述的對抗攻擊方法以外,還有很多其他優秀的對抗攻擊方法:Su 等[22]提出單像素攻擊(One pixel attack),使用差分進化算法,對每個像素進行迭代的修改生成子圖像,并與原圖像對比,根據選擇標準保留攻擊效果最好的子圖像,僅改變圖樣本中的一個像素值就可以實現對抗攻擊.Baluja 等[23]訓練了多個對抗性轉移網絡(Adversarial transformation networks,ATNs)來生成對抗樣本,可用于攻擊一個或多個網絡模型.Cisse 等[24]通過生成特定于任務損失函數的對抗樣本實現對抗攻擊,即利用網絡的可微損失函數的梯度信息生成對抗擾動.Sarkar 等[25]提出了兩種對抗攻擊算法:精確目標的通用擾動(Universal perturbations for steering to exact targets,UPSET)攻擊和生成惡意圖像的對抗網絡(Antagonistic network for generating rogue images,ANGRI)攻擊.UPSET 攻擊為針對原始樣本生成具有通用擾動的對抗樣本,且可以使模型誤分類為指定的目標類別,而ANGRI 攻擊為針對原始樣本生成具有特定擾動的對抗樣本,且可以使模型誤分類為指定的目標類別.
以上攻擊方法都是基于肉眼不可見擾動的對抗攻擊,除了基于對抗擾動的攻擊外,還有一類基于對抗補丁的攻擊.Brown 等[26]提出一種在物理空間的對抗圖像補丁的方法.Karmon 等[27]利用修改后的損失函數,使用基于優化的方法提升對抗補丁的魯棒性.為了提高視覺保真度,Liu 等[28]提出了PSGAN 框架來生成類似涂鴉的對抗補丁,以愚弄自動駕駛系統.為了解決對抗補丁泛化能力差的問題,Liu 等[29]利用模型的感知和語義上的偏見,提出了一個基于偏見的框架生成具有強泛化能力的通用對抗補丁方法.綜上,基于補丁的對抗攻擊也是一種有效的攻擊方法.
根據防御效果,防御方法可分為僅檢測防御和重識別防御,僅檢測防御是對檢測出的攻擊樣本進行甄別,而不做進一步處理;重識別防御則是將對抗樣本進行還原處理,重新識別其正確類標,UIPD屬于重識別防御方法,因此在實驗中采用的對比算法同樣都屬于重識別防御.而根據防御作用對象的不同,可以進一步分為以下三類:
1)基于數據預處理的防御:指在模型訓練前,或模型測試的過程中,對數據進行預處理,從而提高模型對于對抗樣本的防御性.Xie 等[30]研究發現,對圖像進行尺寸變換或者空間變換能有效降低對抗樣本的攻擊性能,這是一種非常簡單有效的數據預處理防御方法,但無法從根本上提升模型的防御能力.Song 等[31]提出了對抗訓練方法,通過生成的大量對抗樣本,然后將對抗樣本作為模型的訓練集執行對抗訓練,從而不斷提升模型的魯棒性,該方法需要使用大量高強度的對抗樣本,并且網絡架構要有充足的表達能力,高度依賴于對抗樣本的數量和質量,面對多種攻擊組合時防御的泛化能力較弱.為此,Miyato 等[32]和Zheng 等[33]分別提出了虛擬對抗訓練和穩定性訓練方法提升防御效果.Dziugaite等[34]提出基于數據壓縮的方法,使用JPG 圖像壓縮的方法,減少對抗擾動對于模型的干擾,但同時也會降低對良性樣本的分類準確率.此外,Das 等[35]通過研究數據中的高頻成分,提出了集成防御技術.Luo 等[36]提出基于“Foveation”機制的防御方法提高顯著魯棒性.對抗訓練能夠提高深度模型的魯棒性,但是需要生成大量的對抗樣本,存在防御代價大、無法防御沒有出現過的攻擊等問題.
2)基于網絡修正的防御:指通過添加或者改變多層/子網絡、改變損失/激活函數等方式,改變模型的架構和參數,從而濾除擾動,提高模型的防御性.受到將去噪自編碼器(Denoising auto encoders,DAE)堆疊到原來的網絡上會使其變得更加脆弱這一特性的啟發,Gu 等[37]引入深度壓縮網絡(Deep compression network,DCN),減少對抗樣本的擾動.Rifai 等[38]通過添加平滑操作訓練DCN 濾除擾動.Ross 等[39]提出使用輸入梯度正則化以提高對抗攻擊魯棒性,該方法和對抗訓練結合有很好的效果,但防御代價以及防御的復雜度都會提高一倍以上.Hinton 等[40]提出可以使用“蒸餾”的方法將復雜網絡的知識遷移到簡單網絡上后,Papernot 等[41]基于“蒸餾”的概念設計對抗防御方法,通過解決數值不穩定問題擴展了防御性蒸餾方法.Nayebi 等[42]受生物啟發,使用類似于生物大腦中非線性樹突計算的高度非線性激活函數以防御對抗攻擊.Cisse 等[43]提出了在一層網絡中利用全局Lipschitz 常數加以控制,利用保持每一層的Lipschitz 常數來減少對抗樣本的干擾的防御方法.Gao等[44]提出DeepCloak 方法,在分類層的前一層加上特意為對抗樣本訓練的額外層以掩蓋對抗擾動.此外,Jin 等[45]通過引入前饋神經網絡添加額外噪聲減輕攻擊的影響.Sun 等[46]基于統計濾波設計了超網絡提高網絡魯棒性.Madry 等[17]從魯棒優化角度研究了對抗防御性.通過網絡修正的方式改變模型內部結構和參數的優化能夠有效提高模型的魯棒性,采取梯度隱蔽、蒸餾結構、激活函數重設計等措施提高模型防御性能.
3)基于附加網絡的防御:指在保持原始深度學習模型結構不變的前提下,添加外部模型作為附加網絡來提高原始模型防御性能.針對對抗攻擊的防御,Akhtar 等[47]通過添加擾動整流網絡,利用一個單獨訓練的網絡附加到目標網絡上,以抵御通用擾動產生的對抗性攻擊,達到不需要調整原本的網絡參數也能對對抗樣本產生良好的防御效果的目的.Hlihor 等[48]在訓練過程中將對抗樣本提供給自動編碼器,從而濾除對抗性擾動,并減少輸出樣本與干凈樣本之間的距離.孔銳等[49]研究了基于GAN 框架訓練目標模型的魯棒性.Samangouei 等[50]使用GAN 生成與對抗樣本相似但不含擾動的樣本,實現防御.Lin 等[51]在Samangouei 等[50]的工作基礎上,在GAN 結構中引入自編碼器,提高防御效率.Jin 等[52]提出對抗擾動濾除的生成式對抗網絡(Adversarial perturbation elimination with GAN,APE-GAN),利用對抗樣本訓練基于GAN 的防御模型,達到正確識別對抗樣本,同時不影響干凈樣本的識別的目的.Xu 等[53]提出特征壓縮法,用兩個近似模型檢測圖像中的對抗擾動.Ju 等[54]研究了多個模型的集成決策防御,提出了一種集成對抗防御方法.
本文提出的通用逆擾動對抗防御方法與貝葉斯案例模型(Bayesian case model,BCM)[55]通過選擇數據中具有代表性的典型樣本,然后提取典型樣本中的重要特征,達到對基于案例推理算法和原型分類算法的解釋,在思想上相似,但是主要任務、技術方法與應用場景均不同.
通常,神經網絡的前向傳播過程表示為f:RM →RN,其中M表示輸入的維度,N表示輸出的維度.進一步,可以將整個模型表示為:f(x,θ):X →Y,其中x∈X表示模型輸入,Y表示模型的輸出,θ表示模型的內部參數.進一步將θ表示為深度模型的各層非線性權重與偏置組合:θ=w×?(x)+b,其中w表示權重矩陣,在訓練的過程中更新,x∈X表示輸入矩陣,即原始數據集中的良性樣本,b表示偏置,?(x)表示輸入樣本特征.y∈Y表示良性樣本的真實類標經過one-hot 編碼后的數組,l=arg max(y),arg max(·)表示數組元素值最大的位置的坐標作為真實類標,l∈{0,1,2,···,N-1}.=f(x,θ)表示良性樣本的預測置信度數組,表示預測類標,.當時,則預測正確,反之則預測錯誤.以交叉熵為例,定義模型訓練的損失函數為
其中,m表示訓練樣本數,分別表示數組y和在位置i處的值,log(·)表示對數函數.訓練的優化目標是最小化損失,即arg minLossCE,一般采用梯度下降法,梯度計算式為
進一步得到權重的更新式為
其中,lr表示學習率.
當模型受到攻擊后,攻擊者會在良性樣本上添加精心設計的擾動得到對抗樣本,表示為x*=x+Δx,其中Δx表示對抗擾動.將對抗樣本輸入模型后,得到是對抗樣本的預測置信度數組,表示預測類標,={0,1,2,···,N-1}.當時,則無目標攻擊成功;當時,其中lt是攻擊者預設的攻擊目標,則目標攻擊成功;當時,則攻擊失敗.攻擊的目的是實現損失的增大,即arg maxLossCE,同樣采用梯度下降計算
進一步得到對抗樣本的更新式為
其中,ε表示迭代步長,“+”運算表示樣本與對抗擾動疊加.
最后,使用防御方法加固模型后,重新實現損失的最小化.根據前面的定義,可以采用對權重更新,也可以采用對樣本更新,UIPD 方法是對樣本進行更新實現防御,恰好是式(5)的逆過程,可以粗略表示為
通用逆擾動的通用性體現在:測試階段,只需單個逆擾動,就可以對不同攻擊方法生成的任意對抗樣本實現防御;訓練階段,不涉及到攻擊方法和對抗樣本.生成過程如圖1 所示,其中UIP 與訓練集樣本的尺寸和維度一致,首先初始化為0;然后分別和訓練集中的每一張樣本疊加后輸入到深度模型中,計算損失函數;最后根據損失的趨勢得到逆擾動在特征空間中的位置,反饋訓練更新通用逆擾動.

圖1 通用逆擾動防御方法框圖Fig.1 The framework of UIPD method
圖1的方法框圖中包括UIP、良性樣本和深度神經網絡(Deep neural network,DNN)模型三部分,UIP 通過對圖像空間的特征進行不斷迭代強化,提取良性樣本的特征,并通過反饋訓練對UIP 不斷進行加強.在迭代過程中,圖1 形象地展示了通用逆擾動與良性樣本、特征空間的關系.在前文中提到,通用逆擾動強化了良性樣本的類相關特征,因此能夠保持良性樣本的識別準確率,甚至在一定范圍內提升識別準確率.但是通用逆擾動不是直接采樣自樣本空間,而是通過損失反饋訓練學習其在高維特征空間中的分布,這解釋了通用逆擾動對數據樣本和攻擊方法具有較好的通用性,但是對同一個數據集的訓練模型的通用性則較差.
根據式(6)和圖1 的說明可以得到通用逆擾動的生成式.首先令,則深度模型變為
其中,xi表示原樣本,表示通用逆擾動矩陣,表示原樣本疊加上通用逆擾動矩陣后的樣本.
此時的梯度是損失函數對疊加后的輸入進行求導,得到
其中,gxi表示此時的梯度,LossCE表示交叉熵損失函數.
進一步得到修改后的UIP 迭代式
因為其中良性樣本在迭代前后不變,所以兩邊減去一個xi,得到最終UIP 迭代式其中,εuip表示通用逆擾動矩陣的迭代步長.
需要說明的是,圖1 中的UIP 即是在Image-Net 數據集、VGG19 模型上優化得到的通用逆擾動,為了更好的可視化,將其歸一化到[0,1]的范圍內進行可視化,原始的UIP 的均值為:-0.0137,方差為:0.0615,是十分微小的.UIPD 方法的詳細偽代碼如算法1 所示.
算法 1.UIPD 方法
對算法的時間復雜度進行分析,UIPD 的時間復雜度包括訓練時間復雜度和測試時間復雜度,根據算法1 可知,其訓練的時間復雜度和測試的時間復雜度都是O(n),都是與樣本數呈一階增長關系.盡管在算法1 中存在兩個“For”循環語句,但是最大epoch 數是一個常數,因此訓練時間復雜度是O(ntrain);而測試時,只需要將良性樣本與UIP 做“+”運算操作(“+”運算操作是指將訓練完成的UIP 與良性樣本進行像素上的疊加,即將UIP 以一種“擾動”的形式添加到良性樣本圖像上去,在完成“+”操作的過程中,需要先將UIP 與良性樣本轉化為數組像素值,完成“+”操作后再以圖像形式輸出),因此也是O(ntest),其中ntrain和ntest表示訓練樣本數和測試樣本數.相比于數據修改防御中的數據變換操作,如resize、rotate 等,UIPD 方法多了訓練的時間復雜度,但是由于UIP 能夠進行離線訓練和在線防御,訓練樣本是有限的,即ntest?ntrain,因此其訓練時間復雜度是可以忽略的;相比于對抗訓練,UIPD 方法不需要使用大量的對抗樣本進行訓練,節省了大量的對抗樣本生成時間.
分析空間復雜度,無論是在訓練過程,還是在測試過程,UIPD 方法都是只需要占據一個UIP 存儲的空間,因此空間復雜度是O(1).
本文從高維特征的決策邊界和樣本的魯棒安全邊界兩個角度說明通用逆擾動的有效性.基于樣本在高維特征空間中的分布和決策邊界,分析UIP 具有防御效果的原因.如圖2 所示,UIPD 方法不改變模型的決策邊界,因此決策邊界是固定的,但樣本在決策空間的位置與決策邊界是相對而言的,UIP導致樣本在決策空間中的位置發生了變化,導致樣本與決策邊界的相對位置發生了變化,使得原本在錯誤決策空間的樣本重新回到正確決策空間.當訓練好一個模型,良性樣本被正確分為C1 類和C2類,其中還存在C2 類的一個樣本被誤分類為C1(圖中的灰色方塊).當良性樣本疊加了UIP 后,能夠促使樣本在特征空間中的分布向類中心移動,從而改善良性樣本識別結果 (即將原本分類錯誤的樣本進行正確識別).當模型受到攻擊,原本處在決策邊界附近的樣本越過邊界進入錯誤類的特征空間(即圖中的紅色圓點).此時,當對抗樣本疊加了UIP 后,能夠重新回到正確的特征空間并向類中心移動.

圖2 基于特征分布和決策邊界的UIPD 分析示意圖Fig.2 The UIPD analysis based on feature distribution and decision boundary
基于樣本的魯棒安全邊界說明UIP 具有防御效果的原因,具體如圖3 所示.最優化觀點認為,模型的魯棒性可以等價為一個最大最小模型.最大化攻擊者的目標函數,其物理意義是尋找合適的擾動使損失函數在(x+Δx,y)這個樣本點上的值越大越好;最小化防御者的目標函數,其目的是為了讓模型在遇到對抗樣本的情況下,整個數據分布上的損失的期望還是最小.基于最優化觀點建模的計算式為

圖3 基于魯棒安全邊界的UIPD 分析示意圖Fig.3 The UIPD analysis based on robust security boundaries
其中,ρ(·)是需要最小化的防御目標,w表示權重矩陣,x表示輸入矩陣,y表示樣本標簽,E(x,y)~D[·]表示平均損失,D(x,y)表示輸入和標簽所在的聯合概率分布,Δx表示對抗擾動,L(·,·,·)表示損失函數.式中Δx∈Sx,即此時對抗樣本的擾動落在Sx范圍內都是安全的,因此將Sx稱為輸入擾動的安全邊界.
圖3中,良性樣本的安全邊界原本是r,即Sx ≤r時為安全;受到攻擊后,發生了樣本點落在半徑r以外的事件,但是若此時能夠將安全邊界由r拓展到R,則可以實現新的魯棒邊界;UIPD 方法的防御過程就是通過學習數據樣本在高維特征空間中的類相關重要特征,然后反映在圖像空間中,最后等效于將Sx ≤r的安全邊界拓展為Sx ≤R.
本節首先介紹實驗基本設置,包括軟硬件環境、數據集、深度模型、攻擊方法、防御方法、評價指標等.然后,從UIP 在攻擊方法上的通用性、數據樣本上的通用性,與不同防御方法的防御效果比較,在良性樣本識別中的性能改善、參數敏感性和時間復雜度等方面進行實驗和分析.
1)實驗硬件及軟件平臺:i7-7700K 4.20 GHz×8 (CPU),TITAN Xp 12GiB×2 (GPU),16 GB×4 memory (DDR4),Ubuntu16.04 (OS),Python3.7,Tensorflow-gpu 1.1.14,Tflearn 0.3.2.2.
2)數據集:實驗采用MNIST、Fashion-MNIST (FMNIST)、CIFAR-10 和ImageNet 四個公共數據集.其中,MNIST 數據集包括10 類共60 000張訓練樣本及10 類共10 000 張測試樣本,樣本大小是28×28 的灰度圖像;CIFAR-10 數據集由10類共50 000 張訓練樣本及10 類共10 000 張測試樣本組成,樣本是大小為32×32×3 的彩色圖片;FMNIST 數據集包括10 類共60 000 張訓練樣本及10 類共10 000 張測試樣本,樣本大小是28×28的灰度圖像;ImageNet 數據集由1 000 多類共計200 多萬張樣本組成,本文隨機挑選訓練集中的10類圖片進行實驗,每類1 300 張樣本,其中70%作為訓練樣本,30%作為測試樣本.實驗中的所有圖像像素值都歸一化到[0,1].
3)深度模型:針對MNIST 數據集,分別使用AlexNet、LeNet 和自己搭建的網絡結構(M_CNN);針對FMNIST 數據集,分別使用AlexNet 和自己搭建的網絡(F_CNN);針對CIFAR-10 和Image-Net 數據集,都使用VGG19 網絡.由于MNIST 和FMNIST 數據集十分相似,實驗中M_CNN 和F_CNN 使用相同的結構,如表1 所示.深度模型的訓練參數采用Tflearn 提供的默認參數.

表1 自行搭建的網絡模型結構Table 1 The network structure built by ourselves
4)攻擊方法:為了證明生成的UIP 對于不同攻擊方法的通用性,采用了FGSM[8]、BIM[18]、MIFGSM[9]、PGD[17]、C&W[19]、L-BFGS[6]、JSMA[10]、DeepFool[20]、UAP[15]、Boundary[12]、ZOO[11]、AGAN[21]、AUNA[21]、SPNA[21]共14 種攻擊方法,攻擊調用foolbox[21]的函數,參數默認.
5)防御方法:實驗選擇了8 種防御方法作為對比算法,分別是resize[30]、rotate[30]、Distillation Defense (Distil-D)[41]、Ensemble Defense (Ens-D)[54]、Defense GAN (D-GAN)[50]、添加Gaussian 噪聲(GN)、DAE[37]和APE-GAN[52].為了使對比實驗更全面,選取的對比算法包含了重識別防御的3 類防御方法,其中resize、rotate 和GN 是基于數據預處理的防御;Distil-D 是基于網絡修正的防御;Ens-D、D-GAN、DAE 和APE-GAN 是基于附加網絡的防御.以下對參數進行具體說明,其中選定的縮放尺寸和旋轉角度參數都是經過多次修改測試,挑選出最優的參數.
a)resize1:對于MNIST 和FMNIST,首先將樣本縮小為6 × 6,再放大回28 × 28.對于CIFAR-10,首先將樣本縮小為16 × 16,再放大回32 × 32;對于ImageNet,首先將樣本縮小為128 × 128,再放大回224 × 224.
b)resize2:對于MNIST 和FMNIST,首先將樣本放大為32 × 32,再縮小回28 × 28;對于CIFAR-10,首先將樣本放大為56 × 56,再縮小回32 ×32;對于ImageNet,首先將樣本放大為512 × 512,再縮小回224 × 224.
c)rotate:對于MNIST、FMNIST、CIFAR-10和ImageNet 數據集,首先將樣本順時針旋轉45°,再逆時針旋轉45°.
d)Distil-D:對于MNIST、FMNIST 和CIFAR-10 數據集,蒸餾訓練epoch 設置為20,批尺寸為64,學習率為0.001,優化器為Adam;對于Image-Net 數據集,蒸餾訓練epoch 設置為50,批尺寸為16,學習率為0.0001,優化器為Adam.
e)Ens-D:對于MNIST、FMNIST,集成3 種模型:AlexNet、LeNet 和M_CNN;對于CIFAR-10 和ImageNet,集成3 種模型:AlexNet、VGG16和VGG19.
f)D-GAN:對于MNIST、FMNIST,訓練生成式對抗網絡的參數:epoch 設置為10,批尺寸為32,學習率為0.001,優化器為Adam;對于CIFAR-10,生成式對抗網絡的參數:epoch 設置為30,批尺寸為32,學習率為0.001,優化器為Adam;對于Image-Net,訓練生成式對抗網絡的參數:epoch 設置為50,批尺寸為16,學習率為0.001,優化器為Adam.
g)GN:在樣本上添加均值為0、方差為1 的隨機高斯噪聲,作為UIP 的對照,說明UIP 具有一定的規律.
h)DAE:對于MNIST、FMNIST,訓練編碼器和解碼器的參數:epoch 設置為10,批尺寸為64,學習率為0.001,優化器為Adam;對于CIFAR-10,訓練編碼器和解碼器的參數:epoch 設置為20,批尺寸為64,學習率為0.001,優化器為Adam;對于ImageNet,訓練編碼器和解碼器的參數:epoch 設置為50,批尺寸為32,學習率為0.001,優化器為Adam.
i)APE-GAN:對于MNIST、FMNIST,訓練生成式對抗網絡的參數:epoch 設置為20,批尺寸為32,學習率為0.001,優化器為Adam;對于CIFAR-10,訓練生成式對抗網絡的參數:epoch 設置為40,批尺寸為32,學習率為0.001,優化器為Adam;對于ImageNet,訓練生成式對抗網絡的參數:epoch 設置為50,批尺寸為16,學習率為0.001,優化器為Adam.
6)評價指標:本文采用分類準確率(Accuracy,ACC)、攻擊成功率(Attack success rate,ASR)、防御成功率(Defense success rate,DSR)和相對置信度變化(Rconf)來評價UIPD.具體為
其中,N表示待分類的良性樣本數,nright表示分類正確的良性樣本數,nadv表示攻擊成功的對抗樣本數,即成功被深度模型錯誤識別的樣本數量,表示防御后重新分類正確的對抗樣本數量.
其中,confD(ltrue)表示防御后真實類標的預測置信度,confA(ltrue)表示攻擊后真實類標的預測置信度,confA(ladv)表示攻擊后對抗類標的預測置信度,confD(ladv)表示防御后對抗類標的預測置信度.
7)實驗步驟:首先,如圖1 所示,通過良性樣本的特征空間與深度學習模型的損失進行迭代訓練,生成通用逆擾動,具體算法如算法1 所示:輸入包括良性樣本集X,分類器f(x),逆擾動步長εuip和最大epoch 數N,接著初始化通用逆擾動ρuip,利用良性樣本集的樣本特征和標簽對通用逆擾動進行迭代訓練,訓練完成后得到通用逆擾動.隨后,在不同的攻擊算法下針對深度模型分類器f(x)生成各類型的對抗樣本.最后,訓練得到的通用逆擾動添加到對抗樣本中,完成識別防御.
本文主要驗證了同一個數據集和模型的UIP在不同攻擊方法下的通用性.具體實驗結果如表2所示,實驗中采用DSR 來衡量UIPD 方法對不同攻擊的防御有效性.

表2 UIPD 針對不同攻擊方法的防御成功率(%)Table 2 The defense success rate of UIPD against different attack methods (%)
由表2 可知,在MNIST、FMNIST 和CIFAR-10 這三個小數據集上,每個模型訓練得到的UIP在不同攻擊方法下都能達到50%以上的防御成功率,大部分情況下能達到70%以上.對于Image-Net 大數據集,通用逆擾動防御在不同攻擊方法下的防御成功率也能達到30%以上.UIP 對不同攻擊方法的防御能力在小數據集上普遍優于大數據集,這是因為小數據集的圖像尺寸小,所包含的特征信息也遠小于ImageNet 大數據集中的圖像,所以訓練UIP 時更容易收斂,而且包含的非魯棒性特征更加全面,導致UIP 的防御效果更優.
除此之外,還可以觀察到,同一個UIP 雖然對不同的攻擊方法都有效果,但是防御效果在不同攻擊方法上也是有差異的.同一個UIP 在DeepFool和PGD 上的防御效果明顯優于JSMA,這是因為不同攻擊方法生成的對抗擾動的大小和約束條件不同.DeepFool 和PGD 要求擾動的L2范數盡可能小,這導致了雖然這些攻擊方法生成的對抗樣本更加隱蔽,但對抗樣本中包含的非魯棒性特征更容易被UIP 抵消,所以防御效果更好.但是JSMA 的攻擊中限制擾動的個數而不限制單個像素點的擾動大小,攻擊時一旦發現非魯棒性特征的像素點,就會改變很大的像素值去激活非魯棒性特征,所以UIP很難完全抵消被激活的非魯棒性特征,這就導致了防御效果更差一點.基于優化的攻擊通過不斷優化對抗擾動,生成擾動較小但攻擊性強的對抗樣本,因此,UIPD 在針對基于優化的攻擊上的防御效果普遍低于基于梯度的攻擊.
在式(11)的基礎上,使用最優化觀點看待UIP的防御過程,具體為
其中,ρ(·)是需要最小化的優化目標,x表示輸入,y表示樣本標簽,E(x,y)~D[·]表示平均損失,D(x,y)表示輸入和標簽所在的聯合概率分布,Δxuip表示通用逆擾動,L(·,·,·)表示損失函數.上述建模中Δxuip∈Sx,即此時擾動落在Sx范圍內都是安全的,因此將Sx稱為安全邊界.UIP 使用梯度下降的優化算法進行迭代訓練,在已訓練好的模型基礎上進一步朝著損失函數下降的方向進行UIP 的擾動優化,這一過程中能夠提取更多的樣本特征,強化良性樣本中的類相關特征,使得樣本向著類中心移動,UIP 的訓練使用的是全局樣本,即訓練集所有樣本,因此同一個全局UIP 能夠對不同類都能使用.
綜合而言,UIP 在不同攻擊方法上都有較好的防御效果.
本節主要介紹UIPD 方法在同一個模型和數據集上對所有樣本數據的通用性.表3 展示了UIPD 在M_CNN 模型上、MNIST 數據集中不同樣本的通用性(更多模型上的數據集通用性展示見附錄A).圖4 展示了MNIST 數據集中不同模型的UIP 可視化圖(更多數據集中不同模型的UIP可視化圖見附錄A).

圖4 MNIST 數據集中不同模型的 UIP 可視化圖Fig.4 The UIP visualization of MNIST dataset in different models
由表3 的前兩組數據可知,MNIST 數據集中0 到9 個良性樣本在加上同一個UIP 后,類標和置信度都沒有改變,體現了UIPD 在不損失良性樣本分類準確率上的通用性.表3 的第3 組表示分類錯誤的0~9 個對抗樣本.由第4 組可知,在加上同一個UIP 后,9 張對抗樣本都以較高的置信度重新正確分類,這體現了UIPD 在防御同一數據集中的對抗樣本的通用性.
圖4中的UIP 可視化圖由python 中的matplotlib 庫里面的pyplot 以rainbow 的涂色形式繪制,像素值歸一化到[0,1].由圖4 可知,同一數據集下的不同模型的UIP 都不相同,但是UIP 的均值和方差都很小,所以圖像加上UIP 后的效果不影響人的視覺感受.由式(5)和式(6)可知,UIP 通過對樣本進行更新生成的過程是對抗樣本生成的逆過程,對抗樣本與UIP 的生成過程都是通過樣本反饋到損失函數,進而完成對模型預測輸出的影響,不同之處在于,對抗樣本生成擾動的方向是損失函數增大的方向,而UIP 生成擾動的方向是損失函數減小的方向,因此,UIP 不僅不會對模型的預測準確率產生不良影響,反而能夠對模型分類精度有一定提升作用.由算法1 可知,在UIP 的迭代過程中,輸入深度模型分類器f(x)是已經訓練完成的收斂模型,因此UIP 在較小的逆擾動步長εuip下,最終生成的UIP 的擾動大小在較小范圍內就能夠使模型達到收斂.
在本節中,本文主要比較了UIPD 與其他防御方法針對不同模型、不同數據集,采用不同攻擊方法生成的對抗樣本的防御效果.具體實驗結果如表4 和表5 所示,其中表4 是不同防御方法針對基于梯度的各種攻擊方法的防御效果,表5 是不同防御方法針對基于優化的各種攻擊方法的防御效果.本文用DSR 和Rconf 來衡量不同防御方法之間的防御有效性.表4 和表5 中的DSR 均是兩類攻擊方法中不同攻擊的平均防御成功率.

表4 不同防御方法針對基于梯度的攻擊的防御效果比較Table 4 The performance comparison of different defense methods against gradient-based attacks

表5 不同防御方法針對基于優化的攻擊的防御效果比較Table 5 The performance comparison of different defense methods against optimization-based attacks
首先,本文比較表4 和表5 中不同防御方法在不同模型和不同數據集下的DSR.在任意模型和數據集中,UIPD 的DSR 均高于圖像縮放、圖像旋轉、基于GAN 的防御、基于自編碼器的防御、高斯噪聲、蒸餾防御和集成防御,本文提出的UIPD 不需要依賴大量的對抗樣本,也不改變模型的結構和訓練量,與這些同樣不依賴對抗樣本的對比算法相比,本文提出的UIPD 防御效果是最好的.圖像縮放和圖像旋轉這些簡單的預處理操作也能對攻擊起到較好的防御效果,這間接說明了造成對抗攻擊的非魯棒性特征的脆弱性,激活效果能夠被UIP 所抵消,說明了UIPD 方法的防御可行性.添加高斯隨機噪聲起到的防御效果微乎其微,這體現了用訓練的方法獲得UIP 的必要性.此外,小數據集的ASR 和DSR均高于大規模的數據集,這是由于大規模數據集圖像所包含的特征信息遠多于小數據集中的特征信息.
其次,本文比較表4 和表5 中不同防御方法在不同模型和不同數據集中的Rconf 指標.在任意模型數據集下,UIPD 的Rconf 均高于圖像縮放、圖像旋轉、蒸餾防御、基于GAN 的防御、基于自編碼器的防御、高斯噪聲和集成防御.置信度變化越大,表示防御后的對抗樣本越魯棒,體現了防御的可靠性.不同防御方法在不同模型數據集下的置信度變化與防御成功率保持高度的一致,這顯示了UIPD在防御成功率和防御可靠性上都有很好的表現.由表4 和表5 可知集成防御的防御效果也優于其他防御,但是集成防御需要訓練多個模型,訓練代價更大,所以相較之下,UIPD 方法是一個更好的防御選擇.
本節主要分析UIPD 與其他防御方法對良性樣本識別的準確率的影響.具體實驗結果如表6 所示,本文統計了不同數據集中的良性樣本在不同防御方法下的分類準確率(ACC).

表6 不同防御方法處理后良性樣本的識別準確率 (%)Table 6 The accuracy of benign examples after processing by different defense methods (%)
由表6 可知,不同數據集的良性樣本在UIPD防御和集成防御后分類準確率有了略微的上升,但在其他防御方法防御后都有了一定程度的下降.為了抵抗對抗攻擊,各種高性能的防御方法相繼提出,但是防御方法在提供防御有效性的同時,會犧牲一定程度的良性樣本分類精度.然而UIPD 防御后不僅沒有損失良性樣本的分類性能,反而有略微的改善效果,這得益于UIPD 在訓練時用良性樣本作為訓練數據集,進一步的訓練提升了原有的分類精度.集成防御雖然同樣能夠提高分類準確率,但是需要訓練多個模型,增大了訓練成本.
在本節中,主要對UIPD 方法迭代步長的敏感性和時間復雜度進行分析.
圖5展示了迭代步長敏感性實驗結果,橫坐標表示訓練UIPD 的迭代步長,縱坐標表示UIPD 的防御成功率.實驗使用MNIST 數據集,目標模型是AlexNet.本文選擇BIM、PGD、C&W、L-BFGS 和DeepFool 五種方法進行敏感性實驗.從實驗的結果可以看出,當生成UIP 的迭代步長變化時,UIPD 對于各攻擊方法的防御成功率變化幅度都在0.3%以內.實驗結果表明,UIPD 是一種穩定的迭代訓練方法,當訓練UIPD 的迭代步長產生變化,并不會影響最后UIPD 的防御效果.所以,UIPD是一種穩健的防御方法,具有一定的魯棒性.

圖5 參數敏感性實驗結果圖Fig.5 The results of Parameter sensitivity experiment
圖6展示了不同防御方法實施1 000 次防御的測試階段時間消耗對比,數據集是MNIST,采用的模型結構是LeNet.由圖6 可知,UIPD 所消耗的時間少于或十分接近其他的防御方法,可知UIPD 屬于時間復雜度低、防御速度快的一種對抗防御方法.

圖6 不同防御方法實施1 000 次防御的時間消耗Fig.6 The time cost in 1 000 defenses of different defense methods
在本節中,主要對UIPD 方法在基于對抗補丁的攻擊下的防御進行分析.
圖7是針對基于補丁的攻擊的防御結果,攻擊方法是Adversarial-Patch (AP)[26]攻擊,在AP 攻擊后,樣本識別準確率大幅度下降,可見基于補丁的對抗攻擊是一種強大的攻擊方法.UIPD 方法對于基于補丁的攻擊有著一定的防御效果,但是相比于基于擾動的防御效果而言,性能略差.這是由于基于擾動的對抗攻擊生成的擾動是肉眼不可見的,而基于補丁的攻擊添加的擾動是肉眼可見的局部大范圍補丁,兩者在擾動的量級上是存在明顯差異的.

圖7 UIPD 對AP 攻擊的防御實驗結果Fig.7 The results of UIPD against AP attacks
本文提出了一種基于通用逆擾動的對抗樣本防御方法,對數據樣本、攻擊方法都具有通用性.在訓練生成UIP 的過程中,只需要使用良性樣本,不需要任何關于對抗樣本的先驗知識,即不依賴于對抗樣本;UIP 會強化樣本的類相關特征,因此不會影響良性樣本的識別,甚至能夠在一定范圍內提升良性樣本識別精度;UIP 的生成涉及到迭代步長的設置,實驗發現在一定范圍內,不同的迭代步長對UIP 的防御效果幾乎沒有影響,說明參數敏感性低;在測試過程中,只需要單個UIP 疊加在任意待測試的樣本上,就能實現防御,只需增加一個矩陣的“+”運算操作,大大加快了防御速度.因此,UIPD 方法防御對抗攻擊是可行且高效的.
此外,研究中也發現UIPD 方法存在針對基于對抗補丁的攻擊防御效果較差的問題,這是由于基于對抗補丁的攻擊生成的是局部大范圍的擾動,UIP 無法完全抵消由對抗補丁帶來的擾動干擾,如何提升UIP 對基于補丁的對抗攻擊的防御效果,是需要在后續工作中繼續研究的.同時,研究中還發現UIPD 方法雖然在數據樣本上有較好的通用性,但在模型間通用性不佳,這是算法采用迭代優化造成的,使得對模型具有較好的魯棒性,但是模型間泛化能力較差.因此,在未來的研究中,將繼續研究基于生成式對抗網絡的通用逆擾動生成方法,改善在模型間的通用性與泛化能力.
附錄A UIPD 不同數據樣本的通用性舉例和可視化
UIPD 方法在不同數據集上針對不同數據樣本的通用性比較參見表A1~A3.在不同數據集上,不同模型的UIP 可視化圖見圖A1.

圖A1 不同數據集和模型的UIP 可視化圖Fig.A1 The UIP visualization of different datasets and models

表A1 UIPD 針對不同數據樣本的通用性(FMNIST,F_CNN)Table A1 The universality of UIPD for different examples (FMNIST,F_CNN)