编程语言
首页 > 编程语言> > GAN算法

GAN算法

作者:互联网

生成对抗模型

论文地址

生成对抗网络(GAN)由2个重要的部分构成:
生成器(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器
判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”
主要流程:

第一阶段:固定“判别器D”,训练“生成器G”
我们使用一个还 OK 判别器,让一个“生成器G”不断生成“假数据”,然后给这个“判别器D”去判断。一开始,“生成器G”还很弱,所以很容易被揪出来。但是随着不断的训练,“生成器G”技能不断提升,最终骗过了“判别器D”。到了这个时候,“判别器D”基本属于瞎猜的状态,判断是否为假数据的概率为50%。

第二阶段:固定“生成器G”,训练“判别器D”
当通过了第一阶段,继续训练“生成器G”就没有意义了。这个时候我们固定“生成器G”,然后开始训练“判别器D”。
“判别器D”通过不断训练,提高了自己的鉴别能力,最终他可以准确的判断出所有的假图片。到了这个时候,“生成器G”已经无法骗过“判别器D”。

循环阶段一和阶段二:
通过不断的循环,“生成器G”和“判别器D”的能力都越来越强。最终我们得到了一个效果非常好的“生成器G”,我们就可以用它来生成我们想要的图片了。

GAN算法有两个特点:

总结:算法中涉及到生成模型和判别模型对抗思想,并且用到KL散度等数学知识,通过博弈来逼近最优结果。

标签:判别,训练,生成器,生成,GAN,算法
来源: https://blog.csdn.net/weixin_45746505/article/details/123642088