李 平 袁曉彤
1(南京信息工程大學自動化學院 江蘇 南京 210044) 2(江蘇省大數(shù)據(jù)分析技術(shù)重點實驗室大氣環(huán)境與裝備技術(shù)協(xié)同創(chuàng)新中心 江蘇 南京 210044)
雖然深度學習在圖像分類[1]、語音識別[2]和自然語言處理[3-4]等領(lǐng)域取得了前所未有的成功,但是隨著深度神經(jīng)網(wǎng)絡(luò)技術(shù)在自動駕駛、銀行金融和安防監(jiān)控等安全敏感任務(wù)中的應(yīng)用,深度神經(jīng)網(wǎng)絡(luò)中的可解釋問題和安全問題也越來越受到人們的關(guān)注[5-8]。Szegedy等[9-10]研究發(fā)現(xiàn)在模型輸入的干凈圖片上加入精心設(shè)計的人眼無法識別出的微小擾動,原本高精度的神經(jīng)網(wǎng)絡(luò)就很容易被攻擊和欺騙,這使得對抗攻擊成為了人工智能落地的攔路虎。
近年來,對抗樣本越來越受到人們的關(guān)注,同時很多提升網(wǎng)絡(luò)魯棒性防御對抗攻擊的方法也被提出來,主要包括:圖片預處理(去噪[11-12]、特征壓縮[13-14])、對抗訓練[15-17]、梯度遮蔽[18-20]等。但是隨著新的對抗攻擊的方法提出,大部分的防御方法都能被攻破。梯度混淆問題(在白盒攻擊下,依賴圖像預處理和梯度遮蔽的防御方法都能被攻破)的存在使得對抗訓練成為提升網(wǎng)絡(luò)魯棒性最有效的方法[21]。
Madry等[15]發(fā)現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)越寬和模型容量越大的過參數(shù)神經(jīng)網(wǎng)絡(luò)模型更加適用于對抗訓練,然而考慮到模型實際在存儲資源受限(FPGA、Iot、手機等)設(shè)備上部署,魯棒模型的參數(shù)應(yīng)該很小。另一方面,模型壓縮技術(shù)在神經(jīng)網(wǎng)絡(luò)里的發(fā)展十分迅猛,如今的網(wǎng)絡(luò)壓縮算法已經(jīng)可以在保證模型精度損失較小的條件下極大的壓縮網(wǎng)絡(luò)大小[22]。但是傳統(tǒng)的模型壓縮算法主要關(guān)注的是非魯棒性模型在干凈樣本上的模型精度損失,而未考慮魯棒網(wǎng)絡(luò)上的模型壓縮問題。同時,近期的工作表明稀疏的魯棒網(wǎng)絡(luò)能極大地減少對模型理論魯棒性的驗證時間[23],這就更加推動了對高魯棒性和高稀疏度神經(jīng)網(wǎng)絡(luò)的研究需求。
最近,已經(jīng)有一些關(guān)于對抗魯棒性和模型壓縮結(jié)合的研究。Guo等[24]從理論角度闡述了稀疏性與魯棒性的關(guān)系,但是文章中的攻擊手段僅采用了快速梯度下降法(FGSM)并未采取更強的迭代攻擊方式。Wang等[25]通過實驗分析發(fā)現(xiàn)隨著網(wǎng)絡(luò)的剪枝率的增加魯棒網(wǎng)絡(luò)的魯棒性和模型精度隨之下降的現(xiàn)象。Ye等[26]提出了一個把對抗訓練和網(wǎng)絡(luò)剪枝結(jié)合的ADMM優(yōu)化框架。在傳統(tǒng)的網(wǎng)絡(luò)剪枝方法中,Frankle等[27]在非魯棒網(wǎng)絡(luò)中發(fā)現(xiàn)了彩票假設(shè),但相反的是在經(jīng)過對抗訓練后的魯棒網(wǎng)絡(luò)中彩票假設(shè)理論并不存在而且通過對原網(wǎng)絡(luò)的剪枝得到的初始化對子網(wǎng)絡(luò)具有指導意義[26]。
本文主要從魯棒網(wǎng)絡(luò)和非魯棒網(wǎng)絡(luò)的稀疏性差異角度出發(fā),提出了一種適用于魯棒網(wǎng)絡(luò)模型的分層剪枝算法。本文的主要貢獻如下:
1) 本文通過實驗對比了相同模型在不同魯棒精度下的稀疏度差異,發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)模型的稀疏性和魯棒性、模型精度三者之間存在一種Trade-off的關(guān)系。
2) 不同于非魯棒網(wǎng)絡(luò),魯棒網(wǎng)絡(luò)對網(wǎng)絡(luò)的中間層的稀疏敏感度非常高。本文利用魯棒網(wǎng)絡(luò)的稀疏敏感特性和誤差傳播特性,提出一種分層剪枝策略。
3) 將這種剪枝策略同現(xiàn)有的經(jīng)典非魯棒網(wǎng)絡(luò)的剪枝方法結(jié)合,在一系列公共數(shù)據(jù)集上的實驗結(jié)果證明了本文的方法相較于其他方法無論在魯棒性還是模型精度上都有一定的優(yōu)越性。
對抗訓練最早由Goodfellow等[10]提出,其本質(zhì)是在模型訓練的過程中加入對抗樣本來提升模型的魯棒性。但是這種直接把干凈樣本和對抗樣本混合起來作為訓練集的訓練方式其魯棒精度并不如直接完全直接使用對抗樣本訓練的精度高[28]。Madry等[15]把對抗訓練看成一個求解極大極小值的鞍點優(yōu)化問題,其優(yōu)化的目標函數(shù)如下所示:
(1)
式中:D代表訓練樣本x和數(shù)據(jù)標簽y的分布;θ是模型的權(quán)重參數(shù);δ是對訓練樣本添加的對抗擾動;S表示對抗擾動的范圍。對于外部極小值的求解旨在找到訓練損失下降方向的模型參數(shù),而內(nèi)部極大值目標則是找到訓練損失上升方向的對抗擾動,對于內(nèi)部最大值通常采取基于迭代攻擊的投影梯度下降法PGD(Projected gradient descent)攻擊來實現(xiàn)[15],其迭代公式如下:
(2)
式中:α是每次攻擊的步長;t代表攻擊的次數(shù)。
對抗訓練是白盒攻擊下目前避免梯度混淆問題最有效的防御手段。但是對抗訓練本身也存在缺點:1) 對于內(nèi)部極大值的求解需要進行多次的迭代更新,而這個迭代過程需要消耗大量的計算時間。現(xiàn)在有不少圍繞著減少對抗訓練的內(nèi)部極大值的迭代時間的工作[29-31]。2) 想要通過對抗訓練獲得高魯棒性的模型就需要一個過參數(shù)的復雜度高的神經(jīng)網(wǎng)絡(luò)模型。但是這種需求勢必導致模型參數(shù)量上升[15,26],所以本文主要圍繞著從模型剪枝的角度出發(fā)去解決第二個問題。
模型剪枝是一種快速且有效的模型壓縮算法。通過減去網(wǎng)絡(luò)結(jié)構(gòu)中不重要的神經(jīng)元或者濾波器來實現(xiàn)模型壓縮。最早的剪枝工作是Lecun等[32]根據(jù)網(wǎng)絡(luò)的損失函數(shù)對權(quán)重的二階導數(shù)作為剪枝標準來減去模型的冗余連接。由于損失的二階海森矩陣的計算資源消耗大且訓練時間較長,Han等[33]提出了迭代剪枝的方法直接把網(wǎng)絡(luò)權(quán)重參數(shù)的絕對值的大小作為剪枝的標準,將低于閾值的網(wǎng)絡(luò)權(quán)重減去然后再微調(diào)訓練,從而大大縮減了計算時間。Han等[33]的硬剪枝方法固然減少了訓練時間但是存在著誤剪枝的可能,所以He等[34]提出了一種剪枝和模型訓練同時進行的軟剪枝的方法,通過把上一次迭代中減去的權(quán)重在下一個迭代中恢復過來從而減少了誤剪的可能性,這樣既能省去微調(diào)的時間,又能減少模型的精度損失。此外,Molchaov利用剪枝后的模型損失和剪枝前損失的誤差作為衡量濾波器權(quán)重重要性的指標也取得了很好的剪枝效果[35]。
雖然上述的剪枝方法在干凈樣本的非魯棒模型上都取得了非常好的壓縮效果,但是在對抗樣本上的魯棒模型卻沒有應(yīng)用。本文從非結(jié)構(gòu)剪枝的角度出發(fā),研究了魯棒網(wǎng)絡(luò)和非魯棒網(wǎng)絡(luò)的區(qū)別,并根據(jù)魯棒模型的特性提出一種新的分層剪枝策略。
為了更好地進行模型壓縮,本節(jié)首先通過實驗研究了稀疏性與模型的魯棒性、模型精度之間的關(guān)系。首先,在Cifar10數(shù)據(jù)集上使用ResNet18網(wǎng)絡(luò)分別進行對抗訓練和正常的訓練得到魯棒模型和非魯棒的模型,然后對這兩個模型的權(quán)重分布進行可視化。如圖1(a)所示,正常訓練的模型比經(jīng)過對抗訓練的模型更加稀疏,而非魯棒的模型的權(quán)重分布范圍更加的廣泛。為了進一步公平對比稀疏性與模型精度的關(guān)系,本文采用了文獻[37]中的對抗訓練參數(shù)得到三個不同魯棒性和模型精度的網(wǎng)絡(luò),具體的模型精度如圖1(b)所示。同樣對這三個網(wǎng)絡(luò)參數(shù)分布進行可視化,可以發(fā)現(xiàn)模型的精度越高,模型的魯棒性越低,模型的稀疏度越高,反之亦然。通過上述分析表明不同于非魯棒網(wǎng)絡(luò),網(wǎng)絡(luò)的魯棒性越高那么它的權(quán)重分布就越稠密,這是由于對抗魯棒網(wǎng)絡(luò)需要更多的參數(shù)去擬合復雜的樣本空間導致的,所以需要根據(jù)魯棒網(wǎng)絡(luò)的特性設(shè)置剪枝方法。

