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\): 样本;

\(y\):标签;

\(\mathcal{S}_y\): 标签为\(y\)为图像;

\(z\):随机噪声;

\(G(z, y)\): 生成器;

\(D:x\rightarrow \mathbb{R}\): 判别器;

\(f(x)\): 分类器;

Original Generator

首先, 我们需要训练一个普通的条件GAN, 为此, 关于\(G\)的损失函数为

\[\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)\)是a和b的熵(应该是指交叉熵吧, 当二分类是就是二分类熵). 显然这个损失就是希望生成器生成的图片既真实, 其标签亦为真实的标签.

关于判别器\(D\)的损失则是

\[\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).
\]

关于分类器的损失则是

\[\tag{13}
L_f(x,y) = \mathbb{E}_{x \sim p_{data}(x)} H(f(x),y).
\]

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

Transfer the Generator

假设由上面的算法生成的生成器为\(G_{\mathrm{original}}\), 并给定我们希望攻破的分类器\(f_{\mathrm{target}}\), 我们要构建一个新的分类器\(G_{\mathrm{attack}}\)去生成对抗样本. 显然, \(G_{\mathrm{attack}}\)需要满足:

  1. 其生成的样本与真实样本无异, 即
\[\| G_{\mathrm{original}}(z, y)-G_{\mathrm{attack}} (z,y)\|_p
\]

足够小;

2. 其生成的图像能够骗过目标分类器\(f_{\mathrm{target}}\), 最好是存在一个一一映射\(g\), 使得

\[f_{\mathrm{target}}(G_{\mathrm{attack}}(z, y)) \not =y, \: g(f_{\mathrm{target}}(G_{\mathrm{attack}}(z, y)))=y.
\]

于是作者构建了俩个损失:

\[\tag{15}
L_a(z,y)=H(g(f_{\mathrm{target}} (G_{\mathrm{attack}} (z,y))),y),
\]
\[\tag{16}
L_d (z,y) = \|G_{\mathrm{orginal}} (z,y)+P-G_{\mathrm{attack}}(z,y)\|_p,
\]

其中\(g\)是我们给定的可逆函数. 显然\(L_a\)的目的是骗过目标分类器, 而\(L_d\)的目的是使得生成的样本具有足够的真实性, 另外\(P\)是额外加入的高斯噪声, 用于柔化距离(?).

于是训练\(G_{\mathrm{attack}}\)就是最小化下式

\[\tag{17}
L(z, y)=\alpha L_{d}(z,y)+\beta L_a (z,y).
\]

注: \(G_{\mathrm{attack}}\)的参数初始化为\(G_{\mathrm{orginal}}\).

AT-GAN: A Generative Attack Model for Adversarial Transferring on Generative Adversarial Nets的更多相关文章

  1. 论文笔记之:Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks

    Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks NIPS 2015  摘要:本文提出一种 ...

  2. DEFENSE-GAN: PROTECTING CLASSIFIERS AGAINST ADVERSARIAL ATTACKS USING GENERATIVE MODELS

    目录 概 主要内容 Samangouei P, Kabkab M, Chellappa R, et al. Defense-GAN: Protecting Classifiers Against Ad ...

  3. 论文《A Generative Entity-Mention Model for Linking Entities with Knowledge Base》

    A Generative Entity-Mention Model for Linking Entities with Knowledge Base   一.主要方法 提出了一种生成概率模型,叫做en ...

  4. Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples

    Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples 目录 概 主要内容 实验 ...

  5. 从贝叶斯模型(Bayes)到生成模型(Generative models)(生成式分类器,generative classifier)

    0. 基于贝叶斯公式的生成式分类器 生成式分类器(generative classifier)即是已知类别得样本: p(y=c|x,θ)∝p(x|y=c,θ)p(y=c|θ) p(x|y=c,θ) 称 ...

  6. Theano3.1-练习之初步介绍

    来自 http://deeplearning.net/tutorial/,虽然比较老了,不过觉得想系统的学习theano,所以需要从python--numpy--theano的顺序学习.这里的资料都很 ...

  7. 机器学习——深度学习(Deep Learning)

    Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立.模拟人脑进行分析学习的神经网络,近期研究了机器学习中一些深度学习的相关知识,本文给出一些非常实用的资料和心得. Key W ...

  8. Deep Learning Tutorial - Classifying MNIST digits using Logistic Regression

    Deep Learning Tutorial 由 Montreal大学的LISA实验室所作,基于Theano的深度学习材料.Theano是一个python库,使得写深度模型更容易些,也可以在GPU上训 ...

  9. Deep Learning(4)

    四.拓展学习推荐 Deep Learning 经典阅读材料: The monograph or review paper Learning Deep Architectures for AI (Fou ...

随机推荐

  1. Qt——error之undefined reference to `vtable for classname

    可能原因:自定义类中使用自定义槽和信号,但是没有在类中增加Q_OBJECT, 解决办法:在类中增加Q_OBJECT,删除编译产生的文件进行重新编译 具体原因分析如下 博主原文

  2. mysql explain using filesort

    创建表,字段tid上无索引(mysql 5.7) CREATE TABLE `test` ( `tid` int(11) DEFAULT NULL, `tname` varchar(12) DEFAU ...

  3. ORACEL 创建DIRECTORY

    oracle要直接对文件进行读写必须先创建一个DIRECTORY. 语法如下: CREATE DIRECTORY UTL_FILE_DIR AS '/home/oracle/oradir'; 可以通过 ...

  4. JAVA序列化浅析

    java.io.Serializable浅析 Java API中java.io.Serializable接口源码: 1 public interface Serializable { 2 } 类通过实 ...

  5. OpenStack之六: plancement服务(端口8778)

    官网地址:https://docs.openstack.org/placement/stein/install/install-rdo.html #:创建placement库,并授权 MariaDB ...

  6. golang vendor

    安装参考 https://blog.csdn.net/huwh_/article/details/77169858 Go 1.5引入了vendor文件夹,其对语言使用,go命令没有任何影响.若某个路径 ...

  7. 【Linux】【Shell】【text】grep

    grep: Global search REgular expression and Print out the line. 作用:文本搜索工具,根据用户指定的"模式(过滤条件)" ...

  8. 深度学习初探——符号式编程、框架、TensorFlow

    一.命令式编程(imperative)和符号式编程(symblic) 命令式: import numpy as np a = np.ones(10) b = np.ones(10) * 2 c = b ...

  9. 通过DT10获取程序执行过程中的实时覆盖率

    DT10是新一代的动态测试工具,可以长时间跟踪记录目标程序执行情况,获取目标程序动态执行数据,帮助进行难于重现的Bug错误分析,覆盖率检测,性能测试,变量跟踪等等功能. 系统测试覆盖率,通常是用于判断 ...

  10. ctypes与numpy.ctypeslib的使用

    numpy ctypeslib 与 ctypes接口使用说明 作者:elfin 目录 一.numpy.ctypeslib使用说明 1.1 准备好一个C++计算文件 1.2 ctypeslib主要的五个 ...