gan算法原理
简单来说,gan算法中存在着两个网络,一个是判别网路D,一个是生成网路G。对于判别网路D来说,他所要起的作用是分辨一张图片是真的图片还是假的图片,其实它本质上就是一个由多成BP网络训练二程的二分类器,它要尽可能的将假的图片识别出来。而对于生成网路而言,它的任务就是尽可能的生成以假乱真的图片,它的本质也是一个BP神经网络。
gan的损失函数
从上图中我们可以知道,对于判别模型的损失函数而言,公式的前半部分是计算判断真实图片带来的损失,后半部分是计算对生成图片的判断带来的损失。对于生成模型而言,只要生成被判别1的数据,损失就会最小。由公式可以知道,当我们将真实图片值判断为1,并且将生成图片的值判断为1时,整个损失函数的值是最小的。
gan网络的训练过程
在实际的项目当中,判别网路并不是的直接初始化为随机数的。判别网络需要提前预选联。找些真实的图片和随机生成的数据进行预训练。然后将按照下面的步骤进行训练:
DCGAN的原理
判别网络由原来普通的神经网络变成了卷积网络。
生成网络由原来的卷积网络变成逆向的卷积神经网络
下面还有些细节是需要注意的: