張加勝 劉建明 韓 磊 紀 飛 劉 煌
(桂林電子科技大學計算機與信息安全學院 廣西 桂林 541000)
隨著深度學習技術(shù)的發(fā)展,深度神經(jīng)網(wǎng)絡(luò)DNN(Deep Neural Network)在人臉識別,交通標識識別,安防監(jiān)控等安全敏感性任務(wù)中得到了廣泛的應用[1-3]。然而Szegedy等首次揭示了深度神經(jīng)網(wǎng)絡(luò)脆弱性的存在,極易受到對抗性樣本的影響,即通過對原始輸入樣本進行不可察覺的微小的擾動,可以使深度神經(jīng)網(wǎng)絡(luò)以較高的置信度錯誤分類[10]。進而,Goodfellow解釋了對抗樣本存在的根本原因,深度模型高度線性的本質(zhì)[14],并提出了相關(guān)對抗樣本生成策略,如FGSM[13]、I-FGSM[5]、RAND+FGSM[7]等,通過在熊貓的圖片中加入微小的擾動向量,在人眼不易察覺的情況下成功使神經(jīng)網(wǎng)絡(luò)以高置信度分類為長臂猿。然而這些攻擊算法的設(shè)計都需要攻擊者對目標系統(tǒng)的體系結(jié)構(gòu)或訓練參數(shù)有充分的了解(白盒)。由于在現(xiàn)實世界中很難獲取到目標系統(tǒng)的內(nèi)部信息,對于攻擊者來說,目標系統(tǒng)完全就是一個黑盒。先前的研究表明,不同學習模型之間存在著遷移性[8-9,11],也就是說,采用不同攻擊算法生成的攻擊樣本能夠使多個模型同時錯誤分類。這一屬性為攻擊者在未知目標系統(tǒng)內(nèi)部信息情景下能夠?qū)崿F(xiàn)黑盒攻擊奠定了基礎(chǔ)。那么,現(xiàn)實世界中基于深度學習的黑盒系統(tǒng)的安全性受到了一定威脅[6],例如,在人臉識別系統(tǒng)中,攻擊者通過對人臉圖像做精心設(shè)計的改動,使系統(tǒng)誤認為是攻擊者想要的身份,從而侵入系統(tǒng)導致安全威脅;對于無人駕駛系統(tǒng)而言,稍微修改“STOP”標識圖像使得深度神經(jīng)網(wǎng)絡(luò)錯誤識別為其他標識而不及時停車,將造成安全事故;再比如在安防監(jiān)控系統(tǒng)中,攻擊者往往通過化妝、裝飾物(包括眼鏡、假發(fā)、首飾等)進行偽裝迷惑監(jiān)控系統(tǒng),從而混入非法分子。所以,研究對抗樣本的生成過程,分析基于深度學習的系統(tǒng)存在的安全漏洞,這將有助于設(shè)計更加安全有效的防御機制。
對于人臉識別系統(tǒng),攻擊者往往利用合法用戶的照片,通過添加微小的、不可察覺的擾動試圖入侵系統(tǒng),如圖1所示。然而目前大部分人臉識別系統(tǒng)都針對此類攻擊設(shè)計了相應的防御機制,來抵御微小擾動的干擾,例如通過對抗性訓練新的網(wǎng)絡(luò),MagNet等檢測器的設(shè)計[4,16]。對于攻擊者而言,唯有增加擾動量卻極易被系統(tǒng)檢測出對抗樣本的可能性。進而,相關(guān)研究者提出了高亮貼片的概念[12,15],這類貼片樣本擺脫了以往的束縛,即不要求生成的樣本在人眼看來仍然是原來的圖片,貼片樣本示例如圖2所示。攻擊者通過打印生成的對抗貼片樣本貼在交通標識牌、眼鏡框等顯眼位置,不僅不會引起警覺,同樣可以欺騙深度學習系統(tǒng)?;谠撍枷?,本文通過生成對抗網(wǎng)絡(luò)原理設(shè)計出一種新穎的對抗眼鏡貼片樣本,并且可以應用于任何真實場景中,從而揭示了現(xiàn)實世界中深度學習模型的脆弱性依然存在。
圖1 對抗擾動
圖2 對抗貼片樣本
在現(xiàn)實世界中,由于攻擊者很難獲取到目標模型(即攻擊對象)的內(nèi)部結(jié)構(gòu)信息,包括訓練數(shù)據(jù)、模型體系結(jié)構(gòu)以及訓練參數(shù)等。那么,對于攻擊者而言,目標系統(tǒng)完全就是一個黑盒,攻擊者只能通過原始的輸入獲得對應的反饋結(jié)果。這種情況下,攻擊者就很難設(shè)計出具有很強攻擊性的對抗樣本。然而,先前的研究表明,不同的深度學習模型之間存在著遷移性,這為攻擊者間接地去實現(xiàn)同樣的攻擊效果提供了基礎(chǔ)。比如,攻擊者可以根據(jù)已知任務(wù)去訓練一個替代模型,此時的替代模型對于攻擊者而言即為白盒,進而一系列的攻擊策略可以設(shè)計去生成對抗樣本,然后利用模型遷移性的性質(zhì),將生成的對抗樣本應用于未知模型的黑盒系統(tǒng)。
假設(shè)X∈RD表示D維的特征空間,Y={y1,y2,…,yc}表示c個不同標簽的標簽集合。給定合成數(shù)據(jù)集data={(xi,yi)|1≤i≤N},xi∈X表示第i個訓練樣本,yi∈Y表示第i個樣本查詢目標模型的反饋標記。黑盒攻擊的過程是從data學習一個替代模型F(x),然后選用某種攻擊算法為該模型生成攻擊樣本x*,即通過最優(yōu)化以下目標損失函數(shù)使得神經(jīng)網(wǎng)絡(luò)模型以最大概率錯誤分類為目標標簽yt:
Loss=max{F(x*|x+r)y:y≠yt}-F(x*|x+r)yt
(1)
式中:r表示添加到原始輸入樣本的微小的擾動向量。
然后將該樣本遷移到目標模型O(x),使目標模型也錯誤分類,即O(x)≠O(x*)。詳細攻擊流程如圖3所示。
圖3 黑盒攻擊流程圖
本文著重探討深度學習模型的脆弱性,那么替代模型也可選擇深層模型,即n個帶參函數(shù)f(θ,x)的分層組合,來模擬高維輸入x,定義如下:
F(x)=fn(θθ,fn-1(θn-1,…,f2(θ2,f1(θ1,x))))
(2)
生成對抗網(wǎng)絡(luò)GAN是一種深度學習模型,主要由生成器(Generator)和判別器(Discriminator)兩個模塊構(gòu)成。其中生成器的作用是盡可能地學習真實的數(shù)據(jù)分布,輸入變量z,則G盡可能地生成服從真實數(shù)據(jù)分布的樣本G(z)。判別器的作用是判別其輸入數(shù)據(jù)是來自生成器G,還是來自真實的數(shù)據(jù)x,如果輸入來自G(z),則標注為0,并判別為偽,否則標注為1,并判別為真。這里生成器G的目標是使其生成的偽數(shù)據(jù)G(z)在判別器D上的表現(xiàn)和真實數(shù)據(jù)x在D上的表現(xiàn)一致。G和D互相博弈學習并迭代優(yōu)化的過程使得它們的性能不斷提升,隨著D的判別能力提升,并且無法判別其數(shù)據(jù)來源時,就認為G已學到真實的數(shù)據(jù)分布,如圖4所示。在實際應用中一般均使用深度神經(jīng)網(wǎng)絡(luò)作為G和D,一個較好的生成式對抗網(wǎng)絡(luò)(GAN)應用需要有良好的訓練方法,否則可能由于神經(jīng)網(wǎng)絡(luò)模型的自由行而導致輸出不理想。
圖4 生成對抗網(wǎng)絡(luò)框架圖
GAN的訓練需迭代進行,通過反向傳播更新G和D的參數(shù)。G的訓練通過最小化以下目標函數(shù):
(3)
當G誤導D(即當D(G(z))取值為1),該損失達到最小值。D的訓練通過最大化以下目標函數(shù):
(4)
當D對真實樣本發(fā)出1時,GainD最大化,否則為0。目前已經(jīng)提出了幾種GAN體系結(jié)構(gòu)和訓練過程來訓練GAN,本文主要以Wasserstein GAN為主。
本節(jié)主要描述提出的基于GAN的對抗樣本生成策略以迷惑深度神經(jīng)網(wǎng)絡(luò)。第一部分明確了我們的威脅模型,第二部分詳細描述攻擊框架的設(shè)計。
假設(shè)一個攻擊者能夠成功侵入一個已經(jīng)訓練好的人臉識別系統(tǒng)來發(fā)動攻擊。由于攻擊者不能通過注入錯誤標記的數(shù)據(jù)或修改訓練數(shù)據(jù)來危害人臉識別系統(tǒng)的參數(shù)。因此,只能通過改變輸入以紊亂深度神經(jīng)網(wǎng)絡(luò)的分類。
攻擊者的目標是通過不易察覺地偽裝自己并呈現(xiàn)在人臉識別系統(tǒng)前,然后被錯誤地歸類為除了自己以外的人。考慮這種攻擊的兩種變體,在定向攻擊中,攻擊者試圖使人臉識別系統(tǒng)錯誤分類為特定的其他人;在非定向攻擊時,攻擊者試圖使人臉識別系統(tǒng)錯誤分類為任意其他人,不用特定到某個人。通常假設(shè)攻擊者在白盒場景下運行。也就是說,攻擊者知道特征空間(RGB圖像表示,這在DNN圖像分類中是常用的)以及被攻擊系統(tǒng)的內(nèi)部(體系結(jié)構(gòu)和參數(shù))。在白盒假設(shè)條件下研究DNN的脆弱性是本文的重點。此外,黑盒攻擊可以使用本地替代模型進行白盒攻擊,然后將其轉(zhuǎn)移到黑盒中。
除了少數(shù)幾種攻擊方法以外,在傳統(tǒng)深度神經(jīng)網(wǎng)絡(luò)逃避攻擊中,攻擊者直接改變正常輸入樣本來最大化或最小化一個預先定義的函數(shù)與預期的錯誤分類相關(guān)的函數(shù)。與以往的攻擊不同,本文提出了通過訓練神經(jīng)網(wǎng)絡(luò)來產(chǎn)生可用于達到預期目的的輸出。也就是說,與其反復調(diào)整正常樣本輸入,使之成為對抗性樣本,不如嘗試迭代更新深度神經(jīng)網(wǎng)絡(luò)的權(quán)值來調(diào)整將產(chǎn)生導致錯誤分類的輸出。
更具體地說,本文通過訓練生成對抗神經(jīng)網(wǎng)絡(luò)來生成眼鏡的貼片并可以打印貼在眼鏡鏡框上,當攻擊者佩戴時,不易被察覺,卻能使人臉識別系統(tǒng)紊亂,產(chǎn)生定向或非定向的攻擊效果。為了達到不顯眼的攻擊效果,我們要求這些神經(jīng)網(wǎng)絡(luò)產(chǎn)生的眼鏡圖片與真實的眼鏡設(shè)計相似。與傳統(tǒng)的GAN訓練類似,不同于GAN的是,還需要產(chǎn)生對抗性的輸出(即包含眼鏡的人臉圖像),能夠誤導用于人臉識別的神經(jīng)網(wǎng)絡(luò)模型。
所以,本文提出的方法需要訓練三個深度神經(jīng)網(wǎng)絡(luò):一個生成器G、一個判別器D和一個預訓練的分類函數(shù)為F(·)。當輸入x到DNN時,通過最小化G來生成不引人注目的對抗輸出,能夠迷惑F(·),優(yōu)化目標如下:
(5)
其中損失函數(shù)LossG同式(1)定義,通過最小化該損失的目的是希望生成器生成真實的不顯眼的眼鏡圖像輸出,能夠誤導判別器D,使判別器認為生成的眼鏡圖像即為真實圖像。LossF是在DNN的分類中定義的損失函數(shù),在訓練G過程中,通過最大化該損失,從而使得生成的眼鏡圖像付在人臉圖像之上能夠成功欺騙深度神經(jīng)網(wǎng)絡(luò)F。LossF的定義又分為兩類,分別針對定向和非定向而言。對于非定向攻擊而言,LossF損失定義如下:
Fyx(x+G(z))
(6)
通過最大化LossF,樣本x被DNN識別成真實標簽yx的概率大大降低,使識別成其他標簽的概率增加,從而實現(xiàn)非定向攻擊的效果。對于定向攻擊而言,LossF損失定義如下:
LossF(x+G(z))=Fyt(x+G(z))-
(7)
通過最大化LossF, 樣本x被DNN識別成攻擊者指定的目標標簽yt的概率會增加。
判別器D的訓練作為訓練過程的一部分,目標使式(4)中定義的收益GainD最大化。通過調(diào)整判別器D的權(quán)重進而激勵生成器G生成更真實的實例,兩者相互博弈,實現(xiàn)互利共贏。與D和G相反,F(xiàn)(·)的權(quán)重在訓練過程中是不需要改變(因為希望在測試階段,生成的對抗輸出能夠成功欺騙相同的DNN)。整個訓練過程如算法1所示。
算法1基于GAN對抗眼鏡貼片樣本生成過程
輸入:X,G,D,F(xiàn)(·),data,Z,Ne,sb,κ∈{0,1}
輸出:對抗輸出G
1:e←0;
2:foreinrange(1,Ne)
3: 按照大小sb分塊data獲得mini-batches
4:forbatchinmini-batches:
5:z←從Z中抽樣sb個樣本;
6:gen←G(z);
7:batch←合并(gen,batch)
8:ifeveniteration:
//更新生成器D
9: 通過反向傳播求?GainD/?batch更新D;
10:elifF(·)錯誤輸出:
11:return;
12:d1←-?GainD/?gen;
13:x←從X中抽樣sb個樣本;
14:x←x+gen;
15:d2←-?LossF/?gen;
16:d1,d2←歸一化(d1,d2)
17:d←κ·d1+(1-κ)·d2;
18: 通過反向傳播求d更新G
19:endfor
該算法以一組正常樣本X作為輸入,一個預初始化的生成器和鑒別器,一個用于人臉識別的神經(jīng)網(wǎng)絡(luò),實際示例的數(shù)據(jù)集(生成器的輸出應該類似于這些數(shù)據(jù)集; 在我們的例子中這是一個眼鏡的數(shù)據(jù)集),一個可以從G的潛在空間(Z)中采樣的函數(shù),最大訓練周期(Ne),mini-batches的大小sb,和κ(0和1之間的值)。這個訓練過程的結(jié)果是一個對抗的生成器,它創(chuàng)建輸出(即眼鏡圖像)以迷惑用于人臉識別的深度神經(jīng)網(wǎng)絡(luò)F(·)。在每次訓練迭代中,D或G都使用隨機選擇的數(shù)據(jù)子集進行更新。D的權(quán)值通過梯度上升來更新,以增加增益。相反,G的權(quán)值通過梯度下降來更新,使式(3)定義的損失值最小化。為了平衡生成器的兩個目標,分別將GainD和LossF的導數(shù)進行結(jié)合,通過對這兩個導數(shù)進行歸一化得到這兩個值的歐幾里德范數(shù)(算法中第16行)。
然后通過設(shè)置κ來控制這兩個目標中的哪一個該獲得更多的權(quán)重(算法中的第17行)。當κ接近零的時候,會有更多的權(quán)重用以迷惑F(·), 分配更少的權(quán)重使G的輸出更真實。相反,當κ接近一個1時,會分配更大的權(quán)重使G的輸出類似于真實的例子。當達到最大訓練周期時,訓練結(jié)束,或者當F(·)被迷惑時,即定向或非定向攻擊已完成。
為了驗證上述對抗樣本生成策略的有效性,在收集的眼鏡數(shù)據(jù)集上進行了對抗眼鏡樣本的合成,并在經(jīng)典的人臉識別模型OpenFace,VGG上驗證了提出的方法的攻擊性能。需要如下準備:(1) 收集訓練中使用的真實眼鏡數(shù)據(jù)集;(2) 選擇生成器和鑒別器的架構(gòu),實例化它們的權(quán)值;(3) 訓練可用于評估攻擊的DNNs;(4) 設(shè)定攻擊的參數(shù)。
一個真實的眼鏡框架設(shè)計數(shù)據(jù)集是必要的,以訓練生成器創(chuàng)建真實的攻擊。我們使用谷歌搜索的搜索“眼鏡”及其同義詞(如“眼鏡”、“護目鏡”),有時使用形容詞修飾,我們使用的形容詞主要包括顏色(如“棕色”、“藍色”)、趨勢(如“極客”、“龜甲”)和品牌(如“拉夫·勞倫”、“普拉達”)??偣沧隽?30個獨特的API查詢,收集了26 520張圖片。
收集的圖像不僅僅是眼鏡; 我們還發(fā)現(xiàn)了杯子、花瓶和眼鏡品牌的標識阻礙了訓練過程;此外,這些圖像還包括模特佩戴的眼鏡和深色背景下的眼鏡圖像。我們發(fā)現(xiàn)這些圖像很難用生成網(wǎng)絡(luò)進行建模。因此,我們訓練了一個分類器來幫助我們檢測和保存在白色背景下的眼鏡圖像,從而不包括模特們佩戴時的圖像。使用250張手工標記的圖片,訓練了一個分類器,并將其調(diào)整為100%的精確度和65%的召回率。在對數(shù)據(jù)集中的所有圖像進行應用后,仍有8 340幅眼鏡圖像,手動檢查這些圖片并沒有發(fā)現(xiàn)假陽性的一個子集。
使用這個數(shù)據(jù)集的原始圖像,可以訓練一個能發(fā)出不同圖案、形狀和方向的眼鏡的生成器。不幸的是,形狀和方向的變化使得這種眼鏡在運行算法1時難以有效和合理地對準人臉圖像。因此對數(shù)據(jù)集中的圖像進行預處理,并將模式從它們的幀轉(zhuǎn)移到一個固定的形狀,可以很容易地對齊到人臉圖像。我們使用的形狀的剪影如圖5所示,然后我們訓練生成器生成這種形狀的眼鏡的圖像,但是它們有不同的顏色和質(zhì)地。將眼鏡的顏色和紋理轉(zhuǎn)換成固定的形狀,對圖像進行了識別,以檢測幀的區(qū)域。然后使用紋理合成技術(shù)將框架的紋理合成到固定形狀上,圖6顯示了紋理合成結(jié)果的示例。
圖5 眼鏡生成輪廓
圖6 原始眼鏡圖像(左)與合成眼鏡圖像(右)
3.2.1預訓練生成器與判別器
當訓練GANs時,我們希望生成器構(gòu)造出清晰的、真實的、多樣的圖像。只發(fā)射一小組圖像表明生成器的功能不能很好地接近底層數(shù)據(jù)分布。為了實現(xiàn)這些目標,也為了能夠進行有效的訓練,我們選擇了深度卷積生成對抗網(wǎng)絡(luò)DCGAN(Deep Convolutional GAN),一個具有少量參數(shù)的極簡主義架構(gòu)。然后探索了發(fā)生器潛在空間的各種可能性,輸出維度,以及G和D中的權(quán)重數(shù)(通過調(diào)整過濾器的深度)。最終發(fā)現(xiàn)一個潛在的空間[-1; 1]25,(即二十五維25-dimensional向量之間的實數(shù)-1和1), 和輸出的包含64×176像素的圖像可產(chǎn)生最好看、最多樣化的效果。
為了確保攻擊能夠迅速融合,將G和D初始化到一個狀態(tài),在這個狀態(tài)中,生成器才能夠有效生成真實的眼鏡圖像。為此選擇了200次迭代進行預訓練,并存儲它們以初始化以后的運行。此外,本文還借鑒了Salimans提出的基于軟標簽來訓練生成器。圖7和圖8展示了在訓練結(jié)束時生成器器生成的眼鏡圖像。
圖7 對抗眼鏡圖像
圖8 原始人臉圖像(左)與對抗人臉圖像(右)
3.2.2人臉識別模型
本文評估了對兩個體系結(jié)構(gòu)中的DNNs的攻擊。一個神經(jīng)網(wǎng)絡(luò)是建立在超分辨率測試序列(VGG)神經(jīng)網(wǎng)絡(luò)上[17]。最初的VGG DNN在人面數(shù)據(jù)庫(LFW)基準測試中,在被標記的面孔上顯示了最先進的結(jié)果,以98.95%的準確率進行面部驗證[18]。另外一個DNN是在OpenFace神經(jīng)網(wǎng)絡(luò)上構(gòu)建的,它使用了谷歌FaceNet體系結(jié)構(gòu)[19]。OpenFace的主要設(shè)計考慮是提供高精度DNN,低訓練和預測時間,使DNN可以部署在移動設(shè)備和物聯(lián)網(wǎng)設(shè)備上。
VGG網(wǎng)絡(luò)訓練: 原始的VGG網(wǎng)絡(luò)需要一個224×224像素對齊的臉部圖像用以輸入,并產(chǎn)生了一個具有高度鑒別性的4 096維的面部描述符(即用矢量表示法展示臉部圖像)。在歐幾里德空間中,兩個描述同一人的圖像的描述符比兩個描述不同人的圖像的描述符更接近。使用描述符來訓練兩個簡單的神經(jīng)網(wǎng)絡(luò),將圖幅面積描述符映射到身份集合上的概率提高。如此,原來的VGG網(wǎng)絡(luò)就有效地充當了特征提取器的角色。
OpenFace網(wǎng)絡(luò)訓練:原始的OpenFace網(wǎng)絡(luò)需要一個96×96像素對齊的臉部圖像作為輸入和輸出128維的描述符。與VGG網(wǎng)絡(luò)相似,同一個人的圖像描述符在歐幾里得空間中接近,而不同人物形象的描述符卻相差甚遠。與VGG相反,OpenFace的描述符位于一個單位球面上。首先嘗試訓練神經(jīng)網(wǎng)絡(luò),使用與VGG DNNs相似的架構(gòu)將OpenFace描述符映射到身份數(shù)據(jù)集,找到了這些神經(jīng)網(wǎng)絡(luò)來得到有競爭力的精確度。然而,與VGG DNNs類似,它們也很容易受到閃避的攻擊。與VGG DNNs不同,簡單的數(shù)據(jù)增加并不能提高DNNs的穩(wěn)健性。我們認為這可能是由于使用線性分隔符對球面數(shù)據(jù)進行分類的局限性。
3.2.3結(jié)果分析
為了評估提出的攻擊策略的攻擊性能,隨機為VGG和OpenFace選取10個攻擊者。對于每個攻擊者和DNN的組合,使用攻擊者的單個人臉圖像來創(chuàng)建定向或非定向攻擊。在非定向攻擊中,目標是隨機選擇的。為了避免評估成功率的不確定性,本文使用攻擊者的三個不同的圖像重復每一次攻擊。表1描述了模型的測試準確率以及被攻擊時的平均成功率和標準誤差。實驗結(jié)果表示基于GAN生成的眼鏡貼片成功攻擊了用于人臉識別的VGG和OpenFace模型。對于非定向而言更具挑戰(zhàn)性,成功率有所降低。
表1 人臉識別模型性能
然后進一步探討了生成的攻擊樣本的遷移性,即在黑盒攻擊場景中,提出的基于GAN的對抗眼鏡貼片的有效性,實驗結(jié)果如表2所示。實驗結(jié)果表明提出的餓攻擊策略在黑盒攻擊領(lǐng)域仍獲得了不錯的攻擊效果。另外,還發(fā)現(xiàn)OpenFace體系結(jié)構(gòu)的攻擊僅在有限次的嘗試中就成功地愚弄了VGG體系結(jié)構(gòu)(10%~12%)。相比之下,在63.33%的嘗試中,成功攻擊VGG的同時也成功攻擊了OpenFace。
表2 黑盒攻擊性能
本文旨在探索深度學習模型存在的脆弱性并運用生成對抗網(wǎng)絡(luò),設(shè)計出一種新穎的光亮眼鏡貼片樣本,能夠成功欺騙基于卷積神經(jīng)網(wǎng)絡(luò)的人臉識別系統(tǒng)。通過在收集的眼鏡數(shù)據(jù)集上進行合成實驗,并在OpenFace、VGG等常用的人臉識別模型上驗證了所提想法的性能,并證明了現(xiàn)實世界中深度學習模型的脆弱性依然不容忽視,設(shè)計有效的防御機制成為未來研究的重點。