本文最初發(fā)表于 Towards Data Science 博客,經(jīng)原作者 Andre Ye 授權(quán),InfoQ 中文站翻譯并分享。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Nerual Network,CNN)構(gòu)成了圖像識(shí)別的基礎(chǔ),這無(wú)疑是深度學(xué)習(xí)最重要的應(yīng)用之一。然而“不幸”的是,有關(guān)深度學(xué)習(xí)的許多研究都是在數(shù)據(jù)集的“完美世界”約束下進(jìn)行的——追求幾個(gè)百分點(diǎn)的正確率。因此,盡管我們開發(fā)的架構(gòu)在理論測(cè)試中效果非常好,但在現(xiàn)實(shí)世界中卻不一定如此了。
對(duì)人眼來(lái)說,對(duì)抗性樣本或輸入與普通圖像難以區(qū)分,但卻能完全騙過各種圖像識(shí)別架構(gòu)。對(duì)抗性輸入的部署顯然會(huì)帶來(lái)許多令人不安的危險(xiǎn)影響,特別是當(dāng)人工智能被賦予更多自主決策的權(quán)力時(shí),尤為如此。
因此,理解和解決應(yīng)用于深度學(xué)習(xí)的系統(tǒng)產(chǎn)生對(duì)抗性輸入——倫理黑客的方法是非常重要的。
由 Goodfellow 等人提出的一種簡(jiǎn)單的方法,用于系統(tǒng)生成對(duì)抗性輸入,稱為“快速梯度符號(hào)法”(fast gradient signed method)。
考慮如下:
- 輸入向量 x(此為輸入信息所在的位置,但可以將其視為一維列表)。
- 對(duì)抗性輸入 x-hat(與 x 相同的形狀,但值有所改變)。
- 一個(gè) perbutation 向量 η(“eta”,以產(chǎn)生對(duì)抗性輸入向量)。
為了執(zhí)行逐個(gè)元素的乘法和求和(例如[1,2,3] [1,2,3] = 1+4+9 = 14),我們將第一個(gè)向量的轉(zhuǎn)置乘以第二個(gè)向量。這就是所謂的“加權(quán)總和”。

在這方面,我們必須實(shí)現(xiàn)兩個(gè)目標(biāo),以產(chǎn)生對(duì)抗性輸入:
- 我們希望最大化原始輸入向量的加權(quán)與擾動(dòng)(改變)的加權(quán)和之間的差值。這會(huì)改變模型的激活狀態(tài),并使模型的決策過程中斷。
- 我們希望使對(duì)抗性向量 η 的每個(gè)單獨(dú)值盡可能小,這樣整個(gè)圖像在人眼來(lái)看沒有改變。
Goodfellow 等人提出的解決方案是雙管齊下的,而且相當(dāng)聰明,原因有幾個(gè)。
η 設(shè)置為符號(hào) (w),其中 sign 函數(shù)對(duì)于負(fù)值返回 -1,正值返回 1(0 表示 0)。如果權(quán)重為負(fù),則將其乘以 -1 以得到正和;如果權(quán)重為正,則乘以 1 而結(jié)果無(wú)變化。
例如,如果權(quán)重向量為[3,-5,7],η 將為[1,-1,1]。加權(quán)和為3+5+7=15。請(qǐng)注意,執(zhí)行這個(gè)操作本質(zhì)上是將負(fù)值轉(zhuǎn)換為正值,而使正值保持不變(abs()函數(shù))。這意味著每個(gè)數(shù)字都是盡可能大的,如果權(quán)重在區(qū)間內(nèi),那么就是最大可能的加權(quán)和[-1, 1]。
考慮下面的一些“圖像”。盡管它們以二維形式表示的,但可以將它們視作一維向量。

最終總和為 10,與原始輸出 -7 相差很大。當(dāng)然,這將會(huì)使網(wǎng)絡(luò)的預(yù)測(cè)更加糟糕。
這樣做可以達(dá)到進(jìn)行較大更改的目的,但一點(diǎn)也不謹(jǐn)慎。畢竟,我們的圖像在我們進(jìn)行干擾的時(shí)候,發(fā)生了明顯的改變:

