《Conditional Generative Adversarial Nets》论文解析

最近看了下deepnude的原理,其git上说的是使用了pixel2pixel技术,也就是说是这一篇:

《Image-to-Image Translation with Conditional Adversarial Networks》

这是加里福利亚大学在CVPR 2017上发表的一篇论文,讲的是如何用条件生成对抗网络实现图像到图像的转换任务。 
  > 原文链接:https://arxiv.org/abs/1611.07004 
  > 论文主页:https://phillipi.github.io/pix2pix/,其中包含了PyTorch、Tensorflow等主流框架的代码实现

 

所以我看了眼这篇文章,发现这篇文章其原理是由CGAN启发的,所以我们今天来看看CGAN是怎么一回事。

CGAN(条件GAN)全名:《Conditional Generative Adversarial Nets》

CGAN的论文网址请移步:https://arxiv.org/pdf/1411.1784.pdf

 

首先简要介绍一下GAN,具体介绍请移步:https://blog.csdn.net/wenqiwenqi123/article/details/86178376

GAN主要包括两个网络,生成器和判别器,生成器的目的就是将随机输入的高斯噪声映射成图像(“假图”),判别器则是判断输入图像是否来自生成器。换句话说就是生成器努力蒙蔽判别器,而判别器努力不被生成器蒙蔽。最优结果就是判别器最终的判别概率为0.5,无法分辨出哪张图是真实的哪张图是生成器生成的。

生成器为G,判别器为D。假设真实数据为x,生成器输入的噪声分布为,那么生成器生成的图为,数据在判别器上的结果为

那么GAN的目标函数如下:

 

说完GAN,开始说CGAN:原始的GAN的生成器只能根据随机噪声进行生成图像,至于这个图像是什么(即标签是什么我们无从得知),判别器也只能接收图像输入进行判别是否图像来使生成器。因此CGAN的主要贡献就是在原始GAN的生成器与判别器中的输入中加入额外信息。额外信可以是任何信息,例如标签。因此CGAN的提出使得GAN可以利用图像与对应的标签进行训练,并在测试阶段 利用给定标签生成特定图像。

在CGAN的论文中,网络架构使用的MLP(全连接网络)。在CGAN中的生成器,我们给定一个输入噪声和额外信息,之后将两者通过全连接层连接到一起作为隐藏层输入。同样地,在判别器中输入图像和 额外信息也将连接到一起作为隐藏层输入。CGAN的网络架构图如下所示:

 

那么,CGAN的目标函数可以表述成如下形式:

下面是CGAN论文中生成的手写数字图像的结果,每一行代表有一个标签,例如第一行代表标签为0的图片。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章