范宇豪 張銘凱 夏仕冰



摘 ? 要:深度神經網絡(DNN)在預測過程中會受到對抗攻擊而輸出錯誤的結果,因此研究具有防御能力的新型深度學習算法, 對于提高神經網絡的魯棒性和安全性有重要的價值。文章主要研究應對對抗樣本攻擊的被動防御方法,提出基于插值法的對抗攻擊防御算法(Interpolation Defense Algorithm,IDA),實驗結果表明,本算法可以提高神經網絡對于對抗樣本的識別率。
關鍵詞:對抗樣本;防御算法;插值算法;機器學習
中圖分類號: TP309 ? ? ? ? ?文獻標識碼:A
Abstract: The deep neural network (DNN) will output wrong results in the process of prediction due to the adversarial attack. Therefore, it is of great value to study a new deep learning algorithm with defense capability to improve the robustness and security of the neural network. This paper mainly studies the passive defense method against adversarial attack, and proposes the Interpolation defense algorithm (hereinafter referred to as IDA) based on the Interpolation method. Experimental results show that the algorithm can improve the recognition rate of neural network against adversarial examples.
Key words: counter sample; defense algorithm; interpolation algorithm; machine learning
1 引言
近年來,深度學習在圖像識別領域發展迅速,神經網絡對一些特定數據集的識別能力已經超過了人類的水平,并且深度學習的快速學習能力可以給大數據領域的研究提供幫助。然而,近期研究表明,深度學習給人們生活帶來方便的同時也存在一定的安全問題。對抗樣本(Adversarial Examples)概念是Szegedy[1]等人在2014年首次提出,這一問題在神經網絡內部普遍存在。例如,在人臉識別系統中,通過有目標的攻擊來偽造面部信息,攻擊者能夠騙過識別系統,進行非法身份認證。在自動駕駛領域,如果交通指示牌被人為惡意篡改,會導致汽車的識別系統做出錯誤的判斷從而造成交通事故。因此,如何提高深度神經網絡的安全性成為我們迫切需要解決的問題。
面對毫無準備措施的神經網絡,對抗樣本的攻擊效果顯著,Szegedy[1]等人的文章表明只需要對樣本進行細微的調整就導致模型以高置信度給出一個錯誤的輸出,并且這種變化通常是像素級別,人工無法檢查出這種差別,使得對抗攻擊可以在人類不知不覺中完成。對抗樣本的出現證明現有的深度學習模型具有脆弱性,同時讓人們反思深度學習是否真正地學習到了深層次的信息。所以研究更加強大的防御方法是人工智能未來的重要發展方向。
2 相關工作
基于防御策略的不同, 目前對抗樣本的防御方法主要分為兩種[11]:
(1)被動防御:在已有的深度神經網絡的基礎上檢驗對抗樣本(IDA屬于此類);
(2)主動防御:通過提高深度神經網絡的魯棒性和健壯性,消除對抗樣本對神經網絡的判別結果的影響。本節中我們主要討論幾種主動防御策略。
2.1 網絡蒸餾
網絡蒸餾[2,3]最初是一種將知識從大型網絡轉移到小型網絡以減小深層神經網絡規模的方法。后來,Papernot等人[4]提出了一種運用網絡蒸餾從深度神經網絡中提取知識以提高神經網絡的魯棒性從而防御對抗性樣本的思路。他們發現對抗攻擊主要針對網絡敏感度,并且證明使用高溫Softmax可以有效地降低模型對微小擾動的敏感度。Papernot對網絡蒸餾防御進行了測試,成功將JSMA攻擊在MNIST和CIFAR-10數據集上的成功率分別降低到0.5%和5%。此外,網絡蒸餾還可以提高神經網絡的泛化能力。
2.2 對抗訓練
對抗訓練將對抗樣本混合到原樣本中作為深度神經網絡的訓練數據,這是提高神經網絡泛化能力的方法之一。文獻[5,6]的作者嘗試在訓練階段的每一輪訓練中都生成一定量的對抗樣本,并將其混入訓練集中進行訓練。實驗結果表明對抗訓練可以提高深度神經網絡的魯棒性,可以為深度神經網絡提供規則化[5],同時也可以提高神經網絡的精度[7]。
2.3 分類器魯棒
文獻[7,8]的作者都設計了一種魯棒性強的深度神經網絡架構用來防御對抗樣本。基于對抗樣本的不確定性,Bradshaw等人[8]采用貝葉斯分類器來構造健壯的神經網絡,用具有RBF核的高斯過程(GPs)來提供不確定性估計,并將所提出的神經網絡命名為高斯過程混合深度神經網絡(GPDNN)。實驗結果表明,GPDNN的性能與普通DNN相當,并且具有更強的防御對抗樣本的能力。文獻[9]的作者觀察到深度神經網絡通常會將對抗樣本判別為一小部分不正確的類別,作者通過將這部分不正確的類別劃分為子類別,并將所有子類別的結果匯總,有效防止對抗樣本被誤分類。
3 基于插值法的對抗攻擊防御算法
對抗樣本的原理是通過給原樣本添加噪聲使神經網絡受到干擾,因為人眼仍可以正常識別出對抗樣本的內容,所以對抗樣本內的有效信息仍然是保留的,因此我們只要把對抗樣本的深層次信息挖掘出來就可以做到正確識別對抗樣本。
在圖像處理領域中,插值算法可以在圖片縮小和放大過程中較好地保留圖片信息,本文根據插值算法這一特性提出了對樣本預先處理的算法。因為在神經網絡未受攻擊時對圖片進行插值操作會損失圖片內部的信息,致使樣本識別率下降,所以在神經網絡識別效率很低時,才對輸入的樣本進行插值縮小再插值還原,如果神經網絡識別效率較高則保持神經網絡的輸出。通過比較不同插值法在圖片處理中的表現,本文在縮小時使用基于像素區域算法,在恢復原尺寸時使用立方卷積插值算法,能夠更好地提高處理后圖片的識別準確率。
算法:基于插值法的對抗攻擊防御算法(IDA)
(1)輸入:X,model,Y;
(2)輸出:model.predict;
(3) if model.evaluate(X,Y)>90%;
(4)返回model(X);
(5) else;
(6)基于像素區域插值算法對X進行縮小,生成img;
(7)立方卷積插值算法對img放大至輸入尺寸,生成Xresize;
(8)返回model(Xresize)。
算法解釋:
(1)X為輸入的樣本圖像,Y為樣本的真實類別標簽,model為未加IDA的神經網絡模型;
(2)model.predict為識別模型對于樣本的識別率;
(3)當神經網絡識別準確率在90%以上時說明未受到對抗攻擊,執行第(4)步;
(4)返回神經網絡模型識別原始圖片的預測值;
(5)當神經網絡識別準確率在90%以下時說明模型有可能受到對抗攻擊,執行第(6)步;
(6)基于像素區域插值算法對樣本進行插值縮放,生成img;
(7)立方卷積插值算法將上一步生成的img還原到原尺寸,生成Xresize;
(8)返回神經網絡識別經過處理后的圖片(Xresize)的預測值。
4 實驗結果與分析
4.1 生成對抗樣本
Captcha是基于Python語言的驗證碼生成庫,它可以生成任意長度的數字和字符類驗證碼,本文采用此函數庫來批量生成字母驗證碼用于深度學習模型的訓練以及對抗樣本的生成。參照現有圖片分類任務中經典的深度學習模型VGG16,本文采用Captcha生成的20000張單通道4位字母驗證碼(大小寫相同)訓練帶有八層卷積層的卷積神經網絡(CNN)50輪。參照張嘉楠等人的文獻[12],本文使用FGSM[9]、Bim-a[10]、Bim-b[10]對抗攻擊算法生成驗證碼的對抗樣本。
4.2 評價指標
在本實驗中,評價樣本的指標用神經網絡識別率表示,識別率為樣本真實類別的神經網絡置信度,樣本的神經網絡識別率越高表示算法更不易受到攻擊。
4.3 驗證碼防御算法展示
在圖像縮小時本文選擇基于像素區域插值算法,在恢復原尺寸時采用立方卷積插值算法,用卷積神經網絡對100張對抗樣本經過不同縮放倍數的IDA處理后得到的圖片進行識別,無IDA算法處理的原始圖片和無IDA算法處理的對抗樣本識別作為對照,如圖1所示。
圖1的實驗中,0.9-IDA指寬和高的縮放倍數均為0.9的IDA算法,FGSM指Fast Gradient Sign Method方法對抗攻擊神經網絡生成的對抗樣本。實驗數據表明,對抗攻擊使得卷積神經網絡的識別準確率從97.69%下降到4.82%,攻擊效果明顯。在采用插值算法對對抗樣本進行處理后,神經網絡的識別準確率得到了大幅度提高,并且在縮放倍數0.8到0.7的時候得到了最好的表現,分別是82.28%和81.09%。
圖2的實驗中,對抗樣本由FGSM攻擊生成。實驗結果表明,75.5%的情況下IDA可將對抗樣本識別率提升到95%之上,如圖2中的FGSM攻擊產生的對抗樣本通過IDA方法處理后,神經網絡的識別率從0.47% 提高到99.99%,并且IDA處理后的驗證碼可以被人眼識別。
圖3的實驗中FGSM、Bim-a、Bim-b分別指Fast Gradient Sign Method、Basic Iterative Method-a和Basic Iterative Method-b對抗攻擊方法生成的對抗樣本,寬度縮小倍數是0.6,高度縮小倍數是0.8(經過測試這個比例效果較好),無IDA算法處理的原始圖片和無IDA算法處理的三種對抗樣本識別率作為對照。實驗結果表明FGSM、BIM-a、BIM-b這三種白盒攻擊生成的對抗樣本在IDA操作之后的神經網絡識別率都有提升。
5 結束語
插值法以往主要用于減少圖像縮放過程中造成的失真,基于以上特性本文提出了基于插值法的對抗攻擊防御算法(IDA),實驗證明IDA能夠提高神經網絡對對抗樣本的識別率,從不到5%提升到了80%,在特定情況下識別率不到1%提升到了99.99%,并且驗證了該算法面對FGSM、BIM-a、BIM-b三種攻擊均具有防御效果,證明IDA有助于提高深度學習的安全性。相較于蒸餾學習等主動防御模型,被動防御的IDA計算復雜度較低,訓練時間較少,同時無須修改已有網絡就可達到防御對抗攻擊的目的,具有應用價值。
參考文獻
[1] Szegedy, Christian, et al. Intriguing properties of neural networks. ICLR, abs/1312.6199, 2014b.
[2] Ba L J, Caruana R. Do Deep Nets Really Need to be Deep?[J]. 2013.
[3] Hinton G, Vinyals O, Dean J. Distilling the Knowledge in a Neural Network[J]. Computer Science, 2015.
[4] Papernot N , Mcdaniel P , Wu X , et al. Distillation as a Defense to Adversarial Perturbations against Deep Neural Networks[J]. 2015.
[5] Goodfellow, Ian J, Shlens, Jonathon, Szegedy, Christian. Explaining and Harnessing Adversarial Examples[J]. Computer Science, 2014.
[6] Huang R, Xu B, Schuurmans D, et al. Learning with a Strong Adversary[J]. Computer Science, 2015.
[7] Wu Y, Bamman D, Russell S. Adversarial Training for Relation Extraction[C]. Conference on Empirical Methods in Natural Language Processing. 2017.
[8] Bradshaw J, Matthews, Ghahramani Z. Adversarial Examples, Uncertainty, and Transfer Testing Robustness in Gaussian Process Hybrid Deep Networks[J]. 2017.
[9] M. Abbasi, C. Gagné. Robustness to adversarial examples through an ensemble of specialists. In Proc. ICLRW, 2017.
[10] Kurakin, A, Goodfellow, I.J., and Bengio, S. Adversarial examples in the physical world. International Conference on Learning Representations, 2017.
[11] 張嘉楠,趙鎮東,宣晶,常曉林.深度學習對抗樣本的防御方法綜述[J].網絡空間安全, 2019, 10(8): 1.
[12] 張嘉楠,王逸翔,劉博,常曉林.深度學習的對抗攻擊方法綜述[J].網絡空間安全, 2019, 10(7): 1.