AT-GAN: A Generative Attack Model for Adversarial Transferring on Generative Adversarial Nets

Wang X., He K., Guo C., Weinberger K., Hopcroft H., AT-GAN: A Generative Attack Model for Adversarial Transferring on Generative Adversarial Nets. arXiv preprint, arXiv: 1904.00783, 2019.

用GAN生成adversarial samples, 且不需要樣本(AdvGAN需要).

主要內容

在這裏插入圖片描述

AT-GAN的訓練過程主要分成倆步, 首先, 生成一個普通的條件GAN, 接着在這個條件GAN的基礎上訓練一個AT-GAN.

符號說明

xx: 樣本;
yy:標籤;
Sy\mathcal{S}_y: 標籤爲yy爲圖像;
zz:隨機噪聲;
G(z,y)G(z, y): 生成器;
D:xRD:x\rightarrow \mathbb{R}: 判別器;
f(x)f(x): 分類器;

Original Generator

首先, 我們需要訓練一個普通的條件GAN, 爲此, 關於GG的損失函數爲
LG(z,y)=Ezpz(z)H(D(G(z,y)),1)+Ezpz(z)H(f(G(z,y)),y),(11) \tag{11} L_G(z,y)=\mathbb{E}_{z \sim p_z(z)} H(D(G(z,y)),1) + \mathbb{E}_{z \sim p_z(z)} H(f(G(z,y)),y),
其中H(a,b)H(a,b)是a和b的熵(應該是指交叉熵吧, 當二分類是就是二分類熵). 顯然這個損失就是希望生成器生成的圖片既真實, 其標籤亦爲真實的標籤.
關於判別器DD的損失則是
LD(x,z,y)=Expdata(x)H(D(x),1)+Ezpz(z)H(D(G(z,y),0).(12) \tag{12} L_D(x, z, y) = \mathbb{E}_{x \sim p_{data}(x)} H(D(x), 1)+\mathbb{E}_{z \sim p_z(z)} H(D(G(z,y),0).
關於分類器的損失則是
Lf(x,y)=Expdata(x)H(f(x),y).(13) \tag{13} L_f(x,y) = \mathbb{E}_{x \sim p_{data}(x)} H(f(x),y).

注: 三者分別關於G,D,fG,D,f最小化(雖然作者沒有明講).

Transfer the Generator

假設由上面的算法生成的生成器爲GoriginalG_{\mathrm{original}}, 並給定我們希望攻破的分類器ftargetf_{\mathrm{target}}, 我們要構建一個新的分類器GattackG_{\mathrm{attack}}去生成對抗樣本. 顯然, GattackG_{\mathrm{attack}}需要滿足:

  1. 其生成的樣本與真實樣本無異, 即
    Goriginal(z,y)Gattack(z,y)p \| G_{\mathrm{original}}(z, y)-G_{\mathrm{attack}} (z,y)\|_p
    足夠小;
  2. 其生成的圖像能夠騙過目標分類器ftargetf_{\mathrm{target}}, 最好是存在一個一一映射gg, 使得
    ftarget(Gattack(z,y))y,g(ftarget(Gattack(z,y)))=y. f_{\mathrm{target}}(G_{\mathrm{attack}}(z, y)) \not =y, \: g(f_{\mathrm{target}}(G_{\mathrm{attack}}(z, y)))=y.

於是作者構建了倆個損失:
La(z,y)=H(g(ftarget(Gattack(z,y))),y),(15) \tag{15} L_a(z,y)=H(g(f_{\mathrm{target}} (G_{\mathrm{attack}} (z,y))),y),
Ld(z,y)=Gorginal(z,y)+PGattack(z,y)p,(16) \tag{16} L_d (z,y) = \|G_{\mathrm{orginal}} (z,y)+P-G_{\mathrm{attack}}(z,y)\|_p,
其中gg是我們給定的可逆函數. 顯然LaL_a的目的是騙過目標分類器, 而LdL_d的目的是使得生成的樣本具有足夠的真實性, 另外PP是額外加入的高斯噪聲, 用於柔化距離(?).

於是訓練GattackG_{\mathrm{attack}}就是最小化下式
L(z,y)=αLd(z,y)+βLa(z,y).(17) \tag{17} L(z, y)=\alpha L_{d}(z,y)+\beta L_a (z,y).
注: GattackG_{\mathrm{attack}}的參數初始化爲GorginalG_{\mathrm{orginal}}.

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