前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Conditional GAN

Conditional GAN

作者头像
felixzhao
发布2022-05-12 14:55:08
2520
发布2022-05-12 14:55:08
举报
文章被收录于专栏:null的专栏null的专栏

1. 概述

GAN的出现为数据生成提供了一种新的思路,以图像生成为例,在GAN框架中,不再需要其他复杂的操作,如Markov Chain等,只需要对定义好的网络进行backpropagation即可完成生成网络的训练。在原始的GAN框架中,包括了两个部分,分别为生成网络(Generator)G和判别网络(Discriminator)D ,其中生成网络(Generator)G 用于生成图片,判别网络(Discriminator)D 用于判别一张图片是否是真实的。通过不断提高生成网络G 的生成质量,最终“骗”过判别网络D ,在此过程中,判别网络D 也在不断提高自身的判别能力,通过如此的一个动态的“博弈”过程,最终,训练好的生成网络G 便可以用于生成“以假乱真”的图片。

然而在所有的过程中,无论是生成过程还是判别过程都是无任何指导的,Conditional GAN[1]提出在上述的两个过程中引入一个条件,以此指导上述的两个过程。

2. 算法原理

2.1. GAN原理回顾

在原始的GAN框架中,包括了两个部分,分别为生成网络(Generator)G 和判别网络(Discriminator)D ,其中:

  • 生成网络(Generator)G 用于生成图片,其输入是一个随机的噪声\boldsymbol{z} ,通过这个噪声生成图片,记作G\left ( \boldsymbol{z} \right )
  • 判别网络(Discriminator)D 用于判别一张图片是否是真实的,对应的,其输入是一整图片\boldsymbol{x} ,输出D\left ( \boldsymbol{x} \right ) 表示的是图片\boldsymbol{x} 为真实图片的概率

在GAN框架的训练过程中,希望生成网络G 生成的图片尽量真实,能够欺骗过判别网络D ;而对于判别网络D ,希望能够把G 生成的图片从真实图片中区分开。这样的一个过程就构成了一个动态的“博弈”。最终,GAN希望能够使得训练好的生成网络G 生成的图片能够以假乱真,即对于判别网络D 来说,无法判断G 生成的网络是不是真实的。此时,训练好的生成网络G 便可以用于生成“以假乱真”的图片。

GAN的价值函数:

\underset{G}{min}\; \underset{D}{max}\; V\left ( D,G \right )=\mathbb{E}_{\boldsymbol{x}\sim p_{data}\left ( \boldsymbol{x} \right )}\left [ log\; D\left ( \boldsymbol{x} \right ) \right ]+\mathbb{E}_{\boldsymbol{z}\sim p_{\boldsymbol{z}}\left ( \boldsymbol{z} \right )}\left [ log\; D\left ( 1-D\left ( G\left ( \boldsymbol{z} \right ) \right ) \right ) \right ]

GAN的训练过程如下所示:

在这里插入图片描述
在这里插入图片描述

2.2. Conditional GAN

Conditional GAN的思想也比较简单,在GAN的基础上增加了条件输入,在生成网络和判别网络中分别加入一个条件输入\boldsymbol{y}\boldsymbol{y} 可以为任何的额外信息,分别与原始的\boldsymbol{x}\boldsymbol{z} 这两个输入concat在一起,如下图所示:

在这里插入图片描述
在这里插入图片描述

Conditional GAN的价值函数:

\underset{G}{min}\; \underset{D}{max}\; V\left ( D,G \right )\approx \sum_{i=1}^{m}\left [ log\; D\left ( \boldsymbol{x}^{\left ( i \right )}\mid \boldsymbol{y}^{\left ( i \right )} \right ) \right ]+\sum_{i=1}^{m}\left [ log\; \left ( 1-D\left ( G\left ( \boldsymbol{z}^{\left ( i \right )}\mid \boldsymbol{y}^{\left ( i \right )} \right ) \right ) \right ) \right ]

简化后为:

\underset{G}{min}\; \underset{D}{max}\; V\left ( D,G \right )\approx \sum_{i=1}^{m}\left [ log\; D\left ( \boldsymbol{x}^{\left ( i \right )}\mid \boldsymbol{y}^{\left ( i \right )} \right ) + log\; \left ( 1-D\left ( G\left ( \boldsymbol{z}^{\left ( i \right )}\mid \boldsymbol{y}^{\left ( i \right )} \right ) \right ) \right ) \right ]

训练过程中只需修改上述的梯度公式,其余与GAN的训练一致。

3. 总结

Conditional GAN的思路相对于传统的GAN来说比较直接,在生成网络和判别网络的输入中增加一些额外的信息,用于指导整个过程的训练。

参考文献

[1] Mirza M, Osindero S. Conditional generative adversarial nets[J]. arXiv preprint arXiv:1411.1784, 2014.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 概述
  • 2. 算法原理
    • 2.1. GAN原理回顾
      • 2.2. Conditional GAN
      • 3. 总结
      • 参考文献
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档