深度学习自学记录(5)——简单明了地实现Keras的生成对抗网络(GAN)
1、生成对抗网络(GAN)的原理
生成对抗网络(GAN)顾名思义包括两个部分:生成网络G(Generator)和判别网络D(Discriminator)。
(1)生成网络G:一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片
(2)判别网络D:一个判别网络,判别一张图片是不是“真实的”。它的输入参数一张图片x,输出是x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。
生成网络类似于一个赝品的卖家,判别网络相当于买家。卖家千方百计的制造出高质量的赝品以欺骗买家,而买家也不断学习鉴别真伪的技能,两者在博弈之间共同进步,这就是生成对抗网络的核心思想。
在最理想的状态下,生成网络可以生成足以“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。最终我们得到了一个生成式的模型G,它可以用来生成图片。
2、GAN的训练思路
DAN的训练要同时训练两个网络,我们使用的方法是:单独交替迭代训练;即在训练一个网络的时候,固定住一个网络