GAN的相关理解

GAN:

生成对抗神经网络(Generative Adversarial Networks

一种无监督学习模型,模型通过框架中至少两个模型:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。一般我们用神经网络构造上述两个模块。

生成模型和判别模型的区别:

举例说明,判别模型是给一张图,判断图里是猫还是狗。生成模型是给一堆猫的图,生成一张新的猫的图。

GAN的原理:

这里以生成图片为例进行说明,假设我们有两个网络,G(Generator)和D(Discriminator)。正如它的名字所暗示的那样,它们的功能分别是:G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。在训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。这样,G和D构成了一个动态的“博弈过程”。最后博弈的结果是什么?在最理想的状态下,G可以生成足以“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。这样我们的目的就达成了:我们得到了一个生成式的模型G,它可以用来生成图片。

在训练的过程中固定一方,更新另一方的网络权重,交替迭代,在这个过程中,双方都极力优化自己的网络,从而形成竞争对抗,直到双方达到一个动态的平衡(纳什均衡),此时生成模型 G 恢复了训练数据的分布(造出了和真实数据一模一样的样本),判别模型再也判别不出来结果,准确率为 50%,约等于乱猜。

猜你喜欢

转载自blog.csdn.net/xylittlework/article/details/79885476
GAN