KL散度的公式是
KL[p(x)∣∣q(x)]=∫xp(x)logp(x)q(x)dxKL[p(x)||q(x)] = \int_{x}p(x)log{p(x) \over q(x)}dx KL[p(x)∣∣q(x)]=∫x​p(x)logq(x)p(x)​dx

假设真实分布为p(x)p(x)p(x),我们想用分布q(x)q(x)q(x)去近似p(x)p(x)p(x),我们很容易想到用最小化KL散度来求,但由于KL散度是不对称的,所以并不是真正意义上的距离,那么我们是应该用KL[p∣∣q]KL[p||q]KL[p∣∣q]还是用KL[q∣∣p]KL[q||p]KL[q∣∣p]?

下面就来分析这两种情况:

正向KL散度: KL[p∣∣q]KL[p||q]KL[p∣∣q]

KL[p∣∣q]KL[p||q]KL[p∣∣q]被称为正向KL散度,其形式为:
q^=argminq∫xp(x)logp(x)q(x)dx(1)\tag{1} \hat{q} = argmin_{q} \int_{x}p(x)log{p(x) \over q(x)}dx q^​=argminq​∫x​p(x)logq(x)p(x)​dx(1)
仔细观察(1)式,p(x)p(x)p(x)是已知的真实分布,要求使上式最小的q(x)q(x)q(x)。

考虑当p(x)=0p(x)=0p(x)=0时,这时q(x)q(x)q(x)取任何值都可以,因为logp(x)q(x)log{p(x) \over q(x)}logq(x)p(x)​这一项对整体的KL散度没有影响。当p(x)>0p(x)>0p(x)>0时,logp(x)q(x)log{p(x) \over q(x)}logq(x)p(x)​这一项对整体的KL散度就会产生影响,为了使(1)式最小,q(x)q(x)q(x)又处于logp(x)q(x)log{p(x) \over q(x)}logq(x)p(x)​中分母的位置,所以q(x)q(x)q(x)尽量大一些才好。

总体而言,对于正向 KL 散度,在p(x)p(x)p(x)大的地方,想让 KL 散度小,就需要 q(x)q(x)q(x) 的值也尽量大;在p(x)p(x)p(x)小的地方,q(x)q(x)q(x)对整体 KL 影响并不大(因为 log 项本身分子很小,又乘了一个非常小的 p(x))。换一种说法,要想使正向 KL 散度最小,则要求在 ppp 不为 0 的地方,qqq 也尽量不为 0,所以正向 KL 散度被称为是 zero avoiding。此时得到的分布 qqq 是一个比较 “宽” 的分布。

反向KL散度:KL[q∣∣p]KL[q||p]KL[q∣∣p]

KL[q∣∣p]KL[q||p]KL[q∣∣p]被称为反向KL散度,其形式为:
q^=argminq∫xq(x)logq(x)p(x)dx(2)\tag{2} \hat{q} = argmin_{q} \int_{x}q(x)log{q(x) \over p(x)}dx q^​=argminq​∫x​q(x)logp(x)q(x)​dx(2)
仔细观察(2)式,p(x)p(x)p(x)是已知的真实分布,要求使上式最小的q(x)q(x)q(x)。

考虑当p(x)=0p(x)=0p(x)=0时,这时为了使(2)式变小,q(x)q(x)q(x)取0值才可以,否则(2)式就会变成无穷大。当p(x)>0p(x)>0p(x)>0时,为了使(2)式变小,必须在p(x)p(x)p(x)小的地方,q(x)q(x)q(x)也小。在p(x)p(x)p(x)大的地方可以适当忽略。换一种说法,要想使反向 KL 散度最小,则要求在 ppp 为 0 的地方,qqq 也尽量为 0,所以反向 KL 散度被称为是 zero forcing。此时得到分布 qqq 是一个比较 “窄” 的分布。

一个例子

假如p(x)p(x)p(x)是两个高斯分布的混合,q(x)q(x)q(x)是单个高斯,用q(x)q(x)q(x)去近似p(x)p(x)p(x),两种KL散度该如何选择?

对于正向KL散度来说,q(x)q(x)q(x)的分布图像更符合第二行,正向KL散度更在意p(x)p(x)p(x)中的常见事件,也就是首先要保证p(x)p(x)p(x)峰值附近的xxx,在q(x)q(x)q(x)中的概率密度值不能为0。当 ppp 具有多个峰时,qqq 选择将这些峰模糊到一起,以便将高概率质量放到所有峰上。

对于反向KL散度来说,q(x)q(x)q(x)的分布图像更符合第二行。反向KL散度更在意p(x)p(x)p(x)中的罕见事件,也就是首先要保证p(x)p(x)p(x)低谷附件的xxx,在q(x)q(x)q(x)中的概率密度值也较小。当 ppp 具有多个峰并且这些峰间隔很宽时,如该图所示,最小化 KL 散度会选择单个峰,以避免将概率密度放置在ppp的多个峰之间的低概率区域中。

