概
用GAN生成adversarial samples, 且不需要样本(AdvGAN需要).
主要内容
AT-GAN的训练过程主要分成俩步, 首先, 生成一个普通的条件GAN, 接着在这个条件GAN的基础上训练一个AT-GAN.
符号说明
\(x\): 样本;
\(y\):标签;
\(\mathcal{S}_y\): 标签为\(y\)为图像;
\(z\):随机噪声;
\(G(z, y)\): 生成器;
\(D:x\rightarrow \mathbb{R}\): 判别器;
\(f(x)\): 分类器;
Original Generator
首先, 我们需要训练一个普通的条件GAN, 为此, 关于\(G\)的损失函数为
其中\(H(a,b)\)是a和b的熵(应该是指交叉熵吧, 当二分类是就是二分类熵). 显然这个损失就是希望生成器生成的图片既真实, 其标签亦为真实的标签.
关于判别器\(D\)的损失则是
关于分类器的损失则是
注: 三者分别关于\(G,D,f\)最小化(虽然作者没有明讲).
Transfer the Generator
假设由上面的算法生成的生成器为\(G_{\mathrm{original}}\), 并给定我们希望攻破的分类器\(f_{\mathrm{target}}\), 我们要构建一个新的分类器\(G_{\mathrm{attack}}\)去生成对抗样本. 显然, \(G_{\mathrm{attack}}\)需要满足:
- 其生成的样本与真实样本无异, 即
足够小;
2. 其生成的图像能够骗过目标分类器\(f_{\mathrm{target}}\), 最好是存在一个一一映射\(g\), 使得
于是作者构建了俩个损失:
其中\(g\)是我们给定的可逆函数. 显然\(L_a\)的目的是骗过目标分类器, 而\(L_d\)的目的是使得生成的样本具有足够的真实性, 另外\(P\)是额外加入的高斯噪声, 用于柔化距离(?).
于是训练\(G_{\mathrm{attack}}\)就是最小化下式
注: \(G_{\mathrm{attack}}\)的参数初始化为\(G_{\mathrm{orginal}}\).
AT-GAN: A Generative Attack Model for Adversarial Transferring on Generative Adversarial Nets