论文链接:https://papers.nips.cc/paper/2014/file/5ca3e9b122f61f8f06494c97b1afccf3-Paper.pdf
论文解读:https://www.bilibili.com/video/BV1rb4y187vD?share_source=copy_web
一句话总结:提出了生成模型框架 GAN,包括一个生成模型 G 和一个判别模型 D, 用有监督的损失函数训练无监督的问题,训练比较高效。
背景知识
贝叶斯公式:
辨别模型对后验概率 进行估计的判别模型方法,计算样本属于某个类的条件概率。
生成模型估计先验概率 和条件概率 ,生成数据本身。
1. 介绍
深度学习(当时)在生成模型上遇到的困难是近似似然函数, 于是作者提出用对抗网络框架,包括一个生成模型和一个判别模型,生成用于生成假的数据以骗过判别模型,判别模型用于辨别数据是来自真实数据还是来自生成模型,最终目的是要判别模型无法区别生成的数据与真实数据。
生成模型和判别模型都是多层感知机(MLP),可以利用反向传播进行训练。
2. 相关工作
VAE(variational autoen-coders)经常与GAN一起出现,也提出了 VAE-GAN。
3. 对抗网络
当生成器和判别器都是 MLP 的时候, 对抗模型是最容易实现的。假设需要学习的数据 符合分布 , 定义一个先验的输入噪声变量 , 然后将到数据空间的映射表示为 , 其中 是具有参数 的 MLP。定义第二个 MLP ,输出一个标量, 表示 来自数据的概率。我们训练 D 以最大化为来自 G 的样本和训练例子分配正确标签的概率, 同时训练 G 以最小化 。假设 D 能够正确区分来自 G 的数据和真实数据的,那么 应该为 0,log (1-0) 为 0 。假设 D 不能区别来自 G 的数据与真实数据,最极端的情况下,把所有的数据都当作真实数据,那么 为 1, log (1-1) 是负无穷, 这就是最小化 的含义。目标函数如下:
当 D 能够区分真假的时候,第一项中 , 为 0,第二项也为 0。
当 D 不能够很好的分类时, , 第一项小于零,第二项中 , 第二项也小于零。
因此, max_D 是希望找到一个能够区分真假的 D, min_G 是希望找到一个能够让 D 无法区分真假的 G。
GAN 的训练过程上图中和黑色虚线为数据分布,蓝色虚线为判别分布,绿色线为生成分布,下面的箭头线是采样区域。
图(a)表示在训练开始时,生成器 G 是一个和真实数据类似的分布, D 能够区分一部分真假。
图(b)表示训练判别器 D,使得能够很好的区分真假数据。
图(c)表示更新生成器 G,更新后的D让生成数据更加接近真实数据。
图(d)表示 G 和 D 达到一个平滑点,二者都不能提高,生成分布和真实数据完全一致,判别器无法区别。
具体算法如下:
Algorithm 1
在学习早期,当 G 较差时,D 可以高置信度拒绝样本,因为它们与训练数据明显不同。在这种情况下, 饱和。我们可以用最大化 训练 G。
尽管如此,最初版的GAN还是很难训练,对此后来有很多工作进行了改进。
在论文最后作者提出了对未来工作的期望,其中包括 conditional generative model,加入一些限制条件使得生成的内容更加可控,英伟达的 GauGAN 就是一个 conditional GAN。
网友评论