◆王坤 毛力通訊作者 王可 吳萌 王燕妮
(西安建筑科技大學信息與控制工程學院 陜西 710055)
隨著神經網絡模型的大量應用,最近大量研究表明神經網絡模型依然存在安全隱患。神經網絡模型的輸入形式是一種數值型向量[1],所以攻擊者就會通過設計一種有針對性的數值型向量從而讓機器學習模型做出誤判,這被稱為對抗性攻擊。通常采用對輸入添加微小的擾動,便可以使得分類器分類錯誤,應用場景包括目前大熱的計算機視覺[2]和自然語言處理方向。對抗性攻擊主要發生在構造對抗性數據的時候,之后該對抗性數據就如正常數據一樣輸入機器學習模型并得到欺騙的識別結果。在構造對抗性數據的過程中,根據攻擊者掌握機器學習模型信息的多少,可以分為黑盒攻擊[3]和“白盒攻擊”[3]。黑盒攻擊,攻擊者對攻擊的模型的內部結構,訓練參數,防御方法等一無所知,只能通過輸入輸出與模型進行交互。“白盒攻擊”與黑盒模型相反,攻擊者對模型一切都可以掌握,攻擊者能夠獲知機器學習所使用的算法,以及算法所使用的參數,并且攻擊者在產生對抗性攻擊數據的過程中能夠與機器學習的系統有所交互。
2018年Jiawei Su、Danilo Vasconcellos Vargas和Kouichi Sakurai三人共同提出的單像素攻擊算法[4]。相較于傳統改變整個輸入圖像而控制盡可能小擾動的黑盒攻擊算法,單像素攻擊算法則是控制擾動像素的個數,對于修改幅度不作要求,從而實現使用少量像素點實現高維攻擊。這類攻擊方法可以使用非常低維的切片,切割輸入空間,因此這是探索深度神經網絡輸入空間特征的新方法,目前該方法已引起大量研究者的關注。
本文將主要基于單像素攻擊算法,討論典型卷積神經網絡(CNN)模型的“黑盒”條件下的對抗性攻擊與防御方法。
單像素攻擊的基本思想,通過修改原始數據上盡可能少的像素個數的值,從而讓模型產生分類錯誤分類。為方便表述,定義圖像為I,CNN分類模型為c(x),干擾因子集合為P,集合中每個元素包含一個五元組,包括干擾像素的位置和色彩信息,其數學描述如式(1)所示。

式中xi,yi代表像素的位置,ri,gi,bi代表圖像紅色,綠色,藍色通道的取值,i代表編號式中m為改變最大像素個數。定義擾動函數perturb(P,I)如式(2)所示。

將原圖像I中指定位置xi,yi處的像素點的數據改為ri,gi,bi,即完成了對原始圖像I的擾動。
基于單像素攻擊算法的思想以及上述圖像擾動定義,得到偽代碼如表1所示。

表1單像素攻擊算法
由單像素算法思想可知,該算法只限制了攻擊像素數而未限制像素的擾動量,因此被擾動的像素與周圍差異較大,更容易產生離群像素點(即噪聲點[5]),因此可以采用如式(3)所示,計算周圍像素與周圍像素點的平均距離D。用以衡量該像素點的異常程度。

式中m表示與目標像素相鄰的像素數目,pixels表示與目標像素相鄰的像素,rk,gk,bk表示周圍像素各個顏色通道的向量值,rmid,gmid,bmid表示目標像素各個顏色通道的向量值。基于上述距離公式,自適應異常像素檢測修正算法偽代碼如表2所示。

表2自適應異常像素檢測修正算法偽代碼

(3) (, )a p pend D D //將每個Di保存到距離列表中(4)end for(5) (), ()lis t i= //對距離列表排序,拷貝原圖像(6) 1 10:s ort D R co py I list I for i= →(7) (1) () () (1)if D i D i D i D i + - - -?lis t list lis t lis t(8) (, (0:))a ppend E D i//如果后向差分遠大于前向差分,則將當前所有像素添加到異常像素集合中(9)end if(10)end for(11) :list for each E e(12) () (())R e mean edge e I =//將拷貝圖中異常像素集合中像素點的像素值用緊鄰像素的均值代替。(13)end for(14) I retur n R
本文主要使用經典LeNet[6]和ResNet18[7]的CIFAR10[7]的分類CNN模型作為對抗性研究的目標CNN模型,為保證黑盒條件,因此不對上述經典CNN模型的內部結構進行討論,僅僅對其模型輸入輸出進行分析。LeNet是由Yann,LeCun等人提出于1994年的積神經網絡結構,是最早的卷積神經網絡之一。LeNet網絡結構為經典網絡結構,在保證模型精度的同時,簡化了網絡參數,使得模型更容易被訓練。ResNet是He Kaiming,Ren Shaoqing,Sun Jian提出于2015年,是當前應用最為廣泛的CNN特征提取網絡。ResNet引入殘差連接使得,卷積神經網絡可以構建更深,而不會引起學習退化問題。
對經典的LeNet和ResNet18卷積神經網絡模型訓練200輪,每一輪取128個訓練樣本進行訓練,模型準確率如表3所示。
定義擾動前后圖像差異度d如式(4)所示,用于衡量擾動前后圖像差異。

式中,PI代表擾動后的圖像向量,I代表原始圖像向量,表PI的模,表示I的模。
基于單像素攻擊算法對LeNet和ResNet18模型進行攻擊測試,部分結果如表4所示,僅對原圖像使用較少的擾動,即原圖像和擾動后的圖像差異度極小(擾動前后圖像差異度低于0.1%),便可使得CNN模型分類出現錯誤。

表4測試數據表
表中Ori表示攻擊之前分類結果,Att表示攻擊之后結果,d為差異度。
利用單向素攻擊算法對LeNet和ResNet18模型進行攻擊,再采用自適應異常像素修正進行針對性防御,對比效果如圖1所示。

圖1攻擊防御算法效果圖
測試結果顯示單像素攻擊算法可以在純“黑盒”條件下對CNN模型完成攻擊,同時本文提出的自適應異常像素修正算法也可以很好地對被攻擊圖片進行修正從而實現防御。

表3測試集中CIFAR10的分類準確率(%)
選擇一批測試集圖像采用單像素攻擊算法獲得其對應的干擾因子,并統計使用這些干擾因子擾動圖像后使得模型對圖像分類錯誤的在樣本中所占比例,將該比例定義為攻擊成功率Sr,如式(5)所示。

式中,size(s)表示統計擾動后圖像分類錯誤的樣本數量,size(sample)表示統計測試樣本數量。通過在測試集圖像中隨機選擇100組作為測試數據,使用不同迭代次數和選擇不同數量干擾因子對于LeNet和ResNet18模型單像素攻擊算法成功率進行測試,結果圖2所示。

圖2攻擊成功率變化圖
圖2顯示基本單像素攻擊算法對于模型攻擊成功率不會隨迭代次數和干擾因子的數目發生明顯的變化,對LeNet模型的攻擊成功率為30%左右;而對于ResNet18的攻擊成功率在15%左右。原始基于隨機搜索的單像素攻擊算法各個干擾因子隨機產生,且相互獨立作用,即會產生NFL問題[8],因此基本單像素攻擊算法成功率對干擾因子個數以及迭代次數并不敏感。
由圖2攻擊成功率變化圖可以看出基于隨機搜索的單像素攻擊算法成功率處于一種較低的狀態,這是由于干擾因子的在迭代中是在解的空間內隨機選擇且無方向的迭代,因此導致基本單像素攻擊算成功率很低。粒子群優化算法(Particle Swarm Optimization,PSO)不需要交叉變異的復雜操作,求解過程運算量更小,迭代速度更快,且對于問題收斂速度快,實現簡單,因此使用PSO對干擾因子集合P在“解空間”進行優化求解[9]。PSO算法的參數設置為,最大迭代為50代,初始種群100個粒子,粒子特征因素為干擾因子集合P,學習因子c1,c2均為0.5),PSO算法所使用的適應度函數為如式(6)所示的置信度函數。

式中,y表示CNN模型對于輸入圖像I分類為g目標的概率,對單像素攻擊算法進行優化,以提高攻擊成功率,優化前后攻擊成功率對比如圖3所示。
由圖3可知使用PSO算法對原始單像素攻擊算法進行優化成功率得到顯著提高,其中隨著干擾因子數目增多,優化后的單像素攻擊算法攻擊成功率得到顯著提升,同時擾動前后差異度十分小,詳細對比數據如表5所示。
由表5的實驗數據顯示,隨著干擾因子數目增多,優化后的單像素攻擊算法攻擊成功率得到明顯提高,同時對于ResNet深度較深的CNN模型提升效果更為顯著。這是因為,多個干擾因子可以在“高維度特征”空間進行多維度的圖像擾動,采用PSO多個干擾因子作為特征子集被包含在一個“粒子[9]”中,也就是干擾因子間會共同作用,從而對CNN模型的高維特征空間產生更大的擾動,所以基于PSO優化的算法在多干擾因子攻擊時成功率提升更為明顯。對于深度較深的ResNet模型由于其擁有更大維度的特征映射空間,因此基本單像素攻擊算法采用隨機探測的方法產生尋找干擾因子難度更大,而采用PSO優化,由于種群“粒子”間信息共享[9],找到干擾因子便有方向而非盲目尋找,因此優化后的攻擊算法在深度網絡攻擊成功率提升更為明顯。

圖3優化前后成功率對比圖

表5優化前后對比數據表
圖1顯示,采用自適應異常像素檢測修正算法可探測出異常像素點位置,并消除圖像中的像素點,從而防御基于隨機搜索的單像素攻擊算法對CNN模型的對抗性攻擊。使用防御算法后基于PSO優化的單像素攻擊算法攻擊成功率Dsr,與未使用防御算法基于PSO優化的單像素攻擊算法攻擊成功率Sr對比結果如表6所示。

表6防御算法防御結果數據表
表6數據表明,本文提出的自適應異常像素檢測修正算法針對單像素攻擊算法整體防御效果顯著,可降低其攻擊成功率,尤其是針對擾動率十分少的單個干擾因子攻擊防御效果十分顯著,可達80%以上防御率。多干擾因子攻擊,使得每個干擾因子擾動的像素與周圍像素差異會減小,因此該算法在防御性特性是會隨干擾因子數量增加防御率降低。但是,單像素攻擊算法的特性就是擾動盡可能少的像素,理想狀態下只使用一個干擾因子擾動一個像素,因此該算法防御特性可針對性防御單像素攻擊算法。
對單像素攻擊算法進行討論表明,采用合適的干擾因子,即使極低的擾動量也會使得CNN模型的特征空間產生巨大的影響,并嚴重影響模型可用性。針對單像素攻擊算法的特點,自適應異常像素檢測修正方法采用基于相鄰像素差異來探測異常像素,找到被擾動的像素,并利用均值填充從而削弱擾動,從而可以達到針對性防御的目的。