FGSM。。。
Goodfellow等人認為高維空間下的線性行為足以產生對抗樣本,
對抗樣本的線性解釋:
常見的數據圖像大部分表示成1-255,8bit/像素點的形式,在原始樣本上加小小的擾動就會被誤分類。現在我們有:
當存在一個小到可忽略的ε滿足∥η∥∞<ε,我們期望分類器對這兩個樣本的分類結果一致,然而……
現在考慮加入權值向量ω 信息,則:
(權向量是帶了權值的向量)對抗擾動通過ωTηωTη影響激活函數從而影響分類結果。如果ωω有nn個維度,權向量的一個元素的平均大小是mm,那么激活函數就會增加εmnεmn。雖然∥η∥∞‖η‖∞不會隨著維度增加而增加,但是ηη會隨nn線性增長,然后就有高維問題了。
非線性模型的線性擾動
我們假設神經網絡都太線性了以至于不能抵抗對抗樣本。常見的LSTM、ReLU和maxout網絡都趨向于線性表現,而類似sigmod這種非線性性模型也把大量的時間花在非飽和和線性系統中。
我們從公式開始理解(fast gradient sign method):
算法的主要思想:讓我們的變化量與梯度的變化方向完全一致,那么我們的誤差函數就會增大,那么將會對分類結果產生最大化的變化。sign函數保證了變化方法同梯度方向一致。對損失函數求偏導,即得到權值向量ω有關的函數。
首先明確,橫坐標表示單維x輸入值,縱坐標表示損失值,函數圖像是損失函數JJ,損失值越大表示越大概率分類錯誤,假設灰的線上方為分類錯誤,下方為分類正確。以樣本點x1為例。根據公式,此時的偏導函數為負,則黑色箭頭方向為xx擾動方向,同理x2樣本在取值為正時,也沿著黑色箭頭方向變化,只要我們的 εε取值合適,就能生成對抗樣本,使得分類錯誤。
在這里插入圖片描述
FGSM 攻擊噪聲怎么生成的呢?我們知道訓練分類模型時,網絡基于輸入圖像學習特征,然后經過softmax層得到分類概率,接著損失函數基于分類概率和真是標簽計算損失值,回傳損失值并計算梯度,最后網絡參數基于計算得到的梯度進行更新,網絡參數的更新目的是為了讓損失值越來越小,這樣模型分類正確的概率也就越來越高。
圖像攻擊的目的是不修改分類網絡的參數,而是通過修改輸入圖像的像素值使得修改后的圖像能夠擾亂分類網絡的分類,那么結合剛剛講的分類模型的訓練過程,這里可以將損失值回傳到輸入圖像并計算梯度,也就是下面這個值,其中J()是損失函數,x和y表示輸入圖像和真是標簽,θ表示網絡參數:
接下來可以通過sign()函數計算梯度的方向,sign()函數是用來求數值符號的函數,比如對于大于0的輸入,輸出為1, 對于小于0的輸入,輸出為-1,對于等于0的輸入,輸出為0。之所以采用梯度方向而不是采用梯度值是為了控制擾動的L∞距離,這是FGSM算法的評價指標。
常規的分類模型訓練是在更新參數時都是將參數減去計算得到的梯度,這樣就能使得損失值越來越小,從而模型預測對的概率越大。既然無目標攻擊是希望模型將輸入圖像錯分類程正確類別以外的其他任何一個類別都算攻擊成功,那么只需要損失值越來越大就可以達到這個目標,也就是模型預測的概率對應真是標簽的概率越小越好,這和原來的參數更新的目的正好相反,因此,我只要在輸入圖像中加上計算得到的梯度方向,這樣修改后的圖像經過分類網絡時的損失值要比修改前的圖像進過分類網絡時 的損失值要打,換句話說,模型預測對的概率變小了,這就是FGSM算法的內容,一方面是基于輸入圖像計算梯度,另一方面更新輸入圖像時加上梯度,而不是減去梯度。
參考:https://blog.csdn.net/qq_35414569
https://blog.csdn.net/u014380165/
對分類結果的影響還要收到激活函數的作用,攻擊樣本的生成過程就是追求微小的修改,通過激活函數的作用,對分類結果產生最大化的變化,Goodfellow之處,如果
我們的變化量與梯度 的變化方向完全一致,將會對分類結果產生最大化的變化。
其中sign函數可以保證和梯度函數方向一致。
總結
- 上一篇: 什么是M2Det
- 下一篇: UWB源码资料 研创物联源码资料 可二次