郭書杰
(大連東軟信息學院 智能與電子工程學院,大連 116023)
基于神經網絡的深度學習技術已經被成功地應用于計算機視覺[1,2]、語音識別[3]和自然語言處理[4?9]等多個領域.特別是在機器視覺中的圖像識別方面,深度學習技術取得了非常大的成就.盡管如此,深度學習技術自身也存在著比較嚴重的安全問題.Szegedy 等[10]發現在使用深度學習技術進行圖像識別時,只要改動圖片上的一個像素,就能讓神經網絡識別錯誤,甚至還可以誘導它返回特定的結果.在自動駕駛、人臉識別、語音識別、CT 影像分類等典型的深度學習應用中,錯誤的識別結果將會帶來非常嚴重的后果.因此很多研究者開始關注深度學習模型的抗干擾能力的問題.
為了檢驗深度學習模型的抗干擾性和魯棒性,研究人員提出了對抗樣本的概念.所謂對抗樣本就是在一個已經正確分類的樣本中,添加細微干擾形成的新樣本,該樣本可以使訓練好的模型以較高的置信度給出錯誤的分類結果[11].國內外研究者提出了多種對抗樣本生成方法[12-19].按照不同的規則,可以將這些方法劃分成不同種類.按照其生成方式和原理的不同,可以分為部分像素添加擾動和全像素添加擾動兩類.按照生成過程是否需要知道模型內部結構與參數,可以分為白盒方法和黑盒方法.需要知道模型內部機構與參數的生成方法叫白盒方法,反之叫黑盒方法.根據對抗規則的不同又可以分為有目標對抗和無目標對抗.有目標對抗是指對抗樣本需要使模型給出某種指定的錯誤類別;無目標對抗則只要求模型給出錯誤分類結果即可.Su 等提出了一種黑盒對抗樣生成方法ONEPIXEL[20],該方法將對抗樣本的生成過程轉換為一個條件優化問題,然后使用差分進化算了來求解該問題,并最終得到對抗樣本.該方法可以對梯度難以計算和不可微的網絡進行攻擊,具有良好的靈活性.然而,由于只改變了原始圖像的一個像素,該方法的攻擊成功率相對較低,特別是有目標攻擊的成功率.Dong 等在借鑒I-FGSM 和ILCM 方法的基礎上,提出了MIFGSM 黑盒攻擊方法[21].該方法通過將動量迭代來替換梯度迭迭代,使得在迭代過程具有更加穩定的更新方向,從而降低陷入局部最優的概率.雖然該方法對添加的噪聲方向進行了平滑,但是隨著迭代次數增加,邊界效應依然存在.為了解決這一問題,Shi 等提出了Curls & Whey 方法[19].Curls & Whey 方法通過使迭代軌跡的多樣化和壓縮噪聲的幅度來提高生成的對抗樣本的質量.由于MI-FGSM 和Curls & Whey 均為基于遷移的攻擊,所以他們均不能保證個體級別的攻擊成功.Brendel 等提出了一種基于決策的有目標黑盒對抗樣本生成方法[15],該方法能夠保證攻擊的成功率,但需要較多的模型訪問次數,因此效率相對較低.有目標的黑盒攻擊的難點在于,如何在保證攻擊成功率的前提下提高對抗樣本的生成效率.為了解決這一難點,本文提出一種應用于圖像分類領域的全像素添加擾動的黑盒對抗方法,該方法主要針對有目標對抗,同時也適用于無目標對抗樣本的生成.
深度神經網絡可以完成各種不同的分類任務,本文討論的是圖像分類任務中的深度神經網絡模型對抗樣本的生成方法.在用于圖像分類的神經神經網絡中,圖片的每個通道通常用矩陣Ann表示.其中n表示圖像的行數和列數,每個元素取0-255 之間的整數.對于一個深度學習模型M,要對一張正確分類為N的圖片X生成一個干擾目標為L的黑盒攻擊樣本,就是在X上添加較少的噪聲干擾得到樣本X’,使得M對X’的分類結果為L.也就是:

式(1)中,ρ是需要加入的干擾噪聲.
為了便于問題描述,給出以下定義.
定義1.決策空間:在一個圖像分類神經網絡中,所有被分類為A的圖像組成的集合,就叫做A的決策空間SA,也就是A的決策空間:

定義2.決策邊界:在一個圖像分類神經網絡中,分類A的決策邊界是指A的決策空間的最外層,也就是那些即便做極其微小的改動都會改變其分類結果的圖像的集合.A的決策邊界:

定義3.圖像間的距離:本文中使用歐氏距離來定義兩張圖片間的距離.令圖片P1的矩陣為X,圖片P2的矩陣為Y,則P1和P2之間的距離為:

基于上述定義,對于一張分類為M的圖片Pm,要生成一個分類為N的對抗樣本,也就是要在N的決策空間中找到一個點Pn,使得Pm和Pn的距離盡可能小.即:Pn=min{D(Pm,Pn)|Pn∈BN}
根據決策邊界的定義不難看出,最理想的對抗樣本一定在N的決策邊界BN上,如圖1所示.
邊界攻擊就是沿著某一分類N的臨近決策邊界BN尋找距離被攻擊目標最近的點的過程.如圖2所示.

圖1 對抗樣本示例

圖2 邊界攻擊過程
為了能夠快速找到最優攻擊樣本Pn,設計了一種快速邊界攻擊法.快速邊界攻擊首先通過單側折半法快速找到干擾樣本和被攻擊樣本的近似邊界所在,然后再以可自動調節的步長沿著決策邊界BN探索,直至找到滿足停止條件的對抗樣本.具體的步驟如下.
第1 步.初始化攻擊樣本.從決策空間SN中隨機選出一張圖片Pn0作為初始攻擊樣本Padver.
第2 步.找到Pm與Padver之間的近似邊界點.使用單側折半查找法在Pm與Padver之間的連線上找到距離決策邊界BN相對較近的點Pboundary,并將該點賦值給Padver.單側折半查找法的具體步驟如下.
① 首先根據圖像間的距離公式,確定被攻擊目標Pm與攻擊樣本Padver之間的中點Pmid=(Pm+Padver)/2.
② 使用神經網絡對Pmid進行分類預測,得到分類結果Cmid;若Cmid=N,則將Pmid賦值給Padver;若Cmid≠N,則在后(右)半個區域Pmid和Padver之間繼續進行折半查找,直至找到分類結果為N的Pmid,將Pmid賦值給Padver.單側折半法的具體過程如圖3所示.
第3 步.沿著N的近似邊界隨機探索更優樣本.以自適應步長δ在Padver附近隨機尋找n個對抗樣本,將這些樣本中距離Pm最近的分類結果為N的點賦值給Padver并轉到第2 步繼續運行,直至找到滿足停止條件的對抗樣本.δ的大小決定了算法在Padver附近的搜索半徑,當δ比較小時,算法只能在Padver較近的區域搜索,由于搜索到的點大多與目標點Pn較遠,所以搜索效率不高;當δ比較大時,算法的搜索范圍可能會超過決策邊界BN,從而使得無法找到滿足條件的樣本,導致搜索停滯.為了在提高算法的搜索效率,步長δ的初始值取0.1,隨著算法的進行,自動調節δ的值,其調節策略如下.使用神經網絡對以δ為步長在Padver附近隨機尋找n個對抗樣本進行預測,計算預測結果中分類N的平均值MSN.該平均值越大,說明n個對抗樣本中屬于決策空間SN的樣本越多,距離決策邊界BN越遠.為了提高優化效率,需要讓δ增大.相反,該平均值越小,說明步長δ設置得過大,使得n個對抗樣本中較多的樣本已經越過了策邊界BN,需要減小δ的值.為了確定自適應調節參數,對調節時機(即MSN的值取多少時進行調節)、調節量(即δ值的縮放系數)進行了對比實驗.實驗以達到0.9 的樣本優化率(見定義5)所需的模型訪問次數為標準來評價算法的搜索效率,從而確定參數的優劣.實驗結果顯示,當MSN的值介于0.3-0.7 時,算法能夠保持相對穩定的搜索效率.依據實驗結果,采用如下調節方案:當MSN的值大于0.7時δ擴大為原來的1.1 倍;當MSN的值大于0.8 時δ擴大為原來的1.3 倍;當MSN的值大于0.9 時δ擴大為原來的1.7 倍.當MSN的值小于0.3 時δ縮小為原來的0.9 倍;當MSN的值小于0.2 時δ縮小為原來的0.7 倍;當MSN的值小于0.1 時δ縮小為原來的0.5 倍.快速邊界攻擊法的算法如算法1.

圖3 單側折半法的查找過程示例

算法1.快速邊界攻擊樣本生成算法輸入:被攻擊原始圖片Pm,錯誤分類N,待攻擊的分類模型CNN-M.輸出:攻擊樣本Pn.1)初始化相關參數;2)從N 的決策空間中隨機選出一張圖片作為初始攻擊樣本Padver;3)while (true)4)使用單側折半查找法查找Pm 和Padver 之間的臨近邊界點,并將其賦值給Padver;5)以δ 為步長在Padver 附近隨機生成n 個樣本PRn={P1,P2,…,Pn};6)使用分類模型CNN-M 對PRn 中的每個樣本Pi 進行分類預測;

7)將這n 個樣本PRn 中分類預測結果為N 且距離Pm 最近的點賦值給Padver對這n 個;8)根據樣本的分類預測結果調節步長δ 的值;9) if (滿足終止條件)10) break;
一張圖片的決策空間是立體的多維球面,為了能夠高效地在其決策邊界附近找到一個近似最優解,快速邊界攻擊法的搜索過程分為線上的搜索和面上的搜索兩步.線上的搜索由單側折半法來完成,用于快速找到在Pn0到Pm的連線上距離決策邊界較近的點Padver;面上的搜索通過以自適應步長δ在Padver附近的隨機搜索來完成.通過快速的線上搜索來提高算法的速度,使用面上的搜索來提高搜索的廣度,這兩個步驟的結合,既保證了算法具有良好的搜索效率,又保證了算法搜索結果的質量.由于該方法采用的是從錯誤分類N的決策空間逐漸向正確分類M的決策空間靠近的搜索方法,而且在搜索過程中始終保證每一輪搜索的最優結果均在N的決策空間中,所以可以保證最終生成的對抗樣本具有可靠的攻擊成功率.
使用該方法生成一張圖片的有目標對抗樣本的過程如圖4所示.假設要生成一張分類結果為“Siamese_cat”的圖片A的對抗樣本,使得深度學習模型將其誤分為“Labrador_retriever”.在開始時,從分類為“Labrador_retriever”的樣本中隨機選擇一張圖片B,然后使用快速邊界攻擊法在B的近似決策邊界上尋找距離A最近的圖片作為A的對抗樣本B'.不難看出,隨著尋優過程的推進B'與A的距離逐漸減少,攻擊樣本與原始圖像A的差別也越來越小.

圖4 快速邊界攻擊法的具體示例
快速邊界攻擊法主要適用于有目標對抗,但它也能夠實現無目標攻擊,只需改變初始化攻擊樣本的生成方法即可.在有目標對抗樣本生成時,初始攻擊樣本是從目標類決策空間中隨機選出一張圖片.為了提高算法的效率,在使用該方法生成某一分類為N的圖片A的無目標對抗樣本生成時,首先從其他非N分類的決策空間中隨機選出m個樣本,然后分別計算這m個樣本與圖片A的距離,從中選出距離最小的樣本作為初始攻擊樣本.也就是說,在進行無目標對抗樣本生成時,選擇m個隨機樣本中與A的相似度最高的圖片作為初始攻擊樣本,以便提高對抗樣本的生成效率.
為了檢驗方法的可行性,在Windows 10 平臺上使用編程實現了快速邊界攻擊法,并進行了5 組圖片的樣本生成實驗.實驗中對抗的網絡模型為ResNet50,使用的測試數據如圖5所示.其中上面的圖像為初始對抗樣本,下邊的圖像為被攻擊目標樣本,從左至右分別稱為a 組、b 組、c 組、d 組和e 組.
在評價算法的效率時,需要選擇合適的參數作為對比對象,為了便于描述該參數,給出以下定義.
定義4.模型訪問次數:在算法運行過程中,調用深度學習模型進行分類預測的總次數.
定義5.樣本優化率:令給定的初始對抗樣本為A,被攻擊目標樣本為B,某代優化得到的臨時對抗樣本為A'則樣本優化率Ro的定義如下:


圖5 對比實驗用的圖片
基于上述定義,給定優化率時的模型訪問次數可以表示算法的對抗樣本生成效率的大小,對于相同的樣本優化率來說,模型訪問次數越少,算法的效率就越高.五組實驗數據的實驗結果如圖6所示.由實驗結果不難看出,對于5 組圖片,算法均能在約4400 次模型訪問后,達到0.8 的模型優化率;在12000 左右次模型訪問后,達到0.9 的模型優化率.算法在初期(樣本優化率<0.6 時)生成效率相差不大;但在中后期會有不同的表現,e 組最快,a 組最慢.
為了檢驗方法的生成效率,與Wieland Brendel 的Boundary 方法[15]做了對比實驗.實驗的對抗的網絡模型、測試數據、算法效率評價方法與2.1 節中可行性實驗的相同.實驗結果如圖7所示.對于5 組圖片,快速邊界攻擊法的效率較Boundary 方法均有不同程度的提高,能夠用相對較少的模型訪問次數來達到相同的本優化率.

圖6 可行性實驗結果

圖7 效率實驗結果
快速邊界攻擊法較為簡單,易于實現,具有較好的通用性;能夠生成無目標對抗樣本和有目標對抗樣本,而且屬于比較有應用價值的黑盒對抗樣例生成方法;與Boundary 方法相比,快速邊界攻擊法具有相對較好的生成效率.但由于每個分類的決策空間相對較大,為了找到近似最小擾動,該方法的訪問次數還是比較大,所以生成過程比較耗時,因此不適用于對實時性有要求的對抗樣本的生成.