GAN的理论 Theory behind GAN
接下来,先放结论: maximum likelihood estimation 就等价于 minimize KL Divergence

重要假设是,D(x) 可以是任意函数(NN拟合的理想情况),那么对于某一个 x ,都可以找一个 D(x) 令 V(G, D) 最大。V 对 D 求梯度后令其为0,得到极大值点 D(x) = P_data(x) / ( P_data(x) + P_G(x) )

再把 D* 代入 V(G, D) 中,就得到了 maxD V(G, D) = V(G, D*) 。然后把log里面的分母除以2,就能提出来两个 -log2

提出来常数项 -2log2 之后,可以发现后面剩下的部分就是两倍的JS散度。因为 JS散度定义为 JSD(P || Q) = KL(P || M) /2 = KL(Q || M) /2,其中 M = (P + Q) / 2

到这里就比较清楚了,接下来就要找一个 G ,最小化 JSD(P_data || P_G) 。举个例子,假设只有3个 G 可以选,那么先对每个固定的 G 找 V(G, D*),然后找一个 Gi 令 V(Gi, D*) 最小,下图所示显然应该选 G3。

对应 GAN 的训练过程,总结一下:

对于 G 的训练,就是要在固定刚才找到的最好的 D 之后,最小化 L(G, D)


这里有个疑问,L(G) 中有 max 函数,能够求梯度吗? —— 可以,分段求(回忆一下 maxout network)

还存在别的问题吗?

回顾一下整个 GAN 的训练流程和实际做法:

这里面还有个技巧,实际上训练 G 的目标函数可以不跟上面的公式一模一样,因为原来的式子会导致起始的时候梯度很小、更新的会很慢

实际的训练过程中,真的会导致 D 最后训练得如下图所示吗(完全不能做判别)?

我自己觉得不会。。。因为实际的训练不会这么理想,本身就有太多假设和近似在里面。
GAN 的一般框架:fGAN
如何把不同的 f-divergence 应用到 GAN 中。 f-divergence 的定义:

满足一些性质:当 p(x) = q(x),Df (P || Q) = 0;并且 Df (P || Q) >= 0

一些常见的 f-divergence 和对应的 f 函数:

任意一个凸函数 f 都有一个共轭函数 f*,满足

求解方式如下图所示,穷举所有的 x,所有的直线 xt-f(x) 求包络线就行了

回到 Df (P || Q) 的表达式,f 的自变量是 p(x) /q(x),代入。本来要穷举所有的 t 让后面的项最大,现在就找一个 D(更新 D 的参数),令 D(x) = t 使得后面的项最大。

其中,由于 D 的拟合能力有限,所以只能得到一个下界

所以,把积分写成对分布求期望

这就是把不同的 f-divergence 应用到 GAN 中的目标函数了

这样做是要解决什么问题? —— Mode Collapse、Mode Dropping
生成数据的模式太集中
Mode Collapse:

Mode Dropping:

这可能是散度的选择导致的,所以就多一些可能的 f-divergence 来选择,然后 ensemble 一下。(不过其实已经有更好的解决方案了)

