文章目錄
簡介
這個內容也是新的,Attack and Defense
• We seek to deploy machine learning classifiers not only in the labs, but also in real world.
• The classifiers that are robust to noises and work “most of the time” is not sufficient.
• We want the classifiers that are robust the inputs that are built to fool the classifier.光強不夠,還要應付人類的惡意攻擊
• Especially useful for spam classification, malware detection, network intrusion detection, etc.
公式輸入請參考:在線Latex公式
Attack(重點)
攻擊是重點,因爲防禦目前還是比較困難的。
做法
如果在原圖片()上加上一些噪音()。這些噪音不是從高斯分佈來的。然後丟到模型裏面,會得到不一樣的結果。
Loss Function for Attack
先看普通的訓練模型:
訓練的目標函數是:
C代表交叉熵,x是不變的,找到參數,使得輸出的分佈和標籤的分佈越接近越好。
如果是Non-targeted Attack:
這裏參數是不變的,我們希望找到一個,使得輸出與標籤的分佈越遠越好。
如果是Targeted Attack,就是希望機器將輸入錯誤的分類爲
由於這裏是有目標的,所以希望找到一個,使得輸出與正確標籤的分佈越遠越好,同時與錯誤(目標)標籤越近越好。
當然還要有一個限制,我們不希望攻擊被發現,因此輸入不能改變太大,不然直接輸入魚就ok了:
約束的定義
這裏我們用表示的差異
計算方式有幾種:
1.L2-norm
2.L-infinity
L2沒有辦法描述上面的改變,L-infinity則可以。
3.其他方法
如何攻擊
Just like training a neural network, but network parameter 𝜃 is replaced with input
這個看上去貌似不好解,我們可以把約束去掉來解:
用GD來弄,這裏是對x進GD:
然後加入約束:
每次更新了後判斷是否滿足條件,如果不滿足,那麼對進行修正,使其滿足限制條件。修正函數如下:
思想是窮舉所有滿足約束條件的x,找一個離最近的x來替換。可視化後:
例子
攻擊結果如下:
看上去新圖片沒有什麼區別,但是我們用原圖片減新圖片,然後乘以50倍:
下面是把貓變成鍵盤的例子:
如果不是加入攻擊噪音,那麼結果是:
小結
橫座標代表輸入,縱座標代表輸出,也就是x屬於某個分類的概率:
是高維空間中的一個點,在這個高維空間中,有一些神奇的方向,能夠使得稍微變化一點點(下面第二張圖中,紅色部分非常尖,稍微移動就會到別的地方),會讓機器認爲圖片中的貓是其他東西。
其他方法Attack Approaches
• FGSM (https://arxiv.org/abs/1412.6572)
• Basic iterative method (https://arxiv.org/abs/1607.02533)
• L-BFGS (https://arxiv.org/abs/1312.6199)
• Deepfool (https://arxiv.org/abs/1511.04599)
• JSMA (https://arxiv.org/abs/1511.07528)
• C&W (https://arxiv.org/abs/1608.04644)
• Elastic net attack (https://arxiv.org/abs/1709.04114)
• Spatially Transformed (https://arxiv.org/abs/1801.02612)
• One Pixel Attack (https://arxiv.org/abs/1710.08864)
• …… only list a few
不同的攻擊方法只不過是損失函數中的約束不同,以及最小化的優化方法不一樣而已,下面我們來看看一種FGSM
FGSM
Fast Gradient Sign Method雖然不是最強大的,但是它是非常簡單的一種方法。
例如,無論是多少,都取:
也就是說這個算法的思想就是隻攻擊一次就好(這個是一拳超人?就是攻擊一次的意思?)
也有文獻說多攻擊幾次效果更好,那是另外一種FGSM方法,這裏不考慮。
從圖形上看,如果是普通的GD,我們是先算gradient的方向,然後把更新到。
現在FGSM是直接按照gradient的方向,一步直接更新到對應方向的右上角,(只要gradient的方向是第三象限的範圍都是右上角那個點,同理,如果只要gradient的方向是第二象限都是右下角那個點)
也就是說FGSM只在意gradient的方向,不在意它的大小。
因爲如果是普通的GD,配上比較大的LR的時候,會出現下圖的情況。這個就會超出限制條件,按照之前的講法,要把它拉回來(就是右上角那個點)。
White Box v.s. Black Box
上面講的攻擊方式是白盒攻擊,因爲我們需要知道模型參數:
• In the previous attack, we fix network parameters 𝜃 to find optimal
• To attack, we need to know network parameters 𝜃
• This is called White Box Attack.
那麼我們如果保護好模型的參數,是否就會安全?
NO!,還可以做黑盒攻擊。
Black Box Attack
攻擊步驟如下:
1、現在有一個我們不知道參數的黑盒模型(深藍色);
2、我們用訓練黑盒模型的訓練數據自己訓練一個代理模型(淺藍色);
3、用代理模型生成一個攻擊對象(圖片);
4、用攻擊對象去攻擊黑盒模型。
那是不是意味我們還要保護好訓練數據呢?
不行。如果模型是一在線的圖像識別系統,那麼我們自己做一組圖片數據,丟到線上模型中,得到一組對應的標籤,用這個作爲訓練數據來訓練代理模型即可。
目前已經有相應的文章:https://arxiv.org/pdf/1611.02770.pdf
這裏顯示了用同一個代理模型還可以去攻擊不同黑盒模型。這個攻擊甚至可以泛化到:
Universal Adversarial Attack
根據之前說的攻擊方法,不同的圖片是需要不同的才能成功攻擊。但是研究表明,不同圖片實際上可以用同一個攻擊對象來進行攻擊。
參考文獻:https://arxiv.org/abs/1610.08401
Adversarial Reprogramming
本來模型是用來做圖像識別的(任務A),但是經過Reprogramming ,模型卻變成根據方塊數量來分類(任務B)
方塊數量多少對應的分類如下圖:
我們並不對模型本身進行改變,而是把方塊周圍加上噪音(合成):
然後把合成結果丟到模型,就得到相應的分類:
參考文獻:Gamaleldin F. Elsayed, Ian Goodfellow, Jascha Sohl-Dickstein, “Adversarial Reprogramming of Neural Networks”, ICLR, 2019
Attack in the Real World
現實應用中,模型部署後是通過攝像頭來捕捉輸入的,因此可以把噪音打印出來進行攻擊。
文獻:https://www.cs.cmu.edu/~sbhagava/papers/face-rec-ccs16.pdf
理論結果:
做出來的眼鏡:
作者(最左邊兩個)戴上眼鏡後模型識別的結果:
當然作者做了很多工作:
- An attacker would need to find perturbations that generalize beyond a single image.
人臉識別會包含很多角度,因此攻擊對象也要考慮多個角度,不能只有正面才能攻擊。 - Extreme differences between adjacent pixels in the perturbation are unlikely to be accurately captured by cameras.
要確保攻擊對象所包含的噪音能被攝像頭捕捉到,因此需要噪音包含比較大的色塊。 - It is desirable to craft perturbations that are comprised mostly of colors reproducible by the printer.
需要考慮現實世界中存在的顏色。
除了人臉識別,還有針對交通標誌識別的攻擊(https://arxiv.org/abs/1707.08945):
除了對圖片進行攻擊,還有別的方式的攻擊:
針對聲音:
https://nicholas.carlini.com/code/audio_adversarial_examples/
https://adversarial-attacks.net/
針對文字:
https://arxiv.org/pdf/1707.07328.pdf
Defense防禦
Adversarial Attack cannot be defended by weight regularization, dropout and model ensemble.
上面講攻擊的時候有研究表明攻擊是可以跨模型的,因此對模型做ensemble並不能很好的防禦攻擊。
防禦主要有兩種方式:
• Passive defense: Finding the attached image without modifying the model.
被動防禦方式:不改變當前的模型及參數,而是在模型的外面做一層防護,這個防護要找出那些奇怪的圖片,這塊內容應該有在Special case of Anomaly Detection中有提到。
• Proactive defense: Training a model that is robust to adversarial attack.
主動防禦方式:是直接增加模型的魯棒性來防禦攻擊。
Passive Defense
加的防護罩就是filter,這個filter不用很複雜,很簡單就可以做到防護,例如:平滑
看下具體結果,因爲這個貓之前有做過實驗,直接在之前的基礎上做即可:
原圖過filter後識別效果:
攻擊對象過filter後識別效果:
可以看到,只是機率稍微下降一點。因爲filter並不會改變原來的圖片,而是改變了攻擊的噪音。
Feature Squeeze
文獻:https://arxiv.org/abs/1704.01155
Squeeze 實際上就是不同的filter,如果一個圖片不做Squeeze 的結果和做Squeeze 的結果相差很多,說明圖片是被攻擊過的。
Randomization at Inference Phase
https://arxiv.org/abs/1711.01991
在識別之前對圖片做一些隨機的變換(不能太大,過大可能會影響識別結果):變換大小、填充等。
Proactive Defense
主動防禦的思想就是找到漏洞,然後補起來。
假設有訓練集:
我們用X來訓練模型。這是一般的流程,接下來要找漏洞,要再訓練T個循環,每個循環中都要找出每個輸入圖片的攻擊對象,然後把攻擊對象標記對應的類別標籤得到新的訓練集,再用X’來訓練模型。
這個方式有很大的缺點就是如果我們用算法A來找漏洞和補漏洞,如果用算法B來攻擊,模型是無法防護的。
因此如果黑客知道我們的算法A,就會想辦法用新方法來進行攻擊。
所以目前防禦是比較弱的。
總結
• Attack: given the network parameters, attack is very easy.
• Even black box attack is possible
• Defense: Passive & Proactive
• Future: Adaptive Attack / Defense
To learn more …
• Reference
https://adversarial-ml-tutorial.org/ (Zico Kolter and Aleksander Madry)
• Adversarial Attack Toolbox:
https://github.com/bethgelab/foolbox
https://github.com/IBM/adversarial-robustness-toolbox
https://github.com/tensorflow/cleverhans