李宏毅機器學習課程筆記-12.3對抗防禦入門

What is Defense

有人說模型容易被攻破是因爲過擬合,但其實並不是,因爲weight regularization、dropout、model ensemble都不能抵擋Adversarial Attack,並且Attack可以攻擊多個model。

Defense分爲兩類:

  • Passive Defense

    不修改模型,而是在模型前加一個filter防止模型被攻擊,其實這是Anomaly Detection的一個特例。

  • Proactive Defense

    訓練模型時就對Attack進行防禦

如果攻擊者知道Defense的具體實現,那攻擊者一般仍然可以將Defense攻破。

Passive Defense

在模型前加一個filter防止模型被攻擊,filter的作用就是擾動攻擊信號\(\Delta x\)使其無效,這個filter並不需要很複雜,有時smoothing就可以,還有Gaussian Filter、Median Filter、Bilateral Filter等等。

  • Feature Squeeze

    將圖片輸入模型得到輸出P1,然後分別使用2個Squeezer對圖片進行處理後再輸入到模型得到輸出P2、P3,如果P1和P2的差距、P2和P3的差距超過了某個值就判斷該圖片是攻擊圖片。

    詳見:Feature Squeezing: Detecting Adversarial Examples in Deep Neural Networks(https://arxiv.org/abs/1704.01155)

  • Randomization at Inference Phase

    將圖片隨機稍微縮放然後隨機padding,然後隨機選擇其中一個結果輸入到模型。

    詳見:Mitigating Adversarial Effects Through Randomization(https://arxiv.org/abs/1711.01991)

Proactive Defense

在訓練模型時就找出模型的漏洞並進行改善。

首先用訓練集訓練模型,然後多次迭代,在每次迭代中使用某種攻擊方法分別找到每個訓練集樣本對應的攻擊樣本\(x'\),然後把這些攻擊樣本添加到訓練集中進行訓練(這有點像數據增強),多次迭代的原因是基於新的訓練集訓練後模型可能會產生新的漏洞。

注意:假如在Proactive Defense時我們使用的攻擊方法爲A,那我們的模型也許可以防禦他人的A攻擊,但仍無法防禦其它攻擊方法。


Github(github.com):@chouxianyu

Github Pages(github.io):@臭鹹魚

知乎(zhihu.com):@臭鹹魚

博客園(cnblogs.com):@臭鹹魚

B站(bilibili.com):@絕版臭鹹魚

微信公衆號:@臭鹹魚

轉載請註明出處,歡迎討論和交流!


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