Generative Adversarial Nets(生成对抗网络)简析

机器学习 2017-01-13

通过论文阅读对生成对抗网络进行简要的分析。将避开数学上的一些复杂证明。想了解具体实现请参考代码

  1. 简介   深度学习的目的是发现丰富的,层次化的模型以适用各种人工智能领域的数据,例如图像,音频和文本。到目前为止,最大的成功在于有偏差的模型,通常是对一组标签输入高维度,丰富的数据。这些都是基于反馈和有损失的算法。使用分段和线性单元,并且在梯度方面表现良好。深层次的生成模型影响较小,由于在最大似然估计和相关策略中出现的许多棘手的概率计算问题以及在生成语境中利用分段线性单元的困难。因此提出一种新的深层网络模型。   这个模型可以简述为两个互相竞争的对手,通过和对方竞争使自身达到最优。

  2. 具体实现

  当两方的模型是多层感知器的时候GAN(生成对抗网络)可以直接应用。我们可以假设D和G两个模型用于双方。分别是生成模型(generative model G)和一个判别模型(discriminative model D)。我们训练D来最大化来自G的训练样本的错误,通过训练G来最小化D。换句话说,D和G相当于两个人在玩一种二元极大极小的游戏。   然而在实现上这要复杂的多。使用迭代和数值方法,当然过度的循环是禁止的,取而代之的是,我们使用k步来调整D,一步来调整G。这使得只要G改变地足够慢,D保持在它的微调结果附近。这样循环往复来调整。这种策略类似于马可夫链。最终,G能估测出样本数据的分布。

  1. 实验分析   用四种数据集进行实验分析后可以看到结果

  1.png

  在生成手写数据集和人脸时效果很好,但使用CIFAR-10数据集时,生成的图像就十分模糊。

   2.png

  1. 总结

  优点:由于GAN的目标函数是产生与真实数据无法区分的分布,所以当它用于图像的生成时是相当成功的;相比自编码器,GAN更加接近真实数据;相比最大似然,GAN不需要先验的概率分布。

  缺点:GAN的一个明显的缺点是难以训练。不同于常规的交叉熵或平方差等目标函数,GAN的目标函数比较复杂并且独特。

(本人水平有限,文章如有不足之处,望批评指正)


本文由 Tony 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

如果对您有用,您的支持将鼓励我继续创作!