GAN(Generative Adversarial Nets),产生式对抗网络

存在问题:

1.无法表示数据分布

2.速度慢

3.resolution太小,大了无语义信息

4.无reference

5.intend to generate same image

6.梯度消失

论文摘要:

1、Goodfellow, Ian, et al. "Generative adversarial nets." Advances in Neural Information Processing Systems. 2014.

做如下优化:

全局最优解为:

训练过程:

算法描述:先优化discriminator,再训练generator

latent code插值后出现了渐变特效:

2.Mirza, Mehdi, and Simon Osindero. "Conditional generative adversarial nets."arXiv preprint arXiv:1411.1784 (2014).

优化目标:

好像就是加了label信息。

3.Denton, Emily L., Soumith Chintala, and Rob Fergus. "Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks."Advances in neural information processing systems. 2015.

不知道这篇论文正式发表没有。这篇论文似乎就是做了一个GAN和提高分辨率的结合。不过本来就没有什么语义信息的图片,就算提高分辨率感觉也没什么用,所以感觉96x96分辨率的结果没什么意义。

原理:

整个test过程为:

整个train过程为:

一些例子:

4.Radford, Alec, Luke Metz, and Soumith Chintala. "Unsupervised representation learning with deep convolutional generative adversarial networks." arXiv preprint arXiv:1511.06434 (2015).

这篇论文也不知道发表没有。

用了很多trick,什么batchnorm,全卷积无全连接,无pooling,用了LeakyReLu。

网络结构:

个人感觉效果还不错:

进行了有趣的实验:

5.Salimans, Tim, et al. "Improved techniques for training gans." arXiv preprint arXiv:1606.03498 (2016).

提出了一些改进的trick。

用feature算距离

加label

效果:感觉没什么语义信息

6.Chen, Xi, et al. "InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets." arXiv preprint arXiv:1606.03657 (2016).

主要是为了解决产生一样的sample的问题

公式:

结果:

7. Arjovsky M, Chintala S, Bottou L. Wasserstein GAN[J]. arXiv preprint arXiv:1701.07875, 2017.

相关链接:https://zhuanlan.zhihu.com/p/25071913?utm_medium=social&utm_source=wechat_timeline&from=timeline

https://arxiv.org/abs/1701.07875

对生成器的loss进行散度(JS散度,KL散度)的等价转换,从而更直观也更容易分析不同loss对应的相应问题,这种分析比直接分析函数loss或者minmax函数更加容易。为了解决这些问题,引入了Wasserstein距离,替代了原来的loss。这种loss使得生成器的有一定的梯度,防止梯度消失,生成器训练不动的情况。这种loss还能指示训练效果以及防止模型崩塌。

8.Li, Chongxuan, Jun Zhu, and Bo Zhang. "Max-Margin Deep Generative Models for (Semi-) Supervised Learning." arXiv preprint arXiv:1611.07119 (2016).

实验室学长的工作,用GAN做半监督学习。利用generator产生更多的数据,帮助classfier训练。

9.Wang, Jun, et al. "IRGAN: A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models." arXiv preprint arXiv:1705.10513 (2017).

SIGIR 2017的best paper, 利用GAN的思想总和了检索领域的两大主流算法:一种根据关键字生成查询结果,一种评价查询和文档之间的关联性。generator用于生成,discriminator用于关联性评价。

GAN(Generative Adversarial Nets)的发展的更多相关文章

  1. Conditional Generative Adversarial Nets

    目录 引 主要内容 代码 Mirza M, Osindero S. Conditional Generative Adversarial Nets.[J]. arXiv: Learning, 2014 ...

  2. Generative Adversarial Nets[Wasserstein GAN]

    本文来自<Wasserstein GAN>,时间线为2017年1月,本文可以算得上是GAN发展的一个里程碑文献了,其解决了以往GAN训练困难,结果不稳定等问题. 1 引言 本文主要思考的是 ...

  3. Generative Adversarial Nets(原生GAN学习)

    学习总结于国立台湾大学 :李宏毅老师 Author: Ian Goodfellow • Paper: https://arxiv.org/abs/1701.00160 • Video: https:/ ...

  4. Generative Adversarial Nets(GAN Tensorflow)

    Generative Adversarial Nets(简称GAN)是一种非常流行的神经网络. 它最初是由Ian Goodfellow等人在NIPS 2014论文中介绍的. 这篇论文引发了很多关于神经 ...

  5. 一文读懂对抗生成学习(Generative Adversarial Nets)[GAN]

    一文读懂对抗生成学习(Generative Adversarial Nets)[GAN] 0x00 推荐论文 https://arxiv.org/pdf/1406.2661.pdf 0x01什么是ga ...

  6. Generative Adversarial Nets (GAN)

    目录 目标 框架 理论 数值实验 代码 Generative Adversarial Nets 这篇文章,引领了对抗学习的思想,更加可贵的是其中的理论证明,证明很少却直击要害. 目标 GAN,译名生成 ...

  7. Generative Adversarial Nets[content]

    0. Introduction 基于纳什平衡,零和游戏,最大最小策略等角度来作为GAN的引言 1. GAN GAN开山之作 图1.1 GAN的判别器和生成器的结构图及loss 2. Condition ...

  8. Generative Adversarial Nets[CAAE]

    本文来自<Age Progression/Regression by Conditional Adversarial Autoencoder>,时间线为2017年2月. 该文很有意思,是如 ...

  9. (转)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 ...

随机推荐

  1. Linux下C结构体初始化

    1.前言 今天在公司看一同事写的代码,代码中用到了struct,初始化一个struct用的是乱序格式,如下代码所示: typedef struct _data_t { int a; int b; }d ...

  2. Python istitle() 方法

    描述 istitle() 方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写. 语法 istitle() 方法语法: S.istitle() 参数 无. 返回值 如果字符串中所有的单词拼 ...

  3. Python floor() 函数

    描述 floor(x) 函数返回一个小于或等于 x 的的最大整数(向下取整) 语法 以下是 floor() 方法的语法: import math math.floor( x ) 注意:floor()是 ...

  4. 详细介绍Java中的堆和栈

    栈与堆都是Java用来在RAM中寄存数据的中央.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运转时数据区,类的对象从中分配空间.这些对象经过new.newar ...

  5. Spring Boot热部署(springloader)

    使用方式一 在pom.xml文件添加依赖包: <plugin> <groupId>org.springframework.boot</groupId> <ar ...

  6. Windwos配置Maven环境变量

    下载Maven插件:http://maven.apache.org/download.cgi 添加环境变量: MAVEN_HOMEE:\Program Files\Apache Software Fo ...

  7. es6 generator 基础知识

    1.定义和使用 function *gen() { return 'first generator'; } // 有点类似类的实例化过程 let generatorResult = gen() // ...

  8. Mysql 自增列 主键

    Mysql中假如有 ID Int auto_increment, CID varchar(36). 通常情况下都是 ID设置为主键. 假如要设置CID为主键.自增列ID必需是唯一索引. create ...

  9. 如何在 Visual Studio 2013 中调试.NET Framework 4.5.1 代码

    版本需求如标题,在 工具->选项->调试->常规 中,更改以下设置: 禁用:启用“仅我的代码”.逐过程执行属性和运算符(仅限托管).要求源文件与原始版本完全匹配 启用:启用 .NET ...

  10. Lua脚本语言快速入门手册

    学了两天Lua语言,感叹其短小精悍,上手极快,语法还很舒服,不错!整理下学习过程中经常用到的基础知识,共勉! Lua用法简述 Lua语言是在1993年由巴西一个大学研究小组发明,其设计目标是作为嵌入式 ...