劉斯杰,張志祥,張喬嘉
(1. 海軍工程大學 電子工程學院,湖北 武漢 430033;2.海軍工程大學 信息安全系,湖北 武漢 430033)
現如今的目標檢測算法大多基于深度學習技術,而深度學習領域安全性問題主要來源于對抗樣本的發現。Szegedy等提出對抗樣本。研究員發現在一個圖像樣本上添加一些微小的擾動,會使得深度學習模型出現分類錯誤、檢測準確率降低的問題[1]。隨著Pedro等[2]以及Goodfellow等[3]對對抗樣本的研究和推動,學術界對深度學習模型魯棒性的研究走向了熱潮。與對抗樣本密切相關的對抗防御領域成為了研究熱點。現有的對抗防御方法著重于對抗樣本檢測性防御技術和對抗樣本魯棒性防御技術兩個方面。對抗樣本魯棒性防御技術主要著重于對抗訓練[4,5],將生成的對抗樣本加入到原有訓練集中進行訓練,以此提高模型的魯棒性。然而對抗訓練后的模型在不同算法的攻擊下,依然會找到新的對抗樣本使模型失效。
本文將對抗樣本檢測性防御和對抗樣本魯棒性防御思想相結合,采用非局部均值去噪算法與對抗訓練相結合,提出了NLM-AT(non-local means adversarial train)算法。該算法的思想為:以圖像處理領域的非局部均值去噪算法為基礎,NL-means算法是通過圖像的上下文信息去噪,沒有訓練網絡的數據、時間開銷。樣本輸入網絡前,先對其進行去噪,這樣做會降低模型對正常樣本的檢測能力,提升其對對抗樣本的檢測能力;在對抗訓練過程中,加入去噪后的正常樣本和對抗樣本,加強模型對去噪圖像特征的學習。前者能解決對抗訓練模型會被相同攻擊算法攻擊的問題,后者則可以解決去噪算法對正常樣本檢測的不良影響。通過檢測性防御和魯棒性防御的配合,在防御當前主流攻擊算法上有較優異的效果。
現如今研究人員對對抗攻擊算法進行了多方面的研究,對抗攻擊算法在一級分類下可以分為:全像素攻擊和部分像素攻擊;在二級分類下可以分為:目標定向攻擊和目標非定向攻擊、黑盒攻擊和白盒攻擊、肉眼可見攻擊和肉眼不可見攻擊[6]。
FGSM(fast gradient sign method)是一種快速梯度符號法[3],屬于白盒攻擊。通過計算模型對輸入樣本的導數,然后用符號函數得到其具體的梯度方向,接著乘以一個步長,就可以得到擾動噪聲,將擾動噪聲添加在原始樣本上就得到了對抗樣本。
I-FGSM(iterative fast gradient sign method)算法[7]在FGSM算法的基礎上增加了迭代環節,在FGSM單步得到擾動后,會繼續將擾動輸入模型,然后重復FGSM算法的計算步驟,在多次迭代后得到攻擊效果更好的對抗樣本。通過這種方式生成的對抗樣本的遷移性較差,對其它黑盒網絡模型的攻擊效果弱于FGSM。
PGD(projected gradient descent)算法[4]在I-FGSM的基礎上增加了隨機初始化的步驟,是此方法的變體,它用均勻的噪聲作為初始化使得對抗樣本具有更強的攻擊性,并且模型對這種方法生成的對抗樣本進行對抗訓練后會具有更強的防御能力。
為了結合上述幾種算法的白盒、黑盒攻擊效果,讓對抗樣本在具有良好的白盒攻擊效果下還有較強的遷移性,MI-FGSM(momentum iterative fast gradient sign method)算法[8]在I-FGSM算法的基礎上增加了動量參數,基于動量的迭代來計算擾動。在計算梯度時通過添加動量參數能夠有效跳出局部極值點,可以產生更具遷移性的對抗樣本。
FGSM算法生成的對抗樣本在白盒攻擊條件下有一定的對抗性,I-FGSM、PGD生成的對抗樣本在白盒攻擊條件下有更強的對抗性,MI-FGSM算法生成的對抗樣本有更強的遷移性,在白盒、黑盒攻擊條件下均有一定的攻擊效果。
2016年,HENDRYCKS等[9]提出了H&G對抗攻擊檢測技術,H&G技術是通過正常樣本和對抗樣本之間的數據差異來進行樣本檢測分類。
2017年,METZEN等[10]提出對抗檢測網絡(adversary detector network,ADN),ADN是一種二分類神經網絡,對正常樣本和對抗樣本的聯合訓練可以使其對兩種樣本進行分類。此網絡對基于梯度的攻擊也有一個較好的檢測效果。
2018年,MADRY等[4]提出映射梯度下降(projected gradient descent,PGD)方法,該方法在白盒攻擊和黑盒攻擊下都能保持較好的魯棒性,但是其模型本身針對正常樣本的表現無法達到最佳效果。TRAMER等[5]提出綜合性對抗訓練,對其它模型生成的對抗樣本也加入到訓練集中進行重訓練,能夠較為有效地解決對抗訓練中出現的過擬合問題。SCHOTT等[11]提出綜合分析方法,是一種基于生成對抗網絡的方法,學習每個分類的非對抗數據輸入分布,將對抗樣本數據映射到網絡學習到的非對抗數據流形中,從而提高模型自身的魯棒性。
2019年,YANG等[12]提出ME-Net方法,此方法是根據預設的概率閾值隨機丟棄圖像樣本中的像素,并使用矩陣估計法對丟棄的像素進行修復,通過破壞擾動結構來預防對抗樣本的攻擊。
非局部均值算法(NL-means),NL-means是一種濾波算法,圖像中每一個像素的像素值由當前像素和周圍給定區域中的所有像素值進行加權平均得到,其濾波過程可用式(1)表示
(1)
Ωx是像素x的領域。w(x,y) 表示在圖像v中像素x和像素y的相似度,v(y) 表示像素y的領域。在算法運算的過程中,會預設搜索窗口和模板窗口。搜索窗口以目標像素為中心,模板窗口在搜索窗口中進行搜索,計算搜索窗口和模板窗口的相似度。對抗攻擊算法按照類別細分可以分為黑盒攻擊與白盒攻擊、全局攻擊與局部攻擊、目標定向與目標非定向攻擊,這些不同類別的攻擊都是在正常樣本上添加了微小的擾動噪聲。非局部均值算法相比以深度學習為核心的去噪算法,沒有訓練網絡的數據、時間開銷,該算法可以在樣本全局范圍內較好地去除這些噪聲并且保留圖像的一些細節特征,且該算法是從樣本像素數據層面出發進行去噪,不受對抗攻擊算法的影響,因此對抗攻擊算法無法針對此去噪算法進行攻擊。
對抗防御技術相對對抗攻擊技術有一定的滯后性,對抗攻擊算法形式多樣,而且大多對防御算法、模型進行針對性設計,因此不同攻擊算法所計算出來的擾動具有多樣性,不同擾動之間特征差異較大,像素修改范圍、像素修改量都不一樣。各個維度上特征的巨大差異使得單一防御算法不能有效防御各類對抗攻擊算法的攻擊。而防御領域效果較好地對抗訓練技術也存在同樣的問題,對抗訓練是需要依賴數據集的,但是即使使用多種對抗樣本數據集進行對抗訓練,仍然能找到新的對抗攻擊算法對網絡進行攻擊。
對抗訓練技術泛化性不強的很大原因在于未知來源的對抗樣本具有多樣性,而對抗訓練采用的對抗樣本相對于大量的攻擊算法而言有所局限,并且使用過多的對抗樣本數據集會成倍地增加對抗訓練難度。如果在進入模型檢測前,能盡量保證多種對抗樣本擾動特征的統一,并且保證模型進行對抗訓練學習到的擾動特征和輸入的擾動特征統一,則模型的魯棒性會有一個較大地增強,能夠較好地防御不同的對抗攻擊。
引入非局部均值去噪算法有幾點優勢:
(1)非局部均值去噪算法是在數據層面進行噪點去除,對于現實場景的圖像能夠在保證去噪效果的同時保留主要的物體實例特征。
(2)非局部均值去噪算法能夠對多種分布的噪聲進行去除,去除后圖像保留的特征有很強的相似性,并且和干凈樣本去噪后保留的特征也有相似性,保證了不同對抗樣本上擾動特征的統一,有利于網絡模型的檢測、分類。
(3)采用去噪后的對抗樣本進行對抗訓練,保證了模型學習到的擾動特征和輸入樣本的擾動特征一致,提高了模型對對抗樣本檢測、分類的能力。
由上述分析可知NLM-AT算法對于多種攻擊算法的防御能力優于單一的對抗訓練算法,泛化能力較強。
在深度神經網絡的目標檢測任務中,訓練網絡需要最小化損失函數以提高網絡的檢測效果。最小化損失函數可寫成如下格式

