對抗樣本論文學習(2):Explaining and Harnessing Adversarial Examples

以下僅代表個人理解,本人能力有限難免有錯,還請大家給予糾正,不勝感激。歡迎一起討論進步。


對於對抗樣本(adversarial examples)的相關工作而言,Goodfellow等人提出的這篇Explaining and Harnessing Adversarial Examples論文可以說是經典中的經典了。

在這篇論文中,Goodfellow等人對現有的工作進行了一個全面的總結,更重要的是,這篇論文:

  1. 解釋了神經網路對干擾表現脆弱的原因是神經網路的線性(而早期的解釋是對抗樣本的原因是非線性和過擬合)
  2. 論文中設計了一種快速生成adversarial examples的方法(Fast Gradient Sign Method),這個方法被之後的工作所廣泛採用

對之前的工作的總結:

  • 使用Box-constrained L-BFGS能夠找到對抗樣本
  • 在很多數據集中(如ImageNet),對抗樣本和原始樣本的差別非常小,人眼不可分別
  • 可移植性:對於同一個對抗樣本,哪怕不同的分類器使用了不同的結構和訓練集,也都會(有很大的可能)將這個對抗樣本錯誤分類
  • 淺層的softmax回歸模型對對抗樣本也很脆弱
  • 在對抗樣本上訓練能夠正則化模型,但是在實際應用中代價高昂

關於對抗樣本是因為線性的解釋

由於Input feature的精度是有限的,所以當添加的干擾 eta 小於精度時,樣本 x 和對抗樣本 	ilde{x}	ilde{x}=x+eta )是無法被分類器區分的。假設 eta 的無窮範式恆小於 varepsilon (這裡 varepsilon 足夠小以至於可以被捨棄),考慮權重向量 w 和對抗樣本 	ilde{x} 之間的矩陣點乘:

當對多個input都施加這樣的干擾時就會產生很大的影響,就是這裡的 w^{T}eta(因為矩陣點乘是累加和的過程)。讓 eta=sign(w) 來使activation增長最大化,假設 wn 維並且權重向量的平均量值是  m ,則activation伴隨 varepsilon(mn)增長。因為這個干擾是隨著 n 線性增長的,所以對於高維的問題,許多對input的無限小的干擾加在一起可以對output造成很大的變化。

生成對抗樣本的方法Fast Gradient Sign Method:

假設有一個模型,它的參數是 	heta ,輸入是 x,y 目標, J(	heta,x,y) 是神經網路的損失函數。在目前的 	heta 值,局部上可以將函數近似為線性,使用FGSM(Fast Gradient Sign Method),我們得到一個最優的擾動。以下這張圖片展示了如何利用FGSM對熊貓圖片施加干擾讓其被識別為長臂猿:

論文中還提到,其他方式也能生成adversarial examples,比如在在梯度方向上施加一個小角度的旋轉。

使用對抗樣本訓練機器學習:

以最簡單的logistic regression為例。如果我們要訓練一個模型來識別標籤 y∈left{ ?1,1 
ight} , p(y=1)=sigma(w^{T}x+b) ,其中 sigma 為sigmoid函數。然後在下式(其實就是損失函數的變形)上做梯度下降(ps:下式並非是作者自己定義的一個公式,只是一個簡潔的寫法,把變數都帶進去整理之後就會得到這個式子)。

其中, zeta(z)=log(1+exp(z))是softplus函數(Softplus是Logistic-Sigmoid函數原函數: Softplus(x)=log(1+exp(x));Softplus(x)=Sigmoid(x)∈(0,1) )

將上式中的 x 替換為 x 上面的線性擾動 	ilde{x} ,得到的解析式為:

觀察上式可以發現,這個式子類似於L1正則化,但不同的是,L1罰項是從激發中減去,而不是加到損失函數中。這樣的壞處是會惡化欠擬合的情況,因此我們需要減小 varepsilon

需要注意的是,作者也提到這裡對於損失函數的估計過於悲觀。在softmax回歸中,很難找到一個擾動,讓他在每個標籤的梯度上都達到最壞(即與他們的符號相反)。

對於deep network 的對抗訓練:

作者提到,在之前Szegedy的文章Intriguing properties of neural networks表明將對抗樣本和普通樣本一起給模型訓練能夠使模型稍微正則化。

本文中,Ian發現使用Fast Gradient Sign Method能夠有效正則化模型:

在後序的試驗中,作者也做了兩點改變:首先使網路更大,將每一層網路的節點從240增加到1600。其次原來的maxout網路中驗證集上錯誤率會平坦下降,但速度很慢,而對抗驗證集不是,因此在對抗驗證集上使用早停法。

為什麼有大量的對抗樣本:

上圖展示了線性設計造成的抵抗對抗擾動的模型之間的關係。跟蹤不同的 varepsilon 值發現adversarial examples出現在不同的連續區域。這解釋了為什麼有大量的adversarial examples,並且被一個分類器誤分類的樣本也被其他的分類器誤分類。

從線性的角度看adversarial examples存在於廣泛的子空間,僅需要保證 eta 點積為正並且 varepsilon 足夠大。


啊時間有點倉促實驗室的人基本都走光了就先寫到這裡吧(乖巧.jpg)


推薦閱讀:

我的人工智慧學習筆記(一)
生成對抗網路
Facebook如何運用機器學習進行億級用戶數據處理
BP神經網路實現(R語言+Python)
《機器學習實戰》學習總結(八)——Adaboost演算法

TAG:機器學習 | 論文 | 信息安全 |