您的位置:首页 > 理论基础 > 计算机网络

对抗网络Gan简介

2018-02-23 08:44 176 查看
GAN全称是Generative Adversarial Nets,中文叫做“生成对抗网络”。在GAN中有2个网络,一个网络用于生成数据,叫做“生成器”。另一个网络用于判别生成数据是否接近于真实,叫做“判别器”










价值函数 Value Function三、WGAN(使用W距离的GAN)源码实现:https://github.com/martinarjovsky/WassersteinGANWGAN的优点进一步提升了训练的稳定性。不需要精心设置G和D一轮一轮的更新。不需要精心设置复杂的网络结构。(原始GAN的价值函数的梯度很可能是0,就没法得到更新。WGAN提出了新的价值函数解决这个问题。)
几乎解决了mode collapse问题。mode collapse是说生成器生成的内容过于雷同,缺少变化。
提供了具有意义的价值函数,可以判断判别器和生成器是否已经收敛。(原始GAN中如果D的效果不好,我们不知道是G生成的好,还是D判别的不好)
提供了理论公式(不过很难理解)。
在判别器输入中加入噪声,使优化分布成为可能。
随着真实分布和生成分布的距离越来越小,对噪声进行退火,使噪声越来越小直至消除噪声
当移除BN后DCGAN无法正常工作,而WGAN仍然可以生成很好的图片。所以WGAN可以使用更简单的网络结构。
  改进的地方:         判别器最后一层去掉sigmoid          生成器和判别器的loss不取log         每次更新判别器的参数之后把它们的值截断到不超过一个固定常数c         不要用基于动量的优化算法(包括momentum和Adam),推荐RMSProp,SGD也行四、训练在训练的过程中固定一方,更新另一方的网络权重,交替迭代(网络中先训练 D 一次,再训练 G 两次),在这个过程中,双方都极力优化自己的网络,从而形成竞争对抗,直到双方达到一个动态的平衡(纳什均衡),此时生成模型 G 恢复了训练数据的分布(造出了和真实数据一模一样的样本),判别模型再也判别不出来结果,准确率为 50%,约等于乱猜。上述过程可以表述为如下公式:


当固定生成网络 G 的时候,对于判别网络 D 的优化,可以这样理解:输入来自于真实数据,D 优化网络结构使自己输出 1,输入来自于生成数据,D 优化网络结构使自己输出 0;当固定判别网络 D 的时候,G 优化自己的网络使自己输出尽可能和真实数据一样的样本,并且使得生成的样本经过 D 的判别之后,D 输出高概率。五、相关论文1。Conditional Generative Adversarial Nets,给 GAN 加上条件,让生成的样本符合我们的预期,这个条件可以是类别标签(例如 MNIST 手写数据集的类别标签),也可以是其他的多模态信息(例如对图像的描述语言)等。用公式表示就是:

式子中的 y 是所加的条件。2.Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks,简称(DCGAN),在实际中是代码使用率最高的一篇文章,它优化了网络结构,加入了 conv,batch_norm 等层,使得网络更容易训练
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: