賴妍菱,石峻峰,陳繼鑫,白漢利,唐曉瀾,鄧碧穎,鄭德生
(1.西南石油大學 計算機科學學院,成都 610500;2.中國空氣動力研究與發(fā)展中心,四川 綿陽 621000)
機器學習是一門多領域交叉學科,專門研究計算機模擬或?qū)崿F(xiàn)人類的學習行為,以獲取新的知識或技能,并重新組織已有的知識結構使之不斷改善自身性能[1]。深度學習作為機器學習的重要分支,是學習樣本數(shù)據(jù)的內(nèi)在規(guī)律和表示層次的算法,在學習過程中獲得的信息對文字、圖像、聲音等數(shù)據(jù)的解釋有很大幫助,目前已被廣泛應用于現(xiàn)實世界,但容易受到對抗攻擊[2-3]。對抗攻擊是指攻擊者對輸入樣本添加微小的擾動[4],這種擾動人眼難以區(qū)分,但是對于機器而言,模型會為添加擾動后的輸入樣本給出一個高置信度的錯誤輸出,添加擾動后的輸入樣本稱為對抗樣本[5]。
近年來,關于對抗樣本防御的研究主要包括增強模型魯棒性和數(shù)據(jù)預處理兩方面[6]。增強模型魯棒性的方法有很多,現(xiàn)有研究證明對抗訓練和蒸餾能有效防御對抗攻擊[7]。對抗訓練是用特定某一種攻擊的對抗樣本來訓練模型,訓練后得到的模型對于該攻擊的對抗樣本具有防御能力。對抗訓練框架借鑒了標準經(jīng)驗風險最小化方法,目標是盡量減少對抗樣本的風險[8]。蒸餾在不改變網(wǎng)絡結構的情況下,為提高自身的魯棒性,以訓練數(shù)據(jù)的分類概率向量的形式提取知識,將分類概率向量作為新的標簽訓練出一個與原模型結構相同、蒸餾溫度相同的新模型。實驗結果表明,新模型可以提高對圖像中微小擾動的恢復能力[9]。數(shù)據(jù)預處理防御對抗樣本是在數(shù)據(jù)輸入分類模型之前,提前將數(shù)據(jù)進行處理,消除圖像的擾動[10]。數(shù)據(jù)預處理的方法主要有JPEG壓縮、PixelDefend 和HGD。JPEG 壓縮能夠去除圖像的高頻信號分量,該操作相當于選擇性模糊圖像,有助于消除擾動[11-12]。PixelDefend使用CNN將對抗樣本投射回數(shù)據(jù)流形,然后將其反饋到原始分類器,無須訓練數(shù)據(jù)[13]。HGD 是端到端的除噪網(wǎng)絡,采用去噪模塊來消除擾動[14]。
本文提出一種對抗樣本除噪模型SE-ResU-Net,基于編解碼網(wǎng)絡結構,通過編碼網(wǎng)絡對圖像進行壓縮去除圖像中的噪聲,這些噪聲可看作是對抗樣本中的擾動。利用解碼網(wǎng)絡對圖像進行重建,將壓縮后的圖像重建為與干凈樣本接近的清晰圖像,并且能夠被分類模型正確分類。
在圖像分類中,常見的對抗攻擊方法有FGSM、MI-FGSM、PGD、DeepFool 和C& W。
FGSM攻擊是通過使成本函數(shù)J(θ,x,y)變大來達到攻擊的目的,是對抗樣本領域的主要攻擊方法。設θ為模型參數(shù),x為模型輸入,y為x的正確標簽分類,J(θ,x,y)為訓練神經(jīng)網(wǎng)絡的成本函數(shù),ε為擾動系數(shù)。將成本函數(shù)在θ的當前值附近線性化,使用FGSM 攻擊得到最優(yōu)的最大范數(shù)約束擾動。對抗樣本xadv生成方法定義如下[15]:
MI-FGSM 攻擊通過在攻擊過程中融入動量,解決了FGSM 攻擊容易陷入局部最優(yōu)的問題。MI-FGSM 攻擊定義如下[16]:
其中:gt使用式(2)中定義的衰減因子μ收集前t次迭代的梯度來穩(wěn)定梯度更新方向,避免陷入局部最大值。
PGD 攻擊是一種攻擊性很強的一階攻擊,因此很多防御對抗攻擊研究采用PGD 攻擊進行實驗。常見的關于p范數(shù)攻擊的設置是通過Bε(x)=x+δ:找到一個對抗樣本xadv,這是原始圖像x周圍的ε半徑球。PGD 攻擊會反復使用以下更新規(guī)則,以在Bε(x)中找到一個對抗樣本[17]:
DeepFool攻擊通過將輸入樣本投影到最接近的分割超平面來找到導致錯誤分類的最小擾動,解決了FGSM攻擊中參數(shù)選擇困難問題。最小擾動是輸入樣本與分類器上的正交投影之間的距離,屬于求解目標函數(shù)最小值的問題,可以通過迭代的方式進行求解[18]。
C& W 攻擊是基于優(yōu)化的攻擊,目的是最小化由擾動和分類到攻擊類別的概率兩部分的目標函數(shù)值,定義如下:
其 中:f(x′)=max(max{Z(x′)i:i≠t}-Z(x′)t,-k);rn是干凈樣本和對抗樣本之差,攻擊類別記為t;Z(x)t是輸入樣本x通過分類模型但未經(jīng)softmax 層計算得出的輸出向量。將對應類別不同于t的最大值記為max{Z(x′)i:i≠t}。
C& W 攻擊目標為:1)最小化干凈樣本和對抗樣本之差,就是使擾動變得微小,將rn中計算的對抗樣本值映射到tanh 空間,是為了優(yōu)化對抗樣本分布;2)使對抗樣本被誤分類到攻擊類別t的概率盡可能高,也就是使分類為t的置信度k盡可能大[19]。C& W 攻擊通過調(diào)節(jié)置信度使得生成的擾動非常小,可破解很多防御模型。
文 獻[12,20]提 出FeatureSqueezing 和Spatial Smoothing模型進行對抗樣本防御。FeatureSqueezing的原理是減少輸入圖片中的冗余特征,通過降低圖片中每個像素的深度來破壞對抗樣本中的擾動。FeatureSqueezing對圖片進行壓縮,但不會影響分類器對圖片的判斷,因為圖片的主要特征未被破壞。SpatialSmoothing 使用局部平滑來消除對抗樣本中的擾動,由于圖片中相鄰像素點之間其實是關聯(lián)的,局部平滑不會影響圖片的總體特征。
文獻[21]提出使用端到端的圖像壓縮模型ComDefend 來防御對抗樣本。ComDefend 由ComCNN和RecCNN 兩個模塊組成,ComCNN 將輸入壓縮,去除冗余信息,使對抗樣本變回干凈樣本,RecCNN 在ComCNN 輸出的基礎上重建清晰圖像。ComDefend 無須訓練對抗樣本,只需訓練干凈樣本,并且防御后得到的圖像能降低模型分類錯誤率并且圖像清晰。
2.1.1 U-Net 模型
U-Net 是一種圖像語義分割網(wǎng)絡[22-23],如圖1 所示,U-Net 結構由兩個對稱部分組成:1)左半部分網(wǎng)絡是下采樣過程,與普通卷積網(wǎng)絡相同,主要使用3×3 的卷積層和2×2 的池化層,能夠?qū)⑤斎雸D片進行特征壓縮和降維;2)右半部分網(wǎng)絡是上采樣過程,主要使用3×3 的卷積層和2×2 的反卷積層,達到圖像還原的目的,最終使用兩個1×1 的卷積層得到期望的特征通道數(shù)[24-25]。圖1 共進行4 次下采樣操作和4 次上采樣操作。每次下采樣會將特征通道數(shù)增加到之前的2 倍,長寬尺寸減半,如第1 次下采樣將特征通道數(shù)64 加倍為128,尺寸由568 減半到284。每次上采樣會將特征通道數(shù)減半,長寬尺寸加倍,如最后一次上采樣將特征通道數(shù)128 減半為64,尺寸由196 加倍為392。
圖1 U-Net 模型結構Fig.1 U-Net model structure
2.1.2 ResNet 模型
梯度消失、梯度爆炸和神經(jīng)網(wǎng)絡退化會阻礙深層神經(jīng)網(wǎng)絡模型訓練,直接導致深層神經(jīng)網(wǎng)絡模型無法收斂,ResNet可有效解決這些問題[26-27]。ResNet通過構建殘差塊的形式來添加相應的恒等映射y=x,達到優(yōu)化深層神經(jīng)網(wǎng)絡模型性能的目的。殘差塊結構有兩層神經(jīng)網(wǎng)絡,輸入為x,激活函數(shù)為Relu(x)。假設第2個權值層weight layer輸出為F(x),那么對于殘差塊而言,輸入x會經(jīng)過如圖2所示的右邊這條連接線與F(x)相加,需要注意的是x和F(x)的結構要保持一致。經(jīng)過Relu函數(shù)輸出得到最后的結果,假設為H(x),H(x)=F(x)+x,那么F(x)=H(x)-x為該殘差塊的殘差。在深層神經(jīng)網(wǎng)絡中若有很多冗余層,則在訓練過程中不能學習到很多知識。假設殘差塊中的weight layer可看作模型中的冗余層,則該模塊中存在H(x)=x的恒等映射,那么F(x)=0,在此情況下學習會變得容易很多。
圖2 ResBlock 結構Fig.2 ResBlock structure
2.1.3 SENet 模型
SENet是ImageNet 2017競賽圖像分類任務的冠軍模型,可較容易地擴展到已有網(wǎng)絡結構中[28-29]。卷積的主要目的是提高感受野,即空間上融合更多特征或提取多維度的空間信息。SENet 的創(chuàng)新點在于關注特征通道之間的關系,使得模型可以自動學習到不同通道特征的重要程度。SENet 模型如圖3 所示,共進行Squeeze、Excitation 和Reweight 3 個操作。
圖3 SENet 模型結構Fig.3 SENet model structure
首先,通過任意變換Ftr將H′×W′×C′空間維度的輸入轉化為H×W×C。然后,Squeeze 經(jīng)過一系列卷積變換進行特征壓縮,將每個二維特征通道均轉換為一個實數(shù),這個實數(shù)具有全局的感受野,并且輸入的特征通道數(shù)和輸出維度相匹配,這一過程用Fsq(?)表示。其次,Excitation 通過參數(shù)w學習特征通道之間的相關性,確定每個通道的權重值,這一過程用Fex(?,W)表示。最后,Reweight將權重值加權到各通道的特征上,對各個特征通道上的特征進行權重分配,確保重點關注信息量大的特征并忽略不重要的特征,這一過程用Fscale(?,?)表示。
對抗樣本防御流程如圖4 所示,由于對抗樣本的擾動很小,因此無法被分類模型檢測,SE-ResU-Net 在對抗樣本輸入分類模型之前就能消除其擾動,把對抗樣本轉化為干凈樣本。如圖5 所示,SE-ResU-Net 在整體框架上參考U-Net 的跳躍連接結構,即每個卷積層都與對應反卷積層跳躍連接。SE-ResU-Net 左半部分網(wǎng)絡經(jīng)過卷積塊ConvBlock 經(jīng)過卷積和池化層MaxPool2D 進行池化來對圖片進行壓縮,并且卷積使用same 模式,不會造成圖片像素的損失。右半部分網(wǎng)絡經(jīng)過殘差塊ResBlock進行殘差和上采樣Upsample2D來對圖片進行重建。在整個網(wǎng)絡中,與U-Net 保持一致,使用3×3 的卷積層、2×2 的池化層和2×2 的反卷積層。SE-ResU-Net使用的卷積塊ConvBlock 結構如圖6所示,殘差塊ResBlock 結構如圖7 所示。
圖4 對抗樣本防御流程Fig.4 Defense procedure of adversarial examples
圖5 SE-ResU-Net 模型結構Fig.5 SE-ResU-Net model structure
圖6 SE-ResU-Net 模型中的ConvBlock 結構Fig.6 ConvBlock structure in SE-ResU-Net model
圖7 SE-ResU-Net 模型中的ResBlock 結構Fig.7 ResBlock structure in SE-ResU-Net model
SE-ResU-Net 的創(chuàng)新點是在U-Net 的基礎上,解碼網(wǎng)絡部分將卷積組替換為殘差塊,同時將網(wǎng)絡中的BN 層替換為LN 層,并且使用Elu 激活函數(shù)。BN層在深度學習中表現(xiàn)較好,因此在大多數(shù)網(wǎng)絡中均使用BN 結構,但在該任務中并不適用,BN 的作用是使各層網(wǎng)絡滿足獨立同分布,使得網(wǎng)絡訓練變得更加方便,但這也意味著會改變激活值的數(shù)據(jù)分布。在對抗樣本防御時,對于防御網(wǎng)絡的輸入和輸出要求具有相似的數(shù)據(jù)分布,使用BN 不利于圖像重建。除此之外,SE-ResU-Net 還引入輕量級注意力機制的擠壓激勵網(wǎng)絡結構SEBlock,使模型忽略了有干擾的無用特征,從而增強了對分類有用特征的注意力。
選用擾動系數(shù)ε為8/255 的50 000 張CIFAR10圖像和60 000 張Fashion-MNIST圖像的MI-FGSM 對 抗樣本來訓練防御網(wǎng)絡,以得到兩個數(shù)據(jù)集各自對應的防御網(wǎng)絡模型訓練結果。研究發(fā)現(xiàn),在訓練防御網(wǎng)絡時,損失函數(shù)不管是使用平均絕對誤差(Mean Absolute Error,MAE)還是內(nèi)容損失都能達到去除對抗樣本中擾動的目的,但也存在一定的不足。最小化MAE 會使輸出圖像和原圖盡可能接近,但并不能完全消除擾動對分類網(wǎng)絡的干擾,即圖像和原圖雖然極為相似,但所表達的語義信息是不相同的。最小化內(nèi)容損失會使網(wǎng)絡學會還原圖片的語義信息,但并不能保證圖像還原質(zhì)量,圖像質(zhì)量不佳同樣會影響分類網(wǎng)絡的準確率。因此,在訓練網(wǎng)絡時,損失函數(shù)選擇MAE 和內(nèi)容損失的混合形式,取得了較好的效果。
MAE 是模型預測值f(x)與真實值y距離的平均值,計算公式如下:
MAE 在大部分情況下梯度都是相等的,對于模型輸入,梯度是穩(wěn)定不變的,不會導致梯度爆炸問題,但MAE 梯度的值較大,模型收斂速度較慢。
通過從VGG19 網(wǎng)絡中提取的特征通道之間的歐幾里得距離來定義內(nèi)容損失函數(shù)[30]:
其中:φi,j表示VGG19網(wǎng)絡中第i個最大池化層之前的第j個卷積獲得的特征通道;ILR表示重建圖像;IHR表示參考圖像;Wi,j和Hi,j描述了VGG網(wǎng)絡中各個特征通道的尺寸大小。
SE-ResU-Net 的損失函數(shù)定義如下:
其中:超參數(shù)α表示平衡因子,用來調(diào)節(jié)MAE 和內(nèi)容損失的比重。因為這兩個損失函數(shù)優(yōu)化目標不同,MAE 是為了重建圖片,使輸出圖片與原圖片在空間上接近,內(nèi)容損失是為了保留語義,使輸出圖片與原圖片在內(nèi)容上接近。
實驗使用CIFAR10 和Fashion-MNIST 數(shù)據(jù)集。CIFAR10 是一個用于識別常見對象的小型數(shù)據(jù)集,共包括10 種RGB 彩色圖片,有50 000 張訓練圖片和10 000 張測試圖片。Fashion-MNIST 是一個用于識別商品的小型數(shù)據(jù)集,共包括10 種灰度圖片,有60 000 張訓練圖片和10 000 張測試圖片,在實驗中將Fashion-MNIST 數(shù)據(jù)集圖片處理為32 像素×32 像素的圖片尺寸。
實驗中CIFAR10 數(shù)據(jù)集使用的分類模型為SEResNet18,該分類模型在CIFAR10 數(shù)據(jù)集上達到了91.8%的分類準確率。Fashion-MNIST 數(shù)據(jù)集使用的分類模型為SEResNet24,該分類模型在Fashion-MNIST數(shù)據(jù)集上達到了95.3%的分類準確率。
實驗選取MI-FGSM、PGD、DeepFool、C& W 來攻擊分類模型,擾動系數(shù)ε為2/255、4/255 和8/255,使用10 000 張CIFAR10 數(shù)據(jù)集和10 000 張Fashion-MNIST 數(shù)據(jù)集的測試圖片來生成MI-FGSM、PGD、DeepFool 和C& W 的對抗樣本。由于C& W 對抗樣本的生成速度較慢,因此選擇1 000 張測試圖片來生成C& W 對抗樣本。
3.2.1 不同訓練策略對比
由于訓練過程中損失函數(shù)不同,SE-ResU-Net 將產(chǎn)生不同的防御效果,因此使用不同的損失函數(shù)來訓練SE-ResU-Net,在實驗中共進行80 次迭代訓練。實驗采用4 種不同的損失函數(shù)組合,MAE(80)表示在SE-ResU-Net 中使用MAE 進行80 次迭代訓練,內(nèi)容損失(80)表示使用內(nèi)容損失進行80 次迭代訓練,MAE(50)+混合(30)表示先進行50 次MAE 的迭代訓練,再進行30 次MAE 和內(nèi)容損失的混合迭代訓練,混合(80)表示進行80 次MAE 和內(nèi)容損失的混合迭代訓練。表1、表2 和表3 分別給出了在CIFAR10 數(shù)據(jù)集上SE-ResU-Net 對各種對抗攻擊的防御成功率,擾動系數(shù)ε分別為2/255、4/255 和8/255,其中最優(yōu)指標值用加粗字體標示。
表1 CIFAR10 數(shù)據(jù)集上不同損失函數(shù)組合的防御成功率(ε=2/255)Table 1 Defense success rate of different loss function combinations on CIFAR10 dataset(ε=2/255) %
表2 CIFAR10 數(shù)據(jù)集上不同損失函數(shù)組合的防御成功率(ε=4/255)Table 2 Defense success rate of different loss function combinations on CIFAR10 dataset(ε=4/255) %
表3 CIFAR10 數(shù)據(jù)集上不同損失函數(shù)組合的防御成功率(ε=8/255)Table 3 Defense success rate of different loss function combinations on CIFAR10 dataset(ε=8/255) %
實驗結果表明,混合(80)對不同攻擊方法及擾動系數(shù)均有較好的防御效果。在CIFAR10 數(shù)據(jù)集干凈樣本分類準確率達到91.8%的情況下,最優(yōu)訓練策略為混合(80),該策略在MI-FGSM、PGD、DeepFool 攻擊方法上最高達到81.7%、82.5%、84.7%的防御成功率,在C& W 攻擊方法上達到87.0%的防御成功率。
3.2.2 不同防御模型對比
為更好地衡量SE-ResU-Net 模型的防御效果,將其與相同擾動系數(shù)ε下的其他防御模型進行比較。由于80 次MAE 和內(nèi)容損失的混合迭代訓練防御效果最好,因此實驗使用80 次MAE 和內(nèi)容損失的混合迭代訓練的SE-ResU-Net 與其他模型比較。表4、表5 和表6 分別給出了在CIFAR10 數(shù)據(jù)集上各種防御模型對于擾動系數(shù)ε為2/255、4/255 和8/255 的 各種對抗攻擊的防御成功率。
表4 CIFAR10 數(shù)據(jù)集上不同防御模型的防御成功率(ε=2/255)Table 4 Defense success rate of different defense models on CIFAR10 dataset(ε=2/255) %
表5 CIFAR10 數(shù)據(jù)集上不同防御模型的防御成功率(ε=4/255)Table 5 Defense success rate of different defense models on CIFAR10 dataset(ε=4/255) %
表6 CIFAR10 數(shù)據(jù)集上不同防御模型的防御成功率(ε=8/255)Table 6 Defense success rate of different defense models on CIFAR10 dataset(ε=8/255) %
表7、表8 和表9 分別給出了在Fashion-MNIST數(shù)據(jù)集上各種防御模型對于擾動系數(shù)ε為2/255、4/255 和8/255 的各種對抗攻擊的防御成功率。
表7 Fashion-MNIST 數(shù)據(jù)集上不同防御模型的防御成功率(ε=2/255)Table 7 Defense success rate of different defense models on Fashion-MNIST dataset(ε=2/255) %
表8 Fashion-MNIST 數(shù)據(jù)集上不同防御模型的防御成功率(ε=4/255)Table 8 Defense success rate of different defense models on Fashion-MNIST dataset(ε=4/255) %
表9 Fashion-MNIST 數(shù)據(jù)集上不同防御模型的防御成功率(ε=8/255)Table 9 Defense success rate of different defense models on Fashion-MNIST dataset(ε=8/255) %
實驗結果表明,在將干凈樣本通過SE-ResU-Net后,分類準確率沒有降低太多,CIFAR10 數(shù)據(jù)集保持在86.2%,F(xiàn)ashion-MNIST 數(shù)據(jù)集保持在93.1%。對于不同的擾動系數(shù)ε,通過SE-ResU-Net 后,CIFAR10數(shù)據(jù)集上的MI-FGSM 對抗樣本防御成功率分別提高了50.1、61.1、64.0 個百分點,PGD 對抗樣本防御成功率分別提高了51.5、76.6、76.6 個百分點,DeepFool對抗樣本防御成功率分別提高了78.8、78.6、78.5 個百分點,C&W 對抗樣本的防御成功率提高了81.9 個百分點。對于Fashion-MNIST 數(shù)據(jù)集,MI-FGSM 對抗樣本防御成功率分別提高了47.9、70.5、77.9 個百分點,PGD 對抗樣本防御成功率分別提高了70.6、88.3、88.1 個百分點,DeepFool 對抗樣本防御成功率分別提高了78.5、89.2、89.1 個百分點,C&W 對抗樣本的防御成功率提高了89.5 個百分點。與其他防御模型相比,對于實驗中不同對抗攻擊方法及擾動系數(shù),SE-ResU-Net 的防御成功率均高于其他模型。
如圖8 所示,CIFAR10 和Fashion-MNIST 數(shù)據(jù)集中的第1~3 列分別顯示了干凈樣本圖像、對抗樣本圖像和通過SE-ResU-Net 防御后的圖像。由此可見,實驗中生成的對抗樣本是有效的,并且SE-ResU-Net能夠保證對抗樣本圖像的還原質(zhì)量。
圖8 防御效果展示圖Fig.8 Defense effect display diagram
針對深度神經(jīng)網(wǎng)絡模型受到的對抗攻擊問題,本文從數(shù)據(jù)預處理角度出發(fā),提出神經(jīng)網(wǎng)絡除噪模型SE-ResU-Net,采用先壓縮后重建的編解碼網(wǎng)絡結構,使用擾動系數(shù)ε=8/255 的MI-FGSM 對抗攻擊方法生成的對抗樣本作為訓練集。在CIFAR10 和Fashion-MNIST 數(shù)據(jù)集上進行防御實驗,結果驗證了SE-ResU-Net 對MI-FGSM、PGD、DeepFool 和C& W 攻擊具有較好的防御效果和一定的泛化能力。后續(xù)將優(yōu)化除噪網(wǎng)絡模型SE-ResU-Net 結構,進一步提高防御成功率。