劉斯杰,張志祥,張喬嘉
(1. 海軍工程大學(xué) 電子工程學(xué)院,湖北 武漢 430033;2.海軍工程大學(xué) 信息安全系,湖北 武漢 430033)
現(xiàn)如今的目標(biāo)檢測算法大多基于深度學(xué)習(xí)技術(shù),而深度學(xué)習(xí)領(lǐng)域安全性問題主要來源于對抗樣本的發(fā)現(xiàn)。Szegedy等提出對抗樣本。研究員發(fā)現(xiàn)在一個圖像樣本上添加一些微小的擾動,會使得深度學(xué)習(xí)模型出現(xiàn)分類錯誤、檢測準(zhǔn)確率降低的問題[1]。隨著Pedro等[2]以及Goodfellow等[3]對對抗樣本的研究和推動,學(xué)術(shù)界對深度學(xué)習(xí)模型魯棒性的研究走向了熱潮。與對抗樣本密切相關(guān)的對抗防御領(lǐng)域成為了研究熱點?,F(xiàn)有的對抗防御方法著重于對抗樣本檢測性防御技術(shù)和對抗樣本魯棒性防御技術(shù)兩個方面。對抗樣本魯棒性防御技術(shù)主要著重于對抗訓(xùn)練[4,5],將生成的對抗樣本加入到原有訓(xùn)練集中進行訓(xùn)練,以此提高模型的魯棒性。然而對抗訓(xùn)練后的模型在不同算法的攻擊下,依然會找到新的對抗樣本使模型失效。
本文將對抗樣本檢測性防御和對抗樣本魯棒性防御思想相結(jié)合,采用非局部均值去噪算法與對抗訓(xùn)練相結(jié)合,提出了NLM-AT(non-local means adversarial train)算法。該算法的思想為:以圖像處理領(lǐng)域的非局部均值去噪算法為基礎(chǔ),NL-means算法是通過圖像的上下文信息去噪,沒有訓(xùn)練網(wǎng)絡(luò)的數(shù)據(jù)、時間開銷。樣本輸入網(wǎng)絡(luò)前,先對其進行去噪,這樣做會降低模型對正常樣本的檢測能力,提升其對對抗樣本的檢測能力;在對抗訓(xùn)練過程中,加入去噪后的正常樣本和對抗樣本,加強模型對去噪圖像特征的學(xué)習(xí)。前者能解決對抗訓(xùn)練模型會被相同攻擊算法攻擊的問題,后者則可以解決去噪算法對正常樣本檢測的不良影響。通過檢測性防御和魯棒性防御的配合,在防御當(dāng)前主流攻擊算法上有較優(yōu)異的效果。
現(xiàn)如今研究人員對對抗攻擊算法進行了多方面的研究,對抗攻擊算法在一級分類下可以分為:全像素攻擊和部分像素攻擊;在二級分類下可以分為:目標(biāo)定向攻擊和目標(biāo)非定向攻擊、黑盒攻擊和白盒攻擊、肉眼可見攻擊和肉眼不可見攻擊[6]。
FGSM(fast gradient sign method)是一種快速梯度符號法[3],屬于白盒攻擊。通過計算模型對輸入樣本的導(dǎo)數(shù),然后用符號函數(shù)得到其具體的梯度方向,接著乘以一個步長,就可以得到擾動噪聲,將擾動噪聲添加在原始樣本上就得到了對抗樣本。
I-FGSM(iterative fast gradient sign method)算法[7]在FGSM算法的基礎(chǔ)上增加了迭代環(huán)節(jié),在FGSM單步得到擾動后,會繼續(xù)將擾動輸入模型,然后重復(fù)FGSM算法的計算步驟,在多次迭代后得到攻擊效果更好的對抗樣本。通過這種方式生成的對抗樣本的遷移性較差,對其它黑盒網(wǎng)絡(luò)模型的攻擊效果弱于FGSM。
PGD(projected gradient descent)算法[4]在I-FGSM的基礎(chǔ)上增加了隨機初始化的步驟,是此方法的變體,它用均勻的噪聲作為初始化使得對抗樣本具有更強的攻擊性,并且模型對這種方法生成的對抗樣本進行對抗訓(xùn)練后會具有更強的防御能力。
為了結(jié)合上述幾種算法的白盒、黑盒攻擊效果,讓對抗樣本在具有良好的白盒攻擊效果下還有較強的遷移性,MI-FGSM(momentum iterative fast gradient sign method)算法[8]在I-FGSM算法的基礎(chǔ)上增加了動量參數(shù),基于動量的迭代來計算擾動。在計算梯度時通過添加動量參數(shù)能夠有效跳出局部極值點,可以產(chǎn)生更具遷移性的對抗樣本。
FGSM算法生成的對抗樣本在白盒攻擊條件下有一定的對抗性,I-FGSM、PGD生成的對抗樣本在白盒攻擊條件下有更強的對抗性,MI-FGSM算法生成的對抗樣本有更強的遷移性,在白盒、黑盒攻擊條件下均有一定的攻擊效果。
2016年,HENDRYCKS等[9]提出了H&G對抗攻擊檢測技術(shù),H&G技術(shù)是通過正常樣本和對抗樣本之間的數(shù)據(jù)差異來進行樣本檢測分類。
2017年,METZEN等[10]提出對抗檢測網(wǎng)絡(luò)(adversary detector network,ADN),ADN是一種二分類神經(jīng)網(wǎng)絡(luò),對正常樣本和對抗樣本的聯(lián)合訓(xùn)練可以使其對兩種樣本進行分類。此網(wǎng)絡(luò)對基于梯度的攻擊也有一個較好的檢測效果。
2018年,MADRY等[4]提出映射梯度下降(projected gradient descent,PGD)方法,該方法在白盒攻擊和黑盒攻擊下都能保持較好的魯棒性,但是其模型本身針對正常樣本的表現(xiàn)無法達到最佳效果。TRAMER等[5]提出綜合性對抗訓(xùn)練,對其它模型生成的對抗樣本也加入到訓(xùn)練集中進行重訓(xùn)練,能夠較為有效地解決對抗訓(xùn)練中出現(xiàn)的過擬合問題。SCHOTT等[11]提出綜合分析方法,是一種基于生成對抗網(wǎng)絡(luò)的方法,學(xué)習(xí)每個分類的非對抗數(shù)據(jù)輸入分布,將對抗樣本數(shù)據(jù)映射到網(wǎng)絡(luò)學(xué)習(xí)到的非對抗數(shù)據(jù)流形中,從而提高模型自身的魯棒性。
2019年,YANG等[12]提出ME-Net方法,此方法是根據(jù)預(yù)設(shè)的概率閾值隨機丟棄圖像樣本中的像素,并使用矩陣估計法對丟棄的像素進行修復(fù),通過破壞擾動結(jié)構(gòu)來預(yù)防對抗樣本的攻擊。
非局部均值算法(NL-means),NL-means是一種濾波算法,圖像中每一個像素的像素值由當(dāng)前像素和周圍給定區(qū)域中的所有像素值進行加權(quán)平均得到,其濾波過程可用式(1)表示
(1)
Ωx是像素x的領(lǐng)域。w(x,y) 表示在圖像v中像素x和像素y的相似度,v(y) 表示像素y的領(lǐng)域。在算法運算的過程中,會預(yù)設(shè)搜索窗口和模板窗口。搜索窗口以目標(biāo)像素為中心,模板窗口在搜索窗口中進行搜索,計算搜索窗口和模板窗口的相似度。對抗攻擊算法按照類別細分可以分為黑盒攻擊與白盒攻擊、全局攻擊與局部攻擊、目標(biāo)定向與目標(biāo)非定向攻擊,這些不同類別的攻擊都是在正常樣本上添加了微小的擾動噪聲。非局部均值算法相比以深度學(xué)習(xí)為核心的去噪算法,沒有訓(xùn)練網(wǎng)絡(luò)的數(shù)據(jù)、時間開銷,該算法可以在樣本全局范圍內(nèi)較好地去除這些噪聲并且保留圖像的一些細節(jié)特征,且該算法是從樣本像素數(shù)據(jù)層面出發(fā)進行去噪,不受對抗攻擊算法的影響,因此對抗攻擊算法無法針對此去噪算法進行攻擊。
對抗防御技術(shù)相對對抗攻擊技術(shù)有一定的滯后性,對抗攻擊算法形式多樣,而且大多對防御算法、模型進行針對性設(shè)計,因此不同攻擊算法所計算出來的擾動具有多樣性,不同擾動之間特征差異較大,像素修改范圍、像素修改量都不一樣。各個維度上特征的巨大差異使得單一防御算法不能有效防御各類對抗攻擊算法的攻擊。而防御領(lǐng)域效果較好地對抗訓(xùn)練技術(shù)也存在同樣的問題,對抗訓(xùn)練是需要依賴數(shù)據(jù)集的,但是即使使用多種對抗樣本數(shù)據(jù)集進行對抗訓(xùn)練,仍然能找到新的對抗攻擊算法對網(wǎng)絡(luò)進行攻擊。
對抗訓(xùn)練技術(shù)泛化性不強的很大原因在于未知來源的對抗樣本具有多樣性,而對抗訓(xùn)練采用的對抗樣本相對于大量的攻擊算法而言有所局限,并且使用過多的對抗樣本數(shù)據(jù)集會成倍地增加對抗訓(xùn)練難度。如果在進入模型檢測前,能盡量保證多種對抗樣本擾動特征的統(tǒng)一,并且保證模型進行對抗訓(xùn)練學(xué)習(xí)到的擾動特征和輸入的擾動特征統(tǒng)一,則模型的魯棒性會有一個較大地增強,能夠較好地防御不同的對抗攻擊。
引入非局部均值去噪算法有幾點優(yōu)勢:
(1)非局部均值去噪算法是在數(shù)據(jù)層面進行噪點去除,對于現(xiàn)實場景的圖像能夠在保證去噪效果的同時保留主要的物體實例特征。
(2)非局部均值去噪算法能夠?qū)Χ喾N分布的噪聲進行去除,去除后圖像保留的特征有很強的相似性,并且和干凈樣本去噪后保留的特征也有相似性,保證了不同對抗樣本上擾動特征的統(tǒng)一,有利于網(wǎng)絡(luò)模型的檢測、分類。
(3)采用去噪后的對抗樣本進行對抗訓(xùn)練,保證了模型學(xué)習(xí)到的擾動特征和輸入樣本的擾動特征一致,提高了模型對對抗樣本檢測、分類的能力。
由上述分析可知NLM-AT算法對于多種攻擊算法的防御能力優(yōu)于單一的對抗訓(xùn)練算法,泛化能力較強。
在深度神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測任務(wù)中,訓(xùn)練網(wǎng)絡(luò)需要最小化損失函數(shù)以提高網(wǎng)絡(luò)的檢測效果。最小化損失函數(shù)可寫成如下格式
(2)
對抗訓(xùn)練的思想就是將對抗樣本加入原有訓(xùn)練集中進行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,提升神經(jīng)網(wǎng)絡(luò)對對抗樣本的檢測能力。因此對抗訓(xùn)練的最小化損失函數(shù)可以寫成如下格式
(3)
θ為網(wǎng)絡(luò)模型參數(shù),x為輸入樣本,y為輸入樣本標(biāo)簽,D為訓(xùn)練集,Δx為對抗擾動,Ω為擾動空間,L(x,y;θ) 為輸入樣本的損失函數(shù)值。其中Δx有幾種常見的計算方式
Δx=N(0,η2)
(4)
(5)
(6)
本文使用4種主流的對抗攻擊算法FGSM、I-FGSM、PGD、MI-FGSM進行對抗樣本的構(gòu)建。FGSM算法如下
(7)
I-FGSM算法如下
(8)
MI-FGSM算法如下
(9)
(10)
NLM-AT算法整體對抗訓(xùn)練過程可以寫成如下格式
(11)
(12)
x1∈D1,x1∈D2,x1∈D3,x1∈D4
(13)
D=D1∪D2∪D3∪D4
(14)
L1~L4分別為4種對抗攻擊算法算出的損失函數(shù)值,將對抗訓(xùn)練訓(xùn)練集D按其大小進行四等分為D1~D4。 Δx1~Δx4分別為4種攻擊算法構(gòu)成的對抗擾動。
該算法將對抗訓(xùn)練中對抗樣本部分等量替換為去噪后的對抗樣本,在訓(xùn)練成本上和傳統(tǒng)對抗訓(xùn)練相當(dāng),由于去噪后的對抗樣本中物體實例特征更加明顯,該算法的訓(xùn)練過程還會小幅提升模型對正常樣本的學(xué)習(xí)效果。
本節(jié)描述了基于對抗訓(xùn)練和非局部均值去噪的對抗樣本防御算法在網(wǎng)絡(luò)模型訓(xùn)練過程中的主要步驟。首先計算輸入樣本的梯度并生成對抗樣本,然后將對抗樣本進行非局部均值去噪并加入到訓(xùn)練集中訓(xùn)練網(wǎng)絡(luò)模型,直到網(wǎng)絡(luò)收斂。
訓(xùn)練階段的具體步驟如下:
算法模型如圖1所示。
圖1 NLM-AT算法模型
本算法從事前、事后兩個方面對防御模型進行構(gòu)建,事前防御為對抗攻擊檢測性防御,指對抗樣本在進入目標(biāo)檢測網(wǎng)絡(luò)之前進行圖像樣本去噪,最大可能地去除對抗樣本上的擾動,并保留圖像樣本中物體實例的特征,確保不同對抗樣本在進入目標(biāo)檢測網(wǎng)絡(luò)的時候具有擾動特征的相似性。事后防御指對抗攻擊魯棒性防御,通過更改對抗訓(xùn)練使用的樣本,將普通對抗樣本更換為去噪后的對抗樣本,用其訓(xùn)練目標(biāo)檢測網(wǎng)絡(luò),增強模型對去噪樣本的檢測能力,保證目標(biāo)檢測網(wǎng)絡(luò)學(xué)到的樣本特征與輸入特征具有相似性。前后配合來保證對對抗樣本中物體實例的正確檢測,確保檢測任務(wù)在正常樣本、對抗樣本的輸入下都能正常完成。
在測試階段,在正常樣本的測試集上分別使用FGSM、I-FGSM、MI-FGSM、PGD這4種對抗攻擊算法添加對抗擾動,生成5份相同數(shù)量、不同類別的測試集,分別測試防御算法在正常樣本和4種對抗樣本下的檢測效果。
NLM-AT偽代碼如算法1所示。
算法1:NLM-AT
輸入:訓(xùn)練集X,訓(xùn)練集標(biāo)簽Y,網(wǎng)絡(luò)參數(shù)θ,學(xué)習(xí)率τ,訓(xùn)練輪次N,批次大小M。
輸出:訓(xùn)練完畢的網(wǎng)絡(luò)。
(1)for epoch=1,2,…,Ndo
(2) for batchB?XC?Ydo
(3) fori=1,2,…,X/Mdo
(4)li←(xi,yi)~B,CL(xi,yi;θ)
(6)x′i←F(gi)
/*F()為4種對抗攻擊算法,x′i為4種對抗樣本*/
(8)l′i←L(x′i,y;θ)
(10)θ←θ-τ·g′i
(11) end for
(12) end for
(13) end for
對于NLM-AT算法,使用k-means聚類對11 725張樣本的目標(biāo)框進行聚類,提取出9個錨框尺寸9×14,14×28,22×47,23×10,37×18,49×79,68×31,133×163,353×358。設(shè)置訓(xùn)練每批次大小為8,訓(xùn)練周期為60。初始學(xué)習(xí)率為0.001,最終學(xué)習(xí)率設(shè)置為0.000 001,采用學(xué)習(xí)率預(yù)熱策略,學(xué)習(xí)率在剛開始的幾個周期先逐漸增大至初始學(xué)習(xí)率,然后逐漸衰減,直到訓(xùn)練結(jié)束學(xué)習(xí)率衰減到最終學(xué)習(xí)率。擾動量ε設(shè)置為1/255、2/255、4/255,傳統(tǒng)對抗訓(xùn)練標(biāo)記為MADRY算法,對于MADRY、ME-Net算法,采用與NLM-AT相同的參數(shù)配置。在conf_loss(置信度損失函數(shù))、giou_loss(廣義交并比損失函數(shù))、prob_loss(預(yù)測損失函數(shù))、total_loss(總損失函數(shù))4個損失函數(shù)上進行收斂學(xué)習(xí)。使用FGSM、I-FGSM、MI-FGSM、PGD攻擊算法進行對比實驗。
實驗使用的硬件配置為CPU Intel i7-7700K 4.2 GHz,GPU NVIDIA GeForce GTX1080Ti,11 GB顯存,32 GB內(nèi)存;軟件配置為Windows10專業(yè)版,Pycharm2020.2.3,anaconda4.8.3,Tensorflow2.4.1,python3.7.9。
訓(xùn)練結(jié)果使用評價指標(biāo)均值平均精度mAP(mean average precision)進行評價。
3.2.1 NLM-AT算法防御效果
表1展示了NLM-AT算法在FGSM、I-FGSM、MI-FGSM、PGD種攻擊算法,擾動量ε分別采用1/255、2/255、4/255下的防御效果。
表1 NLM-AT在不同攻擊下的mAP/%
由表1可以看出該算法對不同擾動程度、不同攻擊算法下均能保持良好的魯棒性,有較好的防御效果。
圖2以可視化的方式展示了該算法的防御效果。左側(cè)一列是目標(biāo)檢測模型對正常樣本的檢測效果,中間一列是目標(biāo)檢測模型對對抗樣本的檢測效果,右側(cè)一列是通過NLM-AT算法進行防御的目標(biāo)檢測模型對對抗樣本的檢測效果。
圖2 防御效果
3.2.2 NLM-AT算法與其它算法對比實驗
表2展示了NLM-AT算法和傳統(tǒng)對抗訓(xùn)練算法在訓(xùn)練集上訓(xùn)練一個周期的時間對比及總時間成本對比,由于兩者在對抗樣本生成數(shù)量的策略上一致,模型學(xué)習(xí)到的樣本總量是一樣的,所以NLM-AT算法與傳統(tǒng)對抗訓(xùn)練算法時間相當(dāng)。
表3展示了不同算法對正常樣本和對抗樣本的防御效果,此處實驗的對抗樣本為隨機抽取測試集中的對抗樣本。無防御策略構(gòu)建的目標(biāo)檢測模型標(biāo)為normal方法。相比已有方法,NLM-AT算法對正常樣本和對抗樣本的檢測都有一個較好的mAP。
表2 NLM-AT與MADRY時間成本對比
表3 不同算法對兩類樣本的mAP/%
表4、表5、表6展示了不同算法在FGSM、I-FGSM、MI-FGSM、PGD種攻擊算法,擾動量ε分別采用1/255、2/255、4/255下的防御效果。
使用4種攻擊算法重新進行超參數(shù)設(shè)置并對模型進行再次攻擊,以考量不同方法在不同攻擊下的防御效果。表7展示了不同算法在此攻擊條件下的防御效果。
表4 不同算法在不同攻擊下的mAP(ε=1/255)/%
表5 不同算法在不同攻擊下的mAP(ε=2/255)/%
表6 不同算法在不同攻擊下的mAP(ε=4/255)/%
表7 不同算法在針對攻擊下的mAP(ε=6/255)/%
實驗結(jié)果表明,NLM-AT方法在不同類型、不同擾動程度的攻擊下,對正常樣本的mAP保持在74.95%。對于不同的擾動程度,在FGSM攻擊下,模型mAP分別提高了33.31%、33.3%、33.29%。在I-FGSM攻擊下,分別提高了66.95%、67.65%、67.4%。在MI-FGSM攻擊下,分別提高了60.75、61.26%、60.58%。在PGD攻擊下,分別提高了66.89%、67.6%、67.32%。與其它方法相比,NLM-AT在不同攻擊條件下的mAP均高于其它方法。
由表7可以看出當(dāng)針對訓(xùn)練完畢的網(wǎng)絡(luò)模型進行再次攻擊時,NLM-AT在不同攻擊下的mAP依然高于其它方法,展示了該算法在白盒攻擊條件下有著優(yōu)異的魯棒性。
為了更加廣泛深入地對算法的魯棒性進行驗證。選出4種算法中攻擊效果最強的MI-FGSM算法進行實驗,通過更改擾動步長α、迭代次數(shù)k、擾動量ε進行測試。對抗攻擊使用二范數(shù)和無窮范數(shù)進行測試,實驗中的輸入樣本尺寸均為416×416。
(1)不同步長的攻擊對防御算法的影響。圖3展示了在迭代次數(shù)為10,無窮范數(shù)和二范數(shù)攻擊擾動ε均為4/255時,步長對防御模型mAP的影響。圖3(a)、圖3(b)分別是無窮范數(shù)攻擊和二范數(shù)攻擊下4種防御模型的防御效果。由圖中可以看到隨著步長增大,各個方法的防御能力都有所下降,但是NLM-AT在此攻擊條件下能夠保持一個較好的防御效果。
(2)不同迭代次數(shù)對防御算法的影響。圖4展示了在步長為ε/k, 無窮范數(shù)和二范數(shù)攻擊擾動ε均為4/255時,迭代次數(shù)對防御模型mAP的影響。圖4(a)、圖4(b)分別是無窮范數(shù)攻擊和二范數(shù)攻擊下4種防御模型的防御效果。由圖中可以看出雖然在迭代次數(shù)的增加下,各個方法的防御效果依然有所下降,但NLM-AT與傳統(tǒng)對抗訓(xùn)練方法在無窮范數(shù)的攻擊下基本保持一致的防御效果,并且優(yōu)于其它兩種方法,且在二范數(shù)攻擊下優(yōu)于其它3種方法。
圖3 不同步長對防御模型mAP的影響
圖4 不同迭代次數(shù)對防御模型mAP的影響
圖5 不同擾動量對防御模型mAP的影響
(3)不同擾動量對防御算法的影響。圖5展示了在MI-FGSM攻擊條件下,迭代次數(shù)為10,步長為ε/k時不同擾動量對防御模型的影響。兩種范數(shù)攻擊的擾動量范圍均設(shè)置為最小7/255,最大26/255。圖5(a)、圖5(b)分別是無窮范數(shù)攻擊和二范數(shù)攻擊下4種防御模型的防御效果。由圖中可以看出無窮范數(shù)的MI-FGSM攻擊下,NLM-AT與傳統(tǒng)對抗訓(xùn)練方法的防御效果基本能夠保持一致,并且優(yōu)于其它兩種方法;在二范數(shù)的MI-FGSM攻擊下優(yōu)于其它3種方法。
實驗基于YOLOv3目標(biāo)檢測模型,在DIOR數(shù)據(jù)集上使用4種對抗攻擊算法FGSM、I-FGSM、MI-FGSM、PGD驗證了提出的NLM-AT算法的防御效果。從時間成本上分析了該算法和傳統(tǒng)對抗訓(xùn)練算法的區(qū)別。對比其它算法,分析了該算法對于正常樣本和對抗樣本的檢測效果,在提高了對抗樣本防御效果的情況下,保持了對正常樣本的檢測效果;分析了在不同擾動程度情況下該算法的防御效果,相同條件設(shè)置下NLM-AT均優(yōu)與其它算法;分析了在模型訓(xùn)練完畢后進行再次攻擊的情況下算法的魯棒性,通過對幾種算法訓(xùn)練的模型進行再次攻擊,考量了NLM-AT的魯棒性??偟膩碚f,針對目標(biāo)檢測模型,NLM-AT有效增強了模型對對抗樣本的防御能力。
針對目標(biāo)檢測模型易遭受對抗樣本攻擊的問題,本文結(jié)合了檢測性防御和魯棒性防御思想,提出了NLM-AT算法。通過在DIOR數(shù)據(jù)集上開展廣泛的實驗,驗證了該算法對FGSM、I-FGSM、MI-FGSM、PGD這4類攻擊均有優(yōu)異的防御效果。即使針對訓(xùn)練后的模型進行再次攻擊,該算法依然能夠保持良好的防御能力,表明該算法對新類型的對抗樣本也有較強的魯棒性。綜合來說,NLM-AT算法有效地提高了目標(biāo)檢測模型對對抗樣本的檢測能力。下一步將優(yōu)化算法結(jié)構(gòu)來進一步提高算法的防御能力。