GAN生成对抗神经网络原理(一)

1.基本原理(此处以生成图片为例进行说明)   

      假设有2个网格,G(Generator)和D(Discriminator),功能分别是:  

  G:生成图片的网格      接收一个随机的噪声Z,通过这个噪声生成图片,记作G(Z);   

  D:判别网格,判别一张图片是不是“真实的”     

它的输入参数是x,x代表一张图片,输出D(X)代表x真实图片的概率;

      若为1,代表100%是真实的图片,若为0,代表不可能是真实的图片。


2.在训练过程中,**生成网络G的目标是**尽量生成真实的图片去欺骗判别网格D;  

**D的目标是**尽量把G生成的图片和真是图片分别开来。


这样,G和D就构成了一个动态的“博弈过程”。


3.最理想的结果:G可以生成足以“以假乱真”的图片G(z);D满意判定G生成的图片究竟是不是真实的。D(G(Z))=0.5。这样我们的目的就达成了:得到一个生成式的模型G,可以用来生成图片。


4.数学公式:见arxiv.org/abs/1406.2661.GAN第一篇paper:lan Goodfellow的Generative Adversarial Networks


5.算法:用随机梯度下降法训练D,G。具体也在上述文章里。


6.DCGAN原理介绍:

深度学习中对图像处理应用最好的模型是CNN,如何江CNN和GAN结合?答案就是DCGAN.

其原理和GAN一样。只是把上述G和D换成了两个卷积神经网络CNN。但不是直接换就可以了,它对于卷积神经网络的结构做了一些改变,以提高样本的质量和收敛的速度。这些改变有:

a.取消pooling层。G网络中使用转置卷积进行上采样,D网络中用加入stride的卷积代替pooling。

b.在D,G中均使用batch normalization

c.去掉FC层,使网络变成全卷积网络

d.G网络中使用ReLU作为激活函数,最后一层手那个用tanh

e.D网络中使用LeakyReLU作为激活函数



你可能感兴趣的:(深度学习)