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}}.

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