[論文閱讀筆記]Trust Region Based Adversarial Attack on Neural Networks

Trust Region Based Adversarial Attack on Neural Networks(2019 CVPR)

文章簡介:

  • Method: 本文主要採用Trust Region(信賴域) 優化算法, 該方法在處理非凸優化問題時是非常有用的。
  • Dataset: Cifar-10、ImageNet
  • Compared Algorithm: DeepFool、I-FGSM、Carlini-Wagner(CW)
  • 擾動大小的評價指標:
    ρp=Δxpxp \rho_p = \frac{||\Delta x||_p}{||x||_p}
  • 兩種攻擊方法
- 選擇最好攻擊的類別進行攻擊 

     best class attack                                   argminjztzjx(ztzj)                                                                                                           \,\,\,\,\,best\,class\,attack\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\underset{j}{\arg \min} \frac{z_t - z_j}{||\nabla_x(z_t-z_j)||}\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,

- 選擇最難攻擊的類別進行攻擊

     hardest class attack                           argminjztzjx(ztzj)                                                                                                           \,\,\,\,\,hardest\,class\,attack\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\underset{j}{\arg \min} \frac{z_t - z_j}{||\nabla_x(z_t-z_j)||}\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,

  • 性能對比
    • 相比於DeepFool,本文的方法需要的擾動更小(up to 3.9x)
    • 達到與CW方法相同的攻擊效果時,本文所花費的時間更短(up to 37.5x)

Contributions:

  • 將對抗攻擊問題轉化爲一個基於TR優化問題,並且在容易實施的同時還能比現有的方法更加高效(擾動小、速度快)
  • TR-based攻擊方法可以在每一輪迭代的過程中自適應地選擇擾動量級,從而移除了費時費力的參數調優工作
  • 我們的方法可以很容易地推廣到二階TR攻擊。

Limitations:

  • 簡單地推廣到二階方法需要計算Hessian matvec backpropogation,計算開銷非常大
  • 二階方法相比於一階方法提升有限
  • 如果不考慮攻擊的性能,DeepFool比我們的方法更快(當然我們的方法攻擊效果更好擾動更小)

Trust Region Method:

首先假設神經網絡函數爲ff,將其在其領域內泰勒展開
f(xk+Δx)=fk+gkTΔx+12ΔxT2f(xk+Δx)Δx f(x_k+\Delta x)=f_k+g_k^T\Delta x+\frac{1}{2}\Delta x^T\nabla^2f(x_k+\Delta x)\Delta x
其中fk=f(xk),  gk=f(xk)f_k=f(x_k), \,\,g_k=\nabla f(x_k)
然後利用BkB_k去逼近Hessian矩陣(個人認爲這個逼近的意思應該爲近似表達,這樣可以減輕點計算開銷)
mk(Δx)=fk+gkTΔx+12ΔxTBkΔx m_k(\Delta x) = f_k + g_k^T \Delta x+ \frac{1}{2}\Delta x^T B_k \Delta x
在每一步迭代迭代過程,都會求解下述子問題
minpRhmk(Δx)=fk+gkTΔx+12ΔxTBkΔx \underset{p \in R^h}{\min} m_k(\Delta x) = f_k+g_k^T\Delta x + \frac{1}{2}\Delta x^T B_k \Delta x
做完鋪墊,引出本文的方法,下圖中<>代表點積。

算法流程如下圖:

對於DeepFool而言,其解決問題的方法是通過線性放射變換來估計決策邊界。對於這樣一個決策邊界,只需計算當前點處的梯度,就可以分析計算擾動量。然而,對於神經網絡來說,這種近似可能非常不準確,也就是說,它可能導致對沿次優方向的擾動的過高/過低估計。 因爲最小方向與決策邊界正交,由於決策邊界是非線性的,不能通過簡單的仿射變換來計算。

TR方法的主要思想是迭代地選擇可信半徑ϵ\epsilon,以找到該區域內的對抗擾動,使不正確類的概率達到最大值:

  • 通過計算比率,如果ρ\rho比較接近於1,說明這一步已經到信賴域邊緣了,並且步子有點小,可以嘗試擴大信賴域半徑
  • 通過計算比率,如果ρ\rho比較接近於0,說明這一步邁得太大了,可以嘗試縮小信賴域半徑

此外如果仔細觀察,可以發現Algorithm 1中紅框部分是錯誤的?雖然 我不太清楚到底是不是我搞錯了,但如果把括號去掉的話可以發現分子是爲0的?

Code:

代碼中ρ\rho表達式中分子部分爲
ori_difffadv_diff ori\_{difff} - adv\_{diff}
其中
ori_diff=Z[range(n),true_ind]Z[range(n),target_ind] ori\_diff = Z[range(n), true\_ind] - Z[range(n), target\_ind]
adv_diff=Zadv[range(n),true_ind]Z[range(n),target_ind] adv\_diff = Z_{adv}[range(n), true\_ind] - Z[range(n), target\_ind]
代碼中ρ\rho表達式中分母部分爲
ϵ&ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace;default=0.001 \epsilon\,\,\,\,\,\,\,\,\,\,\, default=0.001

不同算法擾動大小與攻擊速度的的對比展示

  • average perturbation:平均擾動大小
  • worst case perturbation:所有擾動中,最大的那個擾動大小

從中可以看出達到相同的擾動量級時,CW算法相比於TR是比較費時的;在相近的處理時間下,DeepFool方法產生的擾動會更大。


如果覺得我有地方講的不好的或者有錯誤的歡迎給我留言,謝謝大家閱讀(點個贊我可是會很開心的哦)~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章