GAN(Generative Adversarial Nets)的发展
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)的发展的更多相关文章
- Conditional Generative Adversarial Nets
目录 引 主要内容 代码 Mirza M, Osindero S. Conditional Generative Adversarial Nets.[J]. arXiv: Learning, 2014 ...
- Generative Adversarial Nets[Wasserstein GAN]
本文来自<Wasserstein GAN>,时间线为2017年1月,本文可以算得上是GAN发展的一个里程碑文献了,其解决了以往GAN训练困难,结果不稳定等问题. 1 引言 本文主要思考的是 ...
- Generative Adversarial Nets(原生GAN学习)
学习总结于国立台湾大学 :李宏毅老师 Author: Ian Goodfellow • Paper: https://arxiv.org/abs/1701.00160 • Video: https:/ ...
- Generative Adversarial Nets(GAN Tensorflow)
Generative Adversarial Nets(简称GAN)是一种非常流行的神经网络. 它最初是由Ian Goodfellow等人在NIPS 2014论文中介绍的. 这篇论文引发了很多关于神经 ...
- 一文读懂对抗生成学习(Generative Adversarial Nets)[GAN]
一文读懂对抗生成学习(Generative Adversarial Nets)[GAN] 0x00 推荐论文 https://arxiv.org/pdf/1406.2661.pdf 0x01什么是ga ...
- Generative Adversarial Nets (GAN)
目录 目标 框架 理论 数值实验 代码 Generative Adversarial Nets 这篇文章,引领了对抗学习的思想,更加可贵的是其中的理论证明,证明很少却直击要害. 目标 GAN,译名生成 ...
- Generative Adversarial Nets[content]
0. Introduction 基于纳什平衡,零和游戏,最大最小策略等角度来作为GAN的引言 1. GAN GAN开山之作 图1.1 GAN的判别器和生成器的结构图及loss 2. Condition ...
- Generative Adversarial Nets[CAAE]
本文来自<Age Progression/Regression by Conditional Adversarial Autoencoder>,时间线为2017年2月. 该文很有意思,是如 ...
- (转)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 ...
随机推荐
- Linux下C结构体初始化
1.前言 今天在公司看一同事写的代码,代码中用到了struct,初始化一个struct用的是乱序格式,如下代码所示: typedef struct _data_t { int a; int b; }d ...
- Python istitle() 方法
描述 istitle() 方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写. 语法 istitle() 方法语法: S.istitle() 参数 无. 返回值 如果字符串中所有的单词拼 ...
- Python floor() 函数
描述 floor(x) 函数返回一个小于或等于 x 的的最大整数(向下取整) 语法 以下是 floor() 方法的语法: import math math.floor( x ) 注意:floor()是 ...
- 详细介绍Java中的堆和栈
栈与堆都是Java用来在RAM中寄存数据的中央.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运转时数据区,类的对象从中分配空间.这些对象经过new.newar ...
- Spring Boot热部署(springloader)
使用方式一 在pom.xml文件添加依赖包: <plugin> <groupId>org.springframework.boot</groupId> <ar ...
- Windwos配置Maven环境变量
下载Maven插件:http://maven.apache.org/download.cgi 添加环境变量: MAVEN_HOMEE:\Program Files\Apache Software Fo ...
- es6 generator 基础知识
1.定义和使用 function *gen() { return 'first generator'; } // 有点类似类的实例化过程 let generatorResult = gen() // ...
- Mysql 自增列 主键
Mysql中假如有 ID Int auto_increment, CID varchar(36). 通常情况下都是 ID设置为主键. 假如要设置CID为主键.自增列ID必需是唯一索引. create ...
- 如何在 Visual Studio 2013 中调试.NET Framework 4.5.1 代码
版本需求如标题,在 工具->选项->调试->常规 中,更改以下设置: 禁用:启用“仅我的代码”.逐过程执行属性和运算符(仅限托管).要求源文件与原始版本完全匹配 启用:启用 .NET ...
- Lua脚本语言快速入门手册
学了两天Lua语言,感叹其短小精悍,上手极快,语法还很舒服,不错!整理下学习过程中经常用到的基础知识,共勉! Lua用法简述 Lua语言是在1993年由巴西一个大学研究小组发明,其设计目标是作为嵌入式 ...