對抗攻擊基礎知識(完結)

對抗攻擊基礎知識

https://cloud.tencent.com/developer/news/162169算法

https://zhuanlan.zhihu.com/p/37260275網絡

什麼是對抗攻擊

  • 爲圖片添加噪聲,人眼看不出明顯差異,但會致使機器識別錯誤.函數

攻擊模式分類

  1. Black/White box:是否須要模型的先驗知識,如算法、參數、訓練集.在實際應用中,經過模型A生成對抗樣本,進而攻擊模型B,若二者是同一個模型則爲白盒,不然爲黑盒.佈局

  2. Targeted/Non-targeted:對於攻擊樣本的目標分類是具備指向性仍是僅僅使其預測錯誤便可.學習

  3. Specific/Universal:攻擊方式是否跟特定圖片有關.ui

  4. Perturbation norm:對噪音的限制計算方式.spa

  5. Learning:單次和逐漸迭代.orm

  6. Strength:攻擊強度.blog

對抗攻擊的前因後果

  • 《Intriguing properties of neural networks(神經網絡有趣的特性)》:圖片

    1. 神經網絡中包含語義信息的部分並非在每一個獨立的神經元,而是整個空間.

    2. 神經網絡學習到的從輸入到輸出的映射很大程度上是不連續的.

    3. 驗證了將圖片適當修改後能欺騙深度學習模型的可能性.

  • 《Explaining and harnessing adversarial examples》:

    1. 產生對抗攻擊根本緣由的猜想:深度神經網絡在高維空間中的線性特徵.

    2. 更高效製造對抗樣本的方法.

  • 《Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey》

如何理解對抗攻擊

  • 每層神經元的輸出a=g(Wx+b),其實是二維平面上的旋轉、移動和拉伸:

    1. 使用W線性變換

    2. 使用b移動

    3. 使用g非線性變換.

    對於簡單的分類問題,在二維平面被拉伸成能夠經過直線完成分類的佈局,對於較複雜問題,經過增長神經元,在高維空間進行分離.

    img

    img

  • 神經網絡經過對空間進行變換後,從最終的表徵層中學習,所以包含該語義信息的是整個空間.

  • 在上圖的拉伸結果中,距離較大的地方能夠認爲映射是連續的,但仍纏繞在一塊兒的部分超平面已經沒法連續.對抗樣本正是跨過了該界限.我理解是要保持與某類點的平均距離儘可能近的同時去跨過該界限.

  • 抵禦對抗攻擊的一個直觀方法是將對抗樣本加入到訓練集中去.

  • GoodFellow提出生成對抗樣本的方法:

    1. 根基是目前神經網絡爲了提升訓練效率,所使用的激活函數在局部過於線性.

    2. img

      w是權重向量,x是真實樣本,n是 噪音.當n足夠小時肉眼沒法區分出x的變化,可是若n與w的方向徹底一致,則對激活值的計算會產生巨大幹擾.

    3. img

      快速梯度符號法FGSM:爲了能使n與w方向一致,即損失函數在待構造樣本上的梯度方向.ε是調節係數,J是損失函數.在調整損失函數時會用θ - ∂θ來進行,而該方法令x̄ = x +∂x.此方法有一個開源攻擊庫CleverHans.

如何抵禦攻擊

  • 修改訓練樣本:例如經過添加對抗樣本到訓練集中.

  • 梯度掩碼:將原始梯度隱藏起來.

  • 修改訓練網絡:例如在最後一層使用更加非線性的激活函數、隨機化等.可分爲徹底抵抗和僅檢測兩種方式.

  • 去噪:在樣本輸入模型前先去噪,剔除擾動信息.

  • 附加網絡:在不改變原有模型的狀況下使用額外的網絡進行輔助,例如生成式對抗網絡GAN.

相關文章
相關標籤/搜索