GAN:两者分布不重合JS散度为log2的数学证明
引言:
不知道大家在初学GAN时,当遇到WGAN时,突然抛出一个结论:
对于真实数据分布PrP_rPr和生成数据分布PgP_gPg,如果满足上述无法全维度重合的情况的话,则JSD(Pr∣∣Pg)=log2JSD(P_r||P_g)=\log2JSD(Pr∣∣Pg)=log2是否存在疑惑。其实当初我刚接触这个结论时,还是挺疑惑的,不知道如何用数学证明。在思考了一会后,找到了一个合理的证明思路,如果有误,请大家指出
KL散度:
在开始介绍JS散度之前,必须首先引入KL散度,因为JS散度是在KL散度的基础上而来的,其公式为KL(P∣∣Q)=∑p(x)logp(x)q(x)KL(P||Q)=\sum p(x)\log \frac{p(x)}{q(x)} KL(P∣∣Q)=∑p(x)logq(x)p(x) KL(Q∣∣P)=∑q(x)logq(x)p(x)KL(Q||P)=\sum q(x)\log \frac{q(x)}{p(x)}KL(Q∣∣P)=∑q(x)logp(x)q(x)其有一个特性,就是KL散度是非对称的,即KL(P∣∣Q)≠KL(Q∣∣P)KL(P||Q) \neq KL(Q||P)KL(P∣∣Q)̸=KL(Q∣∣P)
JS散度:
由于KL散度是非对称的,对其稍加修改,便能转化为对称的JS散度
首先,我们设M=12(P+Q)M=\frac{1}{2}(P+Q)M=21(P+Q),则JSD(P∣∣Q)=12KL(P∣∣M)+12KL(Q∣∣M)JSD(P||Q)=\frac{1}{2}KL(P||M)+\frac{1}{2}KL(Q||M)JSD(P∣∣Q)=21KL(P∣∣M)+21KL(Q∣∣M)如果我们把KL散度公式带入展开的话,结果如下JSD(P∣∣Q)=12∑p(x)log(p(x)p(x)+q(x)2)+12∑q(x)log(q(x)p(x)+q(x)2)JSD(P||Q)=\frac{1}{2}\sum p(x)\log(\frac{p(x)}{\frac{p(x)+q(x)}{2}})+\frac{1}{2}\sum q(x)\log(\frac{q(x)}{\frac{p(x)+q(x)}{2}})JSD(P∣∣Q)=21∑p(x)log(2p(x)+q(x)p(x))+21∑q(x)log(2p(x)+q(x)q(x))我们接下来把log中的12\frac{1}{2}21放到分母上JSD(P∣∣Q)=12∑p(x)log(2p(x)p(x)+q(x))+12∑q(x)log(2q(x)p(x)+q(x))JSD(P||Q)=\frac{1}{2}\sum p(x)\log(\frac{2p(x)}{p(x)+q(x)})+\frac{1}{2}\sum q(x)\log(\frac{2q(x)}{p(x)+q(x)})JSD(P∣∣Q)=21∑p(x)log(p(x)+q(x)2p(x))+21∑q(x)log(p(x)+q(x)2q(x))接着把2提出JSD(P∣∣Q)=12∑p(x)log(p(x)p(x)+q(x))+12∑q(x)log(q(x)p(x)+q(x))+log2JSD(P||Q)=\frac{1}{2}\sum p(x)\log(\frac{p(x)}{p(x)+q(x)})+\frac{1}{2}\sum q(x)\log(\frac{q(x)}{p(x)+q(x)})+\log2JSD(P∣∣Q)=21∑p(x)log(p(x)+q(x)p(x))+21∑q(x)log(p(x)+q(x)q(x))+log2这是因为∑p(x)=∑q(x)=1\sum p(x) = \sum q(x) = 1∑p(x)=∑q(x)=1
接下来,我们只需要证明当p(x)p(x)p(x)与q(x)q(x)q(x)不重叠时,左边部分为0即可。为了方便大家理解,我放了一张数据分布图:
在这张图里,我们令PrP_rPr和PgP_gPg都是服从正态分布,并且不妨令p(x)p(x)p(x)为PrP_rPr取得xxx时的概率,q(x)q(x)q(x)为PgP_gPg取得xxx时的概率。可以发现,在两个分布之间,几乎不存在重叠(Probability(x)Probability(x)Probability(x)表示取得xxx的概率值)。
接下来,我们回到上式的左边部分,即12∑p(x)log(p(x)p(x)+q(x))+12∑q(x)log(q(x)p(x)+q(x))\frac{1}{2}\sum p(x)\log(\frac{p(x)}{p(x)+q(x)})+\frac{1}{2}\sum q(x)\log(\frac{q(x)}{p(x)+q(x)})21∑p(x)log(p(x)+q(x)p(x))+21∑q(x)log(p(x)+q(x)q(x))我们可以发现,当x≥5x\geq 5x≥5时,p(x)≈0p(x)\approx 0p(x)≈0,则上式变为12∑0×log(00+q(x))+12∑q(x)log(q(x)0+q(x))=0\frac{1}{2}\sum 0\times log(\frac{0}{0+q(x)})+\frac{1}{2}\sum q(x)\log(\frac{q(x)}{0+q(x)})=021∑0×log(0+q(x)0)+21∑q(x)log(0+q(x)q(x))=0当x<5x<5x<5时,q(x)≈0q(x)\approx 0q(x)≈0,则上式变为12∑p(x)log(p(x)p(x)+0)+12∑0×log(0p(x)+0)=0\frac{1}{2}\sum p(x)\log(\frac{p(x)}{p(x)+0})+\frac{1}{2}\sum 0\times \log(\frac{0}{p(x)+0})=021∑p(x)log(p(x)+0p(x))+21∑0×log(p(x)+00)=0所以可以得出,∀x∈R,都有JSD(P∣∣Q)=log2\forall x \in R,都有JSD(P||Q)=\log2∀x∈R,都有JSD(P∣∣Q)=log2这就是JS散度的缺陷,当两个分布完全不重叠时,即便两个分布的中心距离有多近,其JS散度都是一个常数,以至于梯度为0,无法更新。
为什么会出现两个分布不重叠?
从理论和经验上来说,真实的数据分布通常是一个低维流形,简单地说就是数据不具备高维特性,而是存在一个嵌入在高维度的低维空间内,如下图在3维空间中,数据事实上是在一个二维平面上:
而且,在实际操作中,我们的维度空间远远不止3维,有可能是上百维,在这样的情况下,数据就更加难于重合。
如果觉得我有地方讲的不好的或者有错误的欢迎给我留言,谢谢大家阅读(点个赞我可是会很开心的哦)~
GAN:两者分布不重合JS散度为log2的数学证明相关推荐
- 【Pytorch神经网络理论篇】 21 信息熵与互信息:联合熵+条件熵+交叉熵+相对熵/KL散度/信息散度+JS散度
1 信息熵 熵 (Entropy),信息熵:常被用来作为一个系统的信息含量的量化指标,从而可以进一步用来作为系统方程优化的目标或者参数选择的判据. 1.1 信息熵的性质 单调性,发生概率越高的事件,其 ...
- KL散度,JS散度,余弦距离,欧式距离
散度:量化两种概率分布P和Q之间差异的方式:相当于衡量两个函数之间的关系 GAN是最小化JS散度 VAE是最小化KL散度 KL散度(不对称):设p为随机变量X的概率分布,即p(x)为随机变量X在X=x ...
- GAN相关知识点 - 纳什均衡、模型崩塌、WGAN原理、EM 距离、JS 散度等
GAN相关知识点 - 纳什均衡.模型崩塌.WGAN原理.EM 距离.JS 散度等 一.纳什均衡 二.GAN 训练难题 三.WGAN 原理 一.纳什均衡 现在我们从理论层面进行分析,通过博弈学习的训练方 ...
- 信息量、熵、交叉熵、KL散度、JS散度、Wasserstein距离
信息量.熵.交叉熵.KL散度.JS散度 文章目录 信息量.熵.交叉熵.KL散度.JS散度 前言 一.信息量 二.熵 三.交叉熵 四.KL散度 五.JS散度 六. Wasserstein距离 1.解决的 ...
- 信息量-log2P(莫斯编码使用频繁P大的字符编码段信息量少)、信息熵:期望E=-Plog2P、两点分布交叉熵=KL散度=相对熵=-plnp-(1-p)ln(1-p)不对称、JS散度对称
信息熵为什么要定义成-Σp*log§? 信息熵为什么要定义成-Σp*log(p)? 在解释信息熵之前,需要先来说说什么是信息量. 信息量是对信息的度量,单位一般用bit. 信息论之父克劳德·艾尔伍德· ...
- 信息量、信息熵、交叉熵、KL散度、JS散度、Wasserstein距离
前两篇介绍了目标检测中的回归损失函数,本来这篇打算介绍目标检测中的分类损失函数.但是介绍classification loss function自然绕不过交叉熵,所以还是简单的把信息论中的一些概念在这 ...
- 区别:KL散度,JS散度,Wasserstein距离(EMD)
1 .KL散度(相对熵): 性质: ①描述两个概率分布P,Q之间的差异 ②非负性:当且仅当两分布相同,相对熵等于0 ③非对称性:D(p||q)≠D(q||p) ④不是距离,且不满足三角不等式 ⑤相对熵 ...
- 交叉熵、相对熵(KL散度)、JS散度和Wasserstein距离(推土机距离)
目录: 信息量 熵 相对熵(KL散度) 交叉熵 JS散度 推土机理论 Wasserstein距离 WGAN中对JS散度,KL散度和推土机距离的描述 信息量: 任何事件都会承载着一定的信息量,包括已经发 ...
- 信息量、熵、交叉熵、KL散度、JS散度杂谈
信息量.熵.交叉熵.KL散度.JS散度杂谈 信息量 任何事件都会承载着一定的信息量,包括已经发生的事件和未发生的事件,只是它们承载的信息量会有所不同.如昨天下雨这个已知事件,因为已经发生,既定事实,那 ...
- kl散度与js散度_数据集相似度度量之KLamp;JS散度
一.KL散度 1.什么是KL散度 KL散度又叫相对熵,是描述两个概率分布差异的一种方法,有人将KL散度称为KL距离,但实际上它不满足距离概念中的两个条件,a.对称性,即D(P||Q)=D(Q||P); ...
最新文章
- Visual C#弹出窗口杀手
- Tomcat软件的目录结构、作用
- iou iof matrix_iof
- lucene教程--全文检索技术详解
- SimpleAdapter类使用方法
- springmvc学习笔记--mybatis--使用插件自动生成实体和mapper
- 【HDOJ】3500 Fling
- 前任3丨《前任3》里的这三种爱情,你都有过哪一种
- 视频教程-毕业设计精品课之基于ASP.NET旅游网站源码实战讲解(带房屋互租模块)-.NET
- ubuntu 下android设备找到fastboot驱动
- 微信小程序布局技巧(二)
- 车辆、行人跟踪一网打尽,超轻量、多类别、小目标跟踪系统开源了!
- 《数据结构》陈越老师课后题详解
- python中format格式化输出总结
- iOS上架详细通关教程(提交到AppStore)
- c8051f单片机c语言看门狗例程,stc单片机看门狗喂狗程序
- java hh24miss_Java编程时间格式与数据库中时间格式转化
- Android代码混淆工具Proguard学习
- 哔哩哔哩bilibili 直播间全屏发弹幕
- 让电脑读懂你的语言——如何理解 Word2Vec
热门文章
- 光环大数据python爬虫
- 柏云服务器点歌系统IP,阿蛮歌霸网络版点歌系统安装说明.docx
- pygame下载报错
- Android系统QFIL刷机流程
- java程序员中英文简历_Java程序员英文简历范文
- ppt flash无法播放解决方法
- 分布式光纤传感技术(DTS/BOTDA/BOTDR/光栅/OTDR)近几年会有较快的发展(本人预测)
- 阻抗计算公式、polar si9000(教程)
- 如何解决Maven导入Oracle驱动出现Missing artifact com.oracle:ojdbc14:jar:10.2.0.2.0,Mvaen:com.oracle:ojdbc14:10.
- 今天给大家带来搜题公众号搭建教程(附赠搜题接口 还支持语音图片搜题)