劉欣剛,江浩楊,蘇 鑫,馮 晶
(電子科技大學信息與通信工程學院 成都 611731)
深度神經網絡模型被廣泛應用于各種機器學習領域,包括圖像識別[1-2]、圖像與視頻目標檢測領域[3-4]、音頻數據處理[5]和自然語言處理領域[6-7]等。深度神經網絡模型在許多任務上都取得了成功。
然而研究發現神經網絡模型容易受到一種虛假樣本的攻擊[8]。這種樣本通常是在真實數據樣本上進行一定程度的輕微修改而生成的。當這種虛假樣本輸入到神經網絡中,神經網絡會產生與原始真實數據完全不同的輸出。這樣的虛假樣本通常被稱為對抗樣本。
對抗樣本被發現存在于許多領域。在圖像處理領域,被輕微修改的圖像可以使得神經網絡對圖像給出錯誤的分類[9-11],也可以使得語義分割模型完全無法識別圖像上的人物[12];在自然語言處理領域,Seq2Sick 攻擊可以生成對抗性的文本,使得基于序列的神經網絡翻譯模型無法正確理解文本的語義[13-15];在音頻數據領域,文獻[16]提出了一種算法,將一個噪音嵌入到正常音頻中,可以使得音頻語義識別網絡輸出想要的任意結果。
對抗樣本的生成技術也被廣泛研究。文獻[17]指出對抗樣本的存在與神經網絡的高度線性性質有關,并提出了一種快速梯度下降法(fast gradient sign attack, FGSM)來生成對抗樣本,這種方法針對非魯棒性模型非常有效,并且對抗樣本的生成速度也非常快。文獻[10]提出了一種有效生成最小化L2度量距離的對抗樣本技術,其所生成對抗樣本的擾動相比FGSM 更加隱蔽。文獻[9]通過求解優化問題的方式找到對抗樣本,該方法可以計算任意p范數的最小化Lp的對抗樣本。文獻[18-19]提出了尋找稀疏形式對抗樣本的攻擊,可以只改變少量的像素點即可達成攻擊。文獻[20]利用對抗生成網絡框架,提出使用神經網絡生成對抗樣本,這種方法可以針對目標模型快速生成對抗樣本。然而,這些方法大都使用類似梯度函數方向更新的方法,計算真實樣本點附近的梯度,尋找可以使損失函數增大的對抗樣本,而沒有考慮沿著決策函數的邊界進行搜索以尋找擾動最小的樣本。
本文提出了一種基于神經網絡決策邊界搜索的對抗樣本生成算法。該算法首先使用線性搜索或二分搜索在數據空間中找到一個處于決策邊界的數據點,并計算該點相對于決策函數的法向量方向,基于決策平面局部平滑的假設,利用法向量的正交空間,尋找一個更接近真實樣本的數據點,通過多步迭代的方式最終找到最優對抗樣本。本文將該過程進行數學建模,然后將該數學問題轉化為一個標準的優化問題。為了求解該優化問題,首先推導出當神經網絡決策函數為仿射函數時的解析解,然后給出在更一般情況下的迭代式求解算法。
圖1 是典型的白盒攻擊模式,一個訓練良好的分類器F(·)對 正常樣本x進行預測,得到其正確的標簽y。攻擊方通過觀測分類器的預測過程,得到輸入x對于分類器的梯度信息及最終的分類置信度等信息,根據這些信息生成對抗樣本x′,如果分類器F(·)對 輸入x′做 出錯誤的預測y′,則攻擊成功。

圖1 典型白盒攻擊流程
該過程可以用數學語言進行如下描述。
對給定的分類器F(·)和 輸入x,對應于該輸入x的最優對抗樣本x′可以通過求解以下優化問題獲得:

式中,fk(x)是 網絡對應第k類的輸出;//r//p表 示Lp距離,定義為:

在對抗樣本攻擊領域,通常研究生成最小化L2與L∞的對抗樣本。
由于原問題不屬于標準的優化問題,需要將該問題轉化為標準形式才能使用優化算法進行求解。
原問題可以轉化為另一個等價的形式,即:

雖然將原優化問題轉化成為了標準形式,但因為函數L(·)是一個高度非凸函數,無法使用如牛頓法及拉格朗日乘子法等對該問題求解。
L(x′)>0表 明輸入x′與x是 相同的類,L(x′)?0表明輸入x′與x分屬不同類,對抗樣本只可能存在于決策邊界,且滿足L(x′)=0。
通常而言,直接得到一個輸入x0滿 足L(x0)=0是困難的,但是利用函數L(·)的連續性質,可以有效找到該初始點。
假設輸入x為正常樣本,且滿足L(x)>0。隨機生成輸入數據xˉ , 直至滿足L(xˉ)<0。 因為L(·)為連續函數,則必定存在初始點x0=θxˉ+(1?θ)x,滿足L(x0)=0, 其中,0 <θ<1。
實驗發現,以固定概率分布隨機生成的數據xˉ,通常會以高概率被判別為某一類。因此,更有效的方法是直接在數據集中挑選一個標簽不同的樣本xˉ。θ則可以使用線性搜索或者二分搜索來得到。使用二分搜索的初始點搜索由算法1 給出。
算法 1 基于二分搜索法的初始攻擊點查找算法

