对抗攻击(1)
本文是根據李宏毅老師在B站上的視頻整理而來,視頻地址為:
https://www.bilibili.com/video/BV1n3411y7xD?p=65
1 無目標和有目標攻擊的區別
無目標攻擊:攻擊后的標簽不確定,只要是和原始標簽差別越大越好。
有目標攻擊:攻擊后的標簽是確定的某一個類別,并且要求和原始標簽差別越大越好。
圖1說明了如何將對抗攻擊轉換為優化目標函數。
x?=arg?min?d(x0,x)≤εL(x)x^{*} = \arg \min_{d(x^0, x) \leq \varepsilon} L(x)x?=argmind(x0,x)≤ε?L(x):約束條件是原始樣本和攻擊樣本之間差距很小(小于等于ε\varepsilonε),在損失最小的情況下得到攻擊樣本;
L(x)=?e(y,y^)L(x) = -e(y, \widehat{y})L(x)=?e(y,y?):應用于無目標的攻擊,攻擊后的預測標簽和原始標簽的差別越大越好,前面加一個負號就是越小越好;
L(x)=?e(y,y^)+e(y,ytarget)L(x) = -e(y, \widehat{y}) + e(y, y^{target})L(x)=?e(y,y?)+e(y,ytarget):應用于有目標的攻擊,攻擊后的預測標簽和原始標簽的差別越大越好,并且攻擊后的預測標簽和被攻擊的目標標簽差距越小越好。
符號說明:
x0x^0x0:原始樣本;
xxx:攻擊樣本;
y0y^0y0:沒有受到攻擊的預測標簽;
y^\widehat{y}y?:原始標簽;
yyy:攻擊后的預測標簽;
ytargety^{target}ytarget:有目標攻擊的目標標簽;
y0=f(x0)y^0 = f(x^0)y0=f(x0):利用原始樣本預測出標簽;
y=f(x)y = f(x)y=f(x):利用受攻擊后的樣本預測出新的標簽;
圖2說明了如何來度量原始樣本x0x^0x0和攻擊樣本xxx之間的距離:
d(x0,x)=∣∣Δx∣∣2=(Δx1)2+(Δx2)2+…\begin{aligned} d(x^0,x) &= ||\Delta x||_2 \\ &=(\Delta x_1)^2 + (\Delta x_2)^2 + \dots \end{aligned} d(x0,x)?=∣∣Δx∣∣2?=(Δx1?)2+(Δx2?)2+…?
d(x0,x)=∣∣Δx∣∣∞=max?{∣Δx1∣,∣Δx2∣,…}\begin{aligned} d(x^0,x) &= ||\Delta x||_\infty \\ &=\max\{|\Delta x_1|, |\Delta x_2|, \dots\} \end{aligned} d(x0,x)?=∣∣Δx∣∣∞?=max{∣Δx1?∣,∣Δx2?∣,…}?
通過如下分析來體會兩個距離的最大區別:
一種情況是圖像中的每個像素點都改變一點點,另外一種情況是圖像中某一個像素點改變特別大;這兩種情況也許2范數距離相同,但是無窮范數第一種情況很小,而第二種情況卻很大。
圖3說明了攻擊方法不是去修改模型的參數,而是修改輸入的樣本。
可以從兩個方面入手進行攻擊:
- 修改優化目標函數
- 修改約束條件
最后利用梯度下降法來求得攻擊樣本xxx。
在迭代的時候如果d(x0,xt)>εd(x^0, x^t) > \varepsilond(x0,xt)>ε,則將xtx^txt拉回到矩形框內。
圖4說明了FGSM方法。
對圖3做了如下改進:
- 用ε\varepsilonε替換學習率η\etaη;
- 梯度ggg用signsignsign函數來控制,使得其值為+1或者-1,也就是每次變化移動到矩形框四個角的某一個;
- 只需要迭代一次。
圖5在圖4的基礎上又做了如下改進:
- 將圖4的學習率又從ε\varepsilonε改回η\etaη;
- 通過TTT次迭代;
- 每次迭代如果d(x0,xt)>εd(x^0, x^t) > \varepsilond(x0,xt)>ε,則將xtx^txt拉回到矩形框內。
以上攻擊方法都屬于白盒攻擊,因為攻擊者知道網絡參數θ\thetaθ。
圖6引入了黑盒攻擊。
圖7說明了黑盒攻擊方法:如果你知道目標網絡的訓練數據,可以利用這些數據訓練出一個代理網絡(proxy network),再利用這個代理網絡產生攻擊樣本。
問:如果又不知道訓練數據怎么辦?
答:利用已有的黑盒模型,輸入一些測試樣本,得到測試樣本的輸出,利用這些輸入和輸出來訓練一個代理網絡(proxy network),再利用這個代理網絡產生攻擊樣本。
圖8說明黑盒攻擊的效果。
上半部分表示單一網絡攻擊的效果,對角線表示白盒攻擊,例如ResNet-152攻擊ResNet-152;非對角線表示黑盒攻擊,例如ResNet-152攻擊ResNet-101;攻擊后的準確率越低,說明攻擊成功率就越高,如ResNet-152攻擊ResNet-101后得到的準確率為13%。
下半部分表示集成網絡攻擊的效果,如-ResNet-152表示由(ResNet-101 + ResNet-50 + VGG-16 + GoogleNet)這四個網絡來集成。可以看出集成攻擊的效果更好。
總結
- 上一篇: scanner java重新输入_如何使
- 下一篇: 盘点世界上的巨无霸发电机