深度学习之 CGAN及TensorFlow 实现

本文详细介绍了CGAN(条件生成对抗网络)的概念和工作原理,以及如何使用TensorFlow通过MNIST数据集训练模型生成手写数字。文章包含CGAN与普通GAN的区别,以及训练过程中的代码解读和调试步骤,展示了条件信息如何影响生成结果。
摘要由CSDN通过智能技术生成


 本文介绍CGAN(Conditional Generative Adversarial Nets)- 条件生成对抗网络

 相关论文 https://arxiv.org/pdf/1411.1784.pdf

1、概述

 CGAN( Conditional Generative Adversarial Nets),条件生成对抗网络。条件生成对抗网络指的是在生成对抗网络中

加入条件(condition),条件的作用是监督生成对抗网络。最基本的对抗网具有以下优点:永远不需要马尔可夫链,仅使用

反向传播来获得梯度,在学习期间不需要推理,并且可以容易地将各种因素和相互作用结合到模型中。

 在无条件的生成模型中,无法控制正在生成的数据的模式。但是,通过在附加信息上调整模型,可以指导数据生成过程。

这种调节可以基于类别标签,在某些部分数据上进行修复,甚至是来自不同模态的数据。

2、生成对抗网络

 GAN(Generative Adversarial Nets)由两个“对抗”模型组成:一个捕获数据分布的生成模型G和一个判别模型D,

它估计样本来自训练数据的概率而不是生成样本的概率. G和D都可以是非线性的映射函数,例如多层感知器。

为了在数据数据x上学习生成器分布p_z(z) ,生成器建立从先前噪声分布p_z(z)到数据空间的映射函数,如G(z;θg)。

鉴别器D(x;θd)输入是真实图像或者生成图像,输出单个标量,该标量表示x来自训练数据而不是p_g的概率。

G和D都同时训练:固定判别模型 D,调整 G 的参数使得 log(1−D(G(z))的期望最小化;固定生成模型 G,调整 D 的参数

使得 logD(X)+log(1−D(G(z)))log 的期望最大化,这个优化过程归结为二元极小极大博弈(minimax two-player game)”问题:
在这里插入图片描述

3、条件生成对抗网络

 条件生成式对抗网络(CGAN)是对原始GAN的一个扩展,生成器和判别器都增加额外信息 y为条件, y可以使任意信息,

例如类别信息,或者其他模态的数据。

 如下图所示,通过将额外信息 y 输送给判别模型和生成模型,作为输入层的一部分,从而实现条件GAN。在生成模型中,

先验输入噪声 p(z) 和条件信息 y 联合组成了联合隐层表征。对抗训练

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值