馬玉琨,毋立芳,簡 萌,劉方昊,楊 洲
1(北京工業(yè)大學(xué) 信息學(xué)部,北京 100124)
2(河南科技學(xué)院 信息工程學(xué)院,河南 新鄉(xiāng) 453000)
3(Courant Institute of Mathematics,New York University,New York,NY 10012,USA)
近年來,隨著深度學(xué)習(xí)技術(shù)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,簡稱CNN)在視覺領(lǐng)域的應(yīng)用越來越廣泛,如人臉識別、圖像分類、分割等[1-3].然而2014年,Szegedy等人提出了深度神經(jīng)網(wǎng)絡(luò)(deep neural network,簡稱 DNN)易受對抗樣本攻擊的特性,即通過對輸入進(jìn)行不可察覺的細(xì)微的擾動,可使深度神經(jīng)網(wǎng)絡(luò)以較高的信任度輸出任意想要的分類,這樣的輸入稱為對抗樣本[4].進(jìn)而,Goodfellow等人解釋了對抗樣本的生成原因以及治理方法[5],在熊貓的圖片中加入一個微小的噪聲,在人眼不易察覺的情況下,使神經(jīng)網(wǎng)絡(luò)以高置信度分類為長臂猿.這對基于深度學(xué)習(xí)的應(yīng)用領(lǐng)域安全性構(gòu)成了一定威脅,如對于人臉識別系統(tǒng),攻擊者通過對人臉圖像做精心設(shè)計的改動,使系統(tǒng)誤認(rèn)為是攻擊者想要的用戶身份;或者對于無人駕駛系統(tǒng),稍微改動“STOP”標(biāo)志使得深度神經(jīng)網(wǎng)絡(luò)識別為別的標(biāo)志而不及時停車,造成交通事故[6].研究對抗樣本的生成過程、分析基于深度學(xué)習(xí)的系統(tǒng)存在的安全漏洞,有助于建立針對此類攻擊的更好的防范機(jī)制.
對于人臉識別系統(tǒng),攻擊者往往利用合法用戶的照片或視頻試圖入侵系統(tǒng),而活體檢測任務(wù)是檢測出請求者為真人還是假體(照片或視頻)[7].深度學(xué)習(xí)技術(shù)普及以來,活體檢測任務(wù)的性能也得到了較大的提升[8-10],然而基于深度學(xué)習(xí)的活體檢測系統(tǒng)同樣存在對抗樣本攻擊問題.圖1給出了對于人臉活體檢測任務(wù)的對抗樣本實例,其中,圖1(a)所示為活體,圖1(b)所示為照片攻擊,圖1(c)所示為針對圖1(b)設(shè)計的對抗擾動(為了方便觀察,對幅值做了縮放),圖1(d)所示為圖1(b)加上擾動噪聲圖1(c)產(chǎn)生的對抗樣本.可以看出,通過對假體圖片做微小的擾動,使得系統(tǒng)以高置信度分類為活體,從而順利入侵系統(tǒng).
Fig.1 Generating the adversarial example for face-spoofing detection圖1 人臉活體檢測任務(wù)的對抗樣本生成示例
對于對抗樣本而言,活體檢測任務(wù)具有其特殊性.活體檢測任務(wù)最后輸出為兩類,分別為活體和假體.其中,真、假體反映在圖像上的區(qū)別微乎其微,例如對于照片攻擊,隨著成像設(shè)備和打印設(shè)備的改進(jìn),類間距離越來越小,活體檢測網(wǎng)絡(luò)需要具有區(qū)分細(xì)小差別的能力.另外,假體入侵所使用的照片或視頻存在于兩次成像之間,受成像設(shè)備特性的影響,擾動難度大.以往的對抗樣本生成算法將擾動加在輸入的每個維度上,而人眼具有視覺連帶集中的特性,集中的擾動容易被人眼感知.為了使生成的結(jié)果不易被人眼感知,更能迷惑網(wǎng)絡(luò)分類器,本文提出了基于最小擾動維度的活體檢測對抗樣本生成方法,所生成的對抗樣本具有最小的擾動維度.并且考慮到人眼的視覺連帶集中特性,即人眼一旦發(fā)現(xiàn)缺陷,視覺立即集中在這片小區(qū)域,密集缺陷比較容易被發(fā)現(xiàn)[11],通過在生成算法中加入擾動間距約束,生成結(jié)果更不易被人類察覺.
本文的主要貢獻(xiàn)點在于:
(1)提出具有最小擾動維度的對抗樣本生成算法,只需對輸入的極少數(shù)維度做擾動,即可生成對抗樣本;
(2)根據(jù)人眼的視覺連帶集中特性,在對抗樣本生成過程中加入了擾動間距約束,生成結(jié)果更不易被人眼感知;
(3)分析了擾動幅度和擾動維度數(shù)對人眼感知效果的影響,通過主觀評價的方法選取最佳擾動幅度,使算法具有較高的對抗成功率以及生成人眼不易感知的結(jié)果.
本文第1節(jié)介紹相關(guān)工作.第2節(jié)分析簡單化的神經(jīng)網(wǎng)絡(luò)中對抗樣本的特性.第3節(jié)闡述本文提出的算法.第4節(jié)為實驗設(shè)置與結(jié)果分析.最后為本文結(jié)論.
近年來有多篇文章致力于對抗樣本生成算法的研究[4-6],其目的有兩個方面:一是能夠使分類器在錯誤分類的前提下降低擾動,二是如何使對抗樣本不易被人眼察覺.假設(shè)深度神經(jīng)網(wǎng)絡(luò)擬合了一個多維函數(shù)F:X→Y,其中,X為網(wǎng)絡(luò)輸入,Y為輸出向量.對于分類任務(wù),Y為和X對應(yīng)的分類結(jié)果.擾動向量表示為δX,則對抗樣本為原始輸入加上擾動向量的結(jié)果,表示為X*=X+δX.對抗樣本的產(chǎn)生可以表示為以下優(yōu)化問題:
Y*為對抗樣本的目標(biāo)分類結(jié)果.語言描述對抗樣本問題,即改動輸入使得深度神經(jīng)網(wǎng)絡(luò)輸出想要的分類的前提下,擾動向量的范數(shù)最小.對于二分類問題,可以簡化為F(X+δX)≠Y.2014年,Goodfellow等人提出了快速梯度符號法(fast gradient sign method,簡稱FGS)以生成對抗樣本[5],其基本思想是:設(shè)θ是網(wǎng)絡(luò)參數(shù),x為輸入,y為與x相關(guān)的目標(biāo)輸出,J(θ,x,y)為用于訓(xùn)練網(wǎng)絡(luò)的代價函數(shù),則生成對抗樣本所需擾動可用下式求得:
其中,ε為一個較小的常數(shù).該方法計算簡單,速度快.所生成的擾動和x每一維度上的導(dǎo)數(shù)符號一致,所有維度的擾動幅度相等.
Goodfellow等人同時指出,對抗樣本在不同的網(wǎng)絡(luò)結(jié)構(gòu)之間具有泛化性,即用一個網(wǎng)絡(luò)生成的對抗樣本對另一個相同任務(wù)的網(wǎng)絡(luò)具有欺騙性,而無需得知后者的具體結(jié)構(gòu).分析其原因:不同網(wǎng)絡(luò)雖然結(jié)構(gòu)不同,但利用相同任務(wù)進(jìn)行訓(xùn)練時,能夠?qū)W習(xí)到相同或相近的輸入輸出映射關(guān)系.對抗樣本在網(wǎng)絡(luò)間的泛化特性意味著,若對分類器網(wǎng)絡(luò)進(jìn)行惡意攻擊,則攻擊者不必已知所攻擊的網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù),可以通過訓(xùn)練自己的網(wǎng)絡(luò)來產(chǎn)生對抗樣本,揭示了深度神經(jīng)網(wǎng)絡(luò)分類器防范對抗樣本攻擊的必要性.
Moosavi-Dezfooli等人改進(jìn)了對抗樣本的生成方法(稱為DeepFool)[12].該方法將xi維度上的擾動設(shè)為
并通過迭代的方法生成對抗樣本.他們同時提出了使用對抗樣本平均擾動幅度定量表示網(wǎng)絡(luò)對于對抗樣本魯棒性的方法,如式(4)所示.
然而,以上幾種方法在擾動幅值最小化的目標(biāo)函數(shù)約束下,將擾動遍布在輸入向量的每一維度.如果網(wǎng)絡(luò)輸入為圖像,則圖像中的每一個像素值會被改動,容易引起人眼視覺集中性的問題,即容易被人眼感知,降低了對抗的可操作性.第3節(jié)通過對簡單神經(jīng)網(wǎng)絡(luò)的分析提出改進(jìn)算法.
深度神經(jīng)網(wǎng)絡(luò)通過多個非線性層的疊加,可以學(xué)習(xí)到比傳統(tǒng)方法更具抽象意義的特征[13].神經(jīng)元通過不同的權(quán)值(weight)和偏置(biase)連接,而權(quán)值和偏置通過最小化代價函數(shù)的訓(xùn)練學(xué)習(xí)到,網(wǎng)絡(luò)訓(xùn)練一般基于后向傳播的隨機(jī)梯度下降法進(jìn)行[14].
深度神經(jīng)網(wǎng)絡(luò)沒有顯式的數(shù)學(xué)表達(dá)式,簡化神經(jīng)網(wǎng)絡(luò)有助于對網(wǎng)絡(luò)的分析.此處假設(shè)分類器網(wǎng)絡(luò)的輸入為只有兩個像素點a1,a2的灰度圖像,X=(x1,x2)為輸入的二維向量,其中,xi為ai的灰度值.假設(shè)已知一個簡單的神經(jīng)網(wǎng)絡(luò)實現(xiàn)了如下非線性函數(shù):F:[-20,20]2→[0,1],F(X)=sigmoid(x1+0.3×x2),其中,sigmoid(x)=1/(1+e-x)為神經(jīng)網(wǎng)絡(luò)常用的激活函數(shù),xi∈[-20,20].網(wǎng)絡(luò)最后根據(jù)輸出的F(X)值進(jìn)行分類,對應(yīng)F(X)的取值更接近于0或1,如圖2所示,橫坐標(biāo)對應(yīng)輸入的兩個維度x1和x2,縱坐標(biāo)對應(yīng)網(wǎng)絡(luò)的輸出值.當(dāng)輸出值大于0.5時判斷為類別1,否則判斷為類別0.圖中藍(lán)色表示分類為0,黃色表示分類為1.
Fig.2 Output of the simplified neural networks圖2 簡單化神經(jīng)網(wǎng)絡(luò)的輸出
對于一個特定的樣本X,網(wǎng)絡(luò)將其分類為Y.而攻擊者考慮對X做最小的更改,以改變最后分類結(jié)果.以樣本X=(-2,5)為例,F(X)=0.3775,網(wǎng)絡(luò)將其分類為0,對抗樣本的目的是改變X,使得F(X)>0.5,使網(wǎng)絡(luò)分類為1.而此時F(X)在點(-2,5)處的梯度為gradF|X=(-2,5)=(0.2350,0.0705),梯度在x1或者x2方向上的分量表示函數(shù)值隨著x1或者x2變化的變化率,因此可知,在輸入X的兩個維度中,x1比x2更容易引起輸出Y的改變,即為了生成對抗樣本,改變x1比改變x2更有效.而利用隨機(jī)梯度下降法訓(xùn)練的一般神經(jīng)網(wǎng)絡(luò)分類器,考慮了輸出值對于每一輸入分量的梯度,因此該分析方法同樣適用.
通過對該簡化網(wǎng)絡(luò)的分析可知,由于輸入的各個維度連接的權(quán)值不同,改變輸入向量的不同維度值,對輸出值的影響大小不同.對于圖像分類的神經(jīng)網(wǎng)絡(luò)來說,輸出值對于圖像中的每一像素的梯度值不同,即每一像素對輸出的影響大小不同,將輸入向量的各個維度對輸出的影響,即梯度值稱為顯著性映射[15].
圖3給出了對于某一神經(jīng)網(wǎng)絡(luò)分類器F,輸入圖像每一像素的R分量對輸出值的顯著性映射S().圖中橫坐標(biāo)為輸入圖像的寬和高m×n,本例中為 28×28;縱坐標(biāo)為網(wǎng)絡(luò)輸出值針對某個輸入圖像的梯度向量,稱為顯著性映射圖.
Fig.3 Saliency map ofRcomponent in input image for the output of the neuralnetworks圖3 輸入圖像的R分量對神經(jīng)網(wǎng)絡(luò)輸出的顯著性映射圖
算法闡述了本文提出的融合最小擾動維度和擾動間距約束的對抗樣本生成的具體步驟.該算法首先計算輸入的當(dāng)前值對輸出的梯度矩陣,即顯著性映射,選擇梯度幅值最大的維度進(jìn)行擾動,并重復(fù)迭代剩余未被擾動的維度,直到能夠成功地欺騙網(wǎng)絡(luò)輸出想要的分類結(jié)果為止.該算法的一個關(guān)鍵問題是擾動幅度的大小選取.原則上,在梯度分量符號不改變的情況下,在該方向上做相應(yīng)的擾動會對目標(biāo)分類輸出起促進(jìn)作用.而當(dāng)梯度分量的符號改變(由正變負(fù)或由負(fù)變正)時,若繼續(xù)做擾動,反而會對目標(biāo)分類輸出起抑制作用.因此,為了選擇最優(yōu)的擾動值,需要分析輸入向量的某一維度值在改變時對輸出的影響.由于研究對象輸入為圖像,因此將輸入范圍設(shè)為[0,255],即xi,j,k∈[0,255].具體做法是在輸入的圖中隨機(jī)選擇一個維度xi,j,k(一個維度對應(yīng)某一像素點的 RGB三分量之一),保持其他維度值不變,在[0,255]范圍內(nèi)改變其中一個維度值時輸出值的變化情況,得到的輸入輸出曲線如圖4所示.橫坐標(biāo)為區(qū)間[0,255],為圖像像素點的取值范圍;縱坐標(biāo)為輸出值Y,即目標(biāo)類別的置信度.本文中對抗樣本的目的是使分類模型判斷假樣本為真人、目標(biāo)類別為真,因此縱坐標(biāo)為真類別的置信度.每一條曲線代表一個維度值xi,j,k和輸出值Y的關(guān)系,其中,曲線1~曲線4表示梯度為負(fù)的幾個維度,為單調(diào)遞增;曲線5~曲線7表示梯度為正的幾個維度,為單調(diào)遞減.
Fig.4 Input-output curves when one dimension of input changes圖4 輸入某一維度值改變時的輸入-輸出曲線
從圖中可以看出,雖然輸入-輸出曲線為非線性關(guān)系,但均為單調(diào)遞增或單調(diào)遞減,且每條曲線在[0,255]范圍內(nèi)梯度符號不變.因此,設(shè)擾動幅度最大值為μ,并考慮圖像取值范圍為[0,255],則設(shè)置具體擾動幅值r遵循以下公式:
研究對抗樣本生成算法的另一個目的是不易被人眼感知.而人眼具有視覺連帶集中性,即針對此特性,為了避免擾動發(fā)生在集中的大片區(qū)域內(nèi),為本文方法加上擾動間距約束,且一個像素內(nèi)RGB三分量只允許最多1個分量擾動,以避免顏色跳躍過于明顯.具體做法為:將已經(jīng)被擾動的像素坐標(biāo)加入到點集P中,即P={(x1,y1),(x2,y2),…,(xk,yk)}表示有k個像素點已經(jīng)被擾動.設(shè)擾動間距閾值為dthreshold,則當(dāng)擾動下一個像素點時,首先計算該像素與P中每個點的曼哈頓街區(qū)距離,當(dāng)k個距離均不小于dthreshold時才可對其進(jìn)行擾動,否則不對其進(jìn)行操作,進(jìn)而嘗試別的像素點,具體過程如算法 1所描述.后面的實驗結(jié)果表明,加入擾動間距約束后,對抗樣本更不易被人眼感知.
算法1.融合最小擾動維度和擾動間距約束的對抗樣本生成算法.
算法解釋:
1.X為原始輸入樣本,是m×n×3的圖像.Y*為目標(biāo)輸出類別(真或假).F為分類器網(wǎng)絡(luò)的映射函數(shù).r為擾動幅度.
2.δX為總的擾動向量,是初始值為m×n×3的全0矩陣.X*為被擾動后的輸入,X*=X+δX.
3.將X賦值給X*.
4.P為被擾動的像素點的集合,初始值為空集.Q為m×n×3的矩陣,用來記錄某個像素點是否被遍歷過,是初始值為m×n×3的全零矩陣.
5.當(dāng)X*對應(yīng)的輸出F(X*)不等于目標(biāo)輸出Y*時,循環(huán)執(zhí)行第6步~第12步.
6.計算顯著性映射S=?F(X*).
7.在δX==0的條件下,尋找S中的最大幅值對應(yīng)的像素點(i,j)max.約束δX==0是為了避免重復(fù)擾動同一像素點.
8.當(dāng)P包含l個點時,D為包含l個元素的集合.
9.當(dāng)(i,j)max與已擾動的所有點的距離不低于dthreshold時,執(zhí)行第10步、第11步.
11.將點(i,j)加入集合P,表示點(i,j)處已被擾動.
12.Q(i,j)=1,表示(i,j)像素點被遍歷過,下次循環(huán)不再考慮,避免算法陷入死循環(huán).此處只記錄平面坐標(biāo),不記錄RGB分量,同一像素點的RGB三分量不允許被同時擾動.
13.當(dāng)?shù)?步條件滿足時,結(jié)束while循環(huán).
14.循環(huán)l次以后,若δX中有l(wèi)維不為0,則表示有l(wèi)維度被擾動過.
15.返回X*,δX.
本文所用分類器為卷積神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)見表1.網(wǎng)絡(luò)包含4個卷積層和1個softmax層,前兩個卷積層后接pooling層,前3個卷積層后加Batch Normalization層.網(wǎng)絡(luò)最后輸出兩類:真/假.
Table 1 Architecture of the CNN based face-spoofing detection classifier表1 基于卷積神經(jīng)網(wǎng)絡(luò)的活體檢測分類器結(jié)構(gòu)
訓(xùn)練網(wǎng)絡(luò)所用活體檢測數(shù)據(jù)庫為2011年公開的Print Attack[16].該數(shù)據(jù)庫采集50個志愿者的兩種視頻片段,分別為真人、打印照片攻擊,每一類有200個視頻,每個視頻長度為10s左右.數(shù)據(jù)庫給出了視頻中每一幀的人臉位置信息.作為數(shù)據(jù)預(yù)處理,讀取視頻中的每一幀,并裁剪出人臉區(qū)域,保存為圖片,用于訓(xùn)練和測試網(wǎng)絡(luò),最終得到72 806個訓(xùn)練圖片、48 451個測試圖片.訓(xùn)練結(jié)束后的網(wǎng)絡(luò)活體檢測半錯誤率(half total error rate,簡稱HTER)為1.72%.
設(shè)置不同的擾動幅值μ會對生成結(jié)果有較大影響,為了尋找最佳的μ值,分別設(shè)置μ=30,60,90,120,150,180,210,240,255,利用本文算法生成對抗樣本,生成的對抗樣本結(jié)果以及所對應(yīng)擾動如圖5所示.實驗中設(shè)dthreshold=2,即任意兩個擾動點的曼哈頓街區(qū)距離不小于 2,避免了兩個擾動點相連.由于輸入圖像為 28×28的大小,如果擾動間距閾值設(shè)定過高,可擾動的像素數(shù)急劇下降,會導(dǎo)致對抗成功率下降.圖中第1列為假體攻擊的原圖,后面 9列為μ取不同值時的對抗樣本.由圖5可以看出,當(dāng)μ值較小時,擾動點數(shù)較多,視覺效果也更模糊;當(dāng)μ值逐漸增大時,擾動點數(shù)逐漸減少,隨之而來的是擾動點的顏色跳躍越來越明顯.擾動圖的黑色部分表示未被更改,帶顏色部分表示該位置對應(yīng)的某分量被更改,紅、綠、藍(lán)顏色分別對應(yīng)RGB分量.
圖6展示了不同的擾動幅度所生成的對抗樣本結(jié)果分析,其中,
· 圖6(a)曲線為生成成功率,由于加入了擾動間距約束,可擾動的像素數(shù)有限,當(dāng)擾動幅度設(shè)置較小時,容易出現(xiàn)遍歷完所有像素仍無法生成對抗樣本的情況,即對抗失敗.由實驗結(jié)果可知,當(dāng)μ=30時,生成對抗樣本的成功率較低;當(dāng)μ=90時,生成成功率可達(dá)97%以上.
· 圖6(b)曲線為擾動像素數(shù),擾動幅度越大,所需擾動像素數(shù)越少.
· 圖6(c)曲線為人眼感知率.
Fig.5 Generated adversarial examples with different perturbation range圖5 不同的擾動幅度生成的對抗樣本
Fig.6 Results analysis with different perturbation range圖6 不同擾動幅度的結(jié)果分析
仔細(xì)觀察圖5可以發(fā)現(xiàn),擾動的幅值和點數(shù)共同影響了人眼感知效果.采用主觀評價的方法定量表達(dá)此效果.對于每個志愿者,每次給出1組圖片,包括原圖以及9個擾動幅值、FGS方法以及DeepFool方法生成的對抗樣本,并回答問題:“該組圖片哪些被人工修改過?”.共有20個志愿者參與評價,每個志愿者評價300組圖片,一組圖片為一個原圖以及生成的11個對抗樣本圖,共3 600張圖片.并且評價是在不同的顯示設(shè)備上完成的,放大尺寸由志愿者自行調(diào)整,每張圖片的觀察時間控制在3s左右.圖6(c)表示人眼感知率和擾動幅值之間的關(guān)系,由圖可知,當(dāng)μ=90時,人眼感知率最低,為30%;μ值增大或者縮小,都會導(dǎo)致人眼感知率增加.分析其原因,人眼可感知性受擾動維度數(shù)和擾動幅值兩個因素共同影響,而μ=90的設(shè)置使得兩者進(jìn)行了折中,較不易被感知.為了驗證該評價方法的合理性和有效性,在測試圖片中加入了原圖,其人眼感知率低于 5%,即原圖很少被誤認(rèn)為人工修改過,證明該主觀評價方法是合理而有效的.綜合對抗成功率、擾動像素數(shù)以及人眼感知率等數(shù)據(jù),選擇μ=90為最佳擾動幅度,并作為后續(xù)實驗及結(jié)果比較的參數(shù).
為了進(jìn)一步與相關(guān)工作比較,分別利用DeepFool方法和本文的算法生成測試集圖像的對抗樣本,如圖7所示.其中,圖7(a)所示為原始的假體圖片,且網(wǎng)絡(luò)能夠成功地檢測為假,實驗對其做擾動,生成對抗樣本以欺騙分類器網(wǎng)絡(luò)判斷為活體;圖7(b)所示為DeepFool方法生成的對抗樣本;圖7(c)所示為本文算法未加擾動間距約束時生成的對抗樣本;圖7(d)所示為加入擾動間距約束的算法生成的對抗樣本.從圖7中可以看出,加入擾動間距約束的算法生成結(jié)果在視覺上更接近原始圖像,更不易被人眼感知.圖7第5排為第4排中各對抗樣本對應(yīng)的擾動,本文算法生成的擾動避免了同一像素中 RGB分量被同時擾動,且被擾動的像素較分散,互相不連續(xù),有較好的視覺效果.利用主觀評價方法得到DeepFool和FGS算法生成結(jié)果的人眼感知率分別為50%和51%,本文方法的人眼感知率比Deepfool和FGS方法降低了20%和21%(注:圖7所列例子均為測試集中隨機(jī)選取的結(jié)果,并非精心挑選).
Fig.7 Comparisons of adversarial examples from different algorithms圖7 不同算法生成的對抗樣本比較
表2分析了不同算法所需的擾動維度和平均擾動幅度等.平均擾動幅度的計算方法如公式(4)所示,即擾動向量的L2范數(shù)與原始數(shù)據(jù)L2范數(shù)的比值.由表2可知,本文算法未加擾動間距約束時,平均擾動30.3個像素點,占原始輸入維度的 1.29%,即只需改動原始輸入向量的 1.29%,即可成功地欺騙網(wǎng)絡(luò);加入間距約束后,算法平均擾動像素點為31.9,占原始輸入維度的1.36%,略微有增加,但視覺效果明顯提升.
Table 2 Comparison with other related methods表2 與其他相關(guān)方法的比較
為了驗證本文算法生成結(jié)果的泛化性,用相同的數(shù)據(jù)庫訓(xùn)練另一個網(wǎng)絡(luò) LeNet-5[17],即卷積神經(jīng)網(wǎng)絡(luò)中具有代表性的一個結(jié)構(gòu).LeNet-5網(wǎng)絡(luò)的活體檢測正確率為 98.52%.利用表1所示網(wǎng)絡(luò)生成的對抗樣本集針對LeNet-5網(wǎng)絡(luò)的欺騙成功率為85.75%,即表1所示網(wǎng)絡(luò)生成的對抗樣本中有85.75%能夠欺騙LeNet-5,證明本文算法生成的對抗樣本在不同網(wǎng)絡(luò)之間具有較好的泛化性,與DeepFool方法87.63%的泛化性相當(dāng).
文章《DeepFool:A simple and accurate method to fool deep neural networks》指出:網(wǎng)絡(luò)層數(shù)越高,分類性能就越好,對于對抗樣本的魯棒性也就越好.加入一些技巧,如Batch normalization和dropout之后,可以在一定程度上提高模型魯棒性,但對抗樣本問題仍然存在.本文在表1所示網(wǎng)絡(luò)中全連接層上加入dropout,活體檢測的等錯誤率HTER為2.12%,與未加dropout時相當(dāng);利用本文方法重新生成對抗樣本集,其平均擾動幅度為0.122,即與未加dropout時相比,魯棒性沒有明顯的提高.Dropout的主要作用在訓(xùn)練階段加速收斂和防止過擬合,但對于對抗樣本不魯棒.
圖8(a)示出了對48 451個測試圖片利用算法2生成對抗樣本所需擾動的維度數(shù)直方圖,擾動維度集中在[0,50]左右.有少量樣本的擾動維度較大.通過限制最大擾動維度數(shù),分析對抗樣本生成的成功率如圖8(b)所示,即若擾動維度數(shù)大于某一閾值,則停止迭代,測試該時刻生成樣本是否能夠成功地欺騙.由分析結(jié)果可知,當(dāng)最大維度設(shè)置為100(輸入維度的4.25%)時,生成對抗樣本的成功率為97%.
Fig.8 Analysis of average perturbation dimensions in adversarial examples圖8 對抗樣本平均擾動維度分析
深度學(xué)習(xí)技術(shù)易受對抗樣本的攻擊,而人臉活體檢測任務(wù)的對抗樣本具有其特殊性:活體檢測任務(wù)真假體圖像相近,類間距離較小,且假體存在于兩次成像之間,對其做擾動有一定的局限性.針對以上特點以及人眼對圖片的視覺特性,提出了一種基于人眼視覺特性的最小擾動維度對抗樣本生成方法.該方法將對輸入圖像的擾動集中在少數(shù)幾個維度上,并充分考慮人眼的視覺連帶集中特性,加入擾動點的間距約束,以使最后生成的對抗樣本更不易被人類察覺.利用人臉活體檢測數(shù)據(jù)庫Print Attack對典型CNN分類模型進(jìn)行對抗,該方法通過平均擾動輸入總維度的 1.36%,即可成功地生成對抗樣本.并且通過加入擾動間距約束,使對抗樣本更加不易被人眼感知,通過志愿者對于對抗樣本的主觀評價,其人眼感知率比經(jīng)典FGS方法及DeepFool方法降低了20%,證明該方法有更好的欺騙效果.
本文研究了人臉活體檢測任務(wù)中對抗樣本的生成機(jī)理,揭示了活體檢測任務(wù)分類器的安全隱患,為下一步建立合理的防范機(jī)制奠定了基礎(chǔ).