(a) 魯棒和非魯棒網(wǎng)絡(luò)的稀疏性對比

(b) 魯棒和非魯棒網(wǎng)絡(luò)的精度對比圖1 神經(jīng)網(wǎng)絡(luò)的模型精度、魯棒性和稀疏性的關(guān)系
在對抗樣本中,Kumari等[39]發(fā)現(xiàn)對抗擾動誤差逐層遞增的現(xiàn)象,即原本加在干凈樣本上的微小擾動誤差會隨著網(wǎng)絡(luò)的前向傳播中被權(quán)值較小的模型參數(shù)慢慢疊加放大,最終導致神經(jīng)網(wǎng)絡(luò)分類錯誤。所以為了減少這種誤差放大的效應(yīng),在網(wǎng)絡(luò)剪枝時應(yīng)該盡可能裁減掉網(wǎng)絡(luò)權(quán)值小的前層參數(shù),從而保證網(wǎng)絡(luò)前層權(quán)重參數(shù)的稀疏性和魯棒性。同時,本文把不同網(wǎng)絡(luò)結(jié)構(gòu)的模型進行分層稀疏敏感度實驗,分別對比了魯棒網(wǎng)絡(luò)和非魯棒網(wǎng)絡(luò)的稀疏敏感特性。如圖2所示,在對魯棒網(wǎng)絡(luò)模型進行裁剪時,由于魯棒網(wǎng)絡(luò)的抗擾動能力強,所以稀疏模型精度損失相較于非魯棒網(wǎng)絡(luò)損失小很多。通過對比不同網(wǎng)絡(luò)結(jié)構(gòu)下每層的稀疏敏感度,可以發(fā)現(xiàn)魯棒網(wǎng)絡(luò)中間層對稀疏的敏感度很高,網(wǎng)絡(luò)的兩端對稀疏的敏感度較低,而非魯棒模型的網(wǎng)絡(luò)前層的稀疏敏感度也很高。這也證實了魯棒網(wǎng)絡(luò)需要更大的特征空間來減少對抗攻擊的可能性。在文獻[39]中,作者通過對網(wǎng)絡(luò)的中間層直接擾動發(fā)現(xiàn)魯棒網(wǎng)絡(luò)的中間層的魯棒性較差,所以網(wǎng)絡(luò)的中間層比其他層需要更多的參數(shù)去保持模型的魯棒性。為了更好地度量網(wǎng)絡(luò)不同層的敏感度,本文提出一種基于KL散度值的方法去衡量剪枝前后網(wǎng)絡(luò)的輸出分布的差異。具體公式如下:
(3)
式中:M表示網(wǎng)絡(luò)剪枝的Mask;f表示神經(jīng)網(wǎng)絡(luò)的輸出;xadv表示針對模型參數(shù)θ的對抗樣本。圖2(c)是稀疏度為90%下正常訓練和對抗訓練下ResNet18和ResNet34網(wǎng)絡(luò)的KL散度值圖,可以發(fā)現(xiàn)在不同網(wǎng)絡(luò)結(jié)構(gòu)下,魯棒網(wǎng)絡(luò)中間層的KL散度值相較于網(wǎng)絡(luò)兩端的值大很多,而且會產(chǎn)生一個跳變的過程,所以本文根據(jù)KL散度值的轉(zhuǎn)折點把網(wǎng)絡(luò)結(jié)構(gòu)進行劃分,對不同的稀疏敏感層分別進行剪枝操作。

(a) 非魯棒網(wǎng)絡(luò)的稀疏敏感曲線

(b) 魯棒網(wǎng)絡(luò)的稀疏敏感曲線

(c) 不同網(wǎng)絡(luò)的稀疏敏感曲線圖2 魯棒和非魯棒網(wǎng)絡(luò)不同層的稀疏敏感度
由于魯棒網(wǎng)絡(luò)具有中間層稀疏敏感特性和誤差放大特性,本文提出一種分層剪枝策略。根據(jù)網(wǎng)絡(luò)每層稀疏敏感度即KL散度值將一個網(wǎng)絡(luò)劃分成兩個Block,第一個Block主要包括了對稀疏不敏感的網(wǎng)絡(luò)前層,第二個Block是網(wǎng)絡(luò)的剩余部分。對于第一個Block,網(wǎng)絡(luò)的參數(shù)量少且對稀疏的敏感度較低,所以為了降低誤差的放大效應(yīng)需要盡可能地稀疏網(wǎng)絡(luò)參數(shù)。對于第二個Block,因為網(wǎng)絡(luò)中間層的稀疏敏感度高,所以在剪枝時需要傾向于裁剪網(wǎng)絡(luò)的后面稀疏不敏感層。同時由于隨著網(wǎng)絡(luò)深度的增加網(wǎng)絡(luò)參數(shù)變得越多而且更加稀疏,所以對于每個block只需要采取全局剪枝方式就能有效地裁剪網(wǎng)絡(luò)不敏感層的參數(shù),即分層剪枝策略對每個Block采取自動剪枝策略。具體的算法如算法1所示。
算法1基于稀疏敏感的分層剪枝算法
輸入:訓練樣本X,剪枝率P,攻擊的次數(shù)T,每次的裁剪率s,剪枝參數(shù)M,初始化權(quán)重θ={θi,1≤i≤L}。
輸出:收斂后的模型參數(shù)θ。
1. For epoch=1;epoch 2. Fort={1,…,T} do 3. Generate the adversarial examples using Eq.(2). 4. Updatewithθmask m to minimize Eq.(1). 5. Calculate the KL divergence according to Eq(3) and divide the network. 6. For block in blocks: 7. For all parameters in block: 8. Prunes% of the parameters, creating an updated maskM. 9. Repeat steps (1-8) until a sufficiently pruned network be obtained 本節(jié)實驗主要在兩種主流數(shù)據(jù)集Mnist和Cifar10上進行。為了驗證我們的剪枝策略的有效性,本文分別衡量了剪枝模型的模型精度(干凈樣本上的精度)和魯棒精度(對抗樣本上的精度)。 數(shù)據(jù)集和網(wǎng)絡(luò)結(jié)構(gòu):Mnist數(shù)據(jù)集是一個單通道分辨率為28×28的手寫數(shù)字灰度圖片,其中包含了60 000幅訓練圖片和10 000幅測試圖片。對于Mnist數(shù)據(jù)集,本文主要使用一個2層卷積和2層全連接層的網(wǎng)絡(luò)。Cifar10數(shù)據(jù)集共有10個類別,每類有6 000幅圖片,每幅圖片是大小為32×32的RGB三通道圖片。對于Cifar10數(shù)據(jù)集,本文采用了ResNet18和ResNet34網(wǎng)絡(luò)。 攻擊方式:在Mnist數(shù)據(jù)集下,對抗訓練和測試過程中PGD迭代攻擊的最大擾動為0.3,每次攻擊步長為0.01,迭代攻擊次數(shù)為40次。FGSM單步攻擊擾動為0.3。對于Cifar10數(shù)據(jù)集,PGD迭代攻擊的最大擾動為8/255。每次攻擊步長2/255,迭代攻擊次數(shù)為10次。FGSM單步攻擊的擾動為8/255。 本節(jié)實驗選取了基于濾波器權(quán)重幅值剪枝[33],基于濾波器權(quán)值重要性的剪枝[35]和軟剪枝[34](SFP)的3剪枝方法作為對比,對比了在這三種經(jīng)典剪枝算法下分層剪枝策略的模型精度變化。表1和表2分別展示了在Mnist數(shù)據(jù)集和Cifar10數(shù)據(jù)集上稀疏模型和原模型的精度對比。 如表1和表2所示,隨著裁剪的網(wǎng)絡(luò)權(quán)重數(shù)量的增加,模型的稀疏度隨之提升,模型在干凈樣本上和對抗樣本上的準確度都有所下降。可以明顯看出,無論剪枝率設(shè)為70%或者90%,使用傳統(tǒng)的剪枝策略的精度都不如本文的分層剪枝策略的精度高。在Mnist數(shù)據(jù)集上,如表1所示,雖然通過SFP的剪枝方法使得網(wǎng)絡(luò)的魯棒精度下降了超過2%,但是通過使用本文的分層剪枝策略能把損失的精度控制在2%左右。同時可以發(fā)現(xiàn)對使用本文分層策略的權(quán)重幅值和權(quán)重重要性剪枝的模型,當剪枝率達到90%時模型精度甚至超過了原網(wǎng)絡(luò)的精度。從表2中可以看出,無論在ResNet18或者ResNet34模型上,分層SFP算法相較于經(jīng)典的SFP算法魯棒精度的提升超過1%。ResNet18模型在壓縮了90%情況下,分層策略的權(quán)重幅值算法比普通權(quán)重幅值算法FGSM魯棒精度提高了1.09%,PGD魯棒精度提高了1.44%,干凈樣本上的精度提高了0.46%。對于使用權(quán)重重要性指標的剪枝策略的網(wǎng)絡(luò),本文的分層策略在FGSM精度上提升了0.61%,PGD精度提升了0.49%,干凈樣本精度提升了0.86%。類似的結(jié)果也可以在ResNet34模型上找到。實驗結(jié)果表明,結(jié)合了分層剪枝策略的模型,比未結(jié)合的剪枝方法的模型精度損失更小,驗證了該剪枝策略的有效性。 表1 不同剪枝算法在Mnist數(shù)據(jù)集上的對比結(jié)果(Top1精度) 表2 不同剪枝算法在Cifar10數(shù)據(jù)集上的對比結(jié)果(Top1精度) 黑盒攻擊是對抗樣本在實際應(yīng)用中需要考慮的問題,為了驗證在黑盒攻擊下本文方法的有效性,本節(jié)實驗主要圍繞黑盒攻擊下分層剪枝的稀疏模型精度變化。本文把通過正常訓練的模型作為替代模型,基于權(quán)重幅值分層剪枝的稀疏模型作為目標攻擊模型,通過替代模型分別用FGSM和PGD兩種方法產(chǎn)生對抗樣本去攻擊目標模型。實現(xiàn)結(jié)果如表3所示,可以發(fā)現(xiàn)在Cifar10數(shù)據(jù)集下,剪枝模型在黑盒攻擊下的精度都比原網(wǎng)絡(luò)高,特別是當剪枝率為30%時,剪枝模型的FGSM和PGD精度分別提升了1.05%和0.9%。由實驗結(jié)果可知,分層剪枝后的稀疏模型在黑盒攻擊下依舊能夠保持原網(wǎng)絡(luò)的魯棒精度,甚至在一定的剪枝率下能超過原網(wǎng)絡(luò)的精度。 表3 不同剪枝率下模型的黑盒精度結(jié)果(Top1精度) 為了解決魯棒網(wǎng)絡(luò)對模型容量的需求極大的難題,本文通過實驗揭示了神經(jīng)網(wǎng)絡(luò)的稀疏性、魯棒性和模型精度三者的關(guān)系,然后根據(jù)魯棒網(wǎng)絡(luò)的稀疏敏感度特點提出以一種基于稀疏敏感的分層剪枝方法。實驗結(jié)果表明,通過分層剪枝的稀疏模型不僅在白盒攻擊下實現(xiàn)了模型的最大程度的壓縮,提高了模型的泛化能力,而且在黑盒攻擊下稀疏模型的魯棒精度超過原網(wǎng)絡(luò)模型。本算法目前只用于非結(jié)構(gòu)剪枝上,后期將嘗試在濾波器的剪枝上進行應(yīng)用。同時,可以考慮將本文算法同知識蒸餾等其他網(wǎng)絡(luò)壓縮算法進行融合,進一步提升網(wǎng)絡(luò)的魯棒性和壓縮率。3 實驗驗證
3.1 實驗數(shù)據(jù)集和攻擊參數(shù)
3.2 分層剪枝實驗


3.3 黑盒攻擊

4 結(jié) 語