对抗训练+FGSM, FGM理解与详解
目錄
- 簡介
- 一些基本概念的收集
- 對抗樣本
- 現實中的對抗樣本
- 產生"對抗樣本問題"的原因
- 制造對抗樣本的方式
- FGSM
- FGM
簡介
本文旨在收集對抗訓練相關的內容,并作出比較詳細的理解和講解。
?
一些基本概念的收集
本部分收集對抗訓練相關的一些基本概念,并結合寫下自己的理解。
對抗樣本
我們對數據集中的數據,做一些比較小的、但卻能帶來很大殺傷力的改動。改動后的數據可能會讓模型以較高的confidence輸出一個錯誤的預測。1
很多模型面對這種樣本的時候,是很容易出錯的。2
也就是說,對抗樣本應該是一些只加入了輕微擾動,卻給模型帶來較大負面影響的樣本。
現實中的對抗樣本
設原樣本為xxx
設引入擾動后的樣本為x~\tilde{x}x~:
x~=x+η\tilde{x} = x + \eta x~=x+η
(此處的η\etaη為引入的擾動)
現實中我們怕的是,兩個樣本xxx和x~\tilde{x}x~在本質上沒有區別,但模型覺得它倆不一樣。
比如說,xxx和x~\tilde{x}x~是兩張我們看起來長得一毛一樣的圖片,但實際上它們每一個像素的顏色上有無比輕微的、我們觀察不太出來的區別,但就因為這些區別,模型認為這倆圖片所在的class不一樣,那這種情況是不能被我們人類接受的。
當然,"觀察不太出來"是從人的角度出發、比較主觀的。
我們還是用比較數字化的方式1來定義一下這種區別:
很多儲存圖片的設備,每個像素只存8個bit,也就是說,在設備儲存精度之外的一些信息,對儲存圖片的設備來說是不重要的。
那我們就可以這樣規定:只要η\etaη滿足∥η∥∞<=?\Vert \eta \Vert_\infty<=\epsilon∥η∥∞?<=? (也就是說η\etaη這個向量里每個元素的絕對值中最大的也小于?\epsilon?), 我們就規定xxx和x~\tilde{x}x~的class是一樣的。此處的?\epsilon?小到對我們的儲存或者傳感設備來說,xxx和x~\tilde{x}x~是一樣的。
再換句話說,擾動η\etaη足夠小,小到我們的儲存或者傳感設備感受不到。
產生"對抗樣本問題"的原因
Goodfellow et al.1提出,模型的線性就可能足夠讓這類問題產生。
為什么模型的線性會讓"對抗樣本問題"產生?也就是說,為什么由于模型的線性,當我們對某些數據引入較小的擾動的時候,會帶來較大的負面影響?
Goodfellow et al.1是這樣解釋的:
假如我們把xxx扔進一個線性模型,那我們就得到:
wTxw^Tx wTx
假如我們把x~\tilde{x}x~扔進一個線性模型,那我們就得到:
wTx~=wTx+wTηw^T\tilde{x} = w^Tx + w^T\eta wTx~=wTx+wTη
也就是說,對于這兩個樣本,線性模型出來的結果之間就只差一個wTηw^T\etawTη。假設www中一共有nnn個元素,每個元素平均值是mmm,那么這個wTηw^T\etawTη的算出來的就會是在nm?nm\epsilonnm?這個水平(因為是點乘)。
那也就是說,我們的原始樣本xxx和對抗樣本x~\tilde{x}x~分別輸入模型之后,得到的輸出之間會相差約nm?nm\epsilonnm?。這個差距,是會隨著www的維數(nnn)來線性增加的。也就是說,如果我們的問題是一個高維問題,就算加入的干擾不多,也會由于維數較多而給模型輸出帶來很大的影響。
這就是Goodfellow et al.1解釋線性模型能讓"對抗樣本問題"產生的邏輯。
制造對抗樣本的方式
那么如何讓模型面對對抗樣本時也能有能力識別正確?我們可以制造對抗樣本來攻擊模型,以此提升它的防御能力。
FGSM
FGSM的全稱是Fast Gradient Sign Method. 如果用FGSM來制造擾動η\etaη,可以使用如下的式子:
η=?sign(?xJ(θ,x,y))\eta = \epsilon sign(\nabla_xJ(\theta, x, y)) η=?sign(?x?J(θ,x,y))
其中xxx是輸入,yyy是xxx的標簽,θ\thetaθ是模型的參數,J()J()J()是損失函數。
我們來看一下這個式子里各部分的寓意和用意。
首先,?xJ(θ,x,y)\nabla_xJ(\theta, x, y)?x?J(θ,x,y)這部分是損失函數關于輸入xxx求導得到的梯度,也就是說,如果我們讓xxx的值往這個方向走,損失函數是上升得最快的。它解決的問題是:讓xxx往哪個方向走(即我們要如何擾動這個xxx),才能讓模型在面對正確的標簽yyy的時候,反而高效地把損失函數拉得很大?從而讓模型傾向于認為yyy并不是正確的標簽。
其次,我們來說一下這個式子剩下的部分,這部分主要是為了使得∥η∥∞<=?\Vert \eta \Vert_\infty<=\epsilon∥η∥∞?<=?。
?\epsilon?就是我們一開始提到的,擾動η\etaη的無限范數不能超過的值。那我們是如何做到這一點的呢,答案是靠sign()sign()sign(),sign()sign()sign()的函數圖像3是這樣的:
也就是說:
sign(a)={1,a>00,a=0?1,a<0sign(a)=\left\{ \begin{aligned} 1 \qquad ,a>0 \\ 0 \qquad ,a=0 \\ -1 \qquad ,a<0 \end{aligned} \right. sign(a)=??????1,a>00,a=0?1,a<0?
如果這里的aaa是一個向量的話,就會對它的每個維度分別做這樣的操作。4
由于sign()sign()sign()函數的輸出在{-1,0,1}之間,那么簡單地,?sign()\epsilon sign()?sign()的輸出就在{??,0,?}\{-\epsilon,0,\epsilon\}{??,0,?}之間了,從而,我們就成功使得∥η∥∞<=?\Vert \eta \Vert_\infty<=\epsilon∥η∥∞?<=?了。
總結:?xJ(θ,x,y)\nabla_xJ(\theta, x, y)?x?J(θ,x,y)給我們提供了擾動xxx的高效方向,?sign()\epsilon sign()?sign()幫助我們使得擾動大小被限制在某個范圍內。
FGM
FGM的全稱是Fast Gradient Method, 一般指的是這樣的擾動(出現于Adversarial Training Methods for Semi-supervised Text Classification這篇論文):
η=?g∥g∥2其中,g=?xJ(θ,x,y)\eta = \epsilon \frac{g}{\Vert g \Vert_2}\\ \quad\\ 其中,g = \nabla_xJ(\theta, x, y) η=?∥g∥2?g?其中,g=?x?J(θ,x,y)
也就是說比起FGSM中sign()sign()sign()的方式,這里做了一個L2范數歸一化。
設ggg的第iii維是gig_igi?,那么就有:
g∥g∥2=(g1∥g∥2,g2∥g∥2,...,gn∥g∥2)=(g1g12+g22+...+gn2,g2g12+g22+...+gn2,...,gng12+g22+...+gn2)\begin{aligned} \frac{g}{\Vert g \Vert_2} &= (\frac{g_1}{\Vert g\Vert_2}, \frac{g_2}{\Vert g\Vert_2}, ...,\frac{g_n}{\Vert g\Vert_2})\\ &=(\frac{g_1}{\sqrt{g_1^2+g_2^2+...+g_n^2}},\frac{g_2}{\sqrt{g_1^2+g_2^2+...+g_n^2}},...,\frac{g_n}{\sqrt{g_1^2+g_2^2+...+g_n^2}}) \end{aligned} ∥g∥2?g??=(∥g∥2?g1??,∥g∥2?g2??,...,∥g∥2?gn??)=(g12?+g22?+...+gn2??g1??,g12?+g22?+...+gn2??g2??,...,g12?+g22?+...+gn2??gn??)?
通過這樣歸一化的話,還能保留每個維度之間的相對大小,不像FGSM直接用了一個把每個維度轉成-1,1或0的sign()sign()sign()函數。
EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES ?? ?? ?? ?? ??
Intriguing properties of neural networks ??
https://baike.baidu.com/item/sign/115763?fr=aladdin ??
https://ww2.mathworks.cn/help/releases/R2017a/matlab/ref/sign.html ??
總結
以上是生活随笔為你收集整理的对抗训练+FGSM, FGM理解与详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tmdb数据集_数据科学第2部分的数据管
- 下一篇: 王道计算机网络学习笔记