各位知乎兒好,這是<EYD與機器學習>專欄對抗樣本方向的第二十九篇文章,這次我給大家介紹一篇新的防禦方向的文章。對於這個比較新的方向,我們每次都儘可能地將我們的理解努力分享給大家,如果其中有錯誤和誤解,非常歡迎大家指正,畢竟個人的能力是有限的,我們的初衷是希望通過分享能夠給大家帶來方便,也希望能在學習與交流中提升我們自身,希望大家不吝賜教。

1. AuxBlocks: Defense Adversarial Example via Auxiliary Blocks

本文[1]主要提出了一種抵禦對抗樣本攻擊的新的防禦機制。主要思想是作者基於附加信息引入輔助塊模型(Auxiliary Blocks, 簡寫為AuxBlocks)產生額外的輸出作為一種自集成演算法的防禦方法,並且分析研究了輔助塊模型的魯棒性機理。實踐表明,在防禦兩種白盒攻擊時,即使是對於完全的白盒攻擊(攻擊者可以利用防禦模型任意設計對抗樣本),都表現出良好的性能。此外,該方法的另一個優點是能夠保持分類模型對乾淨圖像的預測精度,在實際應用中顯示出較高的潛力。

作者提出輔助塊方法的思想其實非常簡單,對抗樣本是被構造來誤導模型的預測輸出的,那麼作者就認為要解決這個問題,那就輸出多個結果而不是一個。本文就是遵循這一思想,引入了輔助塊模型。在本文的防禦模型中,利用新的輔助塊擴展原來的模型,作者提出引入類似於自集成模型的多個輔助塊,並提出了適用的輔助塊結構,自集成的輔助塊模型如下圖所示,關鍵思想是在一些卷積層中添加輔助塊。結果表明,輔助塊結構的引入顯著提高了網路模型防禦白盒攻擊的魯棒性。此外,作者還考慮了完全的白盒攻擊(稱為自適應白盒攻擊),這種攻擊是指攻擊者完全了解模型及其防禦機制,很多能夠防禦白盒攻擊的方法難以抵禦自適應攻擊。事實表明,對於自適應白盒攻擊,本文提出的輔助塊模型依然具有防禦能力。

(左圖)藍色圓點的圓形框架是原始模型,而綠色圓點的框架是Aux Block模型,其中Aux Block可以是任何函數。(右圖)一個Aux Block的例子,是一個one hidden layer CNN。

在本文中,主要考慮兩種白盒攻擊:靜態白盒攻擊和自適應白盒攻擊。靜態白盒攻擊是指攻擊者知道原始模型的一切知識,但不知道模型的防禦機制,這種白盒攻擊也叫局部白盒攻擊;自適應白盒攻擊是指對抗樣本的是由攻擊者為特定的防禦精心設計的,因此比靜態白盒攻擊更難抵禦。兩種白盒攻擊及黑盒攻擊的特點比較如下表所示。

接下來詳細介紹本文提出的輔助塊模型演算法。

實驗表明,多個不同模型的集成可以提高對惡意輸入的魯棒性。然而,傳統集成方法的瓶頸也很明顯:存儲和重新載入k個不同的模型對內存消耗是一個巨大的負擔,並且每個模型中的參數調優也是一個非常棘手的任務。在本文中,作者提出了一種演算法,它能夠在一個模型中生成多個輔助分類器,並且具有較小的內存開銷,並且可以避免額外的參數調優過程。

作者的主要思想是引入輔助塊,然後將模型分為兩部分:公共模型和私有模型。具體地說,公共模型是一個標準的卷積神經網路,也就是原始模型。私有模型是幾個輔助模型,如上圖所示。公共模型可以向攻擊者公開,而私有模型對攻擊者是機密的,因此攻擊者無法輕鬆生成有效的對抗樣本。其中aux塊可以是任何結構,本文採用了一種微型神經網路。

在圖像分類的任務背景下,輔助塊網路體系結構是為幾個不同的數據集精心設計的。後面會具體介紹結構特點,這裡先將演算法思想講清楚。

設整體模型表示為 f x 表示輸入圖像,預測輸出不再是單個值而是 n 維向量 y=[y_1,y_2,y_3,...,y_{m+1}] ,其中 yin R^m , m 為輔助塊的數量, y_1 是公共模型的輸出, y_2,y_3,...,y_{m+1} 來自輔助塊網路。由於對抗樣本是在沒有輔助信息的情況下生成的,因此在輔助塊中,預測輸出不太可能被誤導。新的交叉熵損失函數可以重寫為:

其中 T 表示類標籤的個數, y_{i,j} 表示分類器 i 中標籤 j 的值, P_{ij} 表示分類為y_{i,j}的概率。由於新的損失函數是所有分類器的總體損失, alpha_iin R 是一個控制分類器 i 在總損失中的相對權重的參數,也作為輔助塊在最終決策中的置信度。在本文中,對所有的輔助塊令 alpha=1 。演算法的具體訓練和測試過程如下所示。

在上面的演算法中,作者將大多數輔助塊的輸出類作為最終的預測輸出。另外,作者還提出了其他的度量方法,比如基於分數的演算法,唯一的區別在於如何選擇最終輸出。在如下所示的演算法2中,作者實現了相同的訓練階段,但在測試階段,通過計算每個類的分數並選擇其中最大值。與演算法1相比,演算法2對每個類的概率評估更加離散,通常認為一個較大的輔助塊在測試中占的權重較大。 當 alpha_i=1(i=1,cdotcdotcdot,m) ,演算法2等價於演算法1。

這裡對提出的方法對前面提到的兩種白盒攻擊的有效性進行討論。在靜態攻擊中,對抗樣本是基於非防禦模型構建的。所以有兩種完全不同的方法來防禦這些攻擊。一種是通過減少一些必要的信息,比如防禦性蒸餾等。然而防禦方法在防禦靜態攻擊表現良好有可能是因為梯度掩蔽現象。而已有研究表明基於梯度模糊的防禦研究不是一個正確的方向。而本文提出的方法不採用信息減少演算法,而是將所有的輔助塊與原網路的信息進行組合輸出來增加信息。這裡沒有混淆原始模型中的梯度,是由原始模型生成的對抗樣本忽略了輔助塊中的額外知識信息。

而對於自適應白盒攻擊,梯度掩蔽方法是一種自欺欺人的方法。當攻擊者知道防禦信息時,他可以毫不費力地繞過防禦,那麼布置的防禦對於對抗樣本沒有任何防禦效果。我們採用·了一種新的攻擊Adp-FGSM(自適應FGSM),從防禦模型中直接構造對抗樣本。實驗表明,本文提出的輔助塊方法仍然可以提高模型對自適應攻擊的魯棒性。作者分析認為,雖然攻擊為整體模型製造了一個對抗圖像,但是該對抗擾動的目的是誤導其中一個輔助塊,但是對抗樣本可以被其他輔助塊正確分類,後面會給出更多的解釋。

接下來我們來看一下具體的實驗驗證。

首先是實驗設置,實驗主要是在MNIST、CIFAR-10、MINI-ImageNet三個數據集上進行的。考慮了兩個常用的卷積神經網路模型:LeNet-5和VGG16,其中激活函數使用RELU,損失函數為交叉熵損失函數。

對比的防禦方法主要為PGD對抗訓練,用來測試的攻擊方法分為兩類。靜態白盒攻擊包括PGD、C&W (L2)、決策邊界攻擊(DeepFool)等,自適應白盒攻擊包括通過修改FGSM和PGD得到的Adp-FGSM和Adp-PGD方法,Adp-FGSM生成對抗樣本的過程如下所示:

其中 x_{adp}和J_{adp} 是針對特定防禦重新設計的輸入和梯度。 x_{adp} 重新評估對抗訓練演算法將原始輸入轉換為對抗輸入,因此使用新的輸入 x_{adp} = x + Delta x ,其中 Delta x 是對抗訓練的擾動。使用前面定義的新的損失函數將所有的輔助塊和原始模型組合在一起得到新的梯度:

下圖是Adp-PGD攻擊方法生成的對抗樣本的例子。

接下來著重介紹一下本文使用的輔助塊的結構細節。以VGG16模型的結構為例解釋輔助塊的位置、結構、數量等問題。VGG16的結構為[64,64,M, 128,128,M, 256, 256, 256, M, 512,512, 512, M, 512,512, 512, M]。一個輔助塊模型作為一個塊。

首先是輔助塊的合適位置在哪裡?因為對抗樣本的原因很有可能是高層特徵容易被污染,一個像素的小擾動是大區域的累積,因為高層特徵越來越來抽象,一個像素的接受域越來越大。在本文的實驗中,作者在三個不同的位置插入3個Aux block: [64,64, Block1 , M, 128,128, M, 256, Block2 ,256, 256, M, 512, 512, 512, M, 512, Block3 ,512, 512, M]。可以如下表所示製作Aux塊。

卷積層的特徵圖是Aux塊中的輸入。由於在過濾每個maxpooling層之後特徵圖會減小,所以使用一個靈活的Aux塊結構:如果一個feature map的大小減小,那麼我Aux塊層的數量就會減少。因此上述的三個Aux Block具有不同的結構,Block1與上表中的Aux Block相同,而Block2、Block3如下表所示。

