見(jiàn)玉昆
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
近年來(lái),深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNNs)已經(jīng)在多個(gè)領(lǐng)域取得巨大的成就,例如圖像、音頻、文字,然而最近的工作表明強(qiáng)大的深度神經(jīng)網(wǎng)絡(luò)模型在處理一種人眼不可察覺(jué)的噪聲時(shí)表現(xiàn)出脆弱性,這種針對(duì)模型設(shè)計(jì)的噪聲即為對(duì)抗樣本。
為了提高神經(jīng)網(wǎng)絡(luò)分類(lèi)器的對(duì)抗噪聲魯棒性,有大量的方法被提出來(lái),有去噪、正則化、對(duì)抗訓(xùn)練、剪枝、集成學(xué)習(xí)。經(jīng)過(guò)長(zhǎng)期研究后,學(xué)術(shù)界認(rèn)為有效提高對(duì)抗魯棒性方法之一是對(duì)抗訓(xùn)練。對(duì)抗訓(xùn)練就是將對(duì)抗攻擊算法生成的對(duì)抗樣本作為訓(xùn)練數(shù)據(jù),這樣訓(xùn)練出來(lái)的模型能夠抵御對(duì)抗樣本的攻擊,也就是具有了對(duì)抗攻擊魯棒性。
對(duì)抗訓(xùn)練需要生成對(duì)抗樣本,而對(duì)抗樣本的生成方式有單步迭代的方式以及循環(huán)迭代的方式,前者的生成速度快、攻擊性差,后者的生成速度慢、攻擊性強(qiáng)。因此使用迭代的方式生成的對(duì)抗樣本訓(xùn)練可以獲得更好的對(duì)抗魯棒,然而迭代意味著更高昂的計(jì)算成本,甚至在大型數(shù)據(jù)集上訓(xùn)練一個(gè)魯棒模型在工業(yè)界變得不可行。
研究表明魯棒的模型相較于自然的模型需要更大的模型容量和更多樣的訓(xùn)練數(shù)據(jù),這對(duì)于模型部署是一個(gè)阻礙。模型壓縮是緩解這一問(wèn)題的一種方法,對(duì)于自然模型的壓縮需要保證壓縮后的精度損失在可接受的范圍。然后對(duì)魯棒模型進(jìn)行壓縮,需要同時(shí)保證良好的訓(xùn)練精度和對(duì)抗精度,只是考慮自然精度進(jìn)行模型壓縮有可能導(dǎo)致對(duì)抗精度降低。存在研究認(rèn)為自然樣本的數(shù)據(jù)分布和對(duì)抗樣本的數(shù)據(jù)分布存在一定的差異,在高維流形上兩種樣本的決策邊界并非重合的。如果僅使用自然樣本的損失函數(shù)作為優(yōu)化目標(biāo),模型會(huì)更好的擬合自然數(shù)據(jù)分布,導(dǎo)致對(duì)對(duì)抗樣本分類(lèi)錯(cuò)誤,這也是對(duì)抗樣本成因的一種假說(shuō)。在壓縮模型的同時(shí)保證自然精度和對(duì)抗精度是一個(gè)挑戰(zhàn),本文基于梯度復(fù)用的對(duì)抗訓(xùn)練加速方案改進(jìn)對(duì)抗魯棒模型的壓縮速度。實(shí)驗(yàn)表明可以獲得更快的模型壓縮速度。
卷積神經(jīng)網(wǎng)絡(luò)經(jīng)過(guò)訓(xùn)練可以對(duì)輸入樣本正確分類(lèi),對(duì)抗樣本'是一種人類(lèi)可以正常分類(lèi)而卷積神經(jīng)網(wǎng)絡(luò)無(wú)法正確分類(lèi)的樣本,也就是滿(mǎn)足式(1)的輸入樣本,其中(·)是分類(lèi)器,是對(duì)抗擾動(dòng)的超球半徑,用于度量對(duì)抗擾動(dòng)的幅度。用于度量對(duì)抗擾動(dòng)的幅度。
Fast Gradient Sign Method(FGSM)是Goodfellow 等人提出的對(duì)抗樣本生成方式,特點(diǎn)是只需要單次訪問(wèn)模型即可生成對(duì)抗樣本。生成方式如式(2),其中代表的是損失函數(shù),sign 代表?yè)p失函數(shù)的梯度方向。
Projected Gradient Descent(PGD)是Goodfellow 等人基于FGSM 提出的迭代攻擊方法。PGD 的對(duì)抗樣本生成算法式(3),其中表示單次攻擊的擾動(dòng)步長(zhǎng),是裁剪函數(shù),對(duì)超出超球半徑范圍的對(duì)抗擾動(dòng)裁剪。
對(duì)抗訓(xùn)練的損失函數(shù)是一個(gè)最小最大化的非凸優(yōu)化過(guò)程,對(duì)抗訓(xùn)練的優(yōu)化目標(biāo)為式(4),其中是網(wǎng)絡(luò)的參數(shù),是數(shù)據(jù)集。其中最小化的優(yōu)化目標(biāo)通過(guò)優(yōu)化網(wǎng)絡(luò)參數(shù)使損失減小。最大化的優(yōu)化目標(biāo)通過(guò)最大化對(duì)抗擾動(dòng)'使損失增大。
模型壓縮是一種成熟的技術(shù),旨在促進(jìn)DNN 在資源受限情況下的實(shí)現(xiàn)。用于減少模型的存儲(chǔ)空間和推理時(shí)間,同時(shí)不會(huì)顯著地降低準(zhǔn)確性。模型壓縮技術(shù)有參數(shù)剪枝、低秩分解、知識(shí)蒸餾等。參數(shù)剪枝是對(duì)已經(jīng)訓(xùn)練好的模型進(jìn)行壓縮,以刪除冗余、低權(quán)重的網(wǎng)絡(luò)權(quán)重達(dá)到DNN模型的參數(shù)量。參數(shù)剪枝同樣是一種避免過(guò)擬合的有效方式,由于過(guò)擬合模型普遍具有較差的對(duì)抗魯棒性,因此參數(shù)剪枝也作為提高模型魯棒性的一個(gè)技巧。低秩分解是將卷積神經(jīng)網(wǎng)絡(luò)里面較大的卷積核進(jìn)行分解成多個(gè)較小的卷積核用于降低計(jì)算量,可以有效地降低內(nèi)部冗余性,然而低秩分解會(huì)增加模型深度使得一些模型出現(xiàn)梯度消失,無(wú)法廣泛應(yīng)用到所有模型上。知識(shí)蒸餾的核心思想是用一個(gè)較小的網(wǎng)絡(luò)實(shí)現(xiàn)原有網(wǎng)絡(luò)的功能,通過(guò)教師模型生成的軟標(biāo)簽作為學(xué)術(shù)模型的學(xué)習(xí)目標(biāo)。
彩票假說(shuō)提出了一種觀點(diǎn),一個(gè)具有對(duì)抗魯棒的模型內(nèi)部是存在一個(gè)相同對(duì)抗魯棒性的子網(wǎng)絡(luò),很多人努力找尋一種能夠找到這個(gè)子網(wǎng)絡(luò)的方法。Ye等人提出了一種參數(shù)剪枝的訓(xùn)練方法ADMM(Adversarial Robustness Model Compression)。這是一種基于ADMM 生成剪枝閾值的對(duì)抗模型壓縮方法,避免顯著降低自然精度和對(duì)抗精度。ADMM 算法可以分為三個(gè)部分,分別是預(yù)訓(xùn)練、剪枝、微調(diào)重訓(xùn)練。預(yù)訓(xùn)練部分訓(xùn)練一個(gè)具有良好精度的網(wǎng)絡(luò)模型。剪枝部分使用交替方向乘子(Alternating Direction Method of Multipliers)優(yōu)化算法剪枝,使用較高的剪枝比例會(huì)顯著降低模型的精度。重訓(xùn)練部分對(duì)剪枝后的模型訓(xùn)練,使精度一定程度的恢復(fù)。最終的網(wǎng)絡(luò)模型為經(jīng)過(guò)重訓(xùn)練的模型。
ADMM 的損失函數(shù)如下:
其中θ,z,u中任意兩個(gè)可以迭代生成第三個(gè),迭代公式如下:
對(duì)抗訓(xùn)練相較于自然訓(xùn)練需要更高的訓(xùn)練成本,這使得在大型數(shù)據(jù)集上訓(xùn)練魯棒模型更加困難。對(duì)抗訓(xùn)練主要的計(jì)算代價(jià)是對(duì)抗樣本的生成,Shafahi等人發(fā)現(xiàn)PGD 等迭代對(duì)抗攻擊過(guò)程對(duì)反向傳播生成的梯度并未加以利用,提出了FreeAdversarialTraining(FreeAT)的訓(xùn)練方法。FreeAT 在對(duì)抗樣本迭代的過(guò)程中利用梯度同時(shí)更新對(duì)抗擾動(dòng)和模型參數(shù),可以降低對(duì)抗訓(xùn)練的成本。
ADMM 本文將對(duì)抗訓(xùn)練的加速方案用于模型壓縮的對(duì)抗訓(xùn)練過(guò)程中,以達(dá)到加速模型的壓縮。
本文實(shí)驗(yàn)訓(xùn)練及測(cè)試的計(jì)算機(jī)硬件配置如下:CPU為Amd(R)Ryzen(TM)R9 5900X@3.70 GHz,GPU為NVIDIA GeForce RTX 3080 Ti,實(shí)驗(yàn)采用的操作系統(tǒng)是Ubuntu20.04,深度學(xué)習(xí)框架為PyTorch1.8.1、CUDA11.1、cuDNN8.0.4。
MNIST 數(shù)據(jù)集(Mixed National Institute of Standards and Technology database)是美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院收集整理的大型手寫(xiě)數(shù)字?jǐn)?shù)據(jù)庫(kù),包含60 000 個(gè)示例的訓(xùn)練集以及10 000 個(gè)示例的測(cè)試集。
本實(shí)驗(yàn)采用自然精度、對(duì)抗精度、訓(xùn)練時(shí)間作為度量指標(biāo)。
3.4.1 實(shí)驗(yàn)參數(shù)設(shè)置
輸入圖片大小設(shè)置為1×28×28,網(wǎng)絡(luò)采用5 層的LeNet 網(wǎng)絡(luò),使用隨機(jī)梯度下降法(SGD,Stochastic Gradient Descent)和自適應(yīng)矩陣估計(jì)(Adam,Adaptive moment estimation)作為優(yōu)化器,SGD 初始學(xué)習(xí)率為0.01,動(dòng)量設(shè)為0.9,權(quán)重衰減系數(shù)設(shè)為1×10,Adam 初始學(xué)習(xí)率為0.01。Batch Size 設(shè)置為512,epoch 數(shù)設(shè)置為40 輪,對(duì)LeNet 網(wǎng)絡(luò)的兩個(gè)Batch Normalize 層進(jìn)行壓縮,參數(shù)剪枝比例分別為0.8 和0.947。
魯棒性測(cè)試采用PGD 攻擊,對(duì)抗擾動(dòng)半徑設(shè)為0.3,迭代次數(shù)40,迭代步長(zhǎng)設(shè)為0.01,隨機(jī)種子固定為42。
3.4.2 對(duì)照實(shí)驗(yàn)
使用相同的數(shù)據(jù)集、超參數(shù)訓(xùn)練ADMM。在ADMM算法的三個(gè)過(guò)程的對(duì)抗訓(xùn)練的平均時(shí)長(zhǎng)進(jìn)行對(duì)照,最終實(shí)驗(yàn)結(jié)果如表1所示,從表中可以看出,本文提出的加速算法具有一定的加速作用。
表1 模型訓(xùn)練時(shí)間對(duì)比表
自然精度和對(duì)抗精度的測(cè)試如圖1所示,兩張圖分別對(duì)應(yīng)自然訓(xùn)練精度和對(duì)抗訓(xùn)練精度。圖中點(diǎn)線連接的空心圓形是對(duì)照組,實(shí)線連接的五角星是本文。圖中0 ~40 epoch 對(duì)應(yīng)Pretrain,40 ~80 對(duì)應(yīng)Pruning,80 ~120 對(duì)應(yīng)Retrain。如圖1所示,可以看出在預(yù)訓(xùn)練階段ADMM 算法具有更好的自然精度和對(duì)抗精度,在剪枝和微調(diào)的階段中本文可以獲得更加良好的訓(xùn)練精度和對(duì)抗精度。
圖1 模型精度和魯棒性對(duì)比圖
壓縮后的模型精度如表2所示,與ADMM 相比,本文提出改進(jìn)在保證對(duì)抗精度的同時(shí),在自然精度上具有更低的自然精度損失。實(shí)驗(yàn)結(jié)果表明本文保證了壓縮后模型的精度,降低了ADMM 算法的訓(xùn)練時(shí)間。
表2 壓縮后模型精度
為解決深度學(xué)習(xí)模型魯棒性存在的模型容量大、訓(xùn)練時(shí)間長(zhǎng)問(wèn)題,本文在ADMM 的基礎(chǔ)上引入了對(duì)抗訓(xùn)練加速的方法,使用迭代過(guò)程中的梯度降低了對(duì)抗訓(xùn)練的迭代次數(shù)。實(shí)驗(yàn)結(jié)果表明我們?cè)跁r(shí)間復(fù)雜度上得到線性的加速,同時(shí)保證了壓縮后的模型具有良好的對(duì)抗魯棒性,在魯棒模型的壓縮與加速取得了一定的成果。當(dāng)前工作的不足是在精度損失可控的前提下,不能取得指數(shù)級(jí)的加速,接下來(lái)將考慮進(jìn)一步提高訓(xùn)練速度。