AT-GAN: A Generative Attack Model for Adversarial Transferring on Generative Adversarial Nets
概
用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\)的损失函数为
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\)的损失则是
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).
\]
关于分类器的损失则是
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}}\)需要满足:
- 其生成的样本与真实样本无异, 即
\]
足够小;
2. 其生成的图像能够骗过目标分类器\(f_{\mathrm{target}}\), 最好是存在一个一一映射\(g\), 使得
\]
于是作者构建了俩个损失:
L_a(z,y)=H(g(f_{\mathrm{target}} (G_{\mathrm{attack}} (z,y))),y),
\]
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}}\)就是最小化下式
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的更多相关文章
- 论文笔记之:Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks
Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks NIPS 2015 摘要:本文提出一种 ...
- DEFENSE-GAN: PROTECTING CLASSIFIERS AGAINST ADVERSARIAL ATTACKS USING GENERATIVE MODELS
目录 概 主要内容 Samangouei P, Kabkab M, Chellappa R, et al. Defense-GAN: Protecting Classifiers Against Ad ...
- 论文《A Generative Entity-Mention Model for Linking Entities with Knowledge Base》
A Generative Entity-Mention Model for Linking Entities with Knowledge Base 一.主要方法 提出了一种生成概率模型,叫做en ...
- Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples
Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples 目录 概 主要内容 实验 ...
- 从贝叶斯模型(Bayes)到生成模型(Generative models)(生成式分类器,generative classifier)
0. 基于贝叶斯公式的生成式分类器 生成式分类器(generative classifier)即是已知类别得样本: p(y=c|x,θ)∝p(x|y=c,θ)p(y=c|θ) p(x|y=c,θ) 称 ...
- Theano3.1-练习之初步介绍
来自 http://deeplearning.net/tutorial/,虽然比较老了,不过觉得想系统的学习theano,所以需要从python--numpy--theano的顺序学习.这里的资料都很 ...
- 机器学习——深度学习(Deep Learning)
Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立.模拟人脑进行分析学习的神经网络,近期研究了机器学习中一些深度学习的相关知识,本文给出一些非常实用的资料和心得. Key W ...
- Deep Learning Tutorial - Classifying MNIST digits using Logistic Regression
Deep Learning Tutorial 由 Montreal大学的LISA实验室所作,基于Theano的深度学习材料.Theano是一个python库,使得写深度模型更容易些,也可以在GPU上训 ...
- Deep Learning(4)
四.拓展学习推荐 Deep Learning 经典阅读材料: The monograph or review paper Learning Deep Architectures for AI (Fou ...
随机推荐
- Zookeeper【概述、安装、原理、使用】
目录 第1章 Zookeeper入门 1.1 概述 1.2 特点 1.3 数据结构 1.4应用场景 第2章 Zookeep安装 2.1 下载地址 2.2 本地模式安装 1. 安装前准备 2. 配置修改 ...
- gitlab基础命令之代码回滚
#:gitlab状态 root@ubuntu:~# gitlab-ctl status run: alertmanager: (pid 13305) 215965s; run: log: (pid 1 ...
- 【编程思想】【设计模式】【其他模式】graph_search
Python版 https://github.com/faif/python-patterns/blob/master/other/graph_search.py #!/usr/bin/env pyt ...
- Dubbo消费者异步调用Future使用
Dubbo的四大组件工作原理图,其中消费者调用提供者采用的是同步调用方式.消费者对于提供者的调用,也可以采用异步方式进行调用.异步调用一般应用于提供者提供的是耗时性IO服务 一.Future异步执行原 ...
- 【编程思想】【设计模式】【创建模式creational】原形模式Prototype
Python版 https://github.com/faif/python-patterns/blob/master/creational/prototype.py #!/usr/bin/env p ...
- 关于python中的随机种子——random_state
random_state是一个随机种子,是在任意带有随机性的类或函数里作为参数来控制随机模式.当random_state取某一个值时,也就确定了一种规则. random_state可以用于很多函数,我 ...
- 基于Web的质量和测试度量指标
直观了解软件质量和测试的完整性 VectorCAST/Analytics可提供便于用户理解的web仪表盘视图来显示软件代码质量和测试完整性指标,让用户能够掌握单个代码库的趋势,或对比多个代码库的度量指 ...
- Apache Hudi 与 Hive 集成手册
1. Hudi表对应的Hive外部表介绍 Hudi源表对应一份HDFS数据,可以通过Spark,Flink 组件或者Hudi客户端将Hudi表的数据映射为Hive外部表,基于该外部表, Hive可以方 ...
- C++内存管理:new / delete 和 cookie
new 和 delete C++的内存申请和释放是通过 new 和 delete 实现的, 而new 和 delete 其实就是通过 malloc 和 free 实现的. new 申请内存分为三个步骤 ...
- Java动态脚本Groovy,高级啊!
前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 简介: Groovy是用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚 ...