Conditional Generative Adversarial Networks(CGAN)笔记

1.概述

CGAN即条件对抗网络。GAN可以学习到训练样本的分布,从而生成新的数据。GAN虽然能生成新的数据,但是无法确切的控制新样本的类型。比如手写数字集,我们无法通过GAN来指定要生成的具体数字。条件对抗网络就是为了解决这个问题。

2. 理解CGAN

  1. 下面通过GAN 和CGAN的输入输出对比来理解CGAN.
    GAN:
    生成器G, 输入一个噪声z, 输入一个图像G(Z)
    判别器D, 输入一个图片x,输出一个图像是真实图片的概率(D(x)),x是真实样本或生成样本
    损失函数: V(D, G) = log(D(x)) + log((1- D(G(z)))) , 这里仅x是真实样本, D(z)是生成样本
    CGAN:
    生成器G, 输入一个噪声z,一个条件y, 输出符合条件y的图像(G(z/y))
    判别器D,输入一张图片x, 一个条件y, 输出x,在条件y下是真实图像的概率D(x/y).x是真实样本或生成样本
    损失函数: V(D, G) = log(D(x/y)) + log((1- D(G(z/y))))这里x仅是真实样本, D(z/y)是生成样本
    条件y就是希望生成的标签,因此生成器必须要生成和标签匹配的样本, 而判别器要做的不仅是判段图片是否是真实图片,还要判读图像和条件是否匹配。
    所以在训练完之后,可以通过标签和噪声来使G生成指定的数据样本!
  2. CGAN基本结构图解
    图片来自原论文,相信看完2.1之后这幅结构图很好理解了

猜你喜欢

转载自blog.csdn.net/qq_41559533/article/details/83785362