【GAN】简述生成对抗式网络
来源:互联网 发布:云南广电网络集团待遇 编辑:程序博客网 时间:2024/06/15 11:35
写在前面
上学期的一些项目中有用到GAN,趁着假期整理一下上学期的工作资料,本文主要介绍了对于GAN的理解和它的一些延伸(CGAN、DCGAN、BEGAN)的介绍。
基本原理
生成式对抗网络系统由一个生成器G(Generator)和一个判别器D(Discriminator)构成。
生成器G捕捉真实数据样本的潜在分布,并生成新的数据样本,目标是生成的样本越真实越好;
判别器D是一个二分类器,判别输入是真实数据样本还是G生成的样本。
G的输入用z表示,真实数据用x表示。本质上,G就是把服从某一分布的输入z转换为G(z),并使得G(z)服从x的分布。而D的作用就是判断它的输入是否符合x的分布。
在训练过程中**,G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。**G和D构成了一个动态的“博弈过程”。
理想状态下,G可以生成“以假乱真”的图片G(z)。对于D来说,它难以判定G(z)究竟是生成的图片还是真实的图片,因此D(G(z)) = 0.5,也就是乱猜。这样就达到了我们的目的,得到了一个生成器G,可以用它来生成我们想要的图片。
上图代表训练的不同阶段。黑色虚线是真实数据的分布,绿色的线是生成器学习到的伪造分布,蓝色的线是判别器判定为真实数据的概率,x横线代表服从分布q(x)的采样空间,z横线代表服从分布p(z)的采样空间。
GAN的训练
论文里的公式为:
x表示真实图片;
z表示G的输入;
G(z)表示G生成的图片;
D(x)表示D判断输入是否真实的概率——x是真实图片,所以D(x)越接近1越好,而D(G(z))是D判断G生成的图片是否真实的概率。
G的目的:G应该希望自己生成的图片“越真实越好”。也就是说,G希望D(G(z))尽可能得大,这时V(D, G)会变小。因此式子对于G来说是求最小(min_G);
D的目的:D的能力越强,D(x)应该越大,D(G(x))越小。这时V(D,G)会变大。因此式子对于D来说是求最大(max_D)。
在训练的过程中固定一方,更新另一方的网络权重,交替迭代。
当固定生成器G时,优化判别器D:
D的输入有真实数据x(标注为1)和G(z)(标注为0),对于真实数据,D优化自己使得自己的输出接近1,对于生成数据,D优化自己使得自己的输出接近0;
当固定判别器D时,优化生成器G:
此时输入D的G(z)标注为1,G优化自己使得D(G(z))接近1。
CGAN
CGAN是GAN的条件变体,其中生成器被指示生成具有特定特征的真实样本,而不是来自完全分布的通用样本。
CGAN通过增加额外信息y来控制生成的样本,即在输入层将输入与y信息的向量来实现。y信息的选择很灵活,可以是图片的标签获取其他信息,y可以表示为one-hot vector,也可以是图像。
DCGAN
DCGAN将G和D换成了卷积神经网络(CNN),利用CNN强大的特征提取能力来提高生成网络的学习效果。DCGAN对CNN结构做了一些改变来提高生成样本质量和收敛速度:
它优化了网络结构使得网络更容易训练,网络结构的主要改动如下:
BEGAN
传统GAN是直接拟合生成样本和真实样本之间的分布,而BEGAN用拟合损失分布的方法代替直接拟合样本分布。BEGAN用auto-encoder作为判别器,拟合auto-encoder损失的分布,这个损失的计算方法利用Wasserstein距离。
auto-encoder的主要思想就是学习一个输入输出的关系,对于真实数据使得输出尽可能和输入保持一致,对于G生成数据使得输入尽可能和输入不同。
参考资料
1)Generative Adversarial Networks;
2)Conditional Generative Adversarial Nets;
3)Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks。
4)BEGAN: Boundary Equilibrium Generative Adversarial Networks
- 简述生成式对抗网络 GAN
- 【GAN】简述生成对抗式网络
- GAN 生成式对抗网络
- 生成对抗网络GAN
- GAN生成对抗网络
- 生成对抗网络-GAN
- Gan 生成对抗网络
- [生成对抗网络] GAN
- 生成对抗网络(GAN)
- 生成式对抗网络GAN汇总
- 生成式对抗网络GAN汇总 研究进展
- 生成式对抗网络GAN汇总
- 生成对抗式网络GAN 的 loss
- GAN生成式对抗网络总结
- 到底什么是生成式对抗网络GAN?
- 生成式对抗网络(GAN)资源
- 生成式对抗网络GAN-入门篇
- 生成式对抗网络(GAN)综述
- hdu 1074 doing homework
- CF830B:Cards Sorting(思维)
- Spark随机森林算法对数据分类(一)——计算准确率和召回率
- Oh, my goddess 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 Shining Knight is the embodiment of justice an
- hadoop2.6.0在eclipse下面调试程序看不到日志的解决方法
- 【GAN】简述生成对抗式网络
- poj2151 数学+概率dp
- mapreduce--倒排索引
- 对决
- cpython编译
- CAP定理
- 木棒问题
- 纯api的netuwer,可用作window提权,用qt编写的
- Jenkins升级遇到的错