王家



摘要:神經網絡在分類問題中表現出色。但最近研究表明,如果在原有輸入數據上疊加一個很小的噪聲,分類的效果就會受到嚴重干擾。本文主要研究基于FGS算法,針對圖像分類問題生成對抗樣本的原理與方法,該方法測試數據集上的測試表明,加入噪點后的任意圖片所生成的對抗樣本,能以99%以上的置信度被識別為我們指定的類別。
關鍵詞:圖像分類;對抗樣本;深度學習
中圖分類號:TP18? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)28-0222-02
1 引言
近幾年,人工智能的發展特別是神經網絡技術的突飛猛進,使用神經網絡來解決分類問題也越加成熟。使用神經網絡的來解決分類在很多生產生活場景中會被使用到,如自動駕駛汽車,人臉識別驗證。但是隨著研究的深入發現在已有的數據中故意加入細微的干擾,就可以讓一個本來分類正確率很高的神經網絡模型出現錯誤的分類。
因此,如何有效地對神經網絡系統的安全性做檢測和驗證成了重要的研究課題[1]。此前,研究人員已經發現,同過現有的技術無法在關鍵應用中相信神經網絡,直到能夠理解為什么會發生上述問題或如何解決它。想象一下在手機登錄驗證中使用的人臉識別技術被用戶被人照片騙過的情況,都是由于其神經網絡誤分類了輸入圖像而造成的。
2 神經網絡與對抗樣本
神經網絡又被稱為人工神經網絡是由大量處理單元互聯組成的非線性、自適應信息處理系統。它是在現代神經科學研究成果的基礎上提出的,試圖通過模擬大腦神經網絡處理、記憶信息的方式進行信息處理。
對抗樣本(Adversarial Examples)是指在數據集中通過故意添加細微的干擾所形成輸入樣本,受干擾之后的輸入數據將導致模型以高置信度給出了一個錯誤的輸出。本文主要研究針對圖像分類問題如何生成干擾樣本,從而能夠讓圖像分類問題出現錯誤的分類結果。
常見的威脅模型分為3類:白盒模型,黑盒模型,和轉移模型。白盒模型中,攻擊者可以利用網絡結構和參數的所有知識產生攻擊;黑盒模型中,攻擊者可以利用對模型的詢問得到輸入輸出對,但無法獲知模型內部信息;轉移模型中,攻擊者不能向模型發起查詢請求,對模型內部信息也不知情,但了解模型所要解決的具體問題是什么。
3 設計概覽
3.1 圖像分類模型
在研究對抗樣本之前,我們需要確定作為圖像分類神經網絡。因為現在有各種不同的神經網絡模型都能夠解決分類的問題,同時也有根據不同的訓練集作為訓練神經網絡參數的數據。
本文選擇了Inception v3模型作為神經網絡模型,同時基于大型圖像數據庫ImageNet中的數據對模型進行訓練。Inception v3模型大約有2500萬個參數,分類一張圖像就用了50億的乘加指令。在一臺沒有GPU的現代PC上,分類一張圖像轉眼就能完成。
Inception模型的輸出是softmax函數, softmax輸出有時也稱為概率分布(probabilities),因為它介于0到1之間,所有結果的概率相加為一,與概率分布相同。但它們并不是傳統語義上的概率分布,因為并不是由重復試驗得來。
使用Inception對已知的圖片進行分類,下圖為輸入的猴子的圖片和分類的結果。
在上面的分類中, Inception模型將我們給出的猴子的圖片,在獼猴類型上給出了很高的分數—85.33%,葉猴的評分為2.07%,可以從結果看出Inception圖像分類模型,在圖像分類問題上有很不錯的表現。
3.2? 算法描述
本文將使用FGS方法來生成針對神經網絡圖像分類的對抗樣本。FGS快速梯度符號方法是生成對抗樣本的方法之一[2]。其核心是讓輸入圖像 x∈Rm朝著類別置信度降低的方向移動,令x∈Rm是輸入圖像,y 是輸入 x 對應的類標簽,η是模型參數,ε是步長,J(θ, x,y) 是所選的超參數, ?Jx(θ, x,y)是訓練神經網絡的損失函數, θ是損失函數的偏導數。我們可以在當前值θ附近對損失函數線性化得到干擾的最大范數限制:
4 實驗方法與評測
4.1 實驗的目標
實驗的目標是研究如何針對神經網絡結構的圖像分類器尋找對抗樣本的方法。研究預先設置了圖片的一個錯誤分類結果,對抗樣本會使神經網絡誤分類任何輸入圖像為預設的錯誤分類結果。
4.2 實驗的方法
通過簡向輸入圖像添加小部分“特定”噪聲圖片的方式。人類在觀察對抗樣本圖片時不會覺察到這些變化,但它卻能騙過Inception模型神經網絡,讓Inception模型給出的分類是錯誤的類別。
首先使用Inception模型圖片分類網絡,然后修改 Inception模型的結構,來尋找可以引起Inception模型誤分類輸入圖像的對抗樣本。在下面的流程圖中,我們在“猴子”的圖像上添加了一些噪聲,然后作為Inception模型的輸入。最終目標是找到使Inception模型將圖像誤分類成我們目標類型的噪聲,我們選擇將猴子的圖片錯誤的分類為書柜類型(分類號300)。
它是Inception模型分類噪聲圖像的性能度量。由于Inception模型是由很多相結合的基本數學運算構造的,使用微分鏈式法則,TensorFlow讓我們很快就能找到損失函數的梯度。
第三步,使用損失函數關于輸入圖像的梯度,來尋找對抗噪聲。要尋找的是那些可以增加'書柜'類別而不是輸入圖像原始類別的評分(即概率)的噪聲。這本質上是用梯度下降法來執行優化的。
新的損失函數找出了要添加到輸入圖像上的噪聲,這樣(輸入圖像)就會被分類到想要的目標型。這個函數本質上是用梯度下降來執行優化。噪聲被初始化為零,然后用損失函數關于輸入噪聲圖像的梯度來逐步優化,這樣,每次迭代噪聲都使分類更接近于想要的目標類型。當分類評分達到要求(比如99%)或者執行了最大迭代次數時,就停止優化。
最后,函數對輸入做歸一化,則輸入值在0.0到1.0之間,這樣才能正確地顯示出噪聲。它先找到對抗噪聲,然后畫出圖像和噪聲。這個例子將一張猴子的圖作為輸入,然后找到對抗噪聲,使得Inception模型將圖像誤分類成一個書架(類別號300)。
噪聲界限設為3.0,這表示只允許每個像素顏色在3.0范圍內波動。像素顏色在0到255之間,因此3.0的浮動對應大約1.2%的可能范圍。這樣的少量噪聲對人眼是不可見的,因此噪聲圖像和原始圖像看起來基本一致,如下所示。要求評分設為0.99,這表示當目標分類的評分大于等于0.99時,用來尋找對抗噪聲的優化器就會停止,這樣Inception模型幾乎確定了噪聲圖像展示的是期望的目標類別。
4.3實驗的結果
如上所示,獼猴的原始圖像與噪聲圖像看起來幾乎一致。人眼無法區分開兩張圖像。原始圖被Inception模型正確地分類成獼猴,評分為85.33%。但噪聲圖像對獼猴的分類評分是0.00%,對書架的評分是99.66%。
這樣,我們糊弄了Inception模型,讓它相信一張猴子的圖像展示的是一個書架。只是添加了一些“特定的”噪聲就導致了這個誤分類。注意,上面展示的噪聲是被放大數倍的。實際上,噪聲只在輸入圖像每個像素顏色強度的最多1.2%范圍內調整圖像(假定噪聲界限像上面的函數一樣設置為3.0)。由于噪聲很弱,人類觀察不到,但它導致Inception模型完全誤分類的輸入圖像。
5 結束語
文中實現了一種基于白盒模型的深度神經網絡對抗樣本的生成方法。文中所提出的方法利用對損失函數的梯度下降的優化方法,成功的生成高質量對抗樣本。
參考文獻:
[1] 孟東宇.黑盒威脅模型下深度學習對抗樣本的生成[J].電子設計工程,2018,26(24):164-167,173.
[2] 張思思,左信,劉建偉.深度學習中的對抗樣本問題[J].計算機學報,2018(8):1-20.
【通聯編輯:唐一東】