魏煥新 張宏國
1(湖南機(jī)電職業(yè)技術(shù)學(xué)院信息工程學(xué)院 湖南 長沙 410151) 2(哈爾濱理工大學(xué)軟件工程系 黑龍江 哈爾濱 150080)
隨著新興計(jì)算技術(shù)的發(fā)展,機(jī)器學(xué)習(xí)技術(shù)作為分類方案發(fā)揮了關(guān)鍵作用。探索性攻擊的對(duì)抗性樣本引起了人們對(duì)深度神經(jīng)網(wǎng)絡(luò)安全性的關(guān)注。深度神經(jīng)網(wǎng)絡(luò)廣泛用于圖像識(shí)別、語音識(shí)別、模式分析和入侵檢測等領(lǐng)域[1-3]。單目標(biāo)對(duì)抗方法通常使用有針對(duì)性的對(duì)抗性樣本,只允許識(shí)別一個(gè)類,容易錯(cuò)誤地將攻擊類識(shí)別為非攻擊類。因此,研究多目標(biāo)對(duì)抗方法具有很好的現(xiàn)實(shí)意義和實(shí)用價(jià)值[4-5]。
國內(nèi)外許多專家及學(xué)者圍繞多目標(biāo)對(duì)抗方法進(jìn)行了深入研究。文獻(xiàn)[6]研究了機(jī)器學(xué)習(xí)中的幾個(gè)安全問題,對(duì)機(jī)器學(xué)習(xí)的攻擊歸類為致病攻擊、影響學(xué)習(xí)、控制訓(xùn)練數(shù)據(jù),以及作為探索性攻擊導(dǎo)致錯(cuò)誤分類,但不影響訓(xùn)練過程。文獻(xiàn)[7-8]提出了一項(xiàng)關(guān)于對(duì)抗性實(shí)例的研究,使用對(duì)抗性樣本的主要目的是通過向原始圖像添加少量噪聲來使深度神經(jīng)網(wǎng)絡(luò)犯錯(cuò)誤。文獻(xiàn)[9]提出了一種平滑梯度法來阻止攻擊梯度,作為抵御黑匣子襲擊的最先進(jìn)的防御,它由一個(gè)探測器和一個(gè)改造者組成,以抵抗對(duì)抗性的樣本攻擊。文獻(xiàn)[10]通過使用多個(gè)局部模型來攻擊其他模型,提出了一種集合對(duì)抗性樣本的方法。以上方法存在無法區(qū)分原始圖像和失真圖像之間差異的問題,仍有一定的改進(jìn)空間[11-13]。
基于上述分析,本文提出一種基于深度神經(jīng)網(wǎng)絡(luò)躲避攻擊的多目標(biāo)對(duì)抗方法,并結(jié)合蟻群算法實(shí)現(xiàn)躲避攻擊的多目標(biāo)對(duì)抗。其主要?jiǎng)?chuàng)新點(diǎn)為:
(1) 現(xiàn)有的大多數(shù)方法中,對(duì)抗性樣本只分為有針對(duì)性的對(duì)抗性樣本和無針對(duì)性的對(duì)抗性樣本,而本文方法設(shè)計(jì)一種與變換器和多個(gè)模型組成的體系結(jié)構(gòu),利用變換器生成一個(gè)多目標(biāo)的對(duì)抗性樣本,利用多個(gè)模型預(yù)訓(xùn)練的分類器對(duì)輸入值進(jìn)行分類。
(2) 現(xiàn)有的大多數(shù)方法中針對(duì)性對(duì)抗樣本是單個(gè)目標(biāo)攻擊,只允許識(shí)別一個(gè)類,而提出的多目標(biāo)對(duì)抗樣本,使用單個(gè)修改后的圖像攻擊每個(gè)目標(biāo)類中的多個(gè)模型,為了產(chǎn)生這樣的樣本,本文方法進(jìn)行了一次變換,從而通過多個(gè)模型最大化不同目標(biāo)類別的概率。
(3) 現(xiàn)有的大多數(shù)方法采用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行多目標(biāo)對(duì)抗,而本文方法在深度神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上引入了蟻群算法,利用螞蟻互相交流學(xué)習(xí)的正反饋原理保證算法的收斂性和尋優(yōu)速度,融合兩種算法的優(yōu)勢,解決深度神經(jīng)網(wǎng)絡(luò)輸入數(shù)據(jù)導(dǎo)致機(jī)器誤解數(shù)據(jù)的問題,實(shí)現(xiàn)躲避攻擊的多目標(biāo)對(duì)抗。
圖1為提出的多目標(biāo)對(duì)抗方法的示意圖。
圖1 多目標(biāo)對(duì)抗方法示意圖
生成對(duì)抗性樣本的基本體系結(jié)構(gòu)由兩個(gè)元素組成:目標(biāo)模型和變換器。變換器將原始樣本x和目標(biāo)類y作為輸入數(shù)據(jù),然后創(chuàng)建輸出,變換的示例為x*=x+w,其中噪聲值w被添加到原始樣本x中。變換后的樣本x*作為輸入數(shù)據(jù)提供給目標(biāo)模型。目標(biāo)模型為變換器提供變換后的樣本的類概率結(jié)果。變換器更新變換的樣本x*=x+w中的噪聲值w,使得其他類概率高于原始類概率,同時(shí)最小化x*和x之間的失真距離。
通過對(duì)抗訓(xùn)練、過濾方法、防御性蒸餾和磁鐵法等方法研究了對(duì)抗性樣本的防御。為了阻止攻擊梯度,這種防御性蒸餾具有兩個(gè)神經(jīng)網(wǎng)絡(luò),其中分類器的輸出類概率被用作第二級(jí)分類器訓(xùn)練的輸入。同樣,這種方法有兩個(gè)步驟:首先,檢測器過濾失敗的對(duì)抗性樣本作為預(yù)學(xué)習(xí)步驟,包括原始樣本和對(duì)抗性示例之間的差異;然后,重整器找到原始樣本,該樣本可以轉(zhuǎn)換為對(duì)抗性樣本的小擾動(dòng)。使用過濾方法、防御蒸餾和磁鐵方法進(jìn)行測試發(fā)現(xiàn),系統(tǒng)的被欺騙率可高達(dá)100%。
對(duì)抗性樣本攻擊的相關(guān)工作可以分為四類:目標(biāo)模型信息、距離度量、對(duì)抗性樣本識(shí)別和生成方法[8]。
深度神經(jīng)網(wǎng)絡(luò)廣泛用于圖像識(shí)別、語音識(shí)別、模式分析和入侵檢測等領(lǐng)域,具有全局搜索能力強(qiáng)的優(yōu)點(diǎn)。為了生成多目標(biāo)的對(duì)抗性樣本,設(shè)計(jì)一種與變換器和多個(gè)模型組成的體系結(jié)構(gòu),利用變換器生成一個(gè)多目標(biāo)的對(duì)抗性樣本,利用深度網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練的分類器對(duì)輸入值進(jìn)行分類,提出一種由變換器和多個(gè)模型Di(1≤i≤n)組成的體系結(jié)構(gòu),如圖2所示。變換器的作用是生成一個(gè)多目標(biāo)的對(duì)抗性樣本[14]。多個(gè)模型Di是預(yù)訓(xùn)練的分類器,其對(duì)輸入值進(jìn)行分類。
圖2 由變換器和多個(gè)模型組成的體系結(jié)構(gòu)
若DNN模型將樣本作為輸入值,則它提供每個(gè)類的分類得分的輸出值,所提深度神經(jīng)網(wǎng)絡(luò)模型將樣本分類為輸出值最高的類。表1顯示了原始樣本“2”和目標(biāo)對(duì)抗性樣本“3”的分類得分示例??梢钥闯觯紭颖尽?”可分類為得分29的類別,對(duì)抗性樣本“3”將分類為得分18.703的類別。
表1 對(duì)抗樣本“2”→“3”的分類分?jǐn)?shù)
深度神經(jīng)網(wǎng)絡(luò)的變換器將原始樣本x∈X和目標(biāo)類yi∈Y(1≤i≤n)作為輸入值,并生成變換后的樣本x*作為輸出值。yi是攻擊者為每個(gè)模型Di選擇的目標(biāo)類。多個(gè)模型Di將變換后的樣本x*作為輸入值,并向變換器提供反饋,該反饋是分類的結(jié)果。
本文方案的目標(biāo)是生成多目標(biāo)對(duì)抗性樣本x*,其被多個(gè)模型Di中的每一個(gè)錯(cuò)誤分類為每個(gè)目標(biāo)類別yi,同時(shí)最小化計(jì)算原始樣本x的像素距離。在數(shù)學(xué)表達(dá)式中,Di的運(yùn)算函數(shù)分別由fi(x)(1≤i≤n)表示。給定預(yù)訓(xùn)練模型Di、原始樣本x∈X和目標(biāo)類yi,這是一個(gè)生成多目標(biāo)對(duì)抗性樣本x*的優(yōu)化問題:
(1)
式中:L(·)是原始樣本x和多目標(biāo)對(duì)抗性樣本x*。
為了實(shí)現(xiàn)這一目標(biāo),該過程包括兩個(gè)步驟:創(chuàng)建預(yù)訓(xùn)練模型Di和生成多目標(biāo)對(duì)抗性樣本x*。首先,模型Di通過學(xué)習(xí)過程將原始樣本x將其正確分類為其原始類yorg:
fi(x)=yorg∈Y
(2)
式中:yorg是原始類。在實(shí)驗(yàn)中,訓(xùn)練模型Di對(duì)原始樣本進(jìn)行分類時(shí),其準(zhǔn)確度可以達(dá)到99%。
其次,變換器接受原始樣本x和目標(biāo)類別yi作為輸入值,并生成變換后的樣本x*。在這項(xiàng)研究中,修改了變壓器架構(gòu),x*被定義為:
(3)
式中:w用作調(diào)整項(xiàng)以最佳地最小化梯度;tanh用于軟化梯度。模型Di的x*的分類損失返回到變換器。然后變換器通過上面的迭代過程更新變換的示例x*,以計(jì)算總損耗lossT并且最小化總損耗lossT。lossT定義為:
(4)
式中:lossdistortion是變換樣本的失真;lossi是Di的分類損失;ci是模型Di的損失權(quán)重。損失權(quán)重的初始值是1。lossdistortion是原始樣本x和變換的樣本x*之間的距離。
(5)
(6)
式中:gi(k)=max{Zi(k)j:j≠yi}-Zi(k)yi,其中Zi是模型Di預(yù)測類的概率。通過最優(yōu)化最小化損失lossi,fi(x*)的預(yù)測具有比其他類別更高的預(yù)測目標(biāo)類別yi的概率。
算法1在變換器中生成一個(gè)多目標(biāo)對(duì)抗性樣本
輸入:原始樣本x,目標(biāo)類別yi(1≤i≤n),迭代次數(shù)r,損失權(quán)重ci。
對(duì)目標(biāo)對(duì)抗性樣本生成:
w←0
t←yi
x*←x
Forrstep do
loss3←loss1+loss2
通過最小化loss3的梯度更新w
End for
Returnx*
多目標(biāo)分配模型可以使用智能優(yōu)化算法進(jìn)行求解。蟻群算法是一種基于種群尋優(yōu)的啟發(fā)式智能優(yōu)化算法,利用蟻群中螞蟻間互相交流學(xué)習(xí)的正反饋原理保證了算法的收斂性和尋優(yōu)速度[14-15]。借鑒蟻群算法解決問題的思路,設(shè)計(jì)面向?qū)官Y源多目標(biāo)分配的蟻群算法,并改進(jìn)蟻群算法流程,以求解多目標(biāo)分配模型。算法實(shí)現(xiàn)步驟如下:
(1) 隨機(jī)生成初始蟻群POP,種群數(shù)為N,求出目標(biāo)函數(shù)值fi(x),i=1,2,…,J。
(2) 初始化外部集合BP,即Xf={x∈POP|e(x)≤0},BP={x∈Xf|?x′∈Xf,有x′ (3) 設(shè)置迭代次數(shù)NC=0。 (4) 令i=1。 (5) 隨機(jī)產(chǎn)生一個(gè)[0, 1]范圍內(nèi)的隨機(jī)數(shù)p,當(dāng)p≤p0時(shí),對(duì)螞蟻i用基于全局最有經(jīng)驗(yàn)指導(dǎo)的方式尋優(yōu);當(dāng)p>p0時(shí),使用信息素交流方式尋優(yōu)。 (6) 在可行域內(nèi)移動(dòng)螞蟻i,并在最終位置上加入隨機(jī)擾動(dòng)因子φ0,再次評(píng)價(jià)螞蟻i,求得目標(biāo)函數(shù)值以及約束函數(shù)值。 (7) 更新BP,并刪除BP中被i所支配的解。 (8)i=i+1,如果i≤N,則轉(zhuǎn)至(5)。 (9)NC=NC+1,如果NC≤NCMax,則轉(zhuǎn)至(4);否則,算法結(jié)束。 通過實(shí)驗(yàn)展示一種生成多目標(biāo)對(duì)抗性樣本,該樣本被多個(gè)模型中的每個(gè)模型錯(cuò)誤分類為每個(gè)目標(biāo)類,同時(shí)能夠最小化原始樣本的計(jì)算像素距離。在實(shí)驗(yàn)中使用具有Xeon E5-2609 1.7 GHz處理器的服務(wù)器。 實(shí)驗(yàn)采用MNIST數(shù)據(jù)集,它是一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)集,包含從0到9的手寫數(shù)字圖像。實(shí)驗(yàn)方法為對(duì)Di(1≤i≤n)進(jìn)行預(yù)訓(xùn)練并生成多目標(biāo)對(duì)抗樣本。 Di是常見的卷積神經(jīng)網(wǎng)絡(luò)。為了有足夠的方法訓(xùn)練多個(gè)模型Di,使用了60 000個(gè)訓(xùn)練數(shù)據(jù)樣本。不失一般性,令實(shí)驗(yàn)中模型數(shù)量n=5。通過學(xué)習(xí)不同的訓(xùn)練數(shù)據(jù)創(chuàng)建了若干個(gè)Di的模型,同時(shí)保持原始樣本的準(zhǔn)確度超過99%。在使用10 000個(gè)測試數(shù)據(jù)的實(shí)驗(yàn)結(jié)果中,Di正確地將原始樣本分類到原始類別中,準(zhǔn)確度超過99%。 將Adam算法作為優(yōu)化器來生成多目標(biāo)對(duì)抗性樣本,并使總損失最小化,參照文獻(xiàn)[16]中所提參數(shù)設(shè)置方法,設(shè)定學(xué)習(xí)率為1×10-2,初始常數(shù)為1×10-3。對(duì)于給定次數(shù)的迭代,變換器更新變換后的樣本將其提供給模型Di,并從這些模型接收反饋。在迭代集合結(jié)束時(shí),具有目標(biāo)針對(duì)性的攻擊成功。使用所需迭代次數(shù)、人類識(shí)別度和失真量來評(píng)估變換后的樣本x*。使用均方誤差將失真測量修改后的樣本與原始樣本之間的像素距離縮小。 實(shí)驗(yàn)結(jié)果展示了多目標(biāo)對(duì)抗性樣本的圖像、每個(gè)目標(biāo)類的失真、多目標(biāo)對(duì)抗性樣本的類別得分、可伸縮性分析和多個(gè)目標(biāo)類的信息。 不失一般性,以模型D1和D2為例進(jìn)行相關(guān)結(jié)果分析與說明。對(duì)于模型D1,目標(biāo)類別的得分“0”(5.09)略高于原始類(5.03)。對(duì)于模型D2,目標(biāo)類別“8”(5.08)的得分略高于原始類別(5.03)的得分。為了減少多目標(biāo)對(duì)抗性示例的失真,該結(jié)果表明多目標(biāo)對(duì)抗性樣本已經(jīng)被修改,直到模型A和B的每個(gè)目標(biāo)類別的得分高于原始類別的得分。 為了分析多目標(biāo)對(duì)抗性樣本的可擴(kuò)展性,每組模型有900個(gè)隨機(jī)多目標(biāo)對(duì)抗性示例,針對(duì)其100%目標(biāo)攻擊成功率的平均失真和迭代次數(shù)進(jìn)行分析比較。迭代模式說明,隨著模型數(shù)量的增加,多目標(biāo)對(duì)抗性樣本需要更多的學(xué)習(xí)過程來攻擊多個(gè)模型。另一方面,平均失真的模式表明隨著模型數(shù)量的增加,失真增加,但變化率降低。從圖3和圖4中可以看到,每個(gè)目標(biāo)類的多目標(biāo)對(duì)抗性樣本的失真是不同的。如果攻擊者需要具有最小失真的多目標(biāo)對(duì)抗樣本,則此信息非常有用。 圖3 對(duì)于D2和D1的每個(gè)目標(biāo)類別相對(duì)于原始樣本的平均變化率(1 000次迭代) 圖4 對(duì)于原始樣本“9”,每個(gè)D1和D2模型的目標(biāo)類別的平均變化率 本文提出的深度神經(jīng)網(wǎng)絡(luò)結(jié)合蟻群算法的多目標(biāo)對(duì)抗方法與文獻(xiàn)[6]、文獻(xiàn)[10]提出的多目標(biāo)對(duì)抗方法相比,具有較大的優(yōu)勢。同樣采用2.1節(jié)中數(shù)據(jù)集,表2和表3是采用文獻(xiàn)[6]、文獻(xiàn)[10]方法的多目標(biāo)針對(duì)性對(duì)抗樣本對(duì)于模型D1、D2、D3、D4和D5中的每個(gè)目標(biāo)類的類別得分。表4是本文提出的深度神經(jīng)網(wǎng)絡(luò)結(jié)合蟻群算法的多目標(biāo)對(duì)抗方法中多目標(biāo)對(duì)抗性樣本模型D1、D2、D3、D4和D5中的每個(gè)目標(biāo)類的多目標(biāo)對(duì)抗性樣本的類別得分。通過對(duì)比可以看出,本文方法的得分整體高于文獻(xiàn)[6]和文獻(xiàn)[10]方法,多目標(biāo)對(duì)抗性更好,更具有優(yōu)勢。這是因?yàn)橐胂伻核惴?,利用螞蟻互相交流學(xué)習(xí)的正反饋原理保證算法的收斂性和尋優(yōu)速度,保證方法的全局優(yōu)化性能。 表2 文獻(xiàn)[6]方法對(duì)于模型D1、D2、D3、D4和D5中的每個(gè)目標(biāo)類的類別得分 表3 文獻(xiàn)[10]方法對(duì)于模型D1、D2、D3、D4和D5中的每個(gè)目標(biāo)類的類別得分 表4 本文方法中多目標(biāo)對(duì)抗性樣本模型D1、D2、D3、D4和D5中的每個(gè)目標(biāo)類的類別得分 本文提出一種深度神經(jīng)網(wǎng)絡(luò)結(jié)合蟻群算法躲避攻擊的多目標(biāo)對(duì)抗方法。實(shí)驗(yàn)結(jié)果表明,該方法比現(xiàn)有的躲避攻擊多目標(biāo)對(duì)抗方法具有明顯的優(yōu)勢,實(shí)現(xiàn)100%的攻擊成功率。未來的研究方向是繼續(xù)將實(shí)驗(yàn)擴(kuò)展到其他標(biāo)準(zhǔn)圖像數(shù)據(jù)集中,并進(jìn)行隱身中的失真與人類感知之間的相關(guān)性分析。利用軟件方法進(jìn)行全系統(tǒng)的閉環(huán)虛擬現(xiàn)實(shí)仿真,是一項(xiàng)行之有效的方法,它與利用硬件進(jìn)行全系統(tǒng)的仿真相輔相成,未來將對(duì)這方面的工作進(jìn)行更加深入的研究,同時(shí)關(guān)注本文算法對(duì)其他數(shù)據(jù)集的適用性。2 實(shí) 驗(yàn)
2.1 實(shí)驗(yàn)方法
2.2 實(shí)驗(yàn)結(jié)果分析
2.3 實(shí)驗(yàn)結(jié)果對(duì)比
3 結(jié) 語