使用一個兩次迭代的PGD從公共模型中生成對抗性的例子,並觀察每個Aux塊的準確性,以研究Aux塊的位置是否會影響其魯棒性。下表的結果表明,與原始結果相比,Block2和Block3具有相同的性能,而Block1在一定程度上提高了魯棒性。因此對於Aux Block的位置來說,深層並不是明智的選擇。

第二個問題是合適的Aux Block結構。一個粗糙的Aux塊會降低乾淨數據的模型精度,而如果一個Aux塊過於精細,模型會顯得臃腫。在本文中,作者為三個數據集設計了三個Aux塊:Aux1、Aux2、Aux3,結構分別如下表所示。

防禦靜態白盒攻擊的結果如下表所示。

結果表明,該方法提高了靜態對抗樣本的測試精度。在測試集中隨機選取了1000個樣本進行邊界攻擊,由於計算量的不足,沒有在Mini-Imagenet中使用該演算法。本文的模型輸出兩個值:一個是來自整個模型的結果,另一個僅來自作為私有的Aux塊。與對抗訓練相比,Aux Block(private)具有更好或同等的性能,說明了原非防禦模型中的對抗樣本可以被Aux Block模型防禦。特別地,在防禦C&W攻擊上,對於所有數據集,本文的方法的性能優於對抗訓練方法。

而對於自適應攻擊,下表顯示了Adp-PGD攻擊的測試準確率。在表中,本文的模型在Mnist和Cifar-10數據集上顯著優於對抗訓練模型,精度分別為56.55%和54.6%,而對抗性訓練模型的準確率僅為20%左右。

下圖也顯示了Aux塊模型有助於提高對抗樣本的分類準確率。對於小擾動,即使攻擊者知道如何為Aux塊模型構造對抗樣本,但與對抗訓練模型相比,它仍然能夠提高魯棒性。不過,從實驗中可以看出,如果擾動足夠大,Aux Block模型也會崩潰。

另外,要注意的是雖然該實驗關注的是非針對性攻擊,但這並不意味著不包括針對性攻擊。眾所周知,有針對性的攻擊更難攻擊,也更容易防禦。

作者對於提出的方法對自適應攻擊有效提出了解釋:一個對抗樣本要想誤導模型,應該欺騙大部分的Aux block,假設對一個塊的攻擊不足以欺騙其他塊,而創建一個將所有塊一起欺騙的樣本要比欺騙一個塊困難得多。因此,該模型比非防禦模型更不容易崩潰。

為了證明一個塊的攻擊並不足以欺騙其他塊,作者研究了Aux塊模型中的損失值。針對一個Aux塊設計了特定的擾動,然後觀察這個對抗樣本在所選分類器中的損失值,以及其他分類器的平均值。實驗表明,其他輔助塊對下圖中目標分類器的擾動不敏感,特別是當擾動不是很大時,。一次對輔助塊的嚴重攻擊對其他輔助塊的影響很小。可以看到,隨機值不影響比率。此外,很明顯,創建一個愚弄所有塊的對抗樣本要比愚弄一個塊困難得多。因此,本文的方法對自適應白盒對手仍然是魯棒的。

以上就是本文的主要內容,最後我們來總結一下本文的主要貢獻:

1)提出了一種新的信息附加防禦方法,提高了神經網路對擾動的魯棒性。關鍵思想是在一些卷積層中添加輔助塊。該演算法可以看作是建立一個自集成模型。2)提出了兩種演算法:基本演算法和基於分數的演算法。實驗表明,與對抗性訓練模型相比,Aux塊能夠提高模型對靜態白盒攻擊的魯棒性。3)研究了該方法在自適應白盒攻擊中的表現,實驗表明該方法在面對Adp-FGSM攻擊時仍然具有較強的防禦能力。

該方法很大的優勢在於方法的動機是直接和直觀的,而且在實際應用中,該方法可以很容易地實現和應用於不同的場景。

總結

作者提出了一種新的防禦技術,稱為Aux塊模型,以提高神經網路對對抗擾動的魯棒性。實驗結果表明,該演算法具有較強的魯棒性,並在實際應用中得到了明顯的改進。本文的工作也為對抗性機器學習提出了一個新的框架。

如果有什麼想說的,歡迎在文章下面進行評論,不僅限於學術,我們會隨時關注。我們非常期待大家的交流。

如果對本文章有任何問題和建議,歡迎指正和提出。

— WaY

參考文獻

[1]Yu, Yueyao, Pengfei Yu, and Wenye Li. "AuxBlocks: Defense Adversarial Example via Auxiliary Blocks."arXiv preprint arXiv:1902.06415(2019).


推薦閱讀:
相关文章