請(qǐng)記住,我們之前將最終總和表示為W(x) + w(η),其中w()是加權(quán)綜合,η是 perbutation 向量,實(shí)際上是w(x+η)的展開。我們想要稍微改變每個(gè)像素的值,雖然總效應(yīng)必須最大化,但η的每個(gè)元素都必須足夠小,以至于不能被注意到。
在對(duì)抗性輸入的實(shí)際產(chǎn)生中,像素?cái)?shù)j被定義為x的jth 值加上η的第j個(gè)值。首先引入的表示法使用了一種簡(jiǎn)單的方式來(lái)證明η的目的,即大幅增加總和,而不一定是單個(gè)像素值。
η 的每個(gè)元素都相當(dāng)大:+1 或 -1,這對(duì)適當(dāng)縮放的數(shù)據(jù)有很大的影響。為了解決這個(gè)問題,我們將每個(gè) η 元素乘以一個(gè)帶符號(hào)的 ?,其中 ? 是傳感器檢測(cè)到的最小數(shù)值單位(或更?。?。對(duì)于 8 位顏色,該數(shù)字將為 256,因此 ?=1/255。
因?yàn)?? 是“不可檢測(cè)”的(或者幾乎不可檢測(cè)),所以它在視覺上對(duì)圖像應(yīng)該沒有什么不同。但是,每一個(gè)變化都是按照 sign 函數(shù)構(gòu)建的,這樣加權(quán)和的變化是最大的。
因此,我們將 -? 或 +? 添加到輸入向量的每個(gè)元素上,這是一個(gè)足夠小的變化,以至于它不可檢測(cè),但使用 sign 函數(shù)構(gòu)造,從而使變化最大化。
許多小組件加起來(lái)可能會(huì)變得非常大,特別是如果它們是一種智能的方式構(gòu)造的話。
讓我們考慮一下在上一個(gè)例子中 ?=0.2 時(shí)這種情況的影響。我們可以得到 3 個(gè)單位的差額(總和為 -4)。

這是相當(dāng)可觀的,特別是考慮到 perbutation 向量對(duì)原始輸入向量的微小變化。

讓我們考慮一下在上一個(gè)例子中 ?=0.2 時(shí)這種情況的影響。我們可以得到 3 個(gè)單位的差額(總和為 -4)。
如果權(quán)重向量具有 n 個(gè)維數(shù),并且元素的平均絕對(duì)值為 m,則激活值將增長(zhǎng)為 ?nm。在高維圖像中(如 256×256×3),n 的值為 196608。m 和 ? 可以非常小,但仍會(huì)對(duì)輸出產(chǎn)生重大影響。
這種方法非常快,因?yàn)樗煌ㄟ^ +? 或 -? 來(lái)改變輸入:但是它這樣做的方式如此有效,以至于完全愚弄了神經(jīng)網(wǎng)絡(luò)。

