對抗攻擊方法一覽


背景

神經網絡在過去的幾年和幾十年已經獲得了長足的進步,神經網絡的應用已經遍布我們生活的各個角落。但是與此同時,也有人發現神經網絡並不像我們預期的那么具有魯棒性,僅僅在圖片中添加一個微笑的擾動就可以改變神經網絡最后的預測結果,這些技術被稱為對抗攻擊。對抗攻擊是指在干凈的圖片中添加微小的擾動,使神經網絡(DNN)產生誤判,但人的肉眼卻無法察覺的一項技術,最早是在Szegedy等人在《Intriguing properties of neural networks》中提出。

在這篇論文發表后,就激起了大家對對抗攻擊研究的熱情,於是就不斷的有新的對抗攻擊方法被提出,力求將網絡攻擊后的准確率攻擊的越低越好,但與此同時,又不斷的有人提出了如何改進模型結構或者新的訓練方法,來提升模型面對各種對抗攻擊方法時的魯棒性,隨着大家的不斷深入的研究,這也變成了一個功與防,矛與盾的問題。接下來,我也將對我了解到了攻擊或者防御方法做一個大概的梳理。本文的內容很大程度上參考了這篇綜述:Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey

分類

如果對對抗攻擊方法按照是否知道被攻擊網絡的結構或者參數來分類,那么可以分為白盒攻擊黑盒攻擊。在一般來說,如果攻擊的時候有利用到被攻擊網絡的梯度信息,那么這個攻擊方法就是一種白盒的攻擊方法,因為白盒攻擊知道了被攻擊網絡模型的具體結構和參數,所以攻擊的強度也會很大,與此對應的就是黑盒攻擊,對於黑盒攻擊來說,攻擊者獲取不到模型的各種細節,只知道模型輸入和輸出,整個模型對他來說就是一個黑漆漆的盒子,這也是黑盒這個名字的來源。雖然白盒攻擊的強度會比黑盒攻擊高很多,但是在現實情況下,黑盒攻擊更具有現實意義,因為攻擊者其實很難直接的將你的模型拿來做分析,進行白盒攻擊。

如果將對抗攻擊方法按照攻擊采取的形式,那么可以將網絡的攻擊分為目標攻擊非目標攻擊。這兩種攻擊的主要區別就是對模型的攻擊方向是不是確定的,例如說,有一張貓🐱的圖片,你想讓攻擊之后的圖片被網絡識別為狗🐕,那么,這就是一種典型的目標攻擊,與此對應的,如果你只是想讓網絡不正確識別到貓🐱,可能攻擊之后識別為蛇🐍,車🚗或者其他的,這種就是典型的非目標攻擊。

如果按照攻擊的方法來划分的話,可以將網絡分為單步攻擊迭代攻擊基於優化的攻擊。區分這三者就比較的容易,單步攻擊就是在攻擊中只攻擊一次,這種攻擊方法的優點就是攻擊的速度非常的快,但是缺點也比較的明顯,就是攻擊的強度很小,單步攻擊的代表就是FGSM;多步攻擊就是單步攻擊的改進版本,不像單步攻擊那樣簡單的移動一步,而是按照一定的步長,多次的攻擊,代表就是PGD;基於優化的攻擊將尋找合適的對抗樣本看作為一個優化問題,根據設置的優化目標去不斷的優化擾動,其代表就是CW。

常用術語

\(L_0\)范數,\(L_2\)范數,\(L_\infty\)范數

對於各種的攻擊算法中,這幾個范數出現的頻率特別高,這三個范數的存在主要是為了去更統一的規范各個攻擊算法產生的擾動的范圍。

  • \(L_0\)范數:擾動的像素點數量

  • \(L_2\)范數:原始圖像和擾動之后的圖像之間,所有像素點距離絕對值的總和

  • \(L_\infty\)范數:在所有的擾動中,繞動最大的那一個

    所以其實可以看到,\(L_0\)范數約束的是對抗樣本被擾動過的像素點數量,被擾動的越少,那\(L_0\)范數就越小,\(L_2\)范數是對擾動整體進行了一個約束,要求擾動整體的絕對值之和要小於某個值,對於\(L_\infty\)范數來說,它只限制了擾動的最大值,只要擾動不超過這個規定的值,就是合理的。

攻擊方法

Box-constrained L-BFGS

論文地址:Intriguing properties of neural networks

Szegedy等人在發現網絡可以被微小的擾動干擾之后,就提出了產生對抗樣本的方法,其提出的方法大致為:

image-20220406163045382

其中r為生成的擾動,f為分類器,l為目標類別,所以改攻擊方法就是在盡可能將擾動降低的過程中,讓網絡誤判對抗樣本為目標類別,同時還需要保證添加上擾動的對抗樣本還在0到1的范圍內。但是作者發現這個優化的問題會過於的復雜,所以將優化的問題進行了一定的簡化,變成了:

image-20220406163602915

相較上面的公式,這里的優化問題多了一個懲罰因子c,用來權衡兩者的關系,其他與上式基本一樣,但是到這里,整個優化問題就變為了一個凸優化的問題。


FGSM

論文地址:Explaining and Harnessing Adversarial Examples

FGSM是GoodFellow(大牛)提出的一種攻擊方法,其攻擊的手段也十分的直觀,因為我們在訓練網絡的過程中,都是想讓網絡的參數朝着梯度下降的方向去調整,那么,我們就可以在圖像上添加擾動,這個擾動可以朝着梯度上升的方向去生成,這樣子就可以讓網絡預測出來的損失盡可能的大,預測的結果也就會偏離。FGSM的擾動生成公式:

image-20220406172259001

可以看到對抗樣本加上了朝着梯度上升生成的擾動,那這個對抗樣本就會離真實樣本越來越遠,達到了對抗樣本的目的。與此同時,也會有目標攻擊的FGSM,其公式與原始的FGSM十分相似:

image-20220406173011462

可以觀察到,與原始的FGSM的主要區別就是將加號變為了減號,同時把與真實標簽做Loss變為了與目標標簽做Loss,這樣子就會讓圖片朝着目標標簽演變。


Basic Iterative Methods(BIM)

論文地址:Adversarial examples in the physical world

相較於FGSM的一下子走一大步,Basic Iterative Methods(BIM)將大的步長分解為許多小的步長,然后擴展為多步去逐步的增大模型的Loss,其運算的流程如下:

image-20220406221012587

第i+1次的迭代結果基於第i次的結果,同樣也是基於梯度,然后不斷的去增大模型的Loss。同樣的,BIM也有目標攻擊的版本,其變種同上面的FGSM的變種一樣,將真實標簽變為了目標標簽,同時將加上梯度變為減去梯度。

這里可能會發現上面的實現過程與我們熟悉的PGD十分的相似,甚至有點看着一模一樣,事實也的確如此,PGD作為BIM的變體,相較於BIM的改進是在進行攻擊的時候,會以隨機的初始噪聲來初始化自己的擾動,這個改進也證明了自己的有效性,PGD是現階段十分強力的攻擊方法


Jacobian-based Saliency Map Attack(JSMA)

論文地址:The Limitations of Deep Learning in Adversarial Settings

相較於前面的幾種對抗攻擊方法使用的是L2范數或者無窮范數去限制對抗樣本,JSMA的方法將使用L0范數去限制被擾動的像素點個數,但是對每個擾動的像素點的擾動范圍沒有確切的要求。對於如何選擇被擾動的像素點,這里選擇的是使用顯著圖(Saliency Map)這個概念去選擇對誤判貢獻最大的那幾個像素點。

在計算的過程中,作者使用了雅可比矩陣去求得向前傳播的偏導數,從而獲取哪些像素位置對誤分類神經網絡有最大的貢獻,向前導數矩陣的計算公式如下:

image-20220407174714739

這里可能會疑惑,向前傳播的求導與我們平時使用向后傳播的求導有何不同?首先,我們平時在使用向后傳播的時候,求導是在代價函數,也就是我們求的Loss函數與輸入變量之間求導,這些過程都被封裝在backward這個方法中,這里的向前傳播是神經網絡的最后一層函數F與輸入變量之間的求導

在求完雅可比矩陣之后,我們就可以分析出哪些才是我們需要去擾動的像素點,文中使用了一下的計算方式:

image-20220407175059658

這個公式中,i表示的是輸入特征的第i個特征,X是輸入的變量,t為目標類別。那么這個公式的上半部分就表示的是拒絕對判斷為目標標簽t有副作用的像素,或者讓對抗樣本會判斷為非目標標簽t有正作用的像素也置為0,然后下半部分是將對對抗樣本判斷為目標標簽t有積極作用的像素增大權重。從上面的描述就可以看出,JSMA是一種典型的目標攻擊,需要指定目標標簽t。


One Pixel Attack

論文地址:One Pixel Attack for Fooling Deep Neural Networks

這是一種比較極端的攻擊方法,同上面的JSMA攻擊方法一樣,它也是L0范數下的攻擊。就像這個算法的名字一樣,它只改變了原圖中的一個像素,就能使模型對攻擊后的圖片產生誤判。在最初看到這個攻擊算法的時候,比較直觀的想法就是遍歷圖片的每個像素,然后逐一的去嘗試,但是這樣子會十分的耗時,就拿CIFAR10數據集來說,一張圖片就要便利32*32*3次,這代價太大,於是作者的解決辦法是使用了差分進化算法,會讓尋找最優的像素的時間變少。

image-20220407195139527

