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