在上圖中,0.007 的 ? 對(duì)應(yīng)于 googleNet 轉(zhuǎn)換為實(shí)數(shù)之后的 8 位圖像編碼的最小為的大小。來(lái)源: Goodfellow 等人。
Goodfellow 等人在應(yīng)用 FGSM 時(shí)發(fā)現(xiàn)了有趣的結(jié)果:
- ?=0.25 時(shí),淺層 SoftMax 分類器的錯(cuò)誤率為 99.9%,MNIST 上的平均置信度為 79.3%。
- ?=0.1 時(shí),對(duì)預(yù)處理的 CIFAR-10 的錯(cuò)誤預(yù)測(cè),CNN 的錯(cuò)誤率為 87.15%,平均置信度為 96.6%。
顯然,這些對(duì)抗性的輸入會(huì)導(dǎo)致嚴(yán)重的錯(cuò)誤率,但也許更令人擔(dān)憂的是高置信度。這些網(wǎng)絡(luò)不僅做出了錯(cuò)誤的預(yù)測(cè),還對(duì)自己錯(cuò)誤的輸出“充滿了信心”。這顯然是有問題的:想象一下,教一個(gè)猶豫不決回答 2×4=6 的學(xué)生和一個(gè)自豪地宣布答案的學(xué)生之間的區(qū)別。
這些對(duì)抗性的輸入 / 樣本可以解釋為高維點(diǎn)積的一個(gè)特性:當(dāng)需要在其中分配和的像素?cái)?shù)量較多時(shí),加權(quán)和可以更大,而對(duì)每個(gè)單獨(dú)像素的改變也會(huì)更小。
事實(shí)上,對(duì)抗性樣本是網(wǎng)絡(luò)過于線性的結(jié)果。畢竟,這樣的變化(比如說)對(duì)一個(gè)由 sigmoid 函數(shù)組成的網(wǎng)絡(luò)的影響微乎其微,因?yàn)樵诖蠖鄶?shù)地方,perbutation 的影響都是遞減的。具有諷刺意味的是,正是這種特性——死亡梯度(dying gradients)ReLU 和其他容易受到對(duì)抗性輸入影響的無(wú)界函數(shù)的興起。
本文中提出的其他要點(diǎn)包括:
- 最重要的是 perbutation 的方向,而不是空間中的某個(gè)特定點(diǎn)。這并不是說,模型在多維空間中存在“弱點(diǎn)”的情況;相反,在對(duì)抗性輸入的構(gòu)建中,perbutation 的方向才是最關(guān)鍵的。
- 因?yàn)榉较蚴亲钪匾?,所以?duì)抗性結(jié)構(gòu)可以泛化。由于尋找對(duì)抗性輸入并不局限于探索模型的預(yù)測(cè)空間,因此,可以在集中不同類型和結(jié)構(gòu)的模型上推廣構(gòu)造方法。
- 對(duì)抗性訓(xùn)練可以導(dǎo)致正則化,甚至比 Dropout 還要多。訓(xùn)練網(wǎng)絡(luò)識(shí)別對(duì)抗性輸入是一種有效的正則化形式,也許比 Dropout 更有效。對(duì)抗性訓(xùn)練的正則化效果不能通過減少權(quán)重或簡(jiǎn)單地增加權(quán)重來(lái)復(fù)制。
- 易于優(yōu)化的模型很容易受到擾動(dòng)。如果找到最佳梯度很簡(jiǎn)單,那么計(jì)算一個(gè)有效的對(duì)抗性輸入同樣也會(huì)很簡(jiǎn)單。
- 線性模型、訓(xùn)練以模擬輸入分布的模型以及集合對(duì)抗性輸入均不能抵抗對(duì)抗性輸入。RBF 網(wǎng)絡(luò)具有抵抗性。具有隱藏層的架構(gòu)可以通過訓(xùn)練來(lái)識(shí)別對(duì)抗性輸入,從而獲得不同程度的成功。
走出數(shù)據(jù)集的限制性和完美條件的世界,進(jìn)入不那么有序的現(xiàn)實(shí)世界變得越來(lái)越重要。通過發(fā)現(xiàn)有效的策略來(lái)欺騙我們的圖像識(shí)別模型,我們就可以在它們被用于更惡意的目的之前對(duì)其進(jìn)行屏蔽。
推薦閱讀
- 《解釋和利用對(duì)抗性樣本》(Explaining and Harnessing Adversarial Examples),Goodfellow 等人。
該論文以比本文更嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)方法禁燒了 FGSM,并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行了深入分析,討論了 FGSM 的盧綸解釋和啟示。 - 《建立抵抗對(duì)抗性攻擊的深度學(xué)習(xí)模型》(Towards Deep Learning Models Resistant to Adversarial Attacks),Madry 等人。在 FGSM 的研究工作的基礎(chǔ)上,開發(fā)了一種更為復(fù)雜的對(duì)抗性樣本生成方法。
- 《 TensorFlow 教程:FGSM 的對(duì)抗性樣本》(TensorFlow Tutorial: Adversarial Example with FGSM)。在 TensorFlow 中實(shí)現(xiàn) FGSM 的代碼教程。
作者介紹:
Andre Ye,Critiq 聯(lián)合創(chuàng)始人。機(jī)器學(xué)習(xí)、計(jì)算機(jī)科學(xué)與數(shù)學(xué)愛好者。
原文鏈接:
https://towardsdatascience.com/how-to-systematically-fool-an-image-recognition-neural-network-7b2ac157375d