InfoGAN
概
既然都能生成图片了, 那至少得能够抓住数据的特征信息, 解耦.
主要内容
一些GAN的输入会包括\((z, c)\), 其中\(z\)是噪声, 而\(c\)是一些别的信息, 比如标签信息, 一个很自然的问题是, 怎么保证GAN会利用这部分信息呢? 换言之, 怎么保证生成器生成的图片\(G(z, c)\)与\(c\)有不可否认的关联呢?
衡量两个随机变量关联性的指标, 经典的便是互信息
\]
在这个问题里就是
\]
直接估计互信息是很困难的, 利用变分方法可以得到一个有效的下界(这也是VAE的灵魂):
I(c,G(z,c)) & = \mathbb{E}_{x \sim P_G} \mathbb{E}_{P(c|x)} \log P(c|x) + H(c) \\
& = \mathbb{E}_{x \sim P_G} [\mathrm{KL}(P(c|x) \| Q(c|x)) + \mathbb{E}_{P(c|x)}\log Q(c|x)] + H(c) \\
& \ge \mathbb{E}_{x \sim P_G}\mathbb{E}_{P(c|x)}\log Q(c|x) + H(c)=: L_{I}(G, Q).
\end{array}
\]
其中\(Q\)是我们用来近似\(P(c|x)\)的. 上述还是存在一个问题, 即\(P(c|x)\)依然无法处理, 不过注意到
\]
我们可以给出一个合理的先验分布.
当\(c \in \mathcal{C}\)是离散的时候, 令\(Q\)的输出向量的长度为\(|\mathcal{C}|\), 可直接令该向量的softmax后的向量为概率向量;
当\(c\)是连续的时候, 倘若\(x=G(z, c^*)\), 则可以假设\(Q(c|x) \sim \mathcal{N}(c^*, \sigma^2 I)\), 此时
\]
最后的损失便为
\]
其中\(V(D, G)\)是普通的GAN的损失.
看一些InfoGAN的实现: \(z\)服从[0, 1]均匀分布, 类别标签服从均匀分布(\(1/K\)), 其他的用于描述角度宽度的\(c\)服从[-1, 1]的均匀分布.
实际上, 应该还是有一个超参数\(\sigma^2\)的, 但是当我们假设其与\(x\)无关的时候, 在损失部分其为一常数, 所以就不用管了(这和VAE在decoder部分的处理也是一致的).
估计是没弄好啊, 这没看出变化来.

InfoGAN的更多相关文章
- 学习笔记GAN003:GAN、DCGAN、CGAN、InfoGAN
GAN应用集中在图像生成,NLP.Robt Learning也有拓展.类似于NLP中的Actor-Critic. https://arxiv.org/pdf/1610.01945.pdf . Gen ...
- 深度学习-InfoGAN论文理解笔记
在弄清楚InfoGAN之前,可以先理解一下变分推断目的以及在概率论中的应用与ELBO是什么,以及KL散度 https://blog.csdn.net/qy20115549/article/detail ...
- InfoGan笔记
InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets ...
- 0.读书笔记之The major advancements in Deep Learning in 2016
The major advancements in Deep Learning in 2016 地址:https://tryolabs.com/blog/2016/12/06/major-advanc ...
- 深度|OpenAI 首批研究成果聚焦无监督学习,生成模型如何高效的理解世界(附论文)
本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载,原文. 选自 Open AI 作者:ANDREJ KARPATHY, PIETER ABBEEL, GREG BRO ...
- (转) The major advancements in Deep Learning in 2016
The major advancements in Deep Learning in 2016 Pablo Tue, Dec 6, 2016 in MACHINE LEARNING DEEP LEAR ...
- [译]2016年深度学习的主要进展(译自:The Major Advancements in Deep Learning in 2016)
译自:The Major Advancements in Deep Learning in 2016 建议阅读时间:10分钟 https://tryolabs.com/blog/2016/12/06/ ...
- 一些相关的github
https://github.com/LTS4/DeepFool 貌似是说可以愚弄深度神经网络? https://github.com/tflearn/tflearn TF学习指南 http://gi ...
- (转)【重磅】无监督学习生成式对抗网络突破,OpenAI 5大项目落地
[重磅]无监督学习生成式对抗网络突破,OpenAI 5大项目落地 [新智元导读]"生成对抗网络是切片面包发明以来最令人激动的事情!"LeCun前不久在Quroa答问时毫不加掩饰对生 ...
随机推荐
- pymongdb入门
Pymongo入门 安装 pip install pymongo 连接 实际就是实例化一个客户端对象,然后客户端对象中指定一个库作为库对象,库对象中的集合对象就是之后常用来执行操作的对象 1 ''' ...
- 零基础学习java------day2------关键字、标志符、常量、进制键的转换、java中的数据类型、强制类型转换的格式
今日内容要求: 1. 了解关键字的概念及特点,了解保留字 2. 熟练掌握标识符的含义,特点,可使用字符及注意事项 3. 了解常量的概念,进制,进制之间相互转换,了解有符号标识法的运算方式 4. 掌握变 ...
- json模块中函数的用法
json模块中主要使用四个函数:json.load(),json.dump(),json.loads(),json.dumps() json.loads()是将一个json编码的字符串转换成pytho ...
- Ubantu nodejs卸载与二进制安装
#apt-get 卸载 sudo apt-get remove --purge npm sudo apt-get remove --purge nodejs sudo apt-get remove - ...
- 【Netty】最透彻的Netty原理架构解析
这可能是目前最透彻的Netty原理架构解析 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件.整体架构,知其然且知其所以然,希望给大家在实际开发实践.学习开源项目方面提供参考. ...
- oracle 锁查询
--v$lock中 id1 在锁模式是 TX 时保存的是 实物id 的前2段SELECT * FROM (SELECT s.SID, TRUNC(id1 / power(2, 16)) rbs, bi ...
- clickhouse安装数据导入及查询测试
官网 https://clickhouse.tech/ quick start ubantu wget https://repo.yandex.ru/clickhouse/deb/lts/main/c ...
- 【密码学】AES简单学习
欧拉函数 公式 φ(n)=(p-1)(q-1) 小于x并且和x互质的数的个数 相关概念 因数:a*b=c 那么就称 a.b 是 c 的因数 素数:一个数如果除了1与它本身之外没有其他的因数,那么 ...
- 周期性任务(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 话说录入任务信息是件体力活,每个任务都是要一个字一个字码出来滴.要说一个项目文件,任务内容是主体,所以这作为体力活也不冤枉 ...
- Python3的数据类型
不可变类型:Number(数值,包含Bool类型).String(字符串).Tuple(元组) 可变类型:List(列表).Dict(字典).Set(集合) Bool不再单独存在,属于Number数值 ...