Carlini and Wagner Attacks(C&W)

論文地址:Towards Evaluating the Robustness of Neural Networks

CW算法是一種基於優化的算法,其優化的目標就是產生一種人肉眼看上去十分干凈,但是會讓機器產生誤判的對抗樣本。至於為什么要叫這個名字,與其本身的攻擊方法沒有任何關系,這個是論文兩個作者的名字拼起來的來的。

對於CW來說,需要確定一個優化的目標,在文中,作者將這個優化的目標設置為了:

image-20220407210838840

這個優化的目標就是在能讓模型誤判的前提下,盡可能的讓擾動小。在這個優化的過程中,有一個很有意思的技巧,就是作者需要確定生成的對抗樣本是一個正常的圖片,即范圍應該在0到1之間,但是如果直接使用torch.clamp函數的話,就會讓被裁切掉的部分失去梯度,然后在之后的優化過程中不再發生變化,這是我們不想看到的,所以作者先是將一張正常的圖片映射到了(-inf, +inf)的范圍,使用的是atanh函數,然后在這個范圍進行優化,優化完之后經過一個Tanh函數,就恢復了原來圖片的范圍,這樣就可以比較方便的優化出一個對抗樣本。CW的攻擊性很強,而且相較於FGSM和PGD,它的擾動對人的肉眼來說幾乎不可見,但是其有一個很大的缺點,就是非常非常非常的慢


DeepFool

論文地址:DeepFool: a simple and accurate method to fool deep neural networks

DeepFool的目標是尋找到可以讓模型產生誤判的最小擾動,這就好比在簡單的多分類場景中,機器學習是使用一個超平面去區分不同的類別,那使一個類別產生誤判最簡單的方法就是朝着這個超平面移動,這就是最小的擾動。在本篇論文中,作者將要尋找的最小擾動定義為了:

image-20220407213939735

其中r就是要尋找的最小擾動,K就是分類器。

作者先在二分類中演示了DeepFool,如下圖所示,一個超平面將空間分為了兩半,超平面的兩邊代表了模型識別的兩類

image-20220407214610448

其中超平面的表達式為:

image-20220407214813623

則最小的擾動距離就可以被定義為:

image-20220407215033445

對於通用的分類器來說,尋找這個最小的擾動距離需要一個迭代的過程去尋找,作者在文中給出的偽代碼如下:

image-20220407215325095

即不斷的朝着超平面的方向前進,直到樣本被模型誤判。


Adversarial Transformation Networks (ATNs)

論文地址:Adversarial Transformation Networks: Learning to Generate Adversarial Examples

這篇論文不同於之前想要分析模型的種種特點,這里想直接訓練一個模型,將原圖作為輸入,然后輸出就為對抗樣本,可以說是一種比較巧妙的方法。在這個網絡的訓練過程中,也會設定一個優化目標去指導模型的訓練,這里將優化的目標設定為了:

image-20220407220144759

其中\(f()\)為訓練好的分類模型,\(g()\)為我們要訓練的產生對抗樣本的模型,\(L_X\)\(L_Y\)均為損失函數,在論文中,\(L_X\)\(L_2\) Loss,\(L_Y\)的定義為:

image-20220407221208021

這里的\(r(y, t)\)是作者定義的一個reranking函數,主要的目的就是指引模型誤判為指定的類,其定義為:

image-20220407221355057

主要的作用就是將目標類別t的值乘上一個倍數,以讓模型朝着這個方向去訓練,然后不改動其他類別的值,這樣的好處是top2的准確率是不會變的,這也會讓擾動之后的圖片更加的正常。


Universal Adversarial Perturbations

論文地址:Universal Adversarial Perturbations: A Survey

這篇論文提出的是想要生成一個通用的擾動,這個擾動添加到任意一張圖上,都可以讓網絡被誤分類到目標類上,着篇論文提出的方法與前面介紹的DeepFool相似,都是將圖像推出分類的邊界,不過與DeepFool不同的是,這個擾動是在遍歷許多張圖片后找到的,是針對所有圖片的通用擾動


UPSET and ANGRI

論文地址:UPSET and ANGRI : Breaking High Performance Image Classifiers

與上面的攻擊方法不同,這個攻擊方法是一種黑盒攻擊,其對抗樣本的產生是按照以下的公式:

image-20220408003224094

U()就是論文中提出的UPSET網絡,R()是一個殘差網絡,s為一個縮放因子,然后將產生的對抗樣本限制在(-1, 1)的范圍里。


總結

上文介紹了幾種方法都是一些比較出名的攻擊方法,有的是目標攻擊,有的是非目標攻擊,有的是黑盒,有的是白盒,但攻擊的手段也肯定遠遠不止這幾種,更何況這篇綜述寫於18年,這里也只是介紹了我了解過的一些攻擊方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM