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