對抗樣本論文學習(3):Practical Black-Box Attacks against Machine Learning
針對如何防禦對抗樣本(跟GAN不一樣!不知道什麼是對抗樣本的可以參考第一篇),曾經提出過一個措施:gradient masking(梯度隱藏)
意思是說,大部分的「對抗樣本」構建技術都是利用模型梯度來進行攻擊的。比如針對某一個分類模型觀察一張最後被分類為熊貓的圖片,但這個分類結果只是因為在「熊貓」這個類別上最後的概率最大,分類器還會有很小的置信度把這個圖片當成「長臂猿」,於是攻擊者反覆測試圖片空間的哪一個方向上長臂猿的概率會增加,然後就在這個方向上「推波助瀾」一下,添加一些擾動,那麼這張經過修改的新圖片就會被錯誤識別為「長臂猿」了。
但是,如果沒有梯度呢?針對這個熊貓的圖片,模型只輸出熊貓,不輸出其他信息,模型不透露給攻擊者有用的信息,那麼攻擊者便無法得知應該在圖片哪個方向上「推波助瀾」。
但這個措施本身是有問題的,雖然看起來我們使用「最可能類別」模式,而不是「概率」模式,攻擊者不知道到哪裡去找能被歸類為「長臂猿」的輸入值。但是,如果攻擊者能夠猜測到防禦弱點,由此製作「對抗樣本」,那麼圖片仍然會被錯誤歸類。這個措施並沒有讓模型更加穩定,我們只是讓攻擊者弄清楚模型防禦的弱點的線索變更少,讓攻擊變的(看起來)困難了一些而已。
更不幸的是, 在本文要說的這篇論文中,就提到了一個讓這個防禦措施完全失效的策略:攻擊者可以自己訓練一個替代模型(black-box),一個擁有梯度的光滑模型,根據這個模型製作「對抗樣本」,這些對抗樣本也能用來對抗原始的模型。
Practical Black-Box Attacks against Machine Learning這篇論文中的策略與以往最大的不同在於:以往對抗樣本的生成是基於白盒的,即完全知道模型的結構以及權重等參數,但在實際應用中,這種理想的條件是幾乎不存在的,攻擊者幾乎不可能的到模型的詳細信息。論文的作者提出了一種基於黑盒攻擊的方式,訓練一個跟想要攻擊的目標模型完成同樣任務的替代模型,基於當前的模型去生成對抗樣本,這些對抗樣本最終被用於攻擊原目標模型。(其實這件事情很好想,在之前的文章中有提到過對抗樣本是有移植性的,即,對於同一個對抗樣本,哪怕不同的分類器使用了不同的結構和訓練集,也都會(有很大的可能)將這個對抗樣本錯誤分類)
黑盒攻擊策略:
1.Substitute Model Training 替代模型的訓練:
訓練一個替代模型 F去近似原始模型 oracle O是一件有挑戰的事情,因為:(1)需要在不知道原始模型的結構信息的條件下為替代模型選擇結構 (2)為了保證這個方法容易處理,需要限制向原始模型詢問(輸入輸出)的次數。
作者引入了一種「合成數據生成技術(synthetic data generation technique )」來克服上述挑戰,這個技術基於雅可比行列式對數據集進行擴充(關於Jacobian這個地方我理解的不是很好,為了不產生誤導這裡就不細說了,想知道細節的可以參考論文),這個技術不是為了最大化替代模型的準確率,而是讓替代模型近似原始模型的決策邊界。
如圖三所示,訓練流程主要為:
Initial Collection 收集輸入數據: 攻擊者收集代表輸入域(input domain)的非常小的集合S_0。例如,原始模型用於分類手寫體數字,則攻擊者對從0-9的每個數字收集10張圖片,並且,這個集合的分布不必與目標模型的訓練集分布一致。
Architecture Selection 選擇模型的結構: 為替代模型F選擇一個結構。值得一提的是,模型的類型,層數,大小對攻擊的成功與否影響很小。(當然前提是替代模型是work的,總不能說拿一個準確率30%的模型去替代一個準確率95%的模型)
Substitute Training 訓練替代模型: 迭代的去訓練替代模型F_ρ來提高其準確率(ρ是迭代輪數)。
- Labeling 標數據:將初始的替代輸入集合Sρ輸入到模型O中,並將輸出的結果作為樣本的標籤
- Training 訓練模型F:用打好標籤的替代訓練集訓練模型F_ρ
- Augmentation 數據集擴充:用之前提到的數據集擴充技術對當前的數據集S_ρ進行擴充,得到S_ρ+1,這個新的集合能夠更好的代表模型的決策邊界。用集合S_ρ+1重複上述的Labeling和Training過程。
這個過程被重複多次,以提高F的準確率並讓其決策邊界和模型O更相似。
2.Adversarial Sample Crafting 生成對抗樣本
利用訓練好的替代模型F去生成對抗樣本,作者提到了兩種生成策略:
- Goodfellow et al. algorithm:
- Papernot et al. algorithm:
這兩種策略各有千秋:goodfellow的演算法生成快速但是干擾大,易被發現;Papernot的演算法干擾小計算花銷大。在該論文中選擇了選擇FGSM(即Goodfellow et al. algorithm)。
實驗:黑盒攻擊MetaMind
作者在MetaMind網站上註冊了改模型的API並上傳了MNIST的50,000個樣本作為訓練集。作者強調整個過程都是自動的,他們無法得到訓練的演算法,模型結構和參數。
在實驗的過程中,作者選取了兩組替代訓練集:
- MNIST subset: 作者在MNIST數據集中選取了150個樣本,並且這些樣本和輸入到MetaMind中的樣本都不一樣。
- Handcrafted set: 為了保證結果不是因為替代模型的訓練樣本和原始模型的訓練樣本很相似,作者還手工製作了另一組初始替代訓練集——用筆記本觸控板手工製作了100個樣本(數字有10個樣本)。 然後,將它們調整為28x28灰度像素的MNIST格式。 一些樣本如下所示:
模型F的訓練結果:
可以看到,經過6輪訓練,兩個模型分別在MNIST數據集上達到了81.2%和67%的準確率
對抗樣本成功率:
下圖顯示了在不同的 (參見FGSM公式)下,基於兩個替代模型生成的對抗樣本讓原始模型錯誤分類的成功率和對抗樣本的可移植性。
下圖顯示了在不同 下,數字被錯誤分類的情況:
……
作者後序還做了針對其他模型和訓練集的實驗,在這裡偷個懶就不一一細說了,感興趣的可以參考原論文ε=ε=ε=ε=ε=ε=┌(; ̄◇ ̄)┘
推薦閱讀:
※軟體體系期末論文_可擴展置標語言(xml)
※如何寫一篇科技論文
※【翻譯】ACS Style Guide Chapter 2 Scientific Papers
※Mask-RCNN論文解讀
※如何避開查重系統,降低重複率