对抗训练+FGSM, FGM理解与详解
目錄
- 簡(jiǎn)介
- 一些基本概念的收集
- 對(duì)抗樣本
- 現(xiàn)實(shí)中的對(duì)抗樣本
- 產(chǎn)生"對(duì)抗樣本問(wèn)題"的原因
- 制造對(duì)抗樣本的方式
- FGSM
- FGM
簡(jiǎn)介
本文旨在收集對(duì)抗訓(xùn)練相關(guān)的內(nèi)容,并作出比較詳細(xì)的理解和講解。
?
一些基本概念的收集
本部分收集對(duì)抗訓(xùn)練相關(guān)的一些基本概念,并結(jié)合寫下自己的理解。
對(duì)抗樣本
我們對(duì)數(shù)據(jù)集中的數(shù)據(jù),做一些比較小的、但卻能帶來(lái)很大殺傷力的改動(dòng)。改動(dòng)后的數(shù)據(jù)可能會(huì)讓模型以較高的confidence輸出一個(gè)錯(cuò)誤的預(yù)測(cè)。1
很多模型面對(duì)這種樣本的時(shí)候,是很容易出錯(cuò)的。2
也就是說(shuō),對(duì)抗樣本應(yīng)該是一些只加入了輕微擾動(dòng),卻給模型帶來(lái)較大負(fù)面影響的樣本。
現(xiàn)實(shí)中的對(duì)抗樣本
設(shè)原樣本為xxx
設(shè)引入擾動(dòng)后的樣本為x~\tilde{x}x~:
x~=x+η\tilde{x} = x + \eta x~=x+η
(此處的η\etaη為引入的擾動(dòng))
現(xiàn)實(shí)中我們怕的是,兩個(gè)樣本xxx和x~\tilde{x}x~在本質(zhì)上沒(méi)有區(qū)別,但模型覺(jué)得它倆不一樣。
比如說(shuō),xxx和x~\tilde{x}x~是兩張我們看起來(lái)長(zhǎng)得一毛一樣的圖片,但實(shí)際上它們每一個(gè)像素的顏色上有無(wú)比輕微的、我們觀察不太出來(lái)的區(qū)別,但就因?yàn)檫@些區(qū)別,模型認(rèn)為這倆圖片所在的class不一樣,那這種情況是不能被我們?nèi)祟惤邮艿摹?/p>
當(dāng)然,"觀察不太出來(lái)"是從人的角度出發(fā)、比較主觀的。
我們還是用比較數(shù)字化的方式1來(lái)定義一下這種區(qū)別:
很多儲(chǔ)存圖片的設(shè)備,每個(gè)像素只存8個(gè)bit,也就是說(shuō),在設(shè)備儲(chǔ)存精度之外的一些信息,對(duì)儲(chǔ)存圖片的設(shè)備來(lái)說(shuō)是不重要的。
那我們就可以這樣規(guī)定:只要η\etaη滿足∥η∥∞<=?\Vert \eta \Vert_\infty<=\epsilon∥η∥∞?<=? (也就是說(shuō)η\etaη這個(gè)向量里每個(gè)元素的絕對(duì)值中最大的也小于?\epsilon?), 我們就規(guī)定xxx和x~\tilde{x}x~的class是一樣的。此處的?\epsilon?小到對(duì)我們的儲(chǔ)存或者傳感設(shè)備來(lái)說(shuō),xxx和x~\tilde{x}x~是一樣的。
再換句話說(shuō),擾動(dòng)η\etaη足夠小,小到我們的儲(chǔ)存或者傳感設(shè)備感受不到。
產(chǎn)生"對(duì)抗樣本問(wèn)題"的原因
Goodfellow et al.1提出,模型的線性就可能足夠讓這類問(wèn)題產(chǎn)生。
為什么模型的線性會(huì)讓"對(duì)抗樣本問(wèn)題"產(chǎn)生?也就是說(shuō),為什么由于模型的線性,當(dāng)我們對(duì)某些數(shù)據(jù)引入較小的擾動(dòng)的時(shí)候,會(huì)帶來(lái)較大的負(fù)面影響?
Goodfellow et al.1是這樣解釋的:
假如我們把xxx扔進(jìn)一個(gè)線性模型,那我們就得到:
wTxw^Tx wTx
假如我們把x~\tilde{x}x~扔進(jìn)一個(gè)線性模型,那我們就得到:
wTx~=wTx+wTηw^T\tilde{x} = w^Tx + w^T\eta wTx~=wTx+wTη
也就是說(shuō),對(duì)于這兩個(gè)樣本,線性模型出來(lái)的結(jié)果之間就只差一個(gè)wTηw^T\etawTη。假設(shè)www中一共有nnn個(gè)元素,每個(gè)元素平均值是mmm,那么這個(gè)wTηw^T\etawTη的算出來(lái)的就會(huì)是在nm?nm\epsilonnm?這個(gè)水平(因?yàn)槭屈c(diǎn)乘)。
那也就是說(shuō),我們的原始樣本xxx和對(duì)抗樣本x~\tilde{x}x~分別輸入模型之后,得到的輸出之間會(huì)相差約nm?nm\epsilonnm?。這個(gè)差距,是會(huì)隨著www的維數(shù)(nnn)來(lái)線性增加的。也就是說(shuō),如果我們的問(wèn)題是一個(gè)高維問(wèn)題,就算加入的干擾不多,也會(huì)由于維數(shù)較多而給模型輸出帶來(lái)很大的影響。
這就是Goodfellow et al.1解釋線性模型能讓"對(duì)抗樣本問(wèn)題"產(chǎn)生的邏輯。
制造對(duì)抗樣本的方式
那么如何讓模型面對(duì)對(duì)抗樣本時(shí)也能有能力識(shí)別正確?我們可以制造對(duì)抗樣本來(lái)攻擊模型,以此提升它的防御能力。
FGSM
FGSM的全稱是Fast Gradient Sign Method. 如果用FGSM來(lái)制造擾動(dòng)η\etaη,可以使用如下的式子:
η=?sign(?xJ(θ,x,y))\eta = \epsilon sign(\nabla_xJ(\theta, x, y)) η=?sign(?x?J(θ,x,y))
其中xxx是輸入,yyy是xxx的標(biāo)簽,θ\thetaθ是模型的參數(shù),J()J()J()是損失函數(shù)。
我們來(lái)看一下這個(gè)式子里各部分的寓意和用意。
首先,?xJ(θ,x,y)\nabla_xJ(\theta, x, y)?x?J(θ,x,y)這部分是損失函數(shù)關(guān)于輸入xxx求導(dǎo)得到的梯度,也就是說(shuō),如果我們讓xxx的值往這個(gè)方向走,損失函數(shù)是上升得最快的。它解決的問(wèn)題是:讓xxx往哪個(gè)方向走(即我們要如何擾動(dòng)這個(gè)xxx),才能讓模型在面對(duì)正確的標(biāo)簽yyy的時(shí)候,反而高效地把損失函數(shù)拉得很大?從而讓模型傾向于認(rèn)為yyy并不是正確的標(biāo)簽。
其次,我們來(lái)說(shuō)一下這個(gè)式子剩下的部分,這部分主要是為了使得∥η∥∞<=?\Vert \eta \Vert_\infty<=\epsilon∥η∥∞?<=?。
?\epsilon?就是我們一開(kāi)始提到的,擾動(dòng)η\etaη的無(wú)限范數(shù)不能超過(guò)的值。那我們是如何做到這一點(diǎn)的呢,答案是靠sign()sign()sign(),sign()sign()sign()的函數(shù)圖像3是這樣的:
也就是說(shuō):
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是一個(gè)向量的話,就會(huì)對(duì)它的每個(gè)維度分別做這樣的操作。4
由于sign()sign()sign()函數(shù)的輸出在{-1,0,1}之間,那么簡(jiǎn)單地,?sign()\epsilon sign()?sign()的輸出就在{??,0,?}\{-\epsilon,0,\epsilon\}{??,0,?}之間了,從而,我們就成功使得∥η∥∞<=?\Vert \eta \Vert_\infty<=\epsilon∥η∥∞?<=?了。
總結(jié):?xJ(θ,x,y)\nabla_xJ(\theta, x, y)?x?J(θ,x,y)給我們提供了擾動(dòng)xxx的高效方向,?sign()\epsilon sign()?sign()幫助我們使得擾動(dòng)大小被限制在某個(gè)范圍內(nèi)。
FGM
FGM的全稱是Fast Gradient Method, 一般指的是這樣的擾動(dòng)(出現(xiàn)于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)
也就是說(shuō)比起FGSM中sign()sign()sign()的方式,這里做了一個(gè)L2范數(shù)歸一化。
設(shè)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??)?
通過(guò)這樣歸一化的話,還能保留每個(gè)維度之間的相對(duì)大小,不像FGSM直接用了一個(gè)把每個(gè)維度轉(zhuǎn)成-1,1或0的sign()sign()sign()函數(shù)。
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 ??
總結(jié)
以上是生活随笔為你收集整理的对抗训练+FGSM, FGM理解与详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: tmdb数据集_数据科学第2部分的数据管
- 下一篇: 王道计算机网络学习笔记