葉 斌,葛萬成
(同濟大學,上海 200092)
深度神經(jīng)網(wǎng)絡(luò)在許多計算機視覺任務(wù)中取得了很好的性能,有時候其表現(xiàn)超過了人類[1-3]?;谶@些良好的表現(xiàn),深度神經(jīng)網(wǎng)絡(luò)開始越來越多地應(yīng)用于自動駕駛[4-5]、無人機[6-7]以及機器人[8]等控制系統(tǒng),其中自動駕駛技術(shù)的日趨成熟引起了研究人員的廣泛關(guān)注。深度神經(jīng)網(wǎng)絡(luò)具有強大的特征提取能力,在圖像分類和識別中能夠達到很好的精度。自動駕駛的環(huán)境感知系統(tǒng)依賴于激光雷達技術(shù)、圖像識別以及目標檢測等前沿技術(shù),其中基于深度神經(jīng)網(wǎng)絡(luò)的交通標牌識別是自動駕駛的重要技術(shù)之一。
雖然深度神經(jīng)網(wǎng)絡(luò)在圖像識別上有著極好的性能,但最新的研究表明,深度神經(jīng)網(wǎng)絡(luò)在很大程度上容易受到對抗樣本的攻擊。這些對抗樣本是攻擊者精心選擇的輸入,會導(dǎo)致網(wǎng)絡(luò)改變輸出,且這些經(jīng)過攻擊者精心設(shè)計的對抗樣本通過人眼是無法區(qū)分的[9-10]。攻擊者可以通過使用一些優(yōu)化策略只需對圖像少量像素進行修改,即可得到所需要的對抗樣本。通常的優(yōu)化策略有L-BFGS[9]、FGSM[10]、DeepFool[11]以及PGD[12]等。其他攻擊方法如基于Jacobian 的顯著性映射[13]的攻擊方法是尋找圖像中需要修改的像素,以達到圖像中所需要修改的像素最少。有些對抗樣本已經(jīng)被證實可通過物理打印機打印出來并在現(xiàn)實世界中起作用。Kurakin 等人[14]證明了對抗樣本在打印之后,即使在不同的光線和方位情況下仍然能夠誤導(dǎo)模型的輸出。Sharif 等人[15]研制出了一幅帶有對抗擾動的“眼鏡”,戴上這副眼鏡可以躲過人臉識別系統(tǒng)或者將佩戴者識別成另一個人。
從先前的研究可以看出,對抗樣本在數(shù)字領(lǐng)域是有著較強的攻擊性。但是,在現(xiàn)實的物理世界中,對抗樣本比較脆弱,主要存在于物理場景,面對一些挑戰(zhàn)。例如:現(xiàn)實生活中的物理場景的背景是多變的,攻擊者無法通過控制背景來攻擊;在不同的光線、距離和角度的作用下,對抗擾動會失效;擾動太小無法使圖像傳感器進行捕捉。
自動駕駛的圖像識別系統(tǒng)是保證自動駕駛安全性和可靠性的關(guān)鍵一環(huán)。當攻擊者意圖在真實的交通標志牌上添加擾動時,若成功攻擊圖像識別系統(tǒng),將會造成巨大的安全隱患甚至災(zāi)難。針對對抗樣本的物理挑戰(zhàn)和對抗樣本在自動駕駛領(lǐng)域中的應(yīng)用,本文采用一種添加對抗補丁的方法來實現(xiàn)對交通標志識別模型的攻擊。該方法屬于白盒攻擊,在熟知網(wǎng)絡(luò)模型的結(jié)構(gòu)參數(shù)時生成特定的補丁加入交通標牌的周圍,使得識別器對原本的交通標志做出錯誤分類。
本文主要貢獻如下:
(1)將對抗補丁的方法應(yīng)用到交通識別牌識別系統(tǒng)上;
(2)對抗補丁的設(shè)計采用隨機位置隨機旋轉(zhuǎn)的方式,使得生成的補丁不局限于圖像的某個位置,忽略了背景的干擾;
(3)通過實驗驗證對抗補丁的方法在GTSRBVGG16 的效果,為后續(xù)的研究者提供參考。
本文第1 節(jié)主要介紹對抗補丁的方法,主要包括使用的數(shù)據(jù)集、GTSRB-VGG16 模型和對抗補丁生成的原理。第2 節(jié)主要是實驗的設(shè)計和分析,驗證了補丁方法在GTSRB-VGG16 的效果。第3 節(jié)對本文做出總結(jié),分析對抗補丁方法在自動駕駛上應(yīng)用的意義,并對未來的工作和挑戰(zhàn)進行展望。
The German Traffic Sign Benchmark(GTSRB)德國交通標志基準是2011 年國際神經(jīng)網(wǎng)絡(luò)聯(lián)合會議(International Joint Conference on Neural,Networks,IJCNN)舉辦的多級單圖像分類挑戰(zhàn)。該數(shù)據(jù)集中包含43 個交通標志類,訓(xùn)練集中包含超過30 000多張圖片,測試集中超過10 000 多張圖片。圖1 為部分數(shù)據(jù)集展示。數(shù)據(jù)集中包括的各類圖片考慮了距離、光照以及模糊度等因素,第一行從左到右依次是限速20、限速30、限速70、限速60、直行左轉(zhuǎn),第二行從左到右依次是STOP、禁止通行、左轉(zhuǎn)、直行和限速50。
圖1 GTSRB 部分數(shù)據(jù)集展示
本文采用的是GTSRB-VGG16 模型。GTSRBVGG16 模型與原始的VGG16 模型的主要區(qū)別在于在每一層卷積層后加入了BN 層來加快模型的訓(xùn)練和防止模型訓(xùn)練過擬合,且最后一層全連接層為1×1×1 000 的修改為1×1×43,以契合GTSRB 的數(shù)據(jù)訓(xùn)練。GTSRB-VGG16 模型結(jié)構(gòu)如圖2 所示。將GTSRB 數(shù)據(jù)集的圖像使用修改過的VGG16 模型進行訓(xùn)練得到干凈的分類器,圖像輸入的尺寸為256×256×3,經(jīng)過200 epoch 的訓(xùn)練GTSRBVGG16 在GTSRB 測試集上的準確率達到98.01%。GTSRB-VGG16 各層網(wǎng)絡(luò)參數(shù)如表1 所示。
產(chǎn)生對抗樣本的傳統(tǒng)策略:給定一些網(wǎng)絡(luò)分類模型F(y/x),輸入x∈Rn,某些攻擊者需要攻擊的目標類別y′和擾動ε,根據(jù)限定的擾動找到一個合適的輸入x′使得F(y′/x′)最大化,并對擾動加以約束||x-x′||∞≤ε。在得出F(y/x)結(jié)果的過程中,能夠訪問模型的攻擊者通過反向傳播執(zhí)行梯度下降的擾動,經(jīng)過多次迭代找到合適的輸入x′。這種方法可以產(chǎn)生很好的對抗樣本,但是需要在原圖像上進行修改。一般的攻擊都是在整個圖像上進行像素的修改,而且大多數(shù)交通標牌的攻擊只集中在標牌上,如圖3 所示。但是,在現(xiàn)實生活中放置的位置不是僅在交通標牌上,在交通標牌的周圍也可能出現(xiàn)攻擊者放置的補丁。
圖2 GTSRB-VGG16 結(jié)構(gòu)
表1 GTSRB-VGG16 各層參數(shù)
本文采用的是由TOM B 等人[16]提出的在現(xiàn)實世界中創(chuàng)建通用的、目標性的對抗圖像補丁方法。經(jīng)過實驗證明了該方法在ImageNet 上確實有效,在添加占原圖比20%大小的補丁后,在被測的數(shù)據(jù)集上能達到超過80%的攻擊成功率。該方法通過設(shè)計一個掩膜使得生成的補丁具有任意的形狀,在本文中只采用了方形掩膜。將掩膜提取的補丁加到原圖像上訓(xùn)練各種圖像,在訓(xùn)練過程中每個圖像中的補丁加入隨機位置隨機旋轉(zhuǎn)。TOM B 等人采用梯度下降進行優(yōu)化,本文采用的是PGD[12]梯度下降方法進行優(yōu)化。該方法的主要原理:對于一張給定的圖像x∈Rw×h×c、補丁塊p和補丁變換T(本文使用旋轉(zhuǎn)、隨機位置),定義補丁應(yīng)用公式為M(p,x,T)。在向圖像添加補丁之前,先將變換T應(yīng)用到補丁上,對補丁進行隨機的旋轉(zhuǎn)和隨機位置的確定,然后將補丁添加到圖像上。
圖3 交通標牌的攻擊舉例
為了獲得訓(xùn)練有素的補丁,對補丁進行訓(xùn)練來得到攻擊效果最佳的補丁,優(yōu)化目標函數(shù)為:
式中,X是圖像的訓(xùn)練集,T是補丁變換的分布,有隨機旋轉(zhuǎn)、隨機位置等多種情況。這樣可以使得在訓(xùn)練過程中網(wǎng)絡(luò)模型只關(guān)注于補丁,從而可以忽視補丁的背景和位置,得到可以忽視圖像背景和補丁自身位置的補丁,從而達到擾動的通用性(因為它適用于任何背景)。在有些情況下,圖像中包含了多個目標,但是分類器得出的結(jié)果只有一個目標標簽,那么這個目標被認為是真實的。在分類器看來,這張圖片對象只有這一個目標,并關(guān)注到此目標。因此,在加入補丁之后,補丁必須要學會讓自己在網(wǎng)絡(luò)分類中“突出”,讓分類器關(guān)注到自己。本文中期望將限速80 補丁分類為限速80。
采用的實驗平臺:Ubuntu18.04.5 LTS(操作系統(tǒng)),32 GB(CPU),GeForce RTX 3090 24 GB(GPU),Python3.6,Pytorch1.6.0(深度學習框架)。
在訓(xùn)練分類器時,采用的數(shù)據(jù)集是GTSRB 數(shù)據(jù)集,其中包含訓(xùn)練集39 209 張和測試集12 587 張。訓(xùn)練對抗補丁所采用的訓(xùn)練數(shù)據(jù)集是從GTSRB 訓(xùn)練集中每一類隨機抽取20 張,去掉要攻擊成的類,訓(xùn)練集共包含42 個類,共840 張圖片。測試對抗補丁的測試數(shù)據(jù)集是從GTSRB 測試集中每一類隨機抽取10 張,去除要攻擊成的類,測試集共有420張圖片。實驗的數(shù)據(jù)集分布主要見表2。
表2 實驗的數(shù)據(jù)集分布
對抗補丁算法偽代碼說明如下。
輸入:一張未加補丁的干凈圖片x,要攻擊成的類target,當前迭代次數(shù)i,最大迭代次數(shù)c,攻擊目標置信度conf
輸出:具有攻擊效果的對抗樣本x′
為了測試對抗補丁在GTSRB 上的攻擊效果,本文做了被攻擊模型泛化性測試實驗、單個模型的白盒攻擊實驗和多個模型集成的白盒攻擊實驗。泛化性測試實驗,一方面為了測試GTSRB-VGG16模型的泛化能力,另一方面是想與對抗補丁實驗形成對比。單個模型的攻擊實驗主要采用GTSRBVGG16 來訓(xùn)練補丁。多個模型集成的白盒攻擊實驗主要是在原先單個白盒攻擊的基礎(chǔ)上加入GoogleNet和ResNet34 兩個網(wǎng)絡(luò)來聯(lián)合訓(xùn)練,然后評估補丁在GTSRB-VGG16 的攻擊效率。在訓(xùn)練和測試階段,補丁會重新隨機旋轉(zhuǎn)和隨機放置位置。
2.3.1 GTSRB-VGG16 泛化性測試實驗
泛化性是指深度學習算法對新鮮樣本的適應(yīng)能力。神經(jīng)網(wǎng)絡(luò)通過在原有的數(shù)據(jù)集上訓(xùn)練學習到隱藏在數(shù)據(jù)背后的規(guī)律,對具有同一規(guī)律的數(shù)據(jù)集以外的數(shù)據(jù),經(jīng)過訓(xùn)練好的分類器也能得到正確的輸出。
由于本文主要的目標攻擊類是限速80,為了測試生成的補丁的聚焦效果,采用限速80 的交通標牌作為補丁加入圖片,同時將限速80 的交通標牌進行尺寸占比的調(diào)整。本節(jié)主要采用的占圖比(限速80 占原圖比例)為5%、10%、20%和50%,由限速80 作為補丁加入到原圖上的某一個位置作為輸入數(shù)據(jù)集。衡量標準為ARSl80和UARSl80。其中,ARSl80是將該輸入數(shù)據(jù)集識別成限速80 的成功率,類似于有目標的攻擊成功率;UARSl80是指加入限速80 后分類器未能識別出原樣本的成功率,類似于攻擊中的無目標攻擊。測試的數(shù)據(jù)集是2.1 節(jié)中介紹的訓(xùn)練和測試補丁的訓(xùn)練集和測試集。加入限速80 標牌后部分數(shù)據(jù)集如圖4 所示。
圖4 將限速80 標牌作為補丁加入原圖
實驗效果如表3 和表4 所示。根據(jù)表3 可以看出,直接加入限速80 的標牌不能夠?qū)崿F(xiàn)有效的帶目的性的攻擊。在占圖比達到20%時,在訓(xùn)練集上識別成限速80 的只有2.74%。但是,從表4 可以看出,當占圖比為20%時,在訓(xùn)練集上誤分類率達到了35.48%,說明在添加未經(jīng)訓(xùn)練占圖比20%的限速80 補丁后,雖然不能達到目標性攻擊,但能在一定程度上威脅到分類的準確度。由于加入的限速80 的標牌未經(jīng)過分類訓(xùn)練,因此猜測這與GTSRBVGG16 的泛化性能相關(guān)。
表3 不同圖占比下ARSl80結(jié)果
表4 不同圖占比下UARSl80結(jié)果
2.3.2 單個模型的白盒攻擊實驗
本節(jié)主要使用2.1 節(jié)中介紹的訓(xùn)練補丁的數(shù)據(jù)集在GTSRB-VGG16 上訓(xùn)練補丁并進行測試。原圖數(shù)據(jù)格式大小為256×256×3,訓(xùn)練的補丁占原圖比率為5%~50%。圖5 為部分生成補丁展示。
根據(jù)圖6,在使用單個模型進行補丁訓(xùn)練時,通過訓(xùn)練生成的補丁在訓(xùn)練集和測試集上測試的效果并不是非常理想。在補丁的占圖比達到20%時,在訓(xùn)練集上攻擊的成功率是11.7%,在測試集的攻擊成功率是14.3%;在補丁的占圖比達到30%時,訓(xùn)練集上的攻擊的成功率達到是43.56%,在測試集上的攻擊成率是45.12%。隨著補丁的尺寸變大,攻擊的成功率逐漸上升,當補丁的占圖比為40%時,攻擊成功率已經(jīng)超過80%,說明對抗補丁的方法在GTSRB 上有一定的效果。
圖5 不同占圖比的補丁展示
圖6 不同占圖比的補丁在訓(xùn)練集和測試的攻擊成功率
2.3.3 多個模型集成的白盒攻擊實驗
根據(jù)2.3.2 章節(jié)給出的結(jié)果,單個模型訓(xùn)練的出來的補丁在GTSRB-VGG16上的攻擊效果還有欠缺。因此,本節(jié)設(shè)計使用GTSRB-VGG16、GoogleNet 和ResNet34 這3 個模型聯(lián)合訓(xùn)練補丁,驗證由多個模型集成訓(xùn)練的補丁的攻擊效果。圖7 是由3 個模型訓(xùn)練得出的補丁在GTSRB-VGG16 模型上訓(xùn)練集和測試集的攻擊成功率。圖8 是由3 個模型聯(lián)合訓(xùn)練得出的不同尺寸的補丁,可見由3 個模型聯(lián)合訓(xùn)練的占圖比為20%的補丁在GTSRB-VGG16 的訓(xùn)練集上的攻擊成功率ASR20%l80(train)=18.69%,相比于單個模型訓(xùn)練出來的補丁的ASR20%l80(train)提高了6.99%。在測試集上的攻擊成功率ASR20%l80(test)為21.54%,相比于單個模型的ASR20%l80(test)提高了7.24%。
圖7 集成訓(xùn)練的補丁在GTSRB-VGG16 的攻擊成率
圖8 不同占圖比的補丁展示
本文驗證了對抗補丁方法應(yīng)用在交通識別模型中存在一定的威脅。產(chǎn)生的補丁可以忽略圖像的背景和自身的位置,對模型產(chǎn)生了一定的攻擊效果,生成的對抗補丁則具有一定的魯棒性和通用性。對抗補丁的方法屬于白盒攻擊方法,但是對抗補丁的方法在GTSRB 數(shù)據(jù)集上的效果并沒有在ImageNet上的攻擊效果出眾。
本文分別做了3 組大類實驗,在每大類中又按補丁不同尺寸(占圖比)做了4 類不同實驗。通過泛化性的測試實驗和單個模型的白盒攻擊實驗表明通過白盒訓(xùn)練的補丁更容易使模型關(guān)注到自己,通過多個模型集成實驗表明集成訓(xùn)練的補丁比單個模型訓(xùn)練的補丁更有效果,魯棒性更強。這對于后續(xù)研究者研究自動駕駛中深度神經(jīng)網(wǎng)絡(luò)的魯棒性和對抗防御具有極大的參考價值和實踐意義。