"Generative Adversarial Nets" Notes
- Ian J.Goodfellow
中文翻译:https://blog.csdn.net/wspba/article/details/54577236
代码实现:https://github.com/devnag/pytorch-generative-adversarial-networks/blob/master/gan_pytorch.py
Abstract
G:恢复训练样本的分布
D:在任何分布下产生错误的概率都是1/2
1. Introduction
深度学习的目标是用丰富的层次模型(rich, hierarchical models),表达人工智能领域任意种类数据的分布(distribution)。
当前深度学习领域最为成功的,是判别模型(discriminative models),主要成功基于反向传播(backpropagation)和丢弃(dropout)算法。
生成模型(generative models)的成就较少,原因在于计算极大似然估计(maximum likelihood estimation)和相关策略的概率计算困难,以及在生成的上下文中(generative context)很难使用分段线性单元的好处。本文提出了一个新的生成模型来解决这些问题。
这篇文章的生成模型(Generator)和判别模型(Discriminator)都是用多层感知机(multiplayer perceptron, 即全连接层)实现的,用简单有效的反向传播算法和dropout算法就可以训练。不需要近似推理和马尔可夫链。
2. Related work
数学基础不够,看不懂。
3. Adversarial nets
G(z; θg):多层感知机,可微函数,输入噪音,通过多层感知机参数θg生成。
D(x; θd):多层感知机,输出一个单独的标量。
训练D:最大化分配正确标签的概率(输入是真实图像和生成图像, training examples and samples from G)。
训练G:最小化 log(1 - D(G(z)))
上述方程无法为G提供足够的梯度来学习,训练初期,G生成的图像很差,D会以高置信度来拒绝生成的样本,因为他们和训练数据明显不同。这个时候,log(1 - D(G(z))) 就会饱和。
因此在训练G的时候,我们选择最大化 log(D(G(z))) 而不是最小化 log(1 - D(G(z))) 。
这样就能在训练初期为G提供较大的梯度。
这里可能不是说的很清楚,原文:This objective function results in the same fixed point of the dynamics of G and D but provides much stronger gradients early in learning.
4. Theoretical Results
5. Experiments
6. Advantages and disadvantages
7. Conclusions and future work
"Generative Adversarial Nets" Notes的更多相关文章
- 论文笔记之:Conditional Generative Adversarial Nets
Conditional Generative Adversarial Nets arXiv 2014 本文是 GANs 的拓展,在产生 和 判别时,考虑到额外的条件 y,以进行更加"激烈 ...
- (转)Deep Learning Research Review Week 1: Generative Adversarial Nets
Adit Deshpande CS Undergrad at UCLA ('19) Blog About Resume Deep Learning Research Review Week 1: Ge ...
- 论文笔记之:Generative Adversarial Nets
Generative Adversarial Nets NIPS 2014 摘要:本文通过对抗过程,提出了一种新的框架来预测产生式模型,我们同时训练两个模型:一个产生式模型 G,该模型可以抓住数据分 ...
- Generative Adversarial Nets[BEGAN]
本文来自<BEGAN: Boundary Equilibrium Generative Adversarial Networks>,时间线为2017年3月.是google的工作. 作者提出 ...
- Generative Adversarial Nets[content]
0. Introduction 基于纳什平衡,零和游戏,最大最小策略等角度来作为GAN的引言 1. GAN GAN开山之作 图1.1 GAN的判别器和生成器的结构图及loss 2. Condition ...
- Generative Adversarial Nets[CycleGAN]
本文来自<Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks>,时间线为2017 ...
- Generative Adversarial Nets[CAAE]
本文来自<Age Progression/Regression by Conditional Adversarial Autoencoder>,时间线为2017年2月. 该文很有意思,是如 ...
- Generative Adversarial Nets[Wasserstein GAN]
本文来自<Wasserstein GAN>,时间线为2017年1月,本文可以算得上是GAN发展的一个里程碑文献了,其解决了以往GAN训练困难,结果不稳定等问题. 1 引言 本文主要思考的是 ...
- Generative Adversarial Nets[Pre-WGAN]
本文来自<towards principled methods for training generative adversarial networks>,时间线为2017年1月,第一作者 ...
随机推荐
- 『ACM C++』 PTA 天梯赛练习集L1 | 042-43
记录刷题情况 ------------------------------------------------L1-042--------------------------------------- ...
- 丑数(Ugly Numbers, UVa 136)
丑数(Ugly Numbers, UVa 136) 题目描述 我们把只包含因子2.3和5的数称作丑数(Ugly Number).求按从小到大的顺序的第1500个丑数.例如6.8都是丑数,但14不是,因 ...
- Docker镜像浅谈
先抛出几个我在学习过程中产生的几个问题. 1. 容器镜像是什么, 和装系统时的镜像有什么关系? 2. 容器镜像的作用是什么? 3. 不同版本的ubuntu镜像有什么区别, 比如说 ubuntu:18. ...
- PHPStorm等编辑器debug调试(包括使用postman、soapUI)
很多人在开发的时候,需要进行断点调试,但是很多人配置了很多,还是调试不了,其实是不需要这么麻烦的. 注意:PHPStorm等编辑器debug的配置不用进行任何配置,默认配置就好 实质上,断点调试的时候 ...
- 基于Bootstrap Ace模板+bootstrap.addtabs.js的菜单
这几天研究了基于bootstrap Ace模板+bootstra.addtabs.js实现菜单的效果 参考了这个人的博客 https://www.cnblogs.com/landeanfen/p/76 ...
- spark exectors的启动总结
在spark启动之后,worker和master注册通信之后,在进入用户提交app中,new SparkContext之后就会在worker上分配exectors了. 首先在sparkContext中 ...
- 在树莓派上用 python 做一个炫酷的天气预报
教大家如何在树莓派上自己动手做一个天气预报.此次教程需要大家有一定的python 基础,没有也没关系,文末我会放出我已写好的代码供大家下载. 首先在开始之前 需要申请高德地图API,去高德地图官网注册 ...
- Linux GPIO键盘驱动开发记录_OMAPL138
Linux GPIO键盘驱动开发记录_OMAPL138 Linux基本配置完毕了,这几天开始着手Linux驱动的开发,从一个最简单的键盘驱动开始,逐步的了解开发驱动的过程有哪些.看了一下Linux3. ...
- mfc和qt的区别
注:引用来源 http://wenda.chinabaike.com/b/30934/2013/1208/707410.html QT使用的编译器是MinGW,即Linux下的GCC移植到window ...
- [BZOJ4552][Tjoi2016&Heoi2016]排序(二分答案+线段树)
二分答案mid,将>=mid的设为1,<mid的设为0,这样排序就变成了区间修改的操作,维护一下区间和即可 然后询问第q个位置的值,为1说明>=mid,以上 时间复杂度O(nlog2 ...