生成对抗网络(二)——cGAN

cGAN = conditional GAN
也是最基础的GAN模型,和GAN原文同时发表在NIPS2014上面。事实上,cGAN在GAN的基础上并没有做很大的改动,下文会主要分析一下cGAN的改动。


先按照国际惯例,放论文链接:

Conditional Generative Adversarial Nets

~~~
如果还不熟悉GAN算法的,可以看我的上一篇博文。
前面说到GAN的缺点:

在训练判别器D的时候,给的label只有“真”和“假”。这样一来有个什么问题呢,如果训练数据之间的差异大的话,那生成的数据可能是两种以上类别的混合物;举个栗子:用MNIST数据集训练GAN的时候,对于GAN而言,只有真图(是数字)和假图(不是数字)的区分。但事实上,就算同样是数字,也有0-9十种分类,不区分细分类的话,GAN很容易生成几个数字之间的混合物,像0像6像8像9,可就不是一个对的数字。

而cGAN的出现,解决了上面的这样一个问题。


这里写图片描述
基本的GAN流程如上图,cGAN的做法就是把监督信息加入原来的GAN。如下图:
这里写图片描述

这里的监督信息就是label值,也以一种很简单的方式(one-hot编码)加入进去。这样一来,GAN系统的生成品就更具有导向性了,不会笼统地把10个相差甚远的数字分作一类。
再举MNIST为栗:训练生成“2”时,加入的y = [0,0,1,0,0,0,0,0,0,0]。D就会按照“2”的样子给G生成的图片打分,G也会按照“2”的样子去生成。这样G和D都具有十分类能力了。


总结

cGAN相比GAN而言,做出的改进并不是什么革命性的改进,而是主流AI研究方法的顺水推舟而已(用监督信息改进无监督系统,效果肯定好一些)。然而,cGAN却获得了很大的成功,成为了最基本的GAN算法之一,想想这种基础算法在之后的GAN研究领域会被引用多少次。cGAN和GAN在同一年的NIPS发表,说明cGAN研究者第一时间就搞懂并掌握了GAN,新出来的基础算法可塑性肯定很强。在这里也得到一个启示,一定要追论文,追最新的研究方向,这样才好捡漏。(当然,还得算法基础扎实)

猜你喜欢

转载自blog.csdn.net/leviopku/article/details/81322276
今日推荐