基于梯度擾動(dòng)探索對(duì)抗攻擊與對(duì)抗樣本
概述
近兩年研究人員通過對(duì)AI模型的安全性分析發(fā)現(xiàn),機(jī)器學(xué)習(xí)模型和神經(jīng)網(wǎng)絡(luò)模型都容易受到惡意用戶的對(duì)抗攻擊,攻擊者可以通過生成對(duì)抗樣本的方式攻擊AI模型并誤導(dǎo)AI模型做出錯(cuò)誤的判斷,這一安全問題備受關(guān)注。
目前已有的機(jī)器學(xué)習(xí)模型和神經(jīng)網(wǎng)絡(luò)模型都是通過提取數(shù)據(jù)特征,構(gòu)建數(shù)學(xué)判別公式然后根據(jù)數(shù)學(xué)模型進(jìn)行學(xué)習(xí)。提取數(shù)據(jù)特征的過程中容易提取到錯(cuò)誤特征、而且判別公式也可能出現(xiàn)與真實(shí)決策面分布不同的問題,因此攻擊者可以利用AI模型的弱點(diǎn),生成欺騙模型的對(duì)抗樣本。例如在圖像識(shí)別領(lǐng)域,可以通過在正常圖片上加入一個(gè)微小的噪聲從而使圖像識(shí)別分類器無(wú)法正常識(shí)別圖像,導(dǎo)致錯(cuò)誤分類的效果。這一問題存在嚴(yán)重的安全隱患。
對(duì)抗攻擊往往是指攻擊者利用特定的模型算法對(duì)AI模型進(jìn)行攻擊,其不僅包括攻擊者熟悉AI模型的條件下,對(duì)實(shí)際輸入進(jìn)行修改從而誤導(dǎo)AI模型的判別結(jié)果,而且包括攻擊者在不了解AI模型的結(jié)構(gòu)和參數(shù)的情況下,借助機(jī)器學(xué)習(xí)模型之間算法遷移的特性對(duì)AI模型進(jìn)行攻擊。
對(duì)抗樣本通常是指經(jīng)過特定的算法處理之后,模型的輸入發(fā)生了改變從而導(dǎo)致模型錯(cuò)誤分類。假設(shè)輸入的樣本是一個(gè)自然的干凈樣本。那么經(jīng)過攻擊者精心處理之后的樣本則稱為對(duì)抗樣本,其目的是使該樣本誤導(dǎo)模型做出判斷。
對(duì)抗攻擊
對(duì)抗攻擊可以從幾個(gè)維度進(jìn)行分類。例如可以通過攻擊者對(duì)AI模型的了解程度進(jìn)行分類。
- 白盒攻擊。攻擊者擁有模型的全部知識(shí),包括模型的類型,模型結(jié)構(gòu),所有參數(shù)和可訓(xùn)練權(quán)重的值。
- 有探針的黑盒攻擊。攻擊者只了解模型的部分知識(shí),可以探測(cè)或者查詢模型,比如使用一些輸入,觀察模型的輸出結(jié)果。這種場(chǎng)景有很多的變種,比如攻擊者知道模型結(jié)構(gòu),但是不知道參數(shù)的值,或者攻擊者甚至連模型架構(gòu)都不知道;攻擊者可能能夠觀測(cè)到模型輸出的每個(gè)類別的概率,或者攻擊者只能夠看到模型輸出最可能的類別名稱。
- 無(wú)探針的黑盒攻擊。在沒有探針的黑盒攻擊中,攻擊者只擁有關(guān)于模型有限的信息或者根本沒有信息,同時(shí)不允許使用探測(cè)或者查詢的方法來(lái)構(gòu)建對(duì)抗樣本。在這種情況下,攻擊者必須構(gòu)建出能夠欺騙大多數(shù)機(jī)器學(xué)習(xí)模型的對(duì)抗樣本。
此外還可以通過攻擊者攻擊的目標(biāo)將對(duì)抗攻擊分類。
- 無(wú)目標(biāo)攻擊(non-targeted attack)。在這種情況下,攻擊者的目標(biāo)僅僅是使得分類器給出錯(cuò)誤預(yù)測(cè),具體是哪種類別產(chǎn)生錯(cuò)誤并不重要。
- 有目標(biāo)攻擊(targeted attack)。在這種情況下,攻擊者想要將預(yù)測(cè)結(jié)果改變?yōu)槟承┲付ǖ哪繕?biāo)類別中。
1. 白盒攻擊
傳統(tǒng)的白盒攻擊是指在我們已知神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)結(jié)構(gòu)以及模型參數(shù)的情況下,我們針對(duì)該神經(jīng)網(wǎng)絡(luò)生成對(duì)抗樣本實(shí)現(xiàn)誤導(dǎo)該模型的效果。攻擊者能夠獲取機(jī)器學(xué)習(xí)所使用的算法以及算法所使用的參數(shù)。攻擊者在產(chǎn)生對(duì)抗性攻擊數(shù)據(jù)的過程中能夠和機(jī)器學(xué)習(xí)的系統(tǒng)有所交互。這種“透明”的攻擊方式稱之為白盒攻擊,通常是利用模型的梯度、logits輸出等模型本身的知識(shí)來(lái)設(shè)計(jì)對(duì)抗性擾動(dòng)生成對(duì)抗樣本對(duì)該模型進(jìn)行攻擊。白盒攻擊流程示意圖如下所示。
白盒攻擊示意圖
根據(jù)對(duì)抗樣本生成原理的不同,白盒攻擊通??梢苑譃槿悾夯谔荻?gradient-based)的攻擊、基于優(yōu)化(optimization-based)的攻擊、基于模型(model-based)的攻擊。根據(jù)生成對(duì)抗樣本是否對(duì)類別有針對(duì)性分為有目標(biāo)攻擊和無(wú)目標(biāo)攻擊。
下表中總結(jié)了當(dāng)前常用的十種白盒攻擊算法的特點(diǎn),以作為白盒攻擊算法的比較參考。
常用的十種白盒攻擊算法總結(jié)
2. FGSM白盒攻擊算法
FGSM(Fast gradient sign method)是一種常見的白盒攻擊算法。該攻擊方法的思路非常簡(jiǎn)單,主要是利用模型損失函數(shù)對(duì)輸入求梯度得到對(duì)抗性擾動(dòng),然后將對(duì)抗性擾動(dòng)添加到原始樣本中生成對(duì)抗樣本。通過在原始樣本的鄰域中線性化損失函數(shù),并通過如下閉合形式的方程找到精確的線性化函數(shù)的最大值。
FGSM是通過計(jì)算單步梯度快速生成對(duì)抗樣本。基于梯度的攻擊方法的原理在于絕大多數(shù)神經(jīng)網(wǎng)絡(luò)模型中都是通過梯度下降算法最小化損失函數(shù)來(lái)進(jìn)行訓(xùn)練的,因此利用損失函數(shù)對(duì)輸入求梯度,沿著梯度上升方向是使樣本朝著損失增大的方向移動(dòng),就有可能導(dǎo)致預(yù)測(cè)輸出改變。
FGSM原理示意圖
FGSM方法優(yōu)點(diǎn)是計(jì)算成本低、生成速度快,缺點(diǎn)是攻擊能力較弱,適用于對(duì)攻擊效率有較高要求的應(yīng)用場(chǎng)景。
3. C&W白盒攻擊算法
C&W攻擊算法是一種基于迭代優(yōu)化的低擾動(dòng)對(duì)抗樣本生成算法。該算法設(shè)計(jì)了一個(gè)損失函數(shù),它在對(duì)抗樣本中有較小的值,但在原始樣本中有較大的值,因此通過最小化該損失函數(shù)即可搜尋到對(duì)抗樣本。
C&W算法主要對(duì)多步迭代攻擊中的優(yōu)化函數(shù)進(jìn)行重新設(shè)計(jì),采用以下目標(biāo)函數(shù):
上式中第一項(xiàng)ξ 是一個(gè)需要經(jīng)驗(yàn)確定的權(quán)重參數(shù),用來(lái)平衡攻擊的隱蔽性與攻擊強(qiáng)度。第一項(xiàng)的最小化意味著需要盡量使樣本在模型中的輸出不為其對(duì)應(yīng)標(biāo)簽。第二項(xiàng)中的τ 初始化為最大允許的擾動(dòng)幅度,通常為數(shù)據(jù)最大變化量的無(wú)窮范數(shù)的6.25%,每當(dāng)?shù)诙?xiàng)優(yōu)化到0時(shí),τ會(huì)以0.9x的速度遞減。如下圖所示逐步更新第二項(xiàng)的意義在于逐漸限制最大允許擾動(dòng)幅度,從而增強(qiáng)對(duì)抗攻擊的隱蔽性。
綜上所述, C&W算法在繼承簡(jiǎn)單多步迭代攻擊的基礎(chǔ)之上,改進(jìn)其目標(biāo)優(yōu)化函數(shù),使其逐步收緊對(duì)擾動(dòng)幅度的限制,從而達(dá)到減小對(duì)抗樣本擾動(dòng)幅度的要求,進(jìn)而使對(duì)抗樣本的隱蔽性提升。
4. 基于集成的黑盒攻擊算法
在實(shí)際的應(yīng)用場(chǎng)景中,攻擊者可能無(wú)法獲取到AI模型的一些詳細(xì)信息,例如模型的參數(shù)和神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),但是攻擊者可以利用神經(jīng)網(wǎng)絡(luò)模型之間具有遷移特性的特點(diǎn),采用黑盒攻擊算法對(duì)目標(biāo)進(jìn)行攻擊。
基于logits集成的黑盒攻擊算法是利用集成學(xué)習(xí)思路的一種黑盒攻擊方法?;趌ogits集成是通過集成多個(gè)模型的logits輸出,以生成能夠使得多個(gè)模型分類錯(cuò)誤的對(duì)抗樣本為目標(biāo)進(jìn)行訓(xùn)練,從而使得對(duì)抗樣本能夠?qū)α硗獾牧阒R(shí)的模型具有黑盒攻擊能力。常用的對(duì)抗攻擊方法是利用單個(gè)模型的梯度進(jìn)行快速生成或者利用logits輸出進(jìn)行優(yōu)化來(lái)找到對(duì)抗樣本。而基于logits集成是利用多個(gè)模型的logits輸出,以得到對(duì)所有模型都具備攻擊能力的對(duì)抗樣本為目的,即這個(gè)對(duì)抗樣本是所有模型的對(duì)抗樣本,實(shí)現(xiàn)上通過攻擊多個(gè)模型的集成模型來(lái)實(shí)現(xiàn)。另外還可以考慮給各個(gè)模型賦上權(quán)重,權(quán)衡不同模型之間的相對(duì)重要性,以適用于不同的實(shí)際應(yīng)用場(chǎng)景。集成后的logits表達(dá)式如下式所示。
其中表示第k個(gè)模型的logits輸出,
表示第k個(gè)模型的logits的權(quán)重。模型的損失函數(shù)如下:
基于logits集成的思想借鑒了集成學(xué)習(xí)的思想,從原來(lái)的單模型對(duì)抗樣本目標(biāo),升級(jí)為多模型集成對(duì)抗樣本目標(biāo)?;趌ogits線性加權(quán)集成的結(jié)構(gòu)如下圖所示。
這種方法的優(yōu)點(diǎn)在于,首先在大規(guī)模數(shù)據(jù)集上具有好的遷移能力;其次既可以遷移無(wú)目標(biāo)攻擊,也可以對(duì)有目標(biāo)攻擊進(jìn)行遷移,即可以帶著目標(biāo)標(biāo)簽一起遷移。此外,理論表明,基于logits集成的攻擊能力明顯優(yōu)于預(yù)測(cè)集成和損失函數(shù)集成的攻擊能力。
對(duì)抗樣本
通過上面介紹了對(duì)抗攻擊的幾種算法,我們可以借助這些對(duì)抗攻擊算法來(lái)生成對(duì)抗樣本。目前對(duì)抗樣本應(yīng)用最多的領(lǐng)域是圖像識(shí)別方向,攻擊者可以利用攻擊算法對(duì)圖像中的像素點(diǎn)進(jìn)行修改,改變了輸入圖像之后可以誤導(dǎo)AI模型識(shí)別系統(tǒng)做出錯(cuò)誤的判斷。
我們利用FGSM算法對(duì)VGG模型進(jìn)行攻擊,生成對(duì)抗樣本的關(guān)鍵過程如下。
首先我們載入一張火烈鳥的圖片,并利用VGG模型進(jìn)行預(yù)測(cè)。結(jié)果發(fā)現(xiàn)VGG模型可以正常識(shí)別火烈鳥的圖片。
當(dāng)我們?cè)诨鹆银B圖片的梯度上升方向上增加一個(gè)噪聲信號(hào)之后,迭代增加400次并限制噪聲信號(hào)的幅度范圍。再次用VGG模型識(shí)別圖片是發(fā)現(xiàn)模型會(huì)將火烈鳥識(shí)別成鶴。根據(jù)FGSM算法的原理對(duì)火烈鳥圖片進(jìn)行修改,在原始圖像上疊加的噪聲就是在限制幅度范圍內(nèi)對(duì)圖像的梯度進(jìn)行上升計(jì)算。
注意到疊加了噪聲信號(hào)的對(duì)抗樣本和原始樣本實(shí)際上肉看觀察不到區(qū)別,利用程序繪制出噪聲信號(hào)也會(huì)發(fā)現(xiàn)噪聲幅度很小幾乎可以忽略。但是對(duì)于VGG模型而言是別的結(jié)果卻是完全不同的。隨著梯度上升迭代次數(shù)的增加,噪聲信號(hào)越來(lái)越大、生成的對(duì)抗樣本迷惑性越來(lái)越強(qiáng),最終導(dǎo)致VGG模型受到了FGSM算法的攻擊。
總結(jié)
經(jīng)過對(duì)對(duì)抗攻擊的調(diào)研發(fā)現(xiàn),對(duì)抗攻擊受到越來(lái)越多的研究人員和大眾的關(guān)注。雖然已經(jīng)有不少研究提出了許多新穎的攻擊算法用于產(chǎn)生對(duì)抗樣本,但是與攻擊對(duì)應(yīng)的防御問題一直沒有得到很好地解決。
目前的對(duì)抗攻擊防御解決方法主要包括對(duì)抗學(xué)習(xí)過程加入對(duì)抗樣本進(jìn)行訓(xùn)練,以及引入膠囊網(wǎng)絡(luò)等集成的方式對(duì)攻擊方法進(jìn)行防御。然而這些方法都還不成熟,而且沒有形成完整的體系,至于防御效果也不明顯??梢哉f(shuō)目前還沒有一個(gè)完善的抵御對(duì)抗攻擊的模型或者方法產(chǎn)生。因此無(wú)論是對(duì)抗攻擊領(lǐng)域還是防御方法都還存在著很大的發(fā)展空間。
【本文是51CTO專欄作者“綠盟科技博客”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過51CTO聯(lián)系原作者獲取授權(quán)】