Paper Reading(1) : ICLR2015_Explaining and Harnessing Adversarial Examples
目錄
0x01.論文概要
0x02.主要內容
1.前期工作
2.對抗樣本的線性解釋
3.非線性模型的線性擾動
4.線性模型的對抗訓練VS權重衰減
5.深層網絡的對抗性訓練
6.不同類型的模型容量
6.對抗樣本泛化的原因
7.對抗樣本的其他假設
0x03.主要結論
因為英語翻譯能力和在本專業的基礎欠佳,在寫這篇整理的時候參照了很多前輩們的博客,已在參考文獻中說明,感謝前輩們的總結。
0x01.論文概要
Goodfellow I J , Shlens J , Szegedy C . Explaining and Harnessing Adversarial Examples[J]. Computer Science, 2014.
?
摘要:包括神經網絡在內的幾種機器學習模型都會存在對對抗樣本錯誤分類的情況,早期認為這種是因為非線性和過擬合導致的,本文認為神經網絡對對抗樣本的脆弱性的根本原因是其線性特征,這也解釋了對抗樣本在結構和訓練集上的泛化性,并在此基礎上提出了FSGM(Fast Gradient Sigh Method)算法用來生成對抗樣本,將產生的樣本用于對抗訓練可以提升模型的測試性能(通過在訓練樣本中加入一定的對抗樣本(隨機生成),可以對模型起到一定的正則化作用)。
?
?
0x02.主要內容
這篇文章由Goodfellow等人發表在ICLR'2015會議上,是對抗樣本領域的經典論文。這篇文章主要提出與之前論文不同的線性假設來解釋對抗樣本的存在性。同時,論文提出了一種簡單的對抗樣本生成方法——FGSM,并且再利用該攻擊方法產生的對抗樣本進行對抗訓練。總得來說,這篇文章主要說明的對抗樣本的三個方面:1.存在性、2.攻擊方法、3.防御方法。
1.前期工作
Szegedy et al. (2014b)的文章[Intriguing properties of neural networks]中,發現通過在原圖是加入一些不可察覺的非隨機擾動,可以極大改變網絡的預測結果。這些擾動是通過最大化預測誤差來訓練獲得輸入的,稱這種輸入為對抗樣本。這表明,對抗樣本暴露了我們訓練算法中的基本盲點。
對抗樣本是相對魯棒的,即神經網絡A生成的對抗樣本,在神經網絡B下仍然是,即使B有不同的網絡結構、超參和訓練數據。因此,神經網絡含有一些內在的盲點和非顯示的特征,其結構與數據分布相關。具體介紹可見生成對抗網絡 - Adversarial Examples 對抗樣本
?
Szegedy et al. (2014b)的文章還闡述了神經網絡和其它相關模型的一些有趣的特性,和本篇文章相關的有:
?
Szegedy 在文章中闡述如何找到對抗樣本(使用Box-constrained L-BFGS),但是沒有分析為什么能找到。本文就是想探討對抗樣本出現成的本質。
現在已經有人開始設計抵抗模型,但是還沒有任何一個模型保持在clean inputs上的高準確率的同時具有抵抗力。
?
2.對抗樣本的線性解釋
?
后來在這篇論文Kurakin A , Goodfellow I , Bengio S . Adversarial examples in the physical world[J]. 2016.中證明真實數據在物理世界是存在的
?
未來的工作,就是希望不只是用打印的圖片作為對抗樣本,而是真是的物理世界中的object,已經希望研發出有效的防御系統
?
3.非線性模型的線性擾動
非線性模型的線性擾動就是一個非線性微分線性化的過程,利用梯度下降的方式來實現。基于此,作者提出了一個快速生成對抗樣本的方法,即fast gradient sign method(FGSM).
方法的實現:假設一個模型參數θ,x是輸入,y是標簽(目標輸出),損失函數J(θ, x, y),可以在θ的附近線性化這個損失函數獲得一個最佳正則限制擾動,η =?esign (?xJ(θ, x, y)) .梯度可以通過反饋的方式得到。一組實現如下圖所示:
0.07 = 1/128
實驗表明,FGSM這個簡單廉價的算法確實可以生成對抗樣本,這也證明了對抗樣本是由線性特性引起的。
Szegedy發現用對抗樣本和clean樣本混合進行訓練可以有正則的效果,這是不同于數據增廣的,數據增廣是產生的數據是有可能出現在測試集里的,而對抗樣本是不可能出現在測試集中的。這個方法提升的效果是比不上droupout的,作者說這可能是使用要的對抗樣本范圍有限。
快速生成對抗樣本:Fast Gradient Sign Method
?
Fast Gradient Sign Method方法雖然簡單,但是因為擾動是根據w來計算的,故而生成的對抗樣本不會說100%使得網絡進行誤分類。作者表示,除此之外也可以通過其他方法產生對抗樣本,如使x繞著梯度方向旋轉一定的角度,不過文章后面提到這樣生成的對抗訓練泛化性能并不佳,可能是因為旋轉等操作比較容易學習到(旋轉矩陣的結構比較簡單,這些生成的對抗樣本反過來又證明了對抗樣本的線性解釋。
假定神經網絡足夠的線性化,導致其也不能抵抗對抗樣本。(線性結構、非線性結構的非飽和,線性區域)
攻擊樣本的思想:追求以微小的修改,通過激活函數的作用,對分類結果產生最大化的變化。
如果我們的變化量與梯度的變化方向完全一致,那么將會對分類結果產生最大化的變化。sign函數用來保持變化量方向,此時的最優攻擊樣本是,也即FGSM(fast gradient sign method)
但之后作者給出的?\epsilon?并不是小于圖像精度的,所以擾動幅度并不算特別小。
兩個標準:
錯誤率(error rate)是說誤判的百分比,
置信率(confidence):是指分類器認為該圖像是錯誤類別的百分比,錯誤率和置信率越高,則說明生成的對抗樣本越強勢
正是因為線性響應,使得他們在訓練數據分布中未出現的數據保持過度自信
其他生成對抗樣本的方式:如沿梯度方向旋轉原圖像x一個小的角度
LSTM、ReLU、maxout網絡都是線性的,sigmoid也大多工作在線性區域,所有這些具有線性性質的模型都能以下FGSM方法簡單獲得對抗樣本:η(x)=?sign(?xJ(θ,x,y))\eta(x)=\epsilon sign(\nabla_x J(\theta,x,y))η(x)=?sign(?x?J(θ,x,y))
這很容易理解:在輸入空間中把樣本朝著增加成本函數的方向移動。這一方案在實驗中也取得了很好的效果。
?
4.線性模型的對抗訓練VS權重衰減
考慮在最簡單的邏輯回歸(Logistics Regression)模型上應用FGSM方法,從而理解在一個簡單的設置中如何生成對抗樣本。
作者通過實現一個二分類的邏輯回歸(MNIST中的3和7),查看模型參數w、擾動n,以及對比生成對抗樣本前后的圖片分析,如下所示
?
除了生成對抗樣本來攻擊神經網絡以外,對抗訓練神經網絡從而有效防止對抗樣本的攻擊也是一個值得考慮的問題。?
我們先考慮最簡單的邏輯回歸模型:如果我們訓練一個簡單的模型來識別標記 y∈{?1,+1},并且?
注意這里與文中相同,選擇的標記為{?1,+1}并不是我們平時常用的{0,1},我們可以簡單推導一下該情況下的損失函數:?
我們對x求梯度可以得到 :
?
因此通過FGSM得到的對抗樣本為
?,對于對抗樣本的損失函數,有:
?
?
?
對于學到足夠的置信度的模型來說,即?y(wTx+b)足夠小時,?||w||1幾乎不起作用。而對于欠擬合的模型來說,則會使得模型更加欠擬合。(還是剛剛那個原因,高維情況下很小的擾動都會使得內積產生很大的變化,而對于L1范數的變化卻是極小的,所以很容易就忽略了||w||1)。?
進一步的,作者基于FGSM生成的對抗樣本提出了一個高效的對抗訓練方法:
?
?這看起來似乎和將對抗樣本和原始樣本同時放入訓練類似,不過作者的實驗表明該方法還是有效的降低了欺騙成功率。?
對于為什么會有如此大量的對抗樣本,Goodfellow的解釋是,只要選擇的擾動方向正確,并且有足夠大的?,則產生的擾動就足夠大,就會改變原先的樣本標記。我們可以跟蹤不同的 ?值,可以發現對抗樣本出現在不同的連續區域。這就解釋了為什么對抗性的例子非常豐富,為什么一個分類器錯誤分類的例子具有相當高的被另一個分類器錯誤分類的可能性。?
為了解釋為什么多個分類器將同一個類分配給敵對的例子,作者假設用當前方法訓練的神經網絡都類似于在相同訓練集上學習的線性分類器。分類器在訓練集的不同子集上訓練時能夠學習大致相同的分類權重,這僅僅是因為機器學習算法具有泛化能力。但是基礎分類權重的穩定性反過來又會導致對抗性例子的穩定性。?
這個式子與L1正則化公式非常相似。不同之處在于,這里是加上e||w||1,而L1正則化是減去。這也導致了最抗訓練最終的損失是有可能完全消失的,只要模型的學習對預測足夠自信。在低擬合度的情況下,對抗訓練會使擬合度更低。因此,我們可以認為L1權重衰減相對于對抗訓練是傾向于最壞情況,因為它在好的邊際情況下是不能起作用的(這一段沒怎么理解)。下面還例舉了對抗訓練與權重損失的對比實驗,試驗中,L1損失總是過分評估了對抗樣本的損失,所以L1的權重系數不能太大,太大訓練效果很差,但是權重太小又不能起到很好的正則化的作用。
5.深層網絡的對抗性訓練
作者在文中表明,相比于線性模型,深度網絡至少可以在訓練網絡過程中來抵御對抗擾動攻擊。文章給一種利用FGSM進行對抗訓練的方法:
對抗訓練可以對應于如下的正則化【這里的等價是要求這里的θ的參數是已經是訓練好的模型下的】,其中在本文實驗中α=0.5(隨意測試的值,其他值或許更好),通過有dropout網絡的對抗訓練,能夠比單純的dropout的錯誤率低(from94% to 0.84%):
通過上式的訓練不僅能降低overfit并提高準確率,同時還能抵御對抗樣本(對抗樣本錯誤率從89.4%降低到17.9%)。前面提到,對抗樣本有遷移能力,對不同的模型同樣有效,通過對對抗正則化訓練得到的新模型卻能很好的降低這個問題:通過原模型和新模型的參數分別產生兩種對抗樣本,分別交叉放入新模型和舊模型中,錯誤率為19.6%和40.9%,不過對于誤分類的樣本的confidence依舊很高,平均達81.4%。而且作者發現通過對抗訓練得到的網絡參數更加局部化,解釋性更強。
文章后來也提到說是否有必要對隱藏層進行擾動,Szegedy的表明將其應用在隱藏層的時候得到一個最好的正則效果。不過這里的實驗發現隱藏單元的激活值為明確的情況下,沒有必要去擾動,這樣只是單純讓某些激活值更大,并且實驗正則效果并不理想,甚至不如直接在輸入層加入的擾動
?
這種對抗訓練的方法意味著在訓練過程中不斷更新對抗樣本,從而使得當前模型可以抵御對抗樣本。但是作者表示在訓練集上對抗訓練的錯誤率error rate沒有達到過0%,作者主要從以下兩個方面解決:
文章表明,在不進行對抗訓練的情況下,模型識別FGSM攻擊方法生成樣本的錯誤率是89.4%,但是通過對抗訓練,同樣的模型識別對抗樣本的錯誤率下降到17.9%。
作者還探討了在模型中加零均值零方差的實驗,實驗表明,這種方式對于抵抗對抗樣本效果不好。
6.不同類型的模型容量
所謂模型容量就是指其擬合各種函數的能力。容量低的模型很難擬合訓練集,容量高的模型容易過擬合。模型的容量對于對抗樣本的敏感度是不一樣的。低容量的模型對于對抗樣本有一種天然的抗性(畢竟擬合度差)。文中用RBF做了一個實驗,發現它對于誤分類的樣本信心非常低(1.2%)。但是RBF的不變性對于其他變換的適應性并不好。作者認為線性單元與RBF單元實際是一個precision與recall的權衡。為此,作者想要設計一個復雜的模型,包含二次單元和RBF網絡,但是這個任務比較困難。
?
6.對抗樣本泛化的原因
我們都知道很多論文都表明,對抗樣本具有Transferability。具體來說,在一個特定模型上產生的對抗樣本通常也容易被其他模型誤分類,即使這些模型的結構不同或者模型在不同的訓練集上訓練。甚至,不同的模型對對抗樣本誤分類的結果相同!作者表明,非線性或者過擬合的假設不能解釋上述的現象,即, 為什么擁有無限能力的極度非線性模型會以相同的方式標注數據分布點?在本文提出的線性解釋下,作者認為對抗樣本在廣泛的子空間存在。
上圖表明,在不同的?下,可以看到FGSM可以在一維的連續子空間內產生對抗樣本,而不是特定的區域(為什么誤分類仍有比較高的置信度)。這就解釋了為什么對抗樣本特別多,以及對抗樣本transferability存在的原因。
該方法在[Adversarial Machine Learning at Scale]這篇文章中進行了一些改進,將one-shot變成了迭代的方式求解;并且將增大原類別標記的損失函數改成減小目標類別標記的損失函數。即:?
其中α是迭代步長。這樣增加了FGSM的攻擊成功率,稱為BIM方法。
?
另外,為了解釋為什么不同的分類器將對抗樣本誤分類到同一個類,作者假設目前的方法訓練神經網絡都類似于在同一個訓練集上學習的線性分類器。由于機器學習算法的泛化能力,所以線性分類器可以在訓練集的不同子集上訓練出大致相同的分類權重。底層分類權重的穩定性反過來又會導致對抗樣本中的穩定性。
?
7.對抗樣本的其他假設
假設1:生成訓練可以在訓練過程中提供更多的限制,或者是的模型學習如何分辨"real"或者"fake"的數據,并且對"real"的數據更加自信。
文章表明,某些生成訓練并不能達到假設的效果,但是不否認可能有其他形式的生成模型可以抵御攻擊,但是確定的是生成訓練的本身并不足夠。
假設2:對抗樣本存在于單個奇怪的模型(models with strange quirks),因此多個模型的平均可以使得模型防御性更好。
文章通過實驗說明,模型融合對于對抗樣本的防御能力非常有限。
?
0x03.主要結論
- 對抗樣本的存在是因為模型過于線性,而不是因為模型過于非線性。
- 對抗樣本在不同模型之間的泛化能力可以解釋為對抗樣本擾動與模型權重變量步調高度一致的結果,而不同的模型在執行相同的任務的時候,學習的都是相似的函數。
- 擾動的方向比擾動的具體值重要。因為特征空間并不像實數里面到處嵌入了無理數一樣,到處都存在對抗樣本。
- 正是因為擾動在正確的方向才起作用,所以可以在不同的原始干凈樣本中進行泛化。
- 介紹了一種生成對抗樣本的方法。
- 對抗樣本可以起到正則化的作用,甚至比 dropout 的效果還好。
- L1 weight decay 加噪音起到的正則化效果沒有對抗樣本的正則化效果好。
- 越容易優化的模型,越容易遭受擾動。
- 線性模型缺乏抵抗對抗樣本擾動的?capacity。只有含有隱含層的結構才能被用于訓練來抵抗擾動(不確定意思get的對不對)。
- RBF 網絡可以抵抗對抗樣本。
- Models trained to model the input distribution are not resistant to adversarial examples.(不好翻譯)
- 集成多個模型也并不能抵抗對抗樣本。
參考:
https://www.cnblogs.com/lainey/p/8568581.html
https://blog.csdn.net/m0_38011344/article/details/80262570
https://blog.csdn.net/SYSU_BOND/article/details/79785989
https://blog.csdn.net/Evabook/article/details/89461984
https://blog.csdn.net/kearney1995/article/details/79638389
https://blog.csdn.net/wuye999/article/details/83347113
https://blog.csdn.net/tfcy694/article/details/80614399
https://blog.csdn.net/weixin_38298363/article/details/84574230
https://blog.csdn.net/qq_24974989/article/details/88914086
?
總結
以上是生活随笔為你收集整理的Paper Reading(1) : ICLR2015_Explaining and Harnessing Adversarial Examples的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lable标签的宽度_html中的lab
- 下一篇: [pytorch学习笔记] 3.Data