GAN的理论 Theory behind GAN的更多相关文章
- GAN笔记——理论与实现
GAN这一概念是由Ian Goodfellow于2014年提出,并迅速成为了非常火热的研究话题,GAN的变种更是有上千种,深度学习先驱之一的Yann LeCun就曾说,"GAN及其变种是数十 ...
- GAN实战笔记——第一章GAN简介
GAN简介 一.什么是GAN GAN是一类由两个同时训练的模型组成的机器学习技术:一个是生成器,训练其生成伪数据:另一个是鉴别器,训练其从真实数据中识别伪数据. 生成(generative)一词预示着 ...
- (转) GAN论文整理
本文转自:http://www.jianshu.com/p/2acb804dd811 GAN论文整理 作者 FinlayLiu 已关注 2016.11.09 13:21 字数 1551 阅读 1263 ...
- 生成式对抗网络(GAN)学习笔记
图像识别和自然语言处理是目前应用极为广泛的AI技术,这些技术不管是速度还是准确度都已经达到了相当的高度,具体应用例如智能手机的人脸解锁.内置的语音助手.这些技术的实现和发展都离不开神经网络,可是传统的 ...
- [ZZ] Valse 2017 | 生成对抗网络(GAN)研究年度进展评述
Valse 2017 | 生成对抗网络(GAN)研究年度进展评述 https://www.leiphone.com/news/201704/fcG0rTSZWqgI31eY.html?viewType ...
- 深度学习新星:GAN的基本原理、应用和走向
深度学习新星:GAN的基本原理.应用和走向 (本文转自雷锋网,转载已获取授权,未经允许禁止转载)原文链接:http://www.leiphone.com/news/201701/Kq6FvnjgbKK ...
- [Deep-Learning-with-Python]GAN图片生成
GAN 由Goodfellow等人于2014年引入的生成对抗网络(GAN)是用于学习图像潜在空间的VAE的替代方案.它们通过强制生成的图像在统计上几乎与真实图像几乎无法区分,从而能够生成相当逼真的合成 ...
- Generative Adversarial Nets(原生GAN学习)
学习总结于国立台湾大学 :李宏毅老师 Author: Ian Goodfellow • Paper: https://arxiv.org/abs/1701.00160 • Video: https:/ ...
- [转]从头开始 GAN
1 前言 GAN的火爆想必大家都很清楚了,各种GAN像雨后春笋一样冒出来,大家也都可以名正言顺的说脏话了[微笑脸].虽然目前GAN的酷炫应用还集中在图像生成上,但是GAN也已经拓展到NLP,Robot ...
随机推荐
- springmvc以及springboot中的拦截器配置
拦截器两种实现 如果不同的controller中都需要拦截器,不能使用相同的拦截器,因为拦截器不能跨controller,这个时候只能为不同的controller配置不同的拦截器,每一个拦截器只能 ...
- 网站seo整站优化有什么优势
http://www.wocaoseo.com/thread-314-1-1.html 现在很多企业找网络公司做网站优化,已经不再像以前那样做目标关键词,而是通过整站优化来达到企业营销目的 ...
- 2020重新出发,MySql基础,MySql字符集
目录 MySQL字符集和校对规则详解 MySQL字符集的转换过程 MySQL查看字符集和校对规则 MySQL设置默认字符集和校对规则 服务器字符集和校对规则 数据库字符集和校对规则 表字符集和校对规则 ...
- 揭秘|一探腾讯基于Kubeflow建立的多租户训练平台背后的技术架构
腾讯业务及组织架构现状 先简单和大家介绍一下腾讯内部的业务及相关组织架构的现状,有助于帮助大家理解为什么我们会基于后面的架构来设计整套方案. 下图的应用大多数人经常会用到,比如微信.腾讯视频.游戏等等 ...
- Auto Generate Reflection Information for C++
https://www.reddit.com/r/gamedev/comments/3lh0ba/using_clang_to_generate_c_reflection_data/ https:// ...
- Java HashMap源码
http://blog.csdn.net/qq_27093465/article/details/52207135 http://blog.csdn.net/qq_27093465/article/d ...
- Macos 编译运行调试Mysql源代码
准备编译工具Clion 下载地址 工具是macos用的系统 百度云盘下载地址(密码: 7dus) 下载mysql源码 Mysql源码下载地址 下载boost boost下载地址 前期准备工作 MySQ ...
- WPF实现手势解锁
桌面程序的解锁方式一般是账号密码,互联网的可以使用扫码解锁,甚至人脸识别.但扫码需要网络,人脸识别又较复杂.所以就想把安卓常用的手势解锁移植到桌面程序上. 先来张效果图,有兴趣的往下看,没兴趣的打扰了 ...
- JVM学习第一天(虚拟机的前世今生与与Java的内存区域)
其实说JVM的时候有很多人会懵, 也很不理解,我会写Java代码就可以了,我干嘛要学这个,其实不是的,学习JVM是很有必要性的; 为什么要了解JVM 1:写出更好,更健壮的Java程序; 2:提高Ja ...
- [Python]打印指定目录下所有子目录
import os for root,dirs,files in os.walk(r"/home/os-hy01"): for dir in dirs: print(dir) -- ...