GAN论文阅读——CGAN

article/2025/11/5 20:29:04

论文标题:Conditional Generative Adversarial Nets
论文链接:https://arxiv.org/pdf/1411.1784.pdf
参考资料:http://blog.csdn.net/solomon1558/article/details/52555083


一、CGAN的思想

在原始GAN学习笔记中,我们提到过,与其他生成式模型相比,GAN这种竞争的方式不再要求一个假设的数据分布,即不需要formulate p(x),而是使用一种分布直接进行采样sampling,从而真正达到理论上可以完全逼近真实数据,这也是GAN最大的优势。然而,这种不需要预先建模的方法缺点是太过自由了,对于较大的图片,较多的 pixel的情形,基于简单 GAN 的方式就不太可控了。为了解决GAN太过自由这个问题,一个很自然的想法是给GAN加一些约束,于是便有了Conditional Generative Adversarial Nets(CGAN)【Mirza M, Osindero S. Conditional】。

这项工作提出了一种带条件约束的GAN,在生成模型(D)和判别模型(G)的建模中均引入条件变量y(conditional variable y),使用额外信息y对模型增加条件,可以指导数据生成过程。这些条件变量y可以基于多种信息,例如类别标签,用于图像修复的部分数据[2],来自不同模态(modality)的数据。如果条件变量y是类别标签,可以看做CGAN 是把纯无监督的 GAN 变成有监督的模型的一种改进。这个简单直接的改进被证明非常有效,并广泛用于后续的相关工作中[3,4]。Mehdi Mirza et al. 的工作是在MNIST数据集上以类别标签为条件变量,生成指定类别的图像。作者还探索了CGAN在用于图像自动标注的多模态学习上的应用,在MIR Flickr25000数据集上,以图像特征为条件变量,生成该图像的tag的词向量。


二、Conditional Adversarial Nets

2.1 Generative Adversarial Nets

Generative Adversarial Nets是由Goodfellow[5]提出的一种训练生成式模型的新方法,包含了两个“对抗”的模型:生成模型(G)用于捕捉数据分布,判别模型(D)用于估计一个样本来自与真实数据而非生成样本的概率。为了学习在真实数据集x上的生成分布 Pg ,生成模型 G 构建一个从先验分布 Pz(z) 到数据空间的映射函数 G(z;θg) 。 判别模型 D 的输入是真实图像或者生成图像, D(x;θd) 输出一个标量,表示输入样本来自训练样本(而非生成样本)的概率。

