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