1.對抗攻擊概念介紹


對抗攻擊概念

  通過對輸入添加微小的擾動使得分類器分類錯誤,一般對用於深度學習的網絡的攻擊算法最為常見,應用場景包括目前大熱的CV和NLP方向,例如,通過對圖片添加精心准備的擾動噪聲使得分類器分錯,或者通過對一個句子中的某些詞進行同義詞替換使得情感分類錯誤。

對抗攻擊分類

  關於攻擊的分類有很多種,從攻擊環境來說,可以分為黑盒攻擊,白盒攻擊或者灰盒攻擊

  •   黑盒攻擊:攻擊者對攻擊的模型的內部結構,訓練參數,防御方法(如果加入了防御手段的話)等等一無所知,只能通過輸出輸出與模型進行交互。
  •   白盒攻擊:與黑盒模型相反,攻擊者對模型一切都可以掌握。目前大多數攻擊算法都是白盒攻擊。
  •   灰盒攻擊:介於黑盒攻擊和白盒攻擊之間,僅僅了解模型的一部分。(例如僅僅拿到模型的輸出概率,或者只知道模型結構,但不知道參數)
    從攻擊的目的來說,可以分為有目標攻擊和無目標攻擊
  •        無目標攻擊:以圖片分類為例,攻擊者只需要讓目標模型對樣本分類錯誤即可,但並不指定分類錯成哪一類。
  •     有目標攻擊:攻擊者指定某一類,使得目標模型不僅對樣本分類錯誤並且需要錯成指定的類別。從難度上來說,有目標攻擊的實現要難於無目標攻擊。

   從擾動的強度大小來說,可以分為無窮范數攻擊,二范數攻擊和0范數攻擊(下列公式中的x表示的是擾動大小):

  •       無窮范數攻擊,當p趨近於無窮大時,上式子表示擾動中最大的一個,通常在論文里,對於MNIST數據集,限制是(-0.3,0.3)
  •     二范數攻擊,即p=2
  •     0范數攻擊(單像素攻擊)此時限制的是可以改變的像素個數,不關心具體每個像素值改變了多少。在MNIST數據集中,一般限制是12個。

         從攻擊的實現來說來說,可以分為基於梯度的攻擊,基於優化的攻擊,基於決策面的攻擊或者其他:

  • 基於梯度的攻擊:    FGSM(Fast Gradient Sign Method)  PGD(Project Gradient Descent)  MIM(Momentum Iterative Method)
  • 基於優化的攻擊:    CW(Carlini-Wagner Attack)
  • 基於決策面的攻擊:  DEEPFOOL
  • 其他:Pointwise

對抗攻擊實現工具:

  目前來說,比較主流的工具有cleverhans,foolbox,另外筆者還發現了一個advertorch,專門針對pytorch模型。

  cleverhans foolbox advertorch
針對模型框架 tensorflow/keras/pytorch pytorch/tensorflow pytorch
產生速度 可以批量 無法批量 可以批量
使用復雜度 ♥♥♥♥♥ ♥♥  ♥♥
包含的攻擊類別數 ♥♥♥♥♥  ♥♥♥♥♥   ♥♥

(當然這個難易程度是筆者自己分的,見仁見智了~~~)

 


免責聲明!

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



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