1. 程式人生 > >論文理解:Defense-GAN

論文理解:Defense-GAN

由於首次接觸對抗訓練方面的內容,在此藉著Defense-GAN中的相關內容先對對抗訓練相關知識做一個簡要的整理。
對抗訓練基本說明見https://www.leiphone.com/news/201702/Jpb0uiOt9RTwcB8E.html

對抗攻擊大致分為3種:
黑盒攻擊:攻擊者無權接觸到分類模型引數。目前通常採用訓練一個攻擊目標分類器的替代模型,在其上訓練以找出對抗樣本。這些對抗樣本往往能夠被目標分類器誤分類。這也證明了黑盒攻擊的可遷移性。
白盒攻擊:攻擊者能夠獲得分類模型的所有引數,例如網路結構和許可權,防禦機制的細節等。攻擊模型得到loss函式表達,因而能夠將擾動指向某一特定分類類別。
指向特定類別的攻擊有Iterative FGSM,JSMA,Deepfool等。
不指向特定類別的攻擊有FGSM,RAND+FGSM,CW(目前最強白盒攻擊之一,參考見https://zhuanlan.zhihu.com/p/39285664)等。
灰盒攻擊

:上述兩者的折中。攻擊者知道網路結構和防禦機制,但是不知道具體引數。

對抗防禦大致分為3類:
1.調整訓練資料使得分類器對攻擊更魯棒,比如用對抗樣本進行資料增強。由於對抗樣本由攻擊產生,顯然在攻擊策略更換後,這種防禦方式將會表現不佳。同時由於gredient masking這種防禦方式對白盒攻擊的防禦效果優於黑盒攻擊。
2.對分類器進行防禦蒸餾訓練。利用這種方式使得網路更加平滑,輸入點附近的梯度較小,從而難以生成對抗樣本。這種防禦方式對白盒攻擊防禦效果好,但是對黑盒攻擊效果不好。
3.嘗試去除輸入中的噪聲。MagNet訓練了一個reformer network(一個或者一系列的auto-encoder)使得對抗樣本接近真實樣本的分佈主體。當使用了一系列的auto-encoder時,在測試時每一次只隨機選取其中的一個,因此加強了防禦效果。實驗表明其對灰盒攻擊尤其有效。

作者指出,MagNet(https://zhuanlan.zhihu.com/p/30934360)中試圖reform對抗樣本的做法與Defense-GAN特別相似。與之不同的是:1.Defense-GAN使用的是GAN而不是auto-encoder。 2.Defense-GAN中使用GD minimization而不是前饋的encoder network以尋找lantent code。
作者在WGAN(https://zhuanlan.zhihu.com/p/25071913)的基礎上進行改進,提出Defense-GAN,演算法如下:
DefenseGAN
GAN在真實圖片訓練集上進行無監督訓練,方法如同GAN中的介紹,損失函式遵循WGAN的loss設計。分類器在相同的真實資料集上訓練。如果GAN訓練較好並且能夠表示原始資料分佈的話,原始的影象和他們的重構應該不會存在較大區別。
至於z*的選出採用如下的L次GD(Gradient Descent)演算法:
在這裡插入圖片描述

作者指出Defense-GAN與其他防禦機制的幾個不同點:
1.可以連同任意分類器使用並且不會影響分類器結構,可以看作是一個分類任務之前的預處理。
2.如果GAN表達能力足夠好,則沒必要重新訓練分類器。
3.對任意形式的攻擊都能起到防禦效果。
4.Defense-GAN高度非線性,基於梯度的白盒攻擊將很難實現。作者對此解釋如下:
在這裡插入圖片描述
Defense-GAN網路結構如下:
在這裡插入圖片描述
MagNet的encoder網路結構如下:
在這裡插入圖片描述
可以看到Defense-GAN中的Discriminator結構直接參考了這裡