李紫珊
摘 要:隨著神經網絡的運用日益廣泛,安全問題越來越受重視。對抗樣本的出現更是使得攻擊神經網絡變得輕而易舉,該文以神經網絡的安全性問題為出發點,介紹了對抗樣本的概念和形成原因,總結了生成對抗樣本的常用算法,以及防御對抗樣本的常用方法,最后提出了下一步保障神經網絡安全性的發力點應該從測試轉向安全驗證。
關鍵詞:安全性;神經網絡;對抗樣本;攻擊與防御;安全驗證
中圖分類號:TP18? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2019)03-0186-02
Abstract:With the wide application of neural network, safety problem is paid more and more attention. Its easy to attack the neural network after the emergence of adversarial examples. This paper based on security problems as a starting point, introduces the concept and formation of adversarial examples, summarizes the commonly used algorithms of generating adversarial examples and the common methods of defense. Finally, this paper puts forward that the next step to ensure the safety of neural network should be safety verification.
Key words:safety; neural network; adversarial examples; attack and defense; safety verification
1 引言
近年來,人工智能迎來發展高峰,機器學習作為人工智能的核心技術之一,已經被廣泛應用于各個領域,例如:垃圾郵件檢測、人臉識別、自動駕駛等。毫無疑問,機器學習技術給人們的生活帶來了便利,但同時也暴露了不少安全性問題,其中,引起較多關注的是對抗樣本問題。
2 對抗樣本
2.1 什么是對抗樣本
對抗樣本常見于深度神經網絡中,其概念最早是Szegedy等人提出來的,它指的是:在輸入的圖片數據上對像素點的值做微小的改動,改動后的新圖片人眼依然能分辨,但神經網絡卻會以非常高的置信度將其錯誤分類,此時造成誤分類的改動圖片就是一個對抗樣本[1]。
如圖1所示,一張雪山的圖片,本來神經網絡能夠以94.56%的置信度分類為雪山,但加了對抗性噪聲之后形成的新圖片,神經網絡會以99.99%的置信度將其錯誤地分類為狗。
2.2 為什么會存在對抗樣本
觀點1:數據采樣不均
Szegedy認為可能是由于實驗數據集采樣不均,類似對抗樣本的數據在實驗數據集中出現概率太低[1],以至于模型在訓練過程中沒有充分學習,在測試過程中也沒有發現這一弱點,直到攻擊者采用精心構造的數據來攻擊時,神經網絡才頻頻出錯,暴露出潛在的弱點。這也可以解釋為什么不同模型會對同一對抗樣本表現出脆弱性,因為問題的根源不在模型結構而在實驗數據。
總之,對抗樣本的形成原因現在還沒有一個公認的定論,不過可以肯定的是,對抗樣本確實會給深度神經網絡帶來很大的安全威脅,因此進一步研究對抗樣本的生成和防御方法是很有必要的。
3 生成對抗樣本的方法
自從對抗樣本的概念被提出后,越來越多的研究者開始關注這個領域,發展到現在已經有十幾種基于對抗樣本的攻擊算法出現,下面介紹其中兩種攻擊算法。
3.1 L-BFGS
3.2 FGSM
相對于其他攻擊方式,FGSM只需要進行一次梯度計算就能生成對抗樣本,具有計算量更小、更快的特點,是目前最常用的一種方法;但它只對線性函數有用,當激勵函數不是線性的,FGSM就不再適用。
4 防御對抗樣本的方法
對抗樣本的防御主要有兩個大方向,一是改變模型,調整結構和參數;二是不改變模型,預先清洗對抗樣本。下面針對這兩種思路各介紹一種防御方法。
4.1 防御性蒸餾
蒸餾方法最初是一種用來訓練神經網絡的方法,主要用于將大型網絡學習到的知識提取出來,遷移到小型網絡中,使小型網絡具有相似的分類能力。后來Papernot等人在此基礎上進一步發展出了防御性蒸餾[4],其主要思想是:先按照正常方式訓練網絡,然后用第一個網絡學到的概率向量來訓練另外一個相同架構的新網絡。實驗證明,這種以概率分布作為訓練目標的方法可以在一定程度上提高模型的泛化能力,減輕網絡面對對抗樣本時的脆弱性。
4.2 數據清洗
數據清洗的主要思想是:既然對抗樣本對于神經網絡來說是危險的,那么干脆不讓對抗樣本有機會進入神經網絡,在預處理中就將對抗樣本從數據集中剔除。Jiajun等人就是基于這種思想提出了SafetyNet[5],它由一個分類神經網絡和一個檢測器組成,所有數據樣本在進入神經網絡進行分類之前,會先進入檢測器進行檢測,如果檢測器判斷這是一個對抗樣本,那么就將其剔除,這樣神經網絡始終只處理無干擾的數據,不用擔心對抗樣本的攻擊,給出的分類結果就是可信的。
5 安全驗證系統
針對神經網絡的安全性問題,上述列舉了兩種攻擊方式和兩種防御方式,在采用了防御措施之后,神經網絡的安全性有一定提高,但要保證系統絕對安全可靠,還需要引入安全驗證系統。目前的機器學習系統大多只是采用了測試的方式來評估系統,很少加入驗證方式,但有的系統對于安全性有較高要求,此時安全驗證必不可缺。現在關于神經網絡安全驗證的研究也有一些初步成果,如:Katz基于線性規劃求解器提出了一個驗證系統Reluplex[6],如果驗證通過,說明神經網絡是安全可靠的,如果驗證不通過,則會給出一個反例,這個反例也可以看作是對抗樣本。
總的來說,目前已有的神經網絡驗證系統都有一定的使用范圍和限制,并不是通用的,后續還需要不斷研究和完善。
6 結束語
本文簡要介紹了對抗樣本的概念,列舉了兩種對抗樣本的形成原因猜想,不過由于深度神經網絡的黑盒性,這個問題目前還沒有定論。本文還介紹了幾種對抗樣本的生成算法和防御方法。這一塊是目前安全領域發展最火熱的,有的生成算法剛提出不久就被防御方法打敗,而有的防御方法提出后也很快被新的攻擊方式攻破,雙方你來我往,不斷進步,相信未來會有更完善的安全防御機制出現。最后,本文認為除了要關注對抗樣本的攻擊與防御方法,未來更要關注的是安全驗證方法。
參考文獻:
[1] Szegedy C. Intriguing properties of neural networks[J]. Computer Science, 2013.
[2] http://tech.ifeng.com/a/20171209/44797474_0.shtml [EB/OL].
[3] Goodfellow I J. Explaining and harnessing adversarial examples[C]. ICML, 2015:1-10.
[4] Papernot N. Distillation as a Defense to Adversarial Perturbations Against Deep Neural Networks[C]. IEEE, 2016:582-597.
[5] Lu J. SafetyNet:Detecting and Rejecting Adversarial Examples Robustly[C]. IEEE, 2017:446-454.
[6] Katz G. Reluplex: An Efficient SMT Solver for Verifying Deep Neural Networks[J]. CAV, 2017:97-117.
【通聯編輯:唐一東】