中文版:https://zhuanlan.zhihu.com/p/27440393

原文版:https://www.oreilly.com/learning/generative-adversarial-networks-for-beginners

“熟练tensorflow后,需研读实践的文章”


自从两年前蒙特利尔大学的Ian Goodfellow等人提出生成式对抗网络(Generative Adversarial Networks,GAN)的概念以来,GAN呈现出井喷式发展。

// 竟然是Goodfellow搞的,看来又是封神之作

Abstract

We propose a new framework for estimating generative models via an adversar-
ial process, in which we simultaneously train two models: a generative model G
that captures the data distribution, and a discriminative model D that estimates
the probability that a sample came from the training data rather than G. The train-
ing procedure for G is to maximize the probability of D making a mistake. This
framework corresponds to a minimax two-player game. In the space of arbitrary
functions G and D, a unique solution exists, with G recovering the training data
distribution and D equal to 2 1 everywhere. In the case where G and D are defined
by multilayer perceptrons, the entire system can be trained with backpropagation.
There is no need for any Markov chains or unrolled approximate inference net-
works during either training or generation of samples. Experiments demonstrate
the potential of the framework through qualitative and quantitative evaluation of
the generated samples.

GAN是一种神经网络,它会学习创建一些类似已知输入数据的合成数据。目前,研究人员已经可以用GAN合成出从卧室到专辑封面等一系列照片,GAN也显示出反映高阶语义逻辑的非凡能力。

这些例子非常复杂,但构建可以生成简单图像的GAN真的不难。在这个教程里,我们将学习构建分析手写数字图像的GAN,并且从零开始学如何让它学会生成新图像。其实说白了,就是教会神经网络如何写字。

// 生成新图像,而不是处理原图像

该文章以mnist为测试数据:参见 [Keras] mnist with cnn

生成模型

生成模型(generative model),它在机器学习的历史上一直占有举足轻重的地位。当我们拥有大量的数据,例如图像、语音、文本等,如果生成模型可以帮助我们模拟这些高维数据的分布,那么对很多应用将大有裨益。

针对数据量缺乏的场景,生成模型则可以帮助生成数据,提高数据数量,从而利用半监督学习提升学习效率。

语言模型(language model)是生成模型被广泛使用的例子之一,通过合理建模,语言模型不仅可以帮助生成语言通顺的句子,还在机器翻译、聊天对话等研究领域有着广泛的辅助应用。

那么,如果有数据集S={x1,…xn},如何建立一个关于这个类型数据的生成模型呢?最简单的方法就是:假设这些数据的分布P{X}服从g(x;θ),在观测数据上通过最大化似然函数得到θ的值。

From: http://blog.csdn.net/solomon1558/article/details/52537114

机器学习方法可以分为:生成方法(generative approach)判别方法(discriminative approach),所学到的模型分别称为:生成式模型(generative model)判别式模型(discriminative model)[1 李航]。

生成方法通过观测数据学习样本与标签的联合概率分布P(X, Y),训练好的模型能够生成符合样本分布的新数据,它可以用于有监督学习无监督学习

  • 在有监督学习任务中,根据贝叶斯公式由联合概率分布P(X,Y)求出条件概率分布P(Y|X),从而得到预测的模型,典型的模型有朴素贝叶斯、混合高斯模型和隐马尔科夫模型等。
  • 无监督生成模型通过学习真实数据的本质特征,从而刻画出样本数据的分布特征,生成与训练样本相似的新数据。

生成模型的参数远远小于训练数据的量,因此模型能够发现并有效内化数据的本质,从而可以生成这些数据。

生成式模型在无监督深度学习方面占据主要位置,可以用于在没有目标类标签信息的情况下捕捉观测到或可见数据的高阶相关性。

深度生成模型可以通过从网络中采样来有效生成样本,例如:

  • 受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)、
  • 深度信念网络(Deep Belief Network, DBN)、
  • 深度玻尔兹曼机(Deep Boltzmann Machine, DBM)和
  • 广义除噪自编码器(Generalized Denoising Autoencoders)。

近两年来流行的生成式模型主要分为三种方法[OpenAI 首批研究]:

  • 生成对抗网络(GAN:Generative Adversarial Networks) <---- 目前该系列文章关注的重点
  • GAN启发自博弈论中的二人零和博弈,由[Goodfellow et al, NIPS 2014]开创性地提出,包含一个生成模型(generative model G)和一个判别模型(discriminative model D)。
  • 生成模型捕捉样本数据的分布,判别模型是一个二分类器,判别输入是真实数据还是生成的样本。这个模型的优化过程是一个“二元极小极大博弈(minimax two-player game)”问题,
  • 训练时固定一方,更新另一个模型的参数,交替迭代,使得对方的错误最大化,最终,G 能估测出样本数据的分布。
  • 变分自编码器(VAE: Variational Autoencoders)  <---- 应该归纳在PGM类中
  • 在概率图形模型(probabilistic graphical models )的框架中对这一问题进行形式化——在概率图形模型中,我们在数据的对数似然上最大化下限(lower bound)。
  • 自回归模型(Autoregressive models)
  • PixelRNN 这样的自回归模型则通过给定的之前的像素(左侧或上部)对每个单个像素的条件分布建模来训练网络。这类似于将图像的像素插入 char-rnn 中,但该 RNN 在图像的水平和垂直方向上同时运行,而不只是字符的 1D 序列。

未来用途

另据2016 ScaledML会议IIya Sutskever的演讲报告“生成模型的近期进展”介绍,生成模型主要有以下功能:

  • Structured prediction,结构化预测(例如,输出文本);
  • Much more robust prediction,更鲁棒的预测
  • Anomaly detection,异常检测
  • Model-based RL,基于模型的增强学习

生成模型未来推测可以加以应用的领域:

  • Really good feature learning, 非常好的特征学习
  • Exploration in RL, 在强化学习中的探索
  • Inverse RL, 逆向增强学习
  • Good dialog that actually works, 真正使用的对话
  • “Understanding the world”, “理解世界”
  • Transfer learning, 迁移学习

http://www.cnblogs.com/Charles-Wan/p/6238033.html

三篇论文,最后一篇要实践。DCGAN

对该论文同样的介绍:http://www.sohu.com/a/139545215_133098


From: http://videolectures.net/deeplearning2017_goodfellow_generative_models/

Variational Autoencode 这是目前流行的。

变分贝叶斯自编码

[GAN] Generative networks的更多相关文章

  1. GAN Generative Adversarial Network 生成式对抗网络-相关内容

    参考: https://baijiahao.baidu.com/s?id=1568663805038898&wfr=spider&for=pc Generative Adversari ...

  2. GAN (Generative Adversarial Network)

    https://www.bilibili.com/video/av9770302/?p=15 前面说了auto-encoder,VAE可以用于生成 VAE的问题, AE的训练是让输入输出尽可能的接近, ...

  3. Generative Adversarial Networks overview(3)

    Libo1575899134@outlook.com Libo (原创文章,转发请注明作者) 本文章主要介绍Gan的应用篇,3,主要介绍图像应用,4, 主要介绍文本以及医药化学其他领域应用 原理篇请看 ...

  4. Generative Adversarial Networks overview(1)

    Libo1575899134@outlook.com Libo (原创文章,转发请注明作者) 本文章会先从Gan的简单应用示例讲起,从三个方面问题以及解决思路覆盖25篇GAN论文,第二个大部分会进一步 ...

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

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

  6. (转) How to Train a GAN? Tips and tricks to make GANs work

    How to Train a GAN? Tips and tricks to make GANs work 转自:https://github.com/soumith/ganhacks While r ...

  7. 从一篇ICLR'2017被拒论文谈起:行走在GAN的Latent Space

    同步自我的知乎专栏文章:https://zhuanlan.zhihu.com/p/32135185 从Slerp说起 ICLR'2017的投稿里,有一篇很有意思但被拒掉的投稿<Sampling ...

  8. 生成式模型之 GAN

    生成对抗网络(Generative Adversarial Networks,GANs),由2014年还在蒙特利尔读博士的Ian Goodfellow引入深度学习领域.2016年,GANs热潮席卷AI ...

  9. 生成式对抗网络(GAN)学习笔记

    图像识别和自然语言处理是目前应用极为广泛的AI技术,这些技术不管是速度还是准确度都已经达到了相当的高度,具体应用例如智能手机的人脸解锁.内置的语音助手.这些技术的实现和发展都离不开神经网络,可是传统的 ...

随机推荐

  1. Wed 基础

    HTTP协议 www服务应用的默认端口为80 https加密服务的默认端口为443 常见状态码及其对应的作用 http://oldboy.blog.51cto.com/2561410/716294 2 ...

  2. lib32asound2 : Depends: libc6-i386 (>= 2.7) but it is not going to be installed

    sudo apt-get install -f sudo dpkg --configure -a sudo apt-get clean sudo apt-get update sudo apt-get ...

  3. [Android Pro] 关于Android 7.0无法进行https抓包的问题

    cp from  : https://www.cnblogs.com/wytings/p/6954293.html 在App进行数据请求的时候,如果每次都打印log去判断是一件很不“人性化”的操作行为 ...

  4. 微服务平台(Micro Service Platform : MSP)旨在提供一个集开发、测试、运维于一体的开发者专属平台,让开发者能快速构建或使用微服务,让开发更简单,让运维更高效。

    微服务平台(Micro Service Platform : MSP)旨在提供一个集开发.测试.运维于一体的开发者专属平台,让开发者能快速构建或使用微服务,让开发更简单,让运维更高效. MSP采用业界 ...

  5. mock获取入参数并动态设置返回值

    /*   * Copyright (c) 2007 Mockito contributors   * This program is made available under the terms of ...

  6. Android性能优化-线程性能优化

    原文链接:Better Performance through Threading 线程的性能 熟练使用Android上的线程可以帮助你提高应用程序的性能. 本篇文章讨论了使用线程的几个方面:使用UI ...

  7. 不依赖三方库从图像数据中获取宽高-gif、bmp、png、jepg

    int extract_pic_info(const BYTE *pic, const uint32_t size, int &width, int &height) { ; widt ...

  8. 腾讯企业邮箱设置发送邮件的配置(针对smtp)

    QQ邮箱也是如下配置,不过需要进行开启smtp

  9. nginx跨域

    在 conf文件server块里面加上: add_header 'Access-Control-Allow-Origin' "$http_origin"; add_header ' ...

  10. 湾区求职分享:三个月刷题拿到 Google offer,欢迎踊跃提问

    本文仅以个人经历和个人观点作为参考.如能受益,不胜荣幸. 本文会不断的修正,更新.希望通过大家的互动最后能写出一份阅者受益的文章. 本文纯手打,会有错别字,欢迎指出,虚心接受及时更改. 小马过河,大牛 ...