(2)
對抗訓練的思想就是將對抗樣本加入原有訓練集中進行神經網絡的訓練,提升神經網絡對對抗樣本的檢測能力。因此對抗訓練的最小化損失函數可以寫成如下格式
(3)
θ為網絡模型參數,x為輸入樣本,y為輸入樣本標簽,D為訓練集,Δx為對抗擾動,Ω為擾動空間,L(x,y;θ) 為輸入樣本的損失函數值。其中Δx有幾種常見的計算方式
Δx=N(0,η2)
(4)
(5)

(6)
本文使用4種主流的對抗攻擊算法FGSM、I-FGSM、PGD、MI-FGSM進行對抗樣本的構建。FGSM算法如下
(7)

I-FGSM算法如下

(8)

MI-FGSM算法如下
(9)
(10)

NLM-AT算法整體對抗訓練過程可以寫成如下格式
(11)

(12)
x1∈D1,x1∈D2,x1∈D3,x1∈D4
(13)
D=D1∪D2∪D3∪D4
(14)
L1~L4分別為4種對抗攻擊算法算出的損失函數值,將對抗訓練訓練集D按其大小進行四等分為D1~D4。 Δx1~Δx4分別為4種攻擊算法構成的對抗擾動。
該算法將對抗訓練中對抗樣本部分等量替換為去噪后的對抗樣本,在訓練成本上和傳統對抗訓練相當,由于去噪后的對抗樣本中物體實例特征更加明顯,該算法的訓練過程還會小幅提升模型對正常樣本的學習效果。
本節描述了基于對抗訓練和非局部均值去噪的對抗樣本防御算法在網絡模型訓練過程中的主要步驟。首先計算輸入樣本的梯度并生成對抗樣本,然后將對抗樣本進行非局部均值去噪并加入到訓練集中訓練網絡模型,直到網絡收斂。
訓練階段的具體步驟如下:




算法模型如圖1所示。

圖1 NLM-AT算法模型
本算法從事前、事后兩個方面對防御模型進行構建,事前防御為對抗攻擊檢測性防御,指對抗樣本在進入目標檢測網絡之前進行圖像樣本去噪,最大可能地去除對抗樣本上的擾動,并保留圖像樣本中物體實例的特征,確保不同對抗樣本在進入目標檢測網絡的時候具有擾動特征的相似性。事后防御指對抗攻擊魯棒性防御,通過更改對抗訓練使用的樣本,將普通對抗樣本更換為去噪后的對抗樣本,用其訓練目標檢測網絡,增強模型對去噪樣本的檢測能力,保證目標檢測網絡學到的樣本特征與輸入特征具有相似性。前后配合來保證對對抗樣本中物體實例的正確檢測,確保檢測任務在正常樣本、對抗樣本的輸入下都能正常完成。
在測試階段,在正常樣本的測試集上分別使用FGSM、I-FGSM、MI-FGSM、PGD這4種對抗攻擊算法添加對抗擾動,生成5份相同數量、不同類別的測試集,分別測試防御算法在正常樣本和4種對抗樣本下的檢測效果。
NLM-AT偽代碼如算法1所示。
算法1:NLM-AT
輸入:訓練集X,訓練集標簽Y,網絡參數θ,學習率τ,訓練輪次N,批次大小M。
輸出:訓練完畢的網絡。
(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張樣本的目標框進行聚類,提取出9個錨框尺寸9×14,14×28,22×47,23×10,37×18,49×79,68×31,133×163,353×358。設置訓練每批次大小為8,訓練周期為60。初始學習率為0.001,最終學習率設置為0.000 001,采用學習率預熱策略,學習率在剛開始的幾個周期先逐漸增大至初始學習率,然后逐漸衰減,直到訓練結束學習率衰減到最終學習率。擾動量ε設置為1/255、2/255、4/255,傳統對抗訓練標記為MADRY算法,對于MADRY、ME-Net算法,采用與NLM-AT相同的參數配置。在conf_loss(置信度損失函數)、giou_loss(廣義交并比損失函數)、prob_loss(預測損失函數)、total_loss(總損失函數)4個損失函數上進行收斂學習。使用FGSM、I-FGSM、MI-FGSM、PGD攻擊算法進行對比實驗。
實驗使用的硬件配置為CPU Intel i7-7700K 4.2 GHz,GPU NVIDIA GeForce GTX1080Ti,11 GB顯存,32 GB內存;軟件配置為Windows10專業版,Pycharm2020.2.3,anaconda4.8.3,Tensorflow2.4.1,python3.7.9。
訓練結果使用評價指標均值平均精度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以可視化的方式展示了該算法的防御效果。左側一列是目標檢測模型對正常樣本的檢測效果,中間一列是目標檢測模型對對抗樣本的檢測效果,右側一列是通過NLM-AT算法進行防御的目標檢測模型對對抗樣本的檢測效果。

圖2 防御效果
3.2.2 NLM-AT算法與其它算法對比實驗
表2展示了NLM-AT算法和傳統對抗訓練算法在訓練集上訓練一個周期的時間對比及總時間成本對比,由于兩者在對抗樣本生成數量的策略上一致,模型學習到的樣本總量是一樣的,所以NLM-AT算法與傳統對抗訓練算法時間相當。
表3展示了不同算法對正常樣本和對抗樣本的防御效果,此處實驗的對抗樣本為隨機抽取測試集中的對抗樣本。無防御策略構建的目標檢測模型標為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種攻擊算法重新進行超參數設置并對模型進行再次攻擊,以考量不同方法在不同攻擊下的防御效果。表7展示了不同算法在此攻擊條件下的防御效果。

表4 不同算法在不同攻擊下的mAP(ε=1/255)/%

表5 不同算法在不同攻擊下的mAP(ε=2/255)/%

表6 不同算法在不同攻擊下的mAP(ε=4/255)/%

表7 不同算法在針對攻擊下的mAP(ε=6/255)/%
實驗結果表明,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可以看出當針對訓練完畢的網絡模型進行再次攻擊時,NLM-AT在不同攻擊下的mAP依然高于其它方法,展示了該算法在白盒攻擊條件下有著優異的魯棒性。
為了更加廣泛深入地對算法的魯棒性進行驗證。選出4種算法中攻擊效果最強的MI-FGSM算法進行實驗,通過更改擾動步長α、迭代次數k、擾動量ε進行測試。對抗攻擊使用二范數和無窮范數進行測試,實驗中的輸入樣本尺寸均為416×416。
(1)不同步長的攻擊對防御算法的影響。圖3展示了在迭代次數為10,無窮范數和二范數攻擊擾動ε均為4/255時,步長對防御模型mAP的影響。圖3(a)、圖3(b)分別是無窮范數攻擊和二范數攻擊下4種防御模型的防御效果。由圖中可以看到隨著步長增大,各個方法的防御能力都有所下降,但是NLM-AT在此攻擊條件下能夠保持一個較好的防御效果。
(2)不同迭代次數對防御算法的影響。圖4展示了在步長為ε/k, 無窮范數和二范數攻擊擾動ε均為4/255時,迭代次數對防御模型mAP的影響。圖4(a)、圖4(b)分別是無窮范數攻擊和二范數攻擊下4種防御模型的防御效果。由圖中可以看出雖然在迭代次數的增加下,各個方法的防御效果依然有所下降,但NLM-AT與傳統對抗訓練方法在無窮范數的攻擊下基本保持一致的防御效果,并且優于其它兩種方法,且在二范數攻擊下優于其它3種方法。

圖3 不同步長對防御模型mAP的影響

圖4 不同迭代次數對防御模型mAP的影響

圖5 不同擾動量對防御模型mAP的影響
(3)不同擾動量對防御算法的影響。圖5展示了在MI-FGSM攻擊條件下,迭代次數為10,步長為ε/k時不同擾動量對防御模型的影響。兩種范數攻擊的擾動量范圍均設置為最小7/255,最大26/255。圖5(a)、圖5(b)分別是無窮范數攻擊和二范數攻擊下4種防御模型的防御效果。由圖中可以看出無窮范數的MI-FGSM攻擊下,NLM-AT與傳統對抗訓練方法的防御效果基本能夠保持一致,并且優于其它兩種方法;在二范數的MI-FGSM攻擊下優于其它3種方法。
實驗基于YOLOv3目標檢測模型,在DIOR數據集上使用4種對抗攻擊算法FGSM、I-FGSM、MI-FGSM、PGD驗證了提出的NLM-AT算法的防御效果。從時間成本上分析了該算法和傳統對抗訓練算法的區別。對比其它算法,分析了該算法對于正常樣本和對抗樣本的檢測效果,在提高了對抗樣本防御效果的情況下,保持了對正常樣本的檢測效果;分析了在不同擾動程度情況下該算法的防御效果,相同條件設置下NLM-AT均優與其它算法;分析了在模型訓練完畢后進行再次攻擊的情況下算法的魯棒性,通過對幾種算法訓練的模型進行再次攻擊,考量了NLM-AT的魯棒性。總的來說,針對目標檢測模型,NLM-AT有效增強了模型對對抗樣本的防御能力。
針對目標檢測模型易遭受對抗樣本攻擊的問題,本文結合了檢測性防御和魯棒性防御思想,提出了NLM-AT算法。通過在DIOR數據集上開展廣泛的實驗,驗證了該算法對FGSM、I-FGSM、MI-FGSM、PGD這4類攻擊均有優異的防御效果。即使針對訓練后的模型進行再次攻擊,該算法依然能夠保持良好的防御能力,表明該算法對新類型的對抗樣本也有較強的魯棒性。綜合來說,NLM-AT算法有效地提高了目標檢測模型對對抗樣本的檢測能力。下一步將優化算法結構來進一步提高算法的防御能力。