在机器学习的变分推理中使用的是反向KLKLKL。

参考:https://lumingdong.cn/various-entropies-in-machine-learning.html

正向KL散度与反向KL散度相关推荐

  1. kl散度定义_Kullback-Leibler(KL)散度介绍

    在这篇文章中,我们将探讨一种比较两个概率分布的方法,称为Kullback-Leibler散度(通常简称为KL散度).通常在概率和统计中,我们会用更简单的近似分布来代替观察到的数据或复杂的分布.KL散度 ...

  2. 交叉熵、相对熵(KL散度)、JS散度和Wasserstein距离(推土机距离)

    目录: 信息量 熵 相对熵(KL散度) 交叉熵 JS散度 推土机理论 Wasserstein距离 WGAN中对JS散度,KL散度和推土机距离的描述 信息量: 任何事件都会承载着一定的信息量,包括已经发 ...

  3. 神经网络正向传播步骤和反向传播

    神经网络的训练的过程中通常有个正向过程(forward pass)或者叫做正向传播步骤(forward propagation step)接着会有个反向步骤(backward pass)也叫反向传播步 ...

  4. matlab kl变换函数,《数字图像KL变换》PPT课件.ppt

    <<数字图像KL变换>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<数字图像KL变换>PPT课件.ppt(18页珍藏版)>请在人人文库网上搜索 ...

  5. 正向代理和Nginx反向代理配置介绍

    正向代理和Nginx反向代理配置介绍 * Author QiuRiMangCao 秋日芒草* 正向代理(代理对象是pc) 是一个位于客户端(pc)和原始服务器(google.com)之间的服务器 场景 ...

  6. pytorch中的kl散度,为什么kl散度是负数?

    F.kl_div()或者nn.KLDivLoss()是pytroch中计算kl散度的函数,它的用法有很多需要注意的细节. 输入 第一个参数传入的是一个对数概率矩阵,第二个参数传入的是概率矩阵.并且因为 ...

  7. 数学小课堂:库尔贝勒交叉熵(K-L divergence,也叫KL散度)【量化度量错误预测所要付出的成本,避免制订出与事实相反的计划】

    文章目录 引言 I 预备知识:置信度(Confidence Level) 1.1 置信度的定义 1.1 提高置信度 II 误判的代价函数 2.1 信息偏差带来的损失 2.2 库尔贝勒交叉熵的应用 2. ...

  8. CSP认证201709-4 通信网络[C++题解]:dfs、建立两张图:正向建图和反向见图、统计联通点的个数

    文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 这题就是判断每个点的连通性,如果能够到达所有的n个点,就表示该点满足题意. 这里的连通性指的是自己沿着正向边能够到达哪些点,还有就是 ...

  9. 向量场的散度和旋度_散度和旋度的物理意义是什么?

    我在数学书中看到散度和旋度的时候,如果不结合物理来理解这两个数学公式的话,不过是平平无奇的曲线积分.曲面积分的一个应用而已.数学书上提到这两个公式的目的应该也是为了加深对曲线积分.曲面积分的理解. 有 ...

最新文章

  1. KMeans中的K怎么选择?Elbow method怎么实施?
  2. 为何大多数人做出来的图表只是一坨屎?
  3. 商业研究(7):旅游市场概览
  4. Windbg内核调试之一: Vista Boot Config设置
  5. 采用web技术开发PC应用
  6. 踏平RecyclerView使用的各种坑,跟ListView和GridView说拜拜
  7. MySQL语言解析----1
  8. 网络定位-能定位到国家省份市区县街道
  9. oracle去掉默认值sql,如何在T-SQL中删除默认值或类似约束?
  10. Chrome Firefox for Linux 直达下载链接
  11. 电源大师课笔记 3.3
  12. 微信小程序防止恶意点击、多次点击
  13. opengl——贴图
  14. 【知识点和练习题】心田花开:二年级语文汉语拼音补习
  15. 吉大17秋计算机应用二,吉大17秋《计算机应用基础》在线作业二.doc
  16. vue金额数字转大写的方法
  17. 内网渗透- *** PTH(传递哈希)***PTT(传递票据)***PTK(传递密钥)
  18. JavaScript 使用js修改页面元素
  19. 《广播电视节目制作经营许可证》申请流程
  20. 刘鹏教授受邀参加秦淮知识产权日主题宣传 · 圆桌论坛

热门文章

  1. C++通过邻接矩阵求连通分量(BFS)
  2. NeoWorld之穿越者2046:第一章
  3. Android--手机卫士涉及的知识点总结(一)
  4. Python二级备考:扇入和扇出的区别
  5. 安全攻防战丨能信安科技的安全统御之道
  6. 播放视频颜色不正常,红色变成绿色或者很模糊
  7. php输出中文乱码问题
  8. loewe测试软件,实测Loewe Puzzle 拿着它相
  9. 社区开通反馈投诉QQ、MSN、新的反馈邮件。
  10. redis主从同步策略