孫安臨,錢亞冠,顧釗銓,樓 瓊,李俊峰
(1.浙江科技學(xué)院 理學(xué)院,杭州 310023;2.廣州大學(xué) 網(wǎng)絡(luò)空間先進(jìn)技術(shù)研究院,廣州 510006)
圖像識(shí)別是計(jì)算機(jī)視覺(jué)的研究核心,也是目標(biāo)檢測(cè)、圖像分割、姿態(tài)估計(jì)等諸多視覺(jué)任務(wù)的基礎(chǔ)[1]。深度學(xué)習(xí)技術(shù)的發(fā)展使該方向的研究取得了豐碩成果,被廣泛應(yīng)用在各個(gè)領(lǐng)域,例如自動(dòng)駕駛、智能機(jī)器人等[2-3]。然而,對(duì)抗樣本的存在嚴(yán)重干擾了圖像識(shí)別技術(shù)的運(yùn)用[4]。對(duì)抗樣本像一枚隱形的“炸彈”,能輕易使絕大部分的深度學(xué)習(xí)模型在圖像分類時(shí)“失準(zhǔn)”,發(fā)生誤判。
近些年來(lái),自動(dòng)駕駛方興未艾,隨著相關(guān)研究的深入,自動(dòng)駕駛的安全問(wèn)題越來(lái)越受關(guān)注[5],現(xiàn)有的對(duì)抗攻擊方法種類多且攻擊性強(qiáng),如快速梯度符號(hào)攻擊(fast gradient sign method,FGSM)[6]、映射梯度攻擊(project gradient descent,PGD)[7]、基礎(chǔ)迭代攻擊(basic interative method,BIM)[8]等。實(shí)證研究表明,當(dāng)對(duì)抗樣本被惡意生成去攻擊自動(dòng)駕駛視覺(jué)系統(tǒng)時(shí),自動(dòng)駕駛的視覺(jué)系統(tǒng)會(huì)變得脆弱,甚至失去作用[9],進(jìn)而引發(fā)嚴(yán)重的交通事故。因此,如何防御對(duì)抗樣本攻擊是自動(dòng)駕駛亟須解決的難題。Goodfellow等[6]首先提出針對(duì)性對(duì)抗防御方法,以FGSM攻擊時(shí)產(chǎn)生的對(duì)抗樣本去訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),以此達(dá)到防御對(duì)抗攻擊的目的;與此思想類似的還有Madry等[7]提出使用PGD攻擊產(chǎn)生對(duì)抗樣本訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)。但是,這類對(duì)抗防御方法是單一的,受限于對(duì)抗樣本的產(chǎn)生方式,以及數(shù)量、種類,無(wú)法防御多類型的對(duì)抗攻擊。由此,Kurakin等[10]提出了集成對(duì)抗訓(xùn)練(ensemble adversarial training,EAT),該方法利用多個(gè)預(yù)先訓(xùn)練的模型中轉(zhuǎn)移的對(duì)抗樣本進(jìn)行對(duì)抗訓(xùn)練;Xie等[11]采用更直接的對(duì)抗防御方法,將訓(xùn)練圖片進(jìn)行隨機(jī)調(diào)整大小和填充,以此增強(qiáng)模型的魯棒性,弱化對(duì)抗攻擊效果;Liu等[12]提出一種隨機(jī)噪聲機(jī)制(random self-ensemble,RSE)來(lái)防御對(duì)抗樣本攻擊,即在每個(gè)卷積層之前添加一個(gè)噪聲層,并集成預(yù)測(cè)結(jié)果以確保模型的魯棒性;Dhillon等[13]提出了隨機(jī)修剪(stochastic activation pruning,SAP)的方法進(jìn)行對(duì)抗防御,通過(guò)隨機(jī)修剪網(wǎng)絡(luò)中每一層的部分不活躍的神經(jīng)元,以此增強(qiáng)對(duì)抗樣本攻擊的防御力。上述方法雖能在一定程度上抵御多類型的對(duì)抗攻擊,但對(duì)抗訓(xùn)練缺乏充分性、多樣性,且模型不夠輕量,防御效果一般。
綜上所述,現(xiàn)有的對(duì)抗防御方法大都是單一的、單階段的,具有一定的局限性,無(wú)法有效應(yīng)對(duì)各種各樣的對(duì)抗樣本攻擊[14-15],且它們的試驗(yàn)對(duì)象都是擁有龐大參數(shù)計(jì)算量的深度神經(jīng)網(wǎng)絡(luò),不適用于計(jì)算力有限的車載系統(tǒng)。因此,在輕量級(jí)網(wǎng)絡(luò)框架下,我們提出多階段對(duì)抗防御方法。防御方法分為3個(gè)不同的階段,生成有效防御對(duì)抗樣本攻擊的輕量級(jí)網(wǎng)絡(luò)集群。
對(duì)抗樣本問(wèn)題由Szegedy等[16]于2013年首次提出,即在圖像分類時(shí),通過(guò)在測(cè)試圖片上添加一些細(xì)微的噪聲擾動(dòng),使得深度學(xué)習(xí)模型分類出錯(cuò)。后續(xù)研究表明,按照某種規(guī)則生成的擾動(dòng)噪聲可定向使得深度學(xué)習(xí)模型輸出攻擊者預(yù)期的結(jié)果。2種不同的對(duì)抗樣本生成實(shí)例如圖1所示。
圖1 2種不同的對(duì)抗樣本生成實(shí)例
對(duì)抗訓(xùn)練是一種有效防御對(duì)抗樣本攻擊的方法[17],具體而言是在原樣本上添加各種各樣的擾動(dòng)信息生成對(duì)抗樣本集,并用對(duì)抗樣本集訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)模型的過(guò)程。對(duì)抗樣本實(shí)例對(duì)應(yīng)圖1(c)。在對(duì)深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行對(duì)抗訓(xùn)練的過(guò)程中,將對(duì)抗樣本與原樣本一起輸入深度神經(jīng)網(wǎng)絡(luò)模型,使模型學(xué)習(xí)更豐富、更復(fù)雜的信息,從而對(duì)干擾信息形成抵抗力,提高模型的魯棒性。
知識(shí)蒸餾是模型壓縮的一種有效方式[18],假設(shè)有一個(gè)復(fù)雜模型G(X)和簡(jiǎn)單模型l(X),知識(shí)蒸餾就是將G(X)的“知識(shí)”遷移到簡(jiǎn)單模型l(X)上,使l(X)在具備復(fù)雜模型的判斷能力的同時(shí)又降低復(fù)雜度。這種“知識(shí)遷移”的實(shí)現(xiàn)原理是使l(X)的softmax概率輸出分布向G(X)靠近,即l(X)學(xué)習(xí)的類別標(biāo)簽是G(X)預(yù)測(cè)輸出的,不是真實(shí)的類別標(biāo)簽。通常情況下,我們稱復(fù)雜模型G(X)為教師模型,簡(jiǎn)單模型l(X)為學(xué)生模型。softmax激活函數(shù)的表達(dá)式如下:
(1)
式(1)中:pi為相應(yīng)的概率輸出值;zi為第i個(gè)樣本的前向傳播輸出值。
知識(shí)蒸餾時(shí)教師模型的分類層激活函數(shù)softmax的表達(dá)式如下:
(2)
式(2)中:T為知識(shí)蒸餾調(diào)節(jié)參數(shù),取值為正整數(shù)。
教師模型分類層輸出的概率向量ysoft={p1,p2,…,pm},稱為軟標(biāo)簽。在蒸餾過(guò)程中,學(xué)生模型的損失函數(shù)可由軟硬標(biāo)簽兩部分組成,其表達(dá)式如下:
L=?J(y,softmaxstudent)+(1-?)J(ysoft,softmaxstudent)T2。
(3)
式(3)中:?∈[0,1];J(·)為交叉熵?fù)p失函數(shù)。
模型投票是一種決策機(jī)制,是將多個(gè)模型的預(yù)測(cè)結(jié)果綜合平均,相比單個(gè)模型具有更高的準(zhǔn)確率、更強(qiáng)的魯棒性。設(shè)模型集合W=f1(x),f2(x),…,fN(x),若模型的輸出類型為數(shù)值,則可按簡(jiǎn)單平均法和加權(quán)平均法2種方式綜合模型的輸出結(jié)果,其表達(dá)式分別為
(4)
(5)
式(4)~(5)中:H(x)、J(x)為模型組合W簡(jiǎn)單平均法和加權(quán)平均法對(duì)應(yīng)的平均決策結(jié)果;N為樣本個(gè)數(shù);wi∈[0,1],∑wi=1。
以分類任務(wù)為例,訓(xùn)練模型的樣本集中往往包含諸多類別,而這些類別的數(shù)量往往是不一致的,有時(shí)甚至差距很大,以致正負(fù)樣本類別失衡,且樣本中還會(huì)有像素?cái)?shù)較少的小目標(biāo),這些小目標(biāo)使模型難以正確分類。因此,在不能繼續(xù)擴(kuò)大訓(xùn)練樣本集時(shí),可通過(guò)修改損失函數(shù)來(lái)消除正負(fù)樣本類別不平衡、小目標(biāo)難訓(xùn)練等問(wèn)題。焦點(diǎn)損失就是一種有效的方法,以圖像二分類為例,焦點(diǎn)損失可定義如下:
(6)
式(6)中:y為類別標(biāo)簽,y=1為樣本正類,y=0為樣本負(fù)類;p∈[0,1]為模型輸出概率值;γ∈[0,+∞]為調(diào)節(jié)因子,控制易分類樣本對(duì)損失函數(shù)值的影響,γ越大,易分類樣本對(duì)損失函數(shù)的貢獻(xiàn)越小;反之越大。α∈[0,1]為平衡因子,控制正負(fù)樣本總體對(duì)損失函數(shù)值的相對(duì)貢獻(xiàn)大小。
在模型進(jìn)行深度學(xué)習(xí)的過(guò)程中,學(xué)習(xí)率的重要性是毋庸置疑的,其衰減方式往往對(duì)模型最終的精度具有直接影響。相關(guān)研究[19]表明預(yù)熱學(xué)習(xí)率在多個(gè)數(shù)據(jù)集上可以取得最佳效果,因此,我們?cè)谟?xùn)練模型時(shí)使用這種學(xué)習(xí)率衰減方式,其定義如下:
(7)
式(7)中:γL為學(xué)習(xí)率;c為學(xué)習(xí)率預(yù)熱初始值;g為學(xué)習(xí)率初始值,c 混合數(shù)據(jù)增強(qiáng)[20]可充當(dāng)模型訓(xùn)練過(guò)程中的正則化和對(duì)抗訓(xùn)練,可有效緩解深度神經(jīng)網(wǎng)絡(luò)的過(guò)擬合現(xiàn)象,降低模型對(duì)對(duì)抗樣本的敏感性。通過(guò)圖像混合方式可建立數(shù)據(jù)集中不同類別的樣本之間的聯(lián)系,構(gòu)造出虛擬樣本,不同類別的樣本圖片生成的虛擬樣本如圖2所示。圖像混合的定義如下: 圖2 不同類別的樣本圖片生成的虛擬樣本 (8) 式(8)中:xi和xj為取自數(shù)據(jù)集的2個(gè)樣本,i,j∈[0,N]),N為訓(xùn)練集樣本總數(shù);yi和yj分別為xi和xj對(duì)應(yīng)的類別標(biāo)簽;λ∈[0,1]。 我們的防御方法分為3個(gè)階段,依次為焦點(diǎn)損失對(duì)抗訓(xùn)練階段(第1階段)、知識(shí)蒸餾階段(第2階段)、模型投票決策階段(第3階段)。前2個(gè)階段為深度學(xué)習(xí)訓(xùn)練模型過(guò)程,其中第1階段是基于焦點(diǎn)損失函數(shù)消除正負(fù)樣本不平衡類別的對(duì)抗訓(xùn)練,第2階段是對(duì)第1階段的教師模型群體進(jìn)行知識(shí)蒸餾,將其“知識(shí)信息”遷移到學(xué)生模型群體;第3階段是對(duì)第2階段的學(xué)生模型群體的預(yù)測(cè)結(jié)果進(jìn)行加權(quán)平均。同時(shí),我們?cè)诘?階段的對(duì)抗訓(xùn)練中還使用了以下技術(shù):混合數(shù)據(jù)增強(qiáng)、預(yù)熱學(xué)習(xí)率。防御方法的定義如下: 假定有n個(gè)深度神經(jīng)網(wǎng)絡(luò)模型G1(X),G2(X),G3(X),…,Gn(X),在圖像分類任務(wù)中,對(duì)所有Gi(X)進(jìn)行焦點(diǎn)損失的對(duì)抗訓(xùn)練,生成n個(gè)對(duì)抗訓(xùn)練后的模型F1(X),F2(X),F3(X),…,Fn(X);選定n個(gè)結(jié)構(gòu)簡(jiǎn)單、計(jì)算量小的輕量級(jí)網(wǎng)絡(luò)l1(X),l2(X),l3(X),…,ln(X)作為學(xué)生模型,使用知識(shí)蒸餾算法分別將F1(X),F2(X),F3(X),…,Fn(X)(教師模型)的“知識(shí)信息”遷移到各學(xué)生模型上,之后對(duì)各學(xué)生模型的預(yù)測(cè)結(jié)果加權(quán)平均,∑wili(X),wi∈[0,1]。多階段防御方法過(guò)程如圖3所示。 圖3 多階段防御方法過(guò)程示意圖 我們的任務(wù)基于自動(dòng)駕駛路標(biāo)識(shí)別分類場(chǎng)景下,所選用的基礎(chǔ)損失函數(shù)為交叉熵?fù)p失(式(9))。構(gòu)造好交通路標(biāo)的對(duì)抗樣本集后便可進(jìn)行對(duì)抗訓(xùn)練,對(duì)抗訓(xùn)練損失函數(shù)如式(10)。為消除數(shù)據(jù)集正負(fù)樣本類間的不平衡影響,同時(shí)為了提高模型的魯棒性,我們?cè)谠瓕?duì)抗訓(xùn)練損失函數(shù)式(10)中加入焦點(diǎn)損失構(gòu)造出最終的損失函數(shù)(式(11))。 (9) (10) (11) 自動(dòng)駕駛視覺(jué)系統(tǒng)對(duì)交通路標(biāo)的正確識(shí)別是確保自動(dòng)駕駛汽車安全上路的第一步,且有研究[21]表明通過(guò)在交通路標(biāo)上粘貼“補(bǔ)丁”便可實(shí)現(xiàn)對(duì)自動(dòng)駕駛視覺(jué)系統(tǒng)的對(duì)抗攻擊,使其發(fā)生誤判,因此我們的試驗(yàn)將針對(duì)交通路標(biāo)的對(duì)抗補(bǔ)丁攻擊進(jìn)行防御。 目前國(guó)內(nèi)公開(kāi)的大規(guī)劃交通路標(biāo)數(shù)據(jù)集較少,因此本文使用德國(guó)道路交通數(shù)據(jù)集(The German Traffic Sign Detection Benchmark,G-TSDB),此數(shù)據(jù)集包含43個(gè)類別,一共50 000張圖像,我們按照7∶2∶1的比例將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。在3個(gè)子數(shù)據(jù)集各取1/2的圖片生成補(bǔ)丁對(duì)抗樣本如圖1所示。 試驗(yàn)評(píng)價(jià)標(biāo)準(zhǔn)遵從ImageNet[22]數(shù)據(jù)集的標(biāo)準(zhǔn),即top-k,k為大于1的整數(shù),代表輸入一張照片,模型依據(jù)預(yù)測(cè)的類別概率值大小依次輸出圖片類別,前k個(gè)輸出中包含正確類別。在本試驗(yàn)中,取k值為1,即top-1,代表模型一次命中正確類別的概率,即分類準(zhǔn)確率。 所有試驗(yàn)的平臺(tái)相同,硬件設(shè)施如下:GPU為2080Ti x4,CPU為48核Inter(R)Xeon(R),2.20 GHz;軟件設(shè)施包括服務(wù)器操作系統(tǒng)型號(hào)、深度學(xué)習(xí)框架版本、編程語(yǔ)言類型版本,依次為Ubuntu 16.04、Pytorch 1.5、Python 3.7。 教師模型通常是體量巨大的深度神經(jīng)網(wǎng)絡(luò)模型,擁有極強(qiáng)的擬合數(shù)據(jù)能力,在分類問(wèn)題背景下,經(jīng)典的深度神經(jīng)網(wǎng)絡(luò)AlexNet、VGG-19、ResNet-50、ResNet-101都是合適的教師模型。因此,我們對(duì)這4種教師模型分別做補(bǔ)丁攻擊的對(duì)抗訓(xùn)練。訓(xùn)練25個(gè)周期,使用隨機(jī)梯度下降算法更新網(wǎng)絡(luò)權(quán)重參數(shù),初始學(xué)習(xí)率為10-3,圖像輸入大小[224,224],隨機(jī)旋轉(zhuǎn)[-30°,30°]。這些教師模型在G-TSDB數(shù)據(jù)集上對(duì)抗訓(xùn)練前后的性能對(duì)比見(jiàn)表1。 表1 教師模型在G-TSDB數(shù)據(jù)集上對(duì)抗訓(xùn)練前后的性能對(duì)比 由表1可知,這些教師模型在含有補(bǔ)丁對(duì)抗樣本的交通路標(biāo)數(shù)據(jù)集上進(jìn)行對(duì)抗訓(xùn)練后,其測(cè)試結(jié)果總體上有較高的準(zhǔn)確率,這說(shuō)明針對(duì)交通路標(biāo)對(duì)抗樣本的對(duì)抗訓(xùn)練是有效果的。但從表1中也看出,ResNet-101網(wǎng)絡(luò)的性能不如ResNet-50優(yōu)良,因此,我們采用AlexNet、VGG-19、ResNet-50這3種教師模型來(lái)訓(xùn)練對(duì)抗樣本,同時(shí),將它們?cè)趯?duì)抗訓(xùn)練過(guò)程中的準(zhǔn)確率變化情況可視化,如圖4所示。 圖4 教師模型對(duì)抗訓(xùn)練過(guò)程中的準(zhǔn)確率變化情況 有研究[23]表明,知識(shí)蒸餾時(shí)超參數(shù)T的變化會(huì)影響最終學(xué)生模型的性能,而根據(jù)一般經(jīng)驗(yàn),T=20時(shí)學(xué)生網(wǎng)絡(luò)的性能最佳,也較為穩(wěn)定。為減少試驗(yàn)次數(shù),我們確定超參數(shù)T取值20。AlexNet、VGG-19、ResNet-50作為教師網(wǎng)絡(luò),以其預(yù)測(cè)輸出作為軟標(biāo)簽訓(xùn)練學(xué)生模型1(SqueezeNet[24])、學(xué)生模型2(MobileNet[25])、學(xué)生模型3(ShuffleNet[26]),以完成知識(shí)的遷移。知識(shí)蒸餾過(guò)程中學(xué)生模型蒸餾過(guò)程中的準(zhǔn)確率變化如圖5所示。 圖5 學(xué)生模型蒸餾過(guò)程中的準(zhǔn)確率變化 從圖5可以看出,隨著蒸餾過(guò)程的進(jìn)行,3種學(xué)生模型的分類準(zhǔn)確率穩(wěn)步上升,最終分別達(dá)到71%、82%、79%的驗(yàn)證準(zhǔn)確率。學(xué)生模型的收斂速度比教師模型快很多,其原因是:1)學(xué)生模型采用學(xué)習(xí)軟標(biāo)簽,使損失函數(shù)的數(shù)值有所減小;2)學(xué)生模型參數(shù)數(shù)量比教師模型有所減少。表2是3種學(xué)生模型在G-TSDB數(shù)據(jù)集上的性能對(duì)比,對(duì)抗訓(xùn)練后各學(xué)生模型測(cè)試準(zhǔn)確率分別達(dá)到69%、83%、78%。 表2 3種學(xué)生模型在G-TSDB數(shù)據(jù)集上的性能對(duì)比 分析表1和表2可知,經(jīng)過(guò)知識(shí)蒸餾后各學(xué)生模型能達(dá)到與各教師模型相近的性能,同時(shí)參數(shù)數(shù)量和計(jì)算量比教師模型大為減少,3種學(xué)生模型參數(shù)總量與計(jì)算總量也遠(yuǎn)小于單個(gè)ResNet-50教師模型,而更少的參數(shù)量和計(jì)算量意味著更快的運(yùn)行速度。 1.3節(jié)中我們介紹過(guò)2種主要的模型投票表決方式。一種是少數(shù)服從多數(shù)的投票原則,融合各種模型的知識(shí),在特征提取中可以保留不同模型的特征;另一種是平均各種模型的輸出結(jié)果,即平均投票,是一種比較客觀的方法,能綜合各種模型的預(yù)測(cè)結(jié)果?;谶@2種投票方式,我們?cè)诎瑢?duì)抗樣本的交通路標(biāo)數(shù)據(jù)集上進(jìn)行試驗(yàn),結(jié)果見(jiàn)表3。 表3 基于2種投票方式的試驗(yàn)結(jié)果 通過(guò)比較表2和表3,我們發(fā)現(xiàn)表3使用投票表決方式的學(xué)生模型的性能,均超過(guò)表2中單個(gè)學(xué)生模型的性能。由表3可知,第2種投票方式即平均投票法能給學(xué)生模型帶來(lái)更高的性能提升,所以針對(duì)交通標(biāo)志的補(bǔ)丁對(duì)抗攻擊,我們選擇第2種投票方式來(lái)綜合學(xué)生模型的預(yù)測(cè)結(jié)果,以此防御交通路標(biāo)的對(duì)抗攻擊。 我們的防御方法是多階段的,而現(xiàn)有的防御方法大都是單階段的,從中取幾種經(jīng)典對(duì)抗防御方法與我們的方法進(jìn)行試驗(yàn)對(duì)比,結(jié)果見(jiàn)表4。其中,評(píng)價(jià)指標(biāo)為各模型在對(duì)抗樣本攻擊下的交通路標(biāo)分類準(zhǔn)確率,學(xué)生模型1、2、3分別為SqueezeNet、MobileNet、ShuffleNet,試驗(yàn)數(shù)據(jù)集及其他條件同上。 表4 經(jīng)典對(duì)抗防御方法與我們的方法在對(duì)抗樣本攻擊下的性能對(duì)比 自動(dòng)駕駛近幾年發(fā)展遇到了很多挑戰(zhàn),安全問(wèn)題始終是人們關(guān)注的焦點(diǎn)。對(duì)抗樣本的存在對(duì)自動(dòng)駕駛的安全構(gòu)成了極大的威脅,本研究針對(duì)交通路標(biāo)的對(duì)抗補(bǔ)丁攻擊做相應(yīng)防御,基于圖像分類模型提出一種輕量級(jí)的多階段對(duì)抗防御算法。在含有對(duì)抗樣本的德國(guó)道路交通數(shù)據(jù)集G-TSDB上對(duì)我們的方法進(jìn)行防御性能的試驗(yàn),結(jié)果顯示經(jīng)我們的方法訓(xùn)練后的學(xué)生模型群體取得了85%的分類準(zhǔn)確率,單個(gè)學(xué)生模型也分別取得了69%、83%、78%的分類準(zhǔn)確率,具有較好的防御效果??梢?jiàn),多階段的防御方法能有效抵抗對(duì)抗樣本的攻擊,提高了模型的魯棒性。未來(lái),我們會(huì)進(jìn)一步推進(jìn)本方法的研究,將其實(shí)際應(yīng)用到自動(dòng)駕駛的車載系統(tǒng)上,以幫助自動(dòng)駕駛克服障礙。1.6 混合數(shù)據(jù)增強(qiáng)
2 防御方法
2.1 框架
2.2 損失函數(shù)
3 試驗(yàn)結(jié)果及分析
3.1 數(shù)據(jù)集
3.2 軟硬件試驗(yàn)平臺(tái)及評(píng)價(jià)標(biāo)準(zhǔn)
3.3 教師模型對(duì)抗訓(xùn)練
3.4 知識(shí)蒸餾
3.5 模型投票決策
3.6 防御方法性能對(duì)比
4 結(jié) 論