最近要做有关图像生成的工作…也是小白,今天简单学习一些有关GAN的基础知识,很浅,入个门,大神勿喷。
GAN目前确实是在深度学习领域最热门,最有前景的方向之一。近几年有关于GAN的论文非常非常之多,从2016年起关于GAN的论文是爆炸性的增长。GAN的应用领域也在逐年的扩展,从图像到自然语言的处理都能看到GAN的身影
目录:
- 什么是GAN?
- GAN的主要组成/
- GAN的原理/
- GAN的原理总结/
- GAN的设计/
- GAN的应用领域/
1 什么是GAN
GAN是“生成对抗网络”(Generative Adversarial Networks)的简称,由2014年还在蒙特利尔读博士的lanGoodfellow引入深度学习领域。2016年,GAN热潮席卷AI领域*会议,从ICLR到NIPS,大量高质量论文被发表和探讨。Yann LeCun曾评价GAN是“20年来机器学习领域最酷的想法”。
生成式对抗网络(GAN, Generaitive Adversarial Networks)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。
2 GAN的主要组成
GAN主要包括了两个部分,即生成器generator 与判别器discriminator。
- 生成器主要用来学习真实图像分布从而让自身生成的图像更加真实,以骗过判别器。
- 判别器则需要对接收的图片进行真假判别。
其实,机器学习的模型可大体分为两类:生成模型(Generative Model)和判别模型(DiscriminativeModel),举个例子,判别模型就是给一张照片看看是猫还是狗,所以判别模型需要输入变量,通过某种模型来预测;而生成模型是给定某种隐含信息,来随机产生观测数据。GAN其实上就是更好的生成模型!
3 GAN的基本原理
-
在训练过程中:
生成器努力地让生成的图像更加真实,而判别器则努力地去识别出图像的真假,这个过程相当于一个二人博弈,随着时间的推移,生成器和判别器在不断地进行对抗。 -
最终的训练结果是想两个网络达到了一个动态均衡:
生成器生成的图像接近于真实图像分布,
而判别器识别不出真假图像,对于给定图像的预测为真的概率基本接近0.5(相当于随机猜测类别)。
4 GAN原理总结
对于给定的真实图片,判别器要为其打上标签1;
对于给定的生成图片,判别器要为其打上标签0;
对于生成器传给辨别器的生成图片,生成器希望辨别器为自己打上标签1。
即:
训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。
而D的目标就是尽量把G生成的图片和真实的图片分别开来。
这样,G和D构成了一个动态的“博弈过程”.
博弈的结果是什么?
在最理想的状态下,G可以生成足以“以假乱真”的图片G(z)。
对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z))= 0.5。
目的:得到了一个生成模型G,可以用来生成图片。
5 GAN的设计
GAN的设计实际上是设计两个网络(生成器网络,判别器网络)。
对于判别器网络的设计就是CNN, 判别器网络的目标就是对图像(无论是真实的图像还是生成的图像,做一个判别,最后使用一个sigmoid判别真/假)。
生成器最开始给它一个噪声,通过这个噪声来生成图像,如果你第一次接触GAN可能会感觉的疑惑(就是为什么要给一个噪声?) 这个噪声相当于给它一个初始的分布,通过这个初始的分布得到一个图像,随机的噪声会得到随机的图像。这样生成的图像是一个广泛分布的图像而不是每次生成都会固定生成一张图片。(我们想得到的一个生成网络是一个 根据我们所输入的随机分布,生成一个随机的真实的图像。)
6 GAN的应用领域:
- 图像生成
- 图像增强(模糊的图像变清晰)
- 风格化(普通的图像风格化,油画的类型,各种各样的风格)
- 艺术的图像创造
- 等等…