圖像對抗算法-攻擊篇(FGSM)

論文:Explaining and Harnessing Adversarial Examples
論文鏈接:https://arxiv.org/abs/1412.6572

在圖像攻擊算法中,FGSM(fast gradient sign method)是非常經典的一個算法。這篇發表於ICLR2015的文章通過梯度來生成攻擊噪聲,核心思想就是Figure1所示的內容。Figure1中左邊圖是常規的圖像,一般的分類模型都會將其分類爲熊貓(panda),但是通過添加由網絡梯度生成的攻擊噪聲後,得到右邊的攻擊圖像,雖然看起來還是熊貓,但是模型卻將其分類爲長臂猿(gibbon)。
在這裏插入圖片描述
那麼FGSM的攻擊噪聲是怎麼生成的呢?我們知道訓練分類模型時,網絡基於輸入圖像學習特徵,然後經過softmax層得到分類概率,接着損失函數基於分類概率和真實標籤計算損失值,回傳損失值並計算梯度(也就是梯度反向傳播),最後網絡參數基於計算得到的梯度進行更新,網絡參數的更新目的是使損失值越來越小,這樣模型分類正確的概率也就越來越高。
圖像攻擊的目的是不修改分類網絡的參數,而是通過修改輸入圖像的像素值使得修改後的圖像能夠擾亂分類網絡的分類,那麼結合剛剛講的分類模型的訓練過程,這裏可以將損失值回傳到輸入圖像並計算梯度,也就是下面這個值,其中J()是損失函數,x和y表示輸入圖像和真是標籤,θ表示網絡參數:
在這裏插入圖片描述
接下來可以通過sign()函數計算梯度的方向,sign()函數是用來求數值符號的函數,比如對於大於0的輸入,輸出爲1, 對於小於0的輸入,輸出爲-1,對於等於0的輸入,輸出爲0。之所以採用梯度方向而不是採用梯度值是爲了控制擾動的L∞距離,這是FGSM算法的評價指標
在這裏插入圖片描述
常規的分類模型訓練在更新參數時都是將參數減去計算得到的梯度,這樣就能使得損失值越來越小,從而模型預測對的概率越來越大。既然無目標攻擊是希望模型將輸入圖像錯分類成正確類別以外的其他任何一個類別都算攻擊成功,那麼只需要損失值越來越大就可以達到這個目標,也就是模型預測的概率中對應於真實標籤的概率越小越好,這和原來的參數更新目的正好相反。因此我只需要在輸入圖像中加上計算得到的梯度方向,這樣修改後的圖像經過分類網絡時的損失值就比修改前的圖像經過分類網絡時的損失值要大,換句話說,模型預測對的概率變小了。這就是FGSM算法的內容,一方面是基於輸入圖像計算梯度,另一方面更新輸入圖像時是加上梯度,而不是減去梯度,這和常見的分類模型更新參數正好背道而馳。
前面我們提到之所以採用梯度方向而不是採用梯度值是爲了控制擾動的L∞距離,這只是其中的一部分。在Figure1中,梯度方向前一般會有一個權重參數e,這個權重參數可以用來控制攻擊噪聲的幅值,參數值越大,攻擊強度也越大,肉眼也更容易觀察到攻擊噪聲(因爲輸入圖像歸一化成0到1,所以圖中e值只有0.07,換算成0到255的話差不多18個像素值),因此最終的攻擊噪聲就如下所示。因爲FGSM算法的攻擊噪聲幅值評價指標是L∞,因此權重參數e和梯度方向就可以控制每個像素的最大變化值。

在這裏插入圖片描述
FGSM算法簡單有效,在圖像攻擊領域扮演着非常重要的角色,後續的許多研究也都基於這個算法開展,比如爲了提高攻擊成功率而推出的迭代版FGSM,下一篇博客將介紹迭代版FGSM

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章