王曙燕,金 航,孫家澤
西安郵電大學計算機學院,西安 710121
深度學習模型的工作機理是依賴人類篩選和準備的訓練樣例,基于多層非線性變換來準確刻畫和記憶數據,距離多領域通用的“強人工智能”還有較大差距[1]。因此大多數研究者更加關注模型的性能和訓練效率,卻忽略了模型的安全性和魯棒性[2]。隨著深度學習系統在自動駕駛[3]、圖像識別[4]等領域應用越來越廣泛,其安全性問題也受到廣泛的關注。特別是醫療、航空航天等對精度要求較高的場景下,提升模型的穩定性和魯棒性占據相當多的資源與時間。在這種背景下,對抗樣本的相關研究越來越火熱,對抗樣本是一種能夠欺騙模型做出錯誤判斷的一類樣本,能夠觸發深度學習模型的缺陷,從而指導模型進化。
“對抗樣本”這一概念最早由Szegedy 等[5]提出,通過在數據集中加入微小擾動得到新的樣本,使得深度學習模型以較高的置信度得到錯誤的分類,隨后Szegedy 研究發現通過對抗訓練,即將對抗樣本加入原始數據集來訓練模型可以提高模型的魯棒性。在此之后,產生對抗樣本的方法層出不窮,主要可以分為兩大類:快速梯度符號標記法[6]和基于優化的方法[7]。Goodfellow 等[8]在2014 年解釋了對抗樣本的基本原理,證明了神經網絡模型的高維線性是導致模型能夠被對抗樣本所欺騙的根本原因,而不是傳統所認為的模型的高維非線性,同時還提出了一種基于梯度下降原理的對抗樣本生成方法:快速梯度符號法(fast gradient sign method,FGSM)。通過在梯度上添加增量來使模型對樣本做出誤分類。Papernot等[9]提出一種針對于深度神經網絡類型的對抗樣本生成方法JSMA。該方法使用網絡中的功能函數Jacobian 矩陣來生成前向導數,并利用前向導數來具體實現。JSMA 算法提出限制擾動的l0范數來產生對抗性攻擊,也就是每次只修改目標圖像的幾個像素,并通過由前向導數計算生成的一個顯著性圖來執行監控,取使得所有顯著值最大的輸入特征來調整樣本,與原來的值相減以后得到干擾值。前向導數使用網絡模型的導數而非代價函數,且更多地依賴輸入數據的特征而非網絡參數,因此可以得到更好的輸出結果。Carlini 和Wagner[10]在總結了LBFGS、FGSM 和JSMA 幾個對抗樣本生成的方法之后,提出了在范數L0、L2和L∞上均有較大改善的算法C&W attacks。此算法是前邊三種算法的擴展,在白盒測試[11]和黑盒測試[11]的攻擊方式下都適用,在不知道模型層參數的條件下,依然能夠誤導模型做出錯誤判斷。
上述方法都是通過向原始樣本集注入噪聲來生成對抗樣本,對抗樣本的數量受限于原始樣本集的規模,且對于同一個樣本、同一個目標網絡只能得到唯一與之相對應的噪聲,以至于所得的對抗樣本缺乏多樣性。針對上述方法的問題,本文提出了一種基于GAN 的圖像對抗樣本生成方法,與現有圖像對抗樣本生成方法相比,本文在以下兩方面提出創新:
(1)在樣本生成方面,采用雙生成器的構造策略,生成器G1 用于模擬原始樣本集的分布,增強最終生成的對抗樣本的差異性,提高樣本多樣性;生成器G2 用于產生噪聲,保證對抗樣本的攻擊成功率。
(2)在黑盒攻擊模式下,對目標黑盒模型引入模型蒸餾技術得到其本地復制,再利用傳統的白盒攻擊方式進行攻擊,這種方式較少地依賴對抗樣本的轉移性,在保證樣本多樣性的同時進一步提升黑盒攻擊模式下的攻擊成功率。
生成對抗網絡(generative adversarial network,GAN)是由Goodfellow 等人在2014 年提出的一種無監督學習算法框架[12],其算法思想受啟發于二人零和博弈理論。GAN 的網絡結構由生成器和判別器兩部分組成,模型結構如圖1 所示。
其中,生成器G的輸入為高維隨機噪聲z,輸出為虛假樣本數據G(z),生成器G的作用是模擬真實樣本的數據分布;判別器D的輸入為真實樣本集和虛假樣本數據,輸出通常是輸入數據為真的概率,理想狀態下,判別器D輸出的概率值為0.5,即整個系統達到納什均衡狀態,此時生成器G生成的數據使判別器D難分真假,模型達到最優。GAN 的目標函數定義為:

Fig.1 GAN architecture diagram圖1 GAN 架構圖

其中,Pdata表示真實數據的分布,Pz表示原始噪音的分布,E指期望值。一般是通過先固定G來最大化V(D,G)得到D,然后固定D并最小化V(D,G)得到G,如此迭代直到整個模型達到預定目標。GAN 以其獨特的對抗性思維和優秀的表現,成為近幾年深度學習的熱點課題,被廣泛應用于機器學習、語音識別、數據擴增和計算機視覺等場景,并產生了一系列衍生模型。CGAN(conditional GAN)[13]在原始GAN 基礎上增加了約束條件,控制了生成器G過于自由的問題,使得網絡能夠朝著預期方向生成樣本。LAPGAN[14]基于CGAN 進行改進,用來生成高品質圖片。該方法創新地將圖像處理領域中高斯金字塔[15]和拉普拉斯金字塔[16]的概念引入GAN,利用高斯金字塔進行下采樣,拉普拉斯金字塔進行上采樣來重建圖像,改善了GAN 的學習能力和生成圖片的質量。DCGAN(deep convolutional GAN)[17]將卷積神經網絡和GAN 結合在一起,使得生成圖像的質量和多樣性得到了提升,對GAN 的發展有著極大的推動作用。InfoGAN[18]是Chen 等提出的一種衍生GAN 模型,其最大的特點是增加了互信息(mutual information,MI)的判斷部分,通過最大化GAN 噪聲變量子集和觀測值之間的互信息,以實現對學習過程的可解釋性。他們將輸入的噪聲數據分成兩部分,一部分記為z代表隨機噪聲,另一部分是可解釋的有隱含意義的信號c。其中c代表的是圖像的光照、傾斜度或者具體的類別等語意特征信息。在以MNIST 數據集訓練的模型中,信號c可以分為label code來代表數字種類信息(0~9),以及feature code來表示傾斜度、筆畫粗細等。
從以上的研究基礎中可以看出,GAN 在計算機視覺領域具有相當的優勢,在圖像超分辨率、圖像數據庫擴充和圖像對抗樣本方面具有重要的應用價值。在生成對抗樣本的應用中,劉二虎等[19]提出一種衍生對抗樣本生成方法,該方法利用FGSM 法構造的對抗樣本作為輸入,訓練一個GAN 模型,使得生成器G能夠模擬對抗樣本的分布,擴充了對抗樣本的規模,但攻擊成功率較低,只有30%左右。Xiao 等提出一種AdvGAN 網絡架構來生成對抗樣本[20],在該方法中一旦架構中的生成器G訓練完畢,對于任意輸入圖像都能高效生成所對應的擾動,提高了攻擊成功率,但該方法中針對一個樣本的輸入,只能生成相對應的一個擾動,限制了對抗樣本的數量,雖然攻擊成功率高但是樣本數量少、樣本多樣性低。
GAN 在圖像數據擴充方面的優秀表現,啟發出通過生成器模擬原始樣本集的分布,擴展樣本規模和樣本之間的差異性的方法。以InfoGAN 為框架構造生成器G1,用以生成指定類別的圖像。將隨機隱含信號c進行初始化,信號c是一個長度為40 的列表,用以控制最終所生成圖像的傾斜角度、筆畫粗細等圖像風格,圖像風格的隨機性導致最終樣本的表現差異巨大,以此來提升最終對抗樣本在主客觀層面的差異性和多樣性。再將目標類別y轉化成one_hot 類型編碼并與之拼接,目標類別y控制最終生成圖像的類別,兩者共同組成生成器的輸入信號z。利用互信息對c進行約束,z與G(z,c)具有高度的相關性,優化的目標函數如下式:

實際上,互信息項λI(c;G(z,c))很難直接被最大化,因為需要先獲取后驗概率項P(c|x)。為了解決這個問題,引入一個輔助定義Q(c|x) 的下確界來逼近P(c|x),于是目標函數被重新定義為如下形式,λ為超參數:

在此基礎上構造基于轉置卷積的樣本生成器G1,最終輸出目標圖像。
圖2 描述了利用GAN 生成樣本噪音的流程。構造擾動生成器G2,其輸入為某一樣本,有目標攻擊下還需輸入目標類別,輸出為該樣本所對應的擾動,可對目標模型進行半白盒和黑盒攻擊。主要包含三部分:對抗噪聲生成器G2、判別器D和目標網絡f。G2 接受一個圖像實例x并生成所對應的擾動G2(x),對抗樣本由G2(x)+x構成。判別器D的作用是引導G2 的訓練過程,最小化其損失值LGAN保證所生成的對抗樣本的真實性,同時在擾動系數的限制下盡可能減小噪聲。LGAN的定義如下:

Fig.2 AdvGAN architecture diagram圖2 AdvGAN 架構圖

目標網絡f用以檢驗對抗樣本在攻擊過程中的效果,最小化其損失值Ladv可以使對抗樣本在攻擊過程中的結果更接近于本文的期望。Ladv的定義如下:

其中,lf表示目標模型f的損失函數,在有目標攻擊中,t為攻擊目標,最小化Ladv可以使對抗樣本在攻擊過程中的結果更接近本文的期望;在無目標攻擊中,t為樣本的真實類別,最大化Ladv可以使對抗樣本在攻擊過程中的結果無限遠離真實結果。
綜合以上對于LGAN和Ladv的操作,通過反向傳播修改G2 的模型參數,使得G2 能夠以盡可能小的噪聲代價生成盡可能符合預期的擾動。
模型蒸餾是模型壓縮和加速的技術之一,將教師網絡的知識遷移到學生網絡上,使得學生網絡能夠以較小的規模和計算成本得到與教師網絡相當的性能表現。Caruana 等首次提出知識遷移(knowledge transfer,KT)[21],借助模型的輸出軟標簽訓練一個壓縮后的小型網絡,該小型網絡能夠得到與原網絡相近的輸出結果,但這種方法只能對淺層網絡進行壓縮。Ba 等提出知識蒸餾(knowledge distillation,KD)的概念[22],將一個層數寬且深的模型壓縮為一個小型網絡模型,該模型能夠模擬原始模型的輸出,且具有較好的性能。Hinton等介紹了模型蒸餾的流程[23],將包含多個神經網絡的集成模型壓縮為一個層數相同的學生網絡,Hinton 等以手寫數字和語音識別作為實驗對象,證實了蒸餾模型的確能夠達到如教師網絡的泛化能力。Romero 等提出了FitNet方法[24],同時使用教師網絡的標簽輸出和中間隱藏層的參數值來訓練學生網絡,學生網絡具有與教師網絡相同的層數,但約減了層的寬度,得到一個深且窄的輕型模型,該方法得到的學生網絡性能足以媲美教師網絡且參數量和計算開支遠遠小于教師網絡,但是FitNet方法由于假設性過強,在有些情況下甚至會對網絡的收斂性和性能起到反作用。
2017 年Kaggle 組織的NIPS 大賽將對抗樣本分為目標針對性和非目標針對性[25]。目標針對性又稱有目標攻擊,指的是對抗樣本可以使目標模型給出所期望的分類結果;非目標針對性又稱無目標攻擊,指的是對抗樣本只需使模型給出錯誤的分類結果即可,不需指定某個特殊分類目標。同時,對抗樣本的攻擊方式也可分為黑盒攻擊和白盒攻擊[11]。黑盒攻擊將目標模型看作一個不知道內部結構和層次屬性的黑盒子,只能通過給出的I/O 接口進行查詢的攻擊方式;白盒攻擊則是指在已知目標模型的內部結構和參數,可以通過對樣本進行針對性的調整的攻擊方式。在實際應用中,模型的內部結構和參數往往難以獲得,因此黑盒攻擊的場景較為常見,對黑盒攻擊的研究也更具有價值。
傳統黑盒攻擊方式通過觀察神經網絡的決策結果,利用查詢的方式來生成對抗樣本。本文提出將模型蒸餾技術應用于深度神經網絡的黑盒攻擊,使用模型蒸餾技術獲取目標模型的本地復制,然后使用與白盒攻擊相同的攻擊方式對蒸餾模型進行攻擊。首先根據實驗場景構建目標黑盒模型b的蒸餾模型f,對于模型b和模型f來說,要使得模型蒸餾過程中的目標函數最小化,目標函數表示為:

其中,f(x)和b(x)分別代表同一張圖像在蒸餾模型和黑盒模型的輸出結果,H代表交叉熵損失,最小化此函數使得模型f的輸出結果逐漸逼近模型b,兩個模型的某些關鍵權值向量能夠逐漸吻合。相較于傳統利用對抗樣本轉移性的黑盒攻擊方式,蒸餾模型能夠顯著提高黑盒攻擊方式下的攻擊成功率。
首先介紹雙生成器GAN 的構造框架,然后在此基礎上開展實驗。
GAN 生成對抗樣本的框架如圖3 所示,整個過程可以分為以下幾步:
(1)使用原始樣本集訓練一個樣本生成器G1,G1 為生成圖像的InfoGAN 架構,用于模擬原始樣本分布。
(2)構造n個擾動生成器AdvGAN0至AdvGANn,n為數據集的類別個數。每一個擾動生成器的輸入為G1 輸出的圖像數據,分別用于有目標攻擊情況下生成對應目標的擾動。例如AdvGAN0用于生成目標指向為label[0]的擾動。
(3)使用G1 生成1 000 張類別label[0]的圖片,記為Φ0;生成1 000 張類別label[1]的圖片記為Φ1;…以此類推,生成一組ΦN圖片集合,其中N∈[0,n]。
(4)將Φ0~Φn作為輸入,分別輸入到AdvGAN0,得到Φ0~Φn所對應的、有目標攻擊指向label[0]的擾動,排除Φ0攻擊自身label[0]類的數據,最終得到Φ1→0,Φ2→0,…,Φn→0共(n-1)組擾動;以此類推可得到所有ΦN的擾動ΦN→M,其中N≠M,N∈[0,n],M∈[0,n]。
(5)將Φn與Φn→m對應相加并將圖片規范化處理之后,即可得到原始樣本類別為label[n],攻擊目標為label[m]的有目標攻擊對抗樣本ψN→M,其中N≠M,N∈[0,n],M∈[0,n]。

Fig.3 Adversarial examples structure圖3 對抗樣本構造框架
模型蒸餾進行黑盒攻擊,主要是使學生網絡擬合教師網絡關鍵層的權值向量,較少依賴對抗樣本的轉移性,表1 展示了利用模型蒸餾技術進行黑盒攻擊與傳統方式的差異。首先訓練深度神經網絡MD、卷積神經網絡MC和一個對照的黑盒網絡MB,其模型的準確率在MNIST 數據集下分別是98.51%、98.93%和98.69%,對于MD和MC采用模型蒸餾法進行黑盒攻擊,對于MB采用傳統基于查詢的方式進行黑盒攻擊,采用本文對抗樣本構造方法各自生成對抗樣本,分別記為AdvD、AdvC和AdvB,然后分別使用所生成的三個對抗樣本集來攻擊三個模型??梢钥闯?,利用蒸餾模型進行黑盒攻擊,模型準確率大幅下降為1.19%和0.66%,而傳統基于查詢的方式進行黑盒攻擊,模型仍可保持13.51%的準確率,這說明蒸餾模型能夠提高黑盒攻擊下的攻擊成功率。同時,AdvD能夠在MD上保持較高的成功率,但對MC幾乎沒有造成影響,同樣AdvC也有類似表現,說明模型蒸餾技術進行黑盒攻擊并不依賴對抗樣本的轉移性,這與傳統黑盒攻擊方式具有本質區別。