搜索到的初始點x0通 常與樣本x相差較大,因此,需要通過迭代的方式找到新的對抗樣本xi,使得xi與x越 來越接近,即使得其對抗擾動ri=xi?x的范數減小。
1) 線性決策器。給定一個線性函數L(x)=wTx+b, 和一個已知的起始擾動r0, 滿足L(x+r0)=0。r0可 以分解為兩個部分,即r0=ropt+rstep,其中ropt存 在閉式解,且ropt為全局最優解:

式中,w為L(·)在r0處 的梯度,w可以使用現有的神經網絡學習框架計算得出。
如 圖2 所 示,ropt是r0在 梯度 方向 ?L(x+r0)的投影,rstep是r0在 決策方向上的投影,注意到rstep和ropt是 相互正交的,所以對于任意r1=ropt+αrstep,0 ?α<1,可得出:

圖2 線性決策器


2) 非線性決策器。對于大多數的深度神經網絡,L(x)是高度非凸函數,但可以從線性情況的推導中得出。每次迭代得到的擾動ri+1會比上一個擾動ri更 優,因此,最后ri會收斂至一個較小的值。
迭代公式由下式得出:

式中, ( 1?α) 表 示學習率,0 <(1?α)<1。學習率大可能導致不收斂;學習率小,則收斂速度慢。
圖3 給出了在非線性決策器形況下,該方法的幾何說明。首先利用二分搜索法選擇一個接近決策邊界的起始點,然后使用迭代求解,直到//ri//2收斂。

圖3 非線性決策器
上述推導中給出了針對L2范數的對抗樣本攻擊迭代公式,本文所提出的攻擊方法也可以應用于最小化L∞范 數的對抗樣本攻擊。對于最小化L∞范數的對抗樣本生成,ri的迭代公式為:

算法2 展示了決策邊界搜索攻擊算法的攻擊流程:首先,需要通過線性(或二分)方法定位到模型的決策邊界;然后,計算該點相對分類模型的梯度信息,利用梯度信息更新對抗樣本。新的對抗樣本依然處于模型的決策邊界,且更接近真實的數據點。當所找到的對抗樣本滿足范數要求或者對抗擾動收斂時,停止迭代并輸出最后一個找到的對抗樣本。

為了測試本文算法的有效性,將所提出的算法應用于3 個圖像數據集與3 種圖像分類模型架構上,測試在受到攻擊的狀態下,5 個圖像分類神經網絡的分類性能下降程度。
1) 數據集與分類模型。將使用3 個圖像數據集與3 種圖像分類模型用于受攻擊測試。
MNIST[21]:手寫體數字圖像數據集,數據集中包含70 000 張圖像,其中10 000 張為測試圖像。對于該數據集,使用兩個分類模型,分別為一個多層全連接神經網絡與一個兩層結構的LeNet 卷積神經網絡架構。
FashionMNIST[22]:MNIST 數 據 集 的 一 個 變體,包括10 類不同商品的圖像,數據格式與MNIST完全一致。對于該數據集,考慮使用兩個分類模型,即一個兩層結構的LeNet 卷積神經網絡架構和一個ResNet 架構模型。
CIFAR10[23]:普適物體的圖像數據集,包括飛機、車輛、船只等一共10 種類別。對于該數據集,使用一個ResNet 架構模型進行分類。
其中,MNIST 與FashionMNIST 數據集的數據格式完全一致,因此所使用的LeNet 網絡架構完全一致。
本文實驗使用Pytorch 深度學習框架[24]訓練圖像分類模型,表格1 列出5 個圖像分類模型對3 個數據集的分類精度。

表1 受攻擊模型參數
2)最大可允許擾動 ρ與對抗樣本分類率。一個有效的對抗樣本x′被定義為:其預測標簽與原數據x的真實標簽y不同,且x與x′必須足夠相似,即F(x′)y且//x?x′//p<ρ。
對一個對抗樣本攻擊算法而言,越大的 ρ表示可允許的攻擊范圍越大,代表其可允許的攻擊強度越大。因此,分類模型對其生成的對抗樣本的分類率越低。對多個攻擊算法進行對比,在相同的 ρ下實施攻擊,分類模型對攻擊算法所生成的對抗樣本的分類率越低,說明該攻擊算法越有效。
3)對比方案。在5 個訓練良好的圖像分類模型上,使用本文所提出的對抗樣本攻擊算法,分別針對L2與L∞范數生成對抗樣本。在多個最大可允許擾動 ρ值下,生成對抗樣本,然后使用分類模型對對抗樣本進行分類,記錄在不同攻擊強度下的對抗樣本分類精度。本文使用3 個經典的攻擊算法進行對比。
1)快速梯度方向算法(fast gradient sign method,FGSM)和 快 速 梯 度 算 法(fast gradient method,FGM)[17]:FGSM 是經典的對抗樣本生成方法,主要針對于生成最小化L∞范數的對抗樣本,FGM為FGSM 的最小化L2范數版本。
2)梯度投影下降算法(projected gradient descent,PGD)[25]:FGSM 的多次迭代版本,并在此基礎上加入了初始點隨機化以增加攻擊成功率。
3) DeepFool[10]:基于超平面分類決策器假設的攻擊算法,可以生成對抗擾動較小的對抗樣本。
除了本文外算法,其余的攻擊算法由通用對抗樣本攻擊工具箱Foolbox[26]實現。
圖4 展示了在3 個網絡模型(FC-MNIST, LeNet-FashionMNIST, ResNet-CIFAR10)上使用4 種攻擊算法在不同攻擊強度下的攻擊效果。當最大可允許擾動ρ 為 0 時,縱坐標值表示該模型對正常圖像的分類精度。圖4 表明,這4 種攻擊方法針對L2與L∞指標所生成的對抗樣本,都可以有效地使得神經網絡分類錯誤。

圖4 對抗樣本攻擊算法在3 個模型上的攻擊結果
從實驗結果中可以看出,本文所提出的對抗樣本生成算法的攻擊效果最佳。在每一組實驗中,在同一個最大可允許擾動ρ 下,圖像分類模型對本文算法生成的對抗樣本的分類率都是最小的。而DeepFool算法與PGD 算法效果在大多數情況下相近,而在MNIST 與FashionMNIST 數 據 集 中,DeepFool 算法相比PGD 算法生成的最小化L2對抗樣本更優。FGSM 為4 種算法中計算效率最高的,但攻擊效果最差。
本實驗所使用的3 個數據集都有10 個圖像類別,可以認為對于一個完全無分類能力的模型(隨機分類模型)而言,其圖像分類精度應為10%。表2~表4 分別記錄了使用4 種攻擊方式對5 個圖像分類模型進行攻擊,圖像分類模型對對抗樣本的分類精度達到10%時,每種攻擊方法所需要的最大可允許擾動值。

表2 MNIST 數據集攻擊實驗

表3 Fashion-MNIST 數據集攻擊實驗

表4 CIFAR10 數據集攻擊實驗
從表中可以看出,在每組實驗中本文算法所需要的最大可允許擾動 ρ都最小。并且,在MNIST與FashionMNIST 實驗中,本文所提出的算法相較于其他3 種有較大提升,而在CIFAR10 的實驗中,本文算法與PGD,DeepFool 算法效果相近,但是,FGSM 在多個攻擊實驗中無法使得圖像分類模型的對抗樣本分類精度下降至10%。
實驗分析認為本文算法在3 個數據集上的性能不同的主要原因是數據集的數據分布存在差異。MNIST 與FashionMNIST 的圖像為單通道灰度圖,圖像尺寸較小。而CIFAR10 數據集為三通道圖像,尺寸相對MNIST 稍大,圖像內容更加豐富。因此,在CIFAR10 數據集上,使用線性搜索尋找攻擊初始點,與有效對抗樣本存在的空間距離較遠,后續的迭代無法有效找到最優的對抗樣本。
設計實驗對該假設進行驗證。在所提出的攻擊算法的第一步中,將線性搜索的方法替換為使用DeepFool 算法生成初始攻擊點,以此為基礎進行對抗樣本搜索。表5 中列出了改進的算法在攻擊模型至10%精度所需要的ρ 值。

表5 使用DeepFool 作為初始點攻擊效果
可以看出相較使用隨機初始點搜索的方法,使用DeepFool 攻擊所找到的對抗樣本作為初始點,在所有對比實驗中攻擊圖像分類模型至10%時所需要的ρ 值都要更小。
改進后的攻擊算法本質上是在使用DeepFool搜索到一個有效的對抗樣本后,使用迭代的方法進一步縮小對抗樣本與原樣本的距離。這表明了使用本文算法與其他對抗攻擊算法結合,可以找到擾動更小的對抗樣本。
本文提出了一種新的對抗攻擊算法,即基于分類模型決策函數邊界的對抗樣本搜索算法。該算法是基于現有的神經網絡圖像分類模型的全局連續性與可導性,使用多步迭代的方式在分類模型的決策邊界尋找一個與原數據點距離相近的對抗樣本。
實驗證明在數據分布簡單的數據集上,本文方法可以取得最優的攻擊效果。而在復雜數據集上,需要使用更有效的方式找到攻擊初始點,以保證整體的攻擊性能。這表明本文算法可以有效地優化其他對抗攻擊算法所生成的對抗樣本。因此,在后續設計其他對抗樣本生成技術時,可以將本文提出的迭代的搜索方法作為優化手段,提升其他攻擊算法的性能。