模型 G 和 D 同时训练:固定判别模型 D,调整 G 的参数使得 log(1D(G(z)) 的期望最小化;固定生成模型 G,调整 D 的参数使得 logD(X)+log(1D(G(z))) 的期望最大化。这个优化过程可以归结为一个“二元极小极大博弈(minimax two-player game)”问题:

2.2 Conditional Adversarial Nets

条件生成式对抗网络(CGAN)是对原始GAN的一个扩展,生成器和判别器都增加额外信息 y 为条件, y 可以使任意信息,例如类别信息,或者其他模态的数据。如 Figure 1 所示,通过将额外信息 y 输送给判别模型和生成模型,作为输入层的一部分,从而实现条件GAN。在生成模型中,先验输入噪声 p(z) 和条件信息 y <script type="math/tex" id="MathJax-Element-11">y</script> 联合组成了联合隐层表征。对抗训练框架在隐层表征的组成方式方面相当地灵活。类似地,条件 GAN 的目标函数是带有条件概率的二人极小极大值博弈(two-player minimax game ):

CGAN的网络结构:


三、实验

3.1 Mnist数据集

在MNIST上以类别标签为条件(one-hot编码)训练条件GAN,可以根据标签条件信息,生成对应的数字。生成模型的输入是100维服从均匀分布的噪声向量,条件变量y是类别标签的one hot编码。噪声z和标签y分别映射到隐层(200和1000个单元),在映射到第二层前,联合所有单元。最终有一个sigmoid生成模型的输出(784维),即28*28的单通道图像。

判别模型的输入是784维的图像数据和条件变量y(类别标签的one hot编码),输出是该样本来自训练集的概率。

3.2 多模态学习用于图像自动标注

自动标注图像:automated tagging of images,使用多标签预测。使用条件GAN生成tag-vector在图像特征条件上的分布。数据集: MIR Flickr 25,000 dataset ,语言模型:训练一个skip-gram模型,带有一个200维的词向量。
【生成模型输入/输出】
噪声数据 100维=>500维度
图像特征4096维=>2000维
这些单元全都联合地映射到200维的线性层,
输出生成的词向量 (200维的词向量)
【判别模型的输入/输出】
输入:
500维词向量;
1200维的图像特征
???生成式和判别式的条件输入y,维度不一样???一个是4096维的图像特征,另一个是?维的?向量 _???
如图2所示,第一列是原始像,第二列是用户标注的tags ,第三列是生成模型G生成的tags。


四、Future works

  1. 提出更复杂的方法,探索CGAN的细节和详细地分析它们的性能和特性。
  2. 当前生成的每个tag是相互独立的,没有体现更丰富的信息。
  3. 另一个遗留下的方向是构建一个联合训练的调度方法去学校language model

Reference

[1] Mirza M, Osindero S. Conditional Generative Adversarial Nets[J]. Computer Science, 2014:2672-2680.

[2] Goodfellow, I., Mirza, M., Courville, A., and Bengio, Y. (2013a). Multi-prediction deep boltzmann machines. In Advances in Neural Information Processing Systems, pages 548–556.

[3] Denton E L, Chintala S, Fergus R. Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks[C]//Advances in neural information processing systems. 2015: 1486-1494.

[4] Radford A, Metz L, Chintala S. Unsupervised representation learning with deep convolutional generative adversarial networks[J]. arXiv preprint arXiv:1511.06434, 2015.

[5] Goodfellow Ian, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Advances in Neural Information Processing Systems. 2014: 2672-2680.


http://chatgpt.dhexx.cn/article/NISxwIFQ.shtml

相关文章

PyTorch随笔 - 生成对抗网络的改进cGAN和LSGAN

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/129939225 本文介绍GAN的两个常见改进&#xff0c;cGAN和LSGAN&#xff0c;两者一般结合使用。 cGAN: Conditional Generative Adversa…

CGAN实现过程

本文目录 一、原理二、参数初始化1. G的输入2. D的输入3. 模型参数初始化4. 测试噪声 三、执行过程四、测试 本文用MNIST数据集进行训练&#xff0c;并用图解的方法展示了CGAN与GAN中输入的区别&#xff0c;帮助理解CGAN的运行过程 一、原理 如下图所示&#xff0c;我们在输入…

CGAN

CGAN 生成符合特定描述的输出&#xff0c; 如图&#xff1a;给定描述&#xff0c;生成相应内容图片 CGAN中的negetive情况包含两种&#xff0c;&#xff08;正确的描述&#xff0c;不清晰的图片&#xff09;和&#xff08;不正确的描述&#xff0c;清晰的图片&#xff09;&a…

CGAN 简介与代码实战

1.介绍 原始GAN&#xff08;GAN 简介与代码实战_天竺街潜水的八角的博客-CSDN博客&#xff09;在理论上可以完全逼近真实数据&#xff0c;但它的可控性不强&#xff08;生成小图片还行&#xff0c;生成的大图片可能是不合逻辑的&#xff09;&#xff0c;因此需要对gan加一些约…

CGAN原理分析

1、CGAN原理分析 1.1 网络结构 CGAN是在GAN基础上做的一种改进&#xff0c;通过给原始GAN的生成器Generator&#xff08;下文简记为G&#xff09;和判别器Discriminator&#xff08;下文简记为D&#xff09;添加额外的条件信息y&#xff0c;实现条件生成模型。CGAN原文中作者…

CGAN理论讲解及代码实现

目录 1.原始GAN的缺点 2.CGAN中心思想 3.原始GAN和CGAN的区别 4.CGAN代码实现 5.运行结果 6.CGAN缺陷 1.原始GAN的缺点 生成的图像是随机的&#xff0c;不可预测的&#xff0c;无法控制网络输出特定的图片&#xff0c;生成目标不明确&#xff0c;可控性不强。 针对原始…

GANs系列:CGAN(条件GAN)原理简介以及项目代码实现

一、原始GAN的缺点 生成的图像是随机的&#xff0c;不可预测的&#xff0c;无法控制网络输出特定的图片&#xff0c;生成目标不明确&#xff0c;可控性不强。针对原始GAN不能生成具有特定属性的图片的问题&#xff0c; Mehdi Mirza等人提出了cGAN&#xff0c;其核心在于将属性信…

解决关于Navicat破解安装过程中出现“rsa public key not find”

解决关于Navicat破解安装过程中出现“rsa public key not find” 问题描述解决办法 问题描述 出现“rsa public key not find”的输出框 解决办法 首先先安装Navicat。安装后先不要运行 打开 然后点击 如果出现 则是对的 如果出现这个&#xff1a; 那就请你找到在本地的na…

navicat安装与激活

原文网址&#xff1a;https://www.jianshu.com/p/5f693b4c9468?mTypeGroup 一、Navicat Premium 12下载 Navicat Premium 12是一套数据库开发管理工具&#xff0c;支持连接 MySQL、Oracle等多种数据库&#xff0c;可以快速轻松地创建、管理和维护数据库。 Navicat Premium 12简…

Mac上安装 Navicat

1.下载安装包 Mac版 Navicat Premium 12 v12.0.23.0 官网下载地址&#xff1a; 英文64位 http://download.navicat.com/download/navicat120_premium_en.dmg 中文简体64位 http://download.navicat.com/download/navicat120_premium_cs.dmg 中文简体安装包&#xff1a;链接:h…

Navicat Premium 12.1.21 最新版激活工具及方法

At The Beginning ****** Sincerely regards to the author of the original work ******* 本帖持续更新 Last updated at 21st Aug 2019 Steps navicat_premium原版安装包 官网下载地址&#xff1a;https://www.navicat.com.cn/download/navicat-premium 注册工具下载 git…

Navicat Premium 12.1.16.0安装与激活

一、Navicat Premium 12下载 Navicat Premium 12简体中文下载&#xff1b; 提取码&#xff1a;cgv4 二、Navicat Premium 12安装 双击安装&#xff0c;点击下一步&#xff1a; 同意协议&#xff0c;点击下一步&#xff1a; 选择安装位置&#xff08;可默认&#xff09;&…

Navicat Premium安装和激活

前言 Navicat Premium这个软件是非常的好用&#xff0c;这个软件中包含mysql,SQL Server等等的数据库&#xff0c;受到广大编程爱好者的欢迎&#xff0c;废话不多说&#xff0c;下面就直接进入主题&#xff0c;马上就是Navicat Premium安装和激活的环节。 &#xff08;1&…

Navicat Premium 12破解激活

下载Navicat Premium 12并安装&#xff1b; 蓝奏云下载&#xff1a;Navicat Premium 12注册机 重要提示&#xff1a;该注册机来源于DeltaFoX。一般来说&#xff0c;由于注册机会修改.exe文件或.dll文件&#xff0c;加壳并且没有数字签名&#xff0c;所以杀毒软件会报毒。如需…

Navicat v15

特别注意: 1.断网,否则在安装过程中会失败2.关闭防火墙及杀毒软件   3.选择对应版本:mysql版就选择mysql 出现如下情况&#xff1a; 就卸载,删除注册表,重新安装,出现rsa public key not find的错误 以及 generate first a serial 错误都也是如此删除注册表的办法打开文件&am…

关于Navicat 数据库一直激活不成功的解决方法

首先激活时一直出现 rsa public key not found&#xff0c;说明获取不到激活码&#xff0c;此时就需要检查 - 在Patch的时候是不是没成功 使用破解软件如果出现说已经patch过了的时候赶紧卸载重装&#xff01;&#xff01; - 在激活的时候是不是没有断开网络 解决办法&#…

Navicat安装激活

有条件的同学麻烦不要使用下面的激活步骤&#xff0c;仅供个人学习使用 。。。。。。 。。。。。。 。。。。。。 。。。。。。 一、去官网下载最新Navicat软件https://www.navicat.com.cn/download/navicat-premium 二、去下载激活脚本https://github.com/DoubleLabyrinth/nav…

Navicat 12.1 Macos 激活指南

Navicat 12.1 Navicat从版本11开始使用&#xff0c;一直在macos上表现稳定&#xff0c;速度还快&#xff0c;操作也简单&#xff0c;比Mysql workbench好用多了&#xff0c; workbench总是会发生程序崩溃&#xff0c;修改数据还要点Apply键。对开发来说很不好用. 以下是整个过…

激活navicat提示rsa public key not find的问题

操作顺序先不打开Navicat&#xff0c;注机patch&#xff0c;然后再开Navicat注册 卸载原来的navicat重新安装再次点击patch选择路径就行了 还不行就记得,右键激活工具以管理员权限打开激活再次patch选择navicat的安装好的navicat.exe文件即可

navicat premiun 12激活

注册机&#xff1a; https://download.csdn.net/download/qq_31967985/10545930 步骤&#xff1a; 以管理员身份运行此注册机&#xff1a; 运行注册机 打开注册机后&#xff0c;1) Patch勾选Backup、Host和Navicat v12&#xff0c;然后点击Patch按钮&#xff1a; 默认勾选 …