$$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Self-defined math definitions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Math symbol commands \newcommand{\intd}{\,{\rm d}} % Symbol 'd' used in integration, such as 'dx' \newcommand{\diff}{{\rm d}} % Symbol 'd' used in differentiation ... $$

那些说不完的 GAN - NIPS 2016 Tutorial: Generative Adversarial Networks

  Ian Goodfellow 于 2014 年正式提出对抗生成网络( Generative Adversarial Networks )之后,GAN 得到了巨大的发展。2016 年,Ian Goodfellow 在 NIPS 2016 会议上做了关于 GAN 的报告( NIPS 2016 Tutorial: Generative Adversarial Networks ),报告主要阐述了 5 个方面的内容。

Why study generative modeling?

  1、通过对生成模型进行训练和抽样,极好的测试了我们表示和处理高维概率分布的能力。

  2、生成模型可以用于强化学习的模拟或规划。

  3、可以使用缺失数据进行训练并对缺失数据进行预测。适用在半监督学习领域中。

  4、使得机器学习可以处理多模态输出。

  5、从一些数据分布中实际生成样本。例如,超分辨率图像的合成,图像转换程序,图像生成等。

 

How do generative models work? How do GANs compare to others?

  1、How do generative models work?

  GAN 是生成模型的一个例子。生成模型指的是任何采用训练集(由从分布 Pdata 中提取的样本组成)并学习以某种方式表示该分布的估计的模型。结果是一个概率分布 P 模型。在某些情况下,模型显式地估计 Pmodel。

  使用最大似然估计原理的生成模型。最大似然原理简单地说就是为模型选择使训练数据的似然最大化的参数。在实践中,我们不能访问 Pdata 本身,而只能访问由来自 Pdata 的 m 个样本组成的训练集.。定义一个经验分布 P'data,只要在这 m 个点上,近似于 Pdata。最小化 P'data 和 Pmodel 之间的 KL 散度正好等价于最大化训练集的对数似然。

  通过最大似然原理学习的深度生成模型分类。如下图所示,在这个分类树的左分支上,模型构造一个显式密度( Explicit density ),因此是可以最大化的显式似然。在这些显式密度模型中,密度可能在计算上是易于处理的( Tractable density ),也可能是难以处理的( Approximate density ),这意味着为了最大化可能性,有必要进行变分近似( Variational )或蒙特卡罗近似( Markov Chain )。在树的右分支上,模型没有显式地表示数据所在空间的概率分布( Implicit density )。相反,该模型提供了一些与该概率分布不太直接的交互方式。通常,与概率分布相互作用的间接手段是从概率分布中抽取样本的能力。其中一些隐式模型提供了从分布中抽样的能力,使用马尔可夫链( Markov Chain );该模型定义了一种对现有样本进行随机变换的方法,以便从同一分布中获得另一个样本。虽然用于 GAN 的模型有时可以构造为定义显式密度,但 GAN 的训练算法仅利用模型生成样本的能力。因此,可以使用从树的最右边叶子开始的策略来训练 GAN( 采用隐式密度函数 )。

  显示密度函数模型:只需要将模型对密度函数的定义插入到似然表达式中,然后沿着梯度向上移动。在显式密度模型中存在的主要困难是设计一个模型,该模型可以捕获要生成的数据的所有复杂性,同时仍然保持计算可跟踪性。解决这一问题的主要方法有:谨慎构建模型,其结构保证其可追溯性;模型允许对似然函数及其梯度的近似可追溯。

  隐式密度函数模型:有些模型甚至不需要显式地定义密度函数就可以训练。相反,这些模型提供了一种训练模型的方法,同时只间接地与 Pmodel 交互,通常是通过从 Pmodel 中采样。

  2、How do GANs compare to others?

  生成器功能设计的限制相较于玻尔兹曼机要少;不需要马尔科夫链;通常被认为是最好的;可以并行生成样本。

 

How do GANs work?

  GAN 中包含两个变量:观测变量 x 和潜在变量 z。生成器是一个简单的可微函数 G。当 z 从某个简单的先验分布中抽样时,G(z) 产生一个从 Pmodel 中抽取的 x 的样本。通常,使用深度神经网络来表示G。判别器也和生成器相类似。

 

Tips and tricks

  GitHub - soumith/ganhacks: starter from "How to Train a GAN?" at NIPS2016

 

Research Frontiers

  GAN 最大的问题是模型不收敛。在实际中,GAN 似乎经常振荡,意味着它们从生成一种样本进展到生成另一种样本,而最终没有达到平衡。在 GAN 中最常见的有害非收敛形式可能是模型坍塌( Mode collapse )。模型坍塌,也称为海奥维提卡现象(Helvetica Scenario) ,是当生成器将几个不同的输入映射到相同的输出时发生的问题(生成器 G 将会使用更多的随机噪声 z 对应生成相同的数据样本 x ,导致生成器 G  对原始数据分布 Pdata 建模时发生功能坍塌而失去生成多样性样本的能力)。对于模型坍塌的解决将是未来研究的重要方向。

  与 GAN 相关的另一个非常重要的研究领域是如何定量评估生成模型尚不清楚。

  GAN 框架对发生器设计的唯一实际要求是发生器必须是可微的。这也就意味着生成器不能生成离散的数据,例如单字或字符表示。消除这一限制是一个重要的研究方向。

  更多的与强化学习相联系。

  半监督学习。

 

PPT 地址:2016-12-04-NIPS (iangoodfellow.com)

 

posted @ 2023-09-18 14:54  素衣叹风尘  阅读(78)  评论(0)    收藏  举报