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.

符号说明

x x x: 样本;
y y y:标签;
S y \mathcal{S}_y Sy: 标签为 y y y为图像;
z z z:随机噪声;
G ( z , y ) G(z, y) G(z,y): 生成器;
D : x → R D:x\rightarrow \mathbb{R} D:xR: 判别器;
f ( x ) f(x) f(x): 分类器;

Original Generator

首先, 我们需要训练一个普通的条件GAN, 为此, 关于 G G G的损失函数为
L G ( z , y ) = E z ∼ p z ( z ) H ( D ( G ( z , y ) ) , 1 ) + E z ∼ p z ( 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), LG(z,y)=Ezpz(z)H(D(G(z,y)),1)+Ezpz(z)H(f(G(z,y)),y),(11)
其中 H ( a , b ) H(a,b) H(a,b)是a和b的熵(应该是指交叉熵吧, 当二分类是就是二分类熵). 显然这个损失就是希望生成器生成的图片既真实, 其标签亦为真实的标签.
关于判别器 D D D的损失则是
L D ( x , z , y ) = E x ∼ p d a t a ( x ) H ( D ( x ) , 1 ) + E z ∼ p z ( 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). LD(x,z,y)=Expdata(x)H(D(x),1)+Ezpz(z)H(D(G(z,y),0).(12)
关于分类器的损失则是
L f ( x , y ) = E x ∼ p d a t a ( x ) H ( f ( x ) , y ) . (13) \tag{13} L_f(x,y) = \mathbb{E}_{x \sim p_{data}(x)} H(f(x),y). Lf(x,y)=Expdata(x)H(f(x),y).(13)

注: 三者分别关于 G , D , f G,D,f G,D,f最小化(虽然作者没有明讲).

Transfer the Generator

假设由上面的算法生成的生成器为 G o r i g i n a l G_{\mathrm{original}} Goriginal, 并给定我们希望攻破的分类器 f t a r g e t f_{\mathrm{target}} ftarget, 我们要构建一个新的分类器 G a t t a c k G_{\mathrm{attack}} Gattack去生成对抗样本. 显然, G a t t a c k G_{\mathrm{attack}} Gattack需要满足:

  1. 其生成的样本与真实样本无异, 即
    ∥ G o r i g i n a l ( z , y ) − G a t t a c k ( z , y ) ∥ p \| G_{\mathrm{original}}(z, y)-G_{\mathrm{attack}} (z,y)\|_p Goriginal(z,y)Gattack(z,y)p
    足够小;
  2. 其生成的图像能够骗过目标分类器 f t a r g e t f_{\mathrm{target}} ftarget, 最好是存在一个一一映射 g g g, 使得
    f t a r g e t ( G a t t a c k ( z , y ) ) ≠ y ,   g ( f t a r g e t ( G a t t a c k ( z , y ) ) ) = y . f_{\mathrm{target}}(G_{\mathrm{attack}}(z, y)) \not =y, \: g(f_{\mathrm{target}}(G_{\mathrm{attack}}(z, y)))=y. ftarget(Gattack(z,y))=y,g(ftarget(Gattack(z,y)))=y.

于是作者构建了俩个损失:
L a ( z , y ) = H ( g ( f t a r g e t ( G a t t a c k ( z , y ) ) ) , y ) , (15) \tag{15} L_a(z,y)=H(g(f_{\mathrm{target}} (G_{\mathrm{attack}} (z,y))),y), La(z,y)=H(g(ftarget(Gattack(z,y))),y),(15)
L d ( z , y ) = ∥ G o r g i n a l ( z , y ) + P − G a t t a c k ( z , y ) ∥ p , (16) \tag{16} L_d (z,y) = \|G_{\mathrm{orginal}} (z,y)+P-G_{\mathrm{attack}}(z,y)\|_p, Ld(z,y)=Gorginal(z,y)+PGattack(z,y)p,(16)
其中 g g g是我们给定的可逆函数. 显然 L a L_a La的目的是骗过目标分类器, 而 L d L_d Ld的目的是使得生成的样本具有足够的真实性, 另外 P P P是额外加入的高斯噪声, 用于柔化距离(?).

于是训练 G a t t a c k G_{\mathrm{attack}} Gattack就是最小化下式
L ( z , y ) = α L d ( z , y ) + β L a ( z , y ) . (17) \tag{17} L(z, y)=\alpha L_{d}(z,y)+\beta L_a (z,y). L(z,y)=αLd(z,y)+βLa(z,y).(17)
注: G a t t a c k G_{\mathrm{attack}} Gattack的参数初始化为 G o r g i n a l G_{\mathrm{orginal}} Gorginal.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值