Table 1 Comparison of model distillation black box attack表1 模型蒸餾黑盒攻擊對比%
在MNIST 數據集和CIFAR10 數據集下開展實驗。實現訓練四個神經網絡模型,作為實驗的攻擊對象,這四個模型的層次架構和在MNIST 上的識別準確度如表2。

Table 2 Preset target network structure and accuracy表2 預設目標網絡的架構及準確率
樣本生成器G1 在訓練階段的輸入為數據集和對應的類別,在應用階段只需輸入類別即可生成相對應的圖像。生成系統訓練過程采用Adam 優化器,Softmax 函數作為激活函數,訓練400 次,生成器和判別器的損失函數如圖4 所示,模型在訓練200 次左右已經相對穩定。

Fig.4 GAN model loss function value圖4 GAN 模型損失函數值

Fig.5 Simulated sample examples圖5 模擬樣本圖示

Fig.6 Simulation sample recognition success rate圖6 模擬樣本識別成功率
模型訓練完畢后,生成如圖5 所示的樣本,同時為了檢測G1的生成樣本在模型中的表現,將生成樣本通過預設的4個模型,得到的識別準確率如圖6所示。從圖中可以看出,G1 能夠模擬原始樣本的分布,且相較于原始樣本集生成的數據更加規范,排除原始樣本集異常數據影響,使得模型的識別準確率反而更高。
G2 的輸入為模擬樣本,輸出為其所對應的擾動。G2 訓練過程使用Adam 優化器,還需調整擾動系數λt。擾動系數控制噪聲的大小,如式(7)所示:

其中,N代表G2 生成的數組形式的擾動數據,像素值轉換為雙精度型,范圍在(-1,1)之間。擾動系數限制了噪聲的動態范圍,對模型的影響如圖7 所示。可以看出隨著擾動系數的增大,模型的準確率(acc)下降,對抗準確率(adv_acc)上升,但是過大的擾動系數會導致圖像失真,經過實驗,選取擾動系數為0.2 時,在保證圖像質量的同時擁有較高的攻擊成功率。將得到的擾動數據與輸入圖像合并,并將圖像的灰度范圍規范化為(0,255)之間,得到最終對抗樣本。對抗樣本在模型上的表現如表3 所示,其中Model1~Model4 是上文提到的MNIST 數據集下的模型,Model5 是CIFAR10 數據集下的卷積神經網絡模型,其模型準確度為78.06%。由表可知,最終生成的對抗樣本能夠以平均98.07%的致錯率觸發模型的缺陷,同時平均對抗準確率保持在96.75%。

Fig.7 Influence of disturbance coefficient on model accuracy圖7 擾動系數對模型準確度的影響

Table 3 Accuracy against sample attacks表3 對抗樣本攻擊準確率%
由于G2 的訓練過程要不斷對蒸餾模型進行白盒訪問,且蒸餾模型的關鍵層權值向量與原始模型高度吻合,因此G2 所生成的擾動極大地迎合原始模型的“口味”,誘導模型做出期望的判別結果,因此會出現對抗準確率比模型原始準確率高的現象。
相較于傳統基于AdvGAN 模型生成對抗樣本,本實驗通過樣本生成器G1 動態地生成樣本來供擾動生成器G2 訓練和生成對應擾動,能夠有效提高最終生成的對抗樣本的多樣性。實驗使用原始方式和本文方法分別生成1 000 份數據,每一份都是相同輸入條件下所產生的兩個對抗樣本。圖8(a)所示為樣本間SSIM(structure similarity)指數,SSIM[26]是一種衡量數字圖像主觀感受的一種方法,在設計上考慮了人眼的視覺特性,分別從結構、亮度和對比度三個角度度量圖片的相似性。SSIM 值范圍在[0,1],與圖像間相似度成正比,本文方法所生成的樣本SSIM 指數分布明顯較原始方式更靠下,而原始方式數據則聚集在1.0 附近,平均SSIM 值降低了50.7%,在視覺層面提升了多樣性。圖8(b)展示了基于互信息的圖像相似性指標,互信息(mutual information,MI)是信息論中的重要概念,描述了兩個系統之間相互包含信息的多少即二者之間相關性,在圖像匹配中,兩幅圖像的互信息是通過熵以及聯合熵來反映它們之間信息的相互包含程度,對于圖像F、R來說,它們之間互信息值表示為:

當兩幅圖像相似度越高,其聯合熵越小,互信息就越大,因此互信息與圖像相似性成正比,圖示平均MI 值降低了10.96%,樣本像素之間相互包含程度降低,多樣性更高。圖8(c)展示了樣本的Cosin 相似度,該方法將圖像表示為一個向量,計算兩個向量之間的余弦值來表征圖片間相似度,直觀結果較SSIM法有所提升,與圖像相似度成反比,圖示實驗結果表明本文方法Cosin值分布較為靠下,平均Cosin值降低了28.7%。圖8(d)展示了樣本間MSE(mean squared error)指數,MSE 均方誤差值越小,代表兩張圖像越相似,MSE 表示為:

Fig.8 Violin plot of adversarial sample difference values圖8 對抗樣本差異值小提琴圖

Fig.9 Comparison of adversarial examples heatmap圖9 對抗樣本熱力圖對比

其中,m和n分別表示圖像的寬和高,P和Q表示兩張圖片對應的像素值,MSE 值的取值范圍為[0,1],與圖像間相似度成反比。圖示原始方法樣本的MSE 值聚集于0,本文方法樣本MSE 值分布均衡,平均MSE值提升了7.6%,像素間差異大,樣本整體多樣性提高。
熱力圖(heatmap)能夠反映數據表中多個特征的兩兩相似度,在圖像領域,熱力圖能夠被用來反映圖像間差異。首先使用傳統方式和本文方法分別生成100 組對抗樣本,每組對抗樣本包含兩份相同輸入條件下產生的兩個樣本,然后將圖像伸展成一維數組并組合,分別構造成一個二維的圖像向量。圖9(a)展示了傳統AdvGAN 構造的對抗樣本的熱力圖,上下分別表示對于同一個輸入所生成的兩個對抗樣本,不同對抗樣本熱力圖重合度高,圖像間差異不明顯。圖9(b)展示了本文方法生成的對抗樣本的熱力圖,可以看出即使在相同的輸入條件下,本文方法構造的對抗樣本依然具有較高的多樣性。
圖像指紋也被稱為圖像Hash,可用于檢測圖像間相似程度[27]。圖像Hash 是檢測一張圖片的內容,然后計算出該圖像所對應的唯一值的過程,不同于傳統Hash 算法之處在于:圖像的微小差異并不會生成差異巨大的Hash 值,相反相似圖像的Hash 值也相似。本文通過均值散列(average Hashing)、感知散列(perception Hashing)、梯度散列(gradient Hashing)和離散小波散列(wavelet Hashing)四種方式來計算圖像指紋,在得到圖像之后再計算其漢明距離(Hamming distance)判斷其相似度。實驗采用傳統AdvGAN 和本文方法在相同輸入條件下生成1 000 組樣本,結果如表4 所示,感知哈希法其漢明距離提升3 653.32,平均散列法漢明距離提升871.90,差值散列法海明距離提升2 042.61,離散小波散列法漢明距離提升1 331.35,四種方式平均海明距離提升1 974.80。實驗結果表明本文方法相較于原始方案,能夠顯著提升圖像的多樣性。

Table 4 Image fingerprint Hamming distance表4 圖像指紋漢明距離
神經網絡模型的安全性和魯棒性已經受到越來越多的關注,利用對抗樣本觸發模型缺陷是一種有效的模型檢測方法。本文提出一種具有雙生成器的GAN 圖像對抗樣本生成方法,提升了對抗樣本的多樣性,使其在攻擊過程中能夠更好地觸發模型的缺陷;在黑盒攻擊情境中,提出基于模型蒸餾技術的黑盒攻擊方法,有效提升了黑盒攻擊的攻擊成功率。在未來的工作中,如何將兩個生成器模型約減成一個整體是一個研究難點,同時對于GAN 生成的對抗樣本,如何對模型進行對抗訓練提升模型魯棒性是下一步繼續研究的方向。