关于Explaining and harnessing adversarial examples的理解
生活随笔
收集整理的這篇文章主要介紹了
关于Explaining and harnessing adversarial examples的理解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?之前在這篇論文[Intriguing properties of neural networks]中,發現了關于神經網絡的一個有趣的性質,即在原樣本點上加上一些針對性的但是不易察覺的擾動,就會很容易的將神經網絡分類錯誤,并且可能以很高的置信度輸出。基于原文章中L-BFGS-B不精確求解非凸問題的速度較慢,以及很多人將這個性質的原因歸結為深層神經網絡的高度非線性以及過擬合,Goodfellow 用這篇論文給出了不同的看法。
?他認為,即使是線性模型,仍然也會存在對抗樣本,我們記輸入樣本~xx~的對抗樣本為:x??=x+ηx~=x+η,其中要求ηη足夠小:||η||∞≤?||η||∞≤?。我們考慮權重向量ww和對抗樣本x??x~的內積:
顯然對抗擾動通過 wTηwTη使得神經元的輸出增大。如果權向量的維數為 nn并且權向量的均值為mm,則 wTηwTη的最大值為 ?mn?mn,此時 η=?sign(w)η=?sign(w)。因此,在高維空間中,即使是很小的擾動,也會對最終的輸出值產生很大的影響。
?而對于神經網絡而言,很多神經網絡為了節省計算上的代價,都被設計成了非常線性的形式,這使得他們更容易優化,但是這樣"廉價"的網絡也導致了對于對抗擾動的脆弱性。他們的實驗也證明了這一點,Goodfellow直接將線性擾動加入原樣本:
x??=x+?sign(?xJ(θ,x,ytrue))x~=x+?sign(?xJ(θ,x,ytrue))
也能產生很高的欺騙成功率(fool rate),他們把該方法成為Fast Gradient Sign Method(FGSM)。
?除了生成對抗樣本來攻擊神經網絡以外,對抗訓練神經網絡從而有效防止對抗樣本的攻擊也是一個值得考慮的問題。
?我們先考慮最簡單的邏輯回歸模型:如果我們訓練一個簡單的模型來識別標記 y∈{?1,+1}y∈{?1,+1},并且 p=P(y=1|x)=11+e?f=11+e?(wTx+b)p=P(y=1|x)=11+e?f=11+e?(wTx+b)。注意這里與文中相同,選擇的標記為 {?1,+1}{?1,+1}并不是我們平時常用的 {0,1}{0,1},我們可以簡單推導一下該情況下的損失函數:
J=?1+y2logP(y=1|x)?1?y2logP(y=?1|x)=?12logp(1?p)?y2logp1?p=?12loge?f+log(1+e?f)?y2logef=12(f?yf)+log(1+e?f)={log(1+e?f)y=1f+log(1+e?f)=log(ef)+log(1+e?f)=log(1+ef)y=?1=log(1+e?yf)J=?1+y2log?P(y=1|x)?1?y2log?P(y=?1|x)=?12log?p(1?p)?y2log?p1?p=?12log?e?f+log?(1+e?f)?y2log?ef=12(f?yf)+log?(1+e?f)={log?(1+e?f)y=1f+log?(1+e?f)=log?(ef)+log?(1+e?f)=log?(1+ef)y=?1=log?(1+e?yf)
我們對 xx求梯度可以得到
?xJ=e?yf1+e?yf(?y)w?xJ=e?yf1+e?yf(?y)w
因此通過FGSM得到的對抗樣本為 x??=x??ysign(wT)x~=x??ysign(wT),對于對抗樣本的損失函數,有:
J=log(1+e?y(wTx??ywTsign(w)+b))=log(1+e?y(wTx+b)+?||w||1)J=log?(1+e?y(wTx??ywTsign(w)+b))=log?(1+e?y(wTx+b)+?||w||1)
對于學到足夠的置信度的模型來說,即 ?y(wTx+b)?y(wTx+b)足夠小時, ?||w||1?||w||1幾乎不起作用。而對于欠擬合的模型來說,則會使得模型更加欠擬合。(還是剛剛那個原因,高維情況下很小的擾動都會使得內積產生很大的變化,而對于L1范數的變化卻是極小的,所以很容易就忽略了 ||w||1||w||1)。
?進一步的,作者基于FGSM生成的對抗樣本提出了一個高效的對抗訓練方法:
J??(θ,x,y)=αJ(θ,x,y)+(1?α)J(θ,x+?sign(?xJ(θ,x,y))J~(θ,x,y)=αJ(θ,x,y)+(1?α)J(θ,x+?sign(?xJ(θ,x,y))
這看起來似乎和將對抗樣本和原始樣本同時放入訓練類似,不過作者的實驗表明該方法還是有效的降低了欺騙成功率。
?對于為什么會有如此大量的對抗樣本,Goodfellow的解釋是,只要選擇的擾動方向正確,并且有足夠大的 ??,則產生的擾動就足夠大,就會改變原先的樣本標記。我們可以跟蹤不同的 ??值,可以發現對抗樣本出現在不同的連續區域。這就解釋了為什么對抗性的例子非常豐富,為什么一個分類器錯誤分類的例子具有相當高的被另一個分類器錯誤分類的可能性。
為了解釋為什么多個分類器將同一個類分配給敵對的例子,作者假設用當前方法訓練的神經網絡都類似于在相同訓練集上學習的線性分類器。分類器在訓練集的不同子集上訓練時能夠學習大致相同的分類權重,這僅僅是因為機器學習算法具有泛化能力。但是基礎分類權重的穩定性反過來又會導致對抗性例子的穩定性。
該方法在[Adversarial Machine Learning at Scale]這篇文章中進行了一些改進,將one-shot變成了迭代的方式求解;并且將增大原類別標記的損失函數改成減小目標類別標記的損失函數。即:
其中 αα是迭代步長。這樣增加了FGSM的攻擊成功率,稱為BIM方法。
總結
以上是生活随笔為你收集整理的关于Explaining and harnessing adversarial examples的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让AI帮你玩游戏(一) 基于目标检测
- 下一篇: 极路由KMS_Activator插件使用