[GAN] Generative networks
中文版: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 这是目前流行的。
变分贝叶斯自编码
基础知识
What is Generative Adversarial Nets GAN (deep learning)?
May 12, 2017
【機器學習2021】生成式對抗網路 (Generative Adversarial Network, GAN) (一) – 基本概念介紹
【機器學習2021】生成式對抗網路 (Generative Adversarial Network, GAN) (二) – 理論介紹與WGAN
【機器學習2021】生成式對抗網路 (Generative Adversarial Network, GAN) (三) – 生成器效能評估與條件式生成
【機器學習2021】生成式對抗網路 (Generative Adversarial Network, GAN) (四) – Cycle GAN【用在supervise learning】
Conditional GAN, 生成相关但不一样的图像。但2014年,概念就被提出,之后发展为“实用”。
Few-Shot Adversarial Learning of Realistic Neural Talking Head Models
CycleGAN, Unpaired Image-to-Image Translation