zoukankan      html  css  js  c++  java
  • KL散度、JS散度、Wasserstein距离

    KL散度、JS散度、Wasserstein距离

    一、总结

    一句话总结:

    ①)、KL散度又称为相对熵,信息散度,信息增益。KL散度是是两个概率分布P和Q 差别的非对称性的度量。
    ②)、JS散度度量了两个概率分布的相似度,基于KL散度的变体,解决了KL散度非对称的问题。
    ③)、Wessertein距离相比KL散度和JS散度的优势在于即使两个分布的支撑集没有重叠或者重叠非常少,仍然能反映两个分布的远近。而JS散度在此情况下是常量,KL散度可能无意义。

    1、KL散度?

    I)、KL散度又称为相对熵,信息散度,信息增益。KL散度是是两个概率分布P和Q 差别的非对称性的度量。
    II)、KL散度是用来 度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数。
    III)、典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。
    IV)、定义:$$D _ { K L } ( P / / Q ) = - sum _ { x in X } P ( x ) log frac { 1 } { P ( x ) } + sum _ { x in X } P ( x ) log frac { 1 } { Q ( x ) }$$

    2、KL散度的值为非负数?

    因为对数函数是凸函数,所以KL散度的值为非负数。

    3、有时会将KL散度称为KL距离,但它并不满足距离的性质?

    1、KL散度不是对称的:KL(A,B)≠KL(B,A)
    2、KL散度不满足三角不等式: KL(A,B)>KL(A,C)+KL(C,B)

    4、JS散度(Jensen-Shannon)?

    (a)、JS散度度量了两个概率分布的相似度,基于KL散度的变体,解决了KL散度非对称的问题。
    (b)、一般地,JS散度是对称的,其取值是0到1之间。
    (c)、js散度定义:$$J S ( p | q ) = frac { 1 } { 2 } K L ( p | frac { p + q } { 2 } ) + frac { 1 } { 2 } K L ( q | frac { p + q } { 2 } )$$

    5、KL散度和JS散度度量的时候有一个问题?

    如果两个分配P,Q离得很远,完全没有重叠的时候,那么KL散度值是没有意义的,而JS散度值是一个常数。这在学习算法中是比较致命的,这就意味这这一点的梯度为0。梯度消失了。

    6、Wessertein距离相比KL散度和JS散度的优势在于?

    即使两个分布的支撑集没有重叠或者重叠非常少,仍然能反映两个分布的远近。而JS散度在此情况下是常量,KL散度可能无意义。

    二、KL散度、JS散度、Wasserstein距离

    转自或参考:KL散度、JS散度、Wasserstein距离
    https://blog.csdn.net/leviopku/article/details/81388306

    1. KL散度


    KL散度又称为相对熵,信息散度,信息增益。KL散度是是两个概率分布P和Q 差别的非对称性的度量。 KL散度是用来 度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。

    定义如下:



    因为对数函数是凸函数,所以KL散度的值为非负数。
    有时会将KL散度称为KL距离,但它并不满足距离的性质:
    1. KL散度不是对称的:KL(A,B)≠≠KL(B,A)
    2. KL散度不满足三角不等式: KL(A,B)>>KL(A,C)+KL(C,B)

    2. JS散度(Jensen-Shannon)


    JS散度度量了两个概率分布的相似度,基于KL散度的变体,解决了KL散度非对称的问题。一般地,JS散度是对称的,其取值是0到1之间。定义如下:



    KLKL散度和JSJS散度度量的时候有一个问题:
    如果两个分配P,Q离得很远,完全没有重叠的时候,那么KL散度值是没有意义的,而JS散度值是一个常数。这在学习算法中是比较致命的,这就意味这这一点的梯度为0。梯度消失了。

    3. Wasserstein距离


    WassersteinWasserstein距离度量两个概率分布之间的距离,定义如下:




    Wessertein距离相比KL散度和JS散度的优势在于:

    即使两个分布的支撑集没有重叠或者重叠非常少,仍然能反映两个分布的远近。而JS散度在此情况下是常量,KL散度可能无意义。

    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    横冲直撞vue(第六篇):vue之过滤器、es6中填充字符串、es6新增的padStart()方法和padEnd()方法、vue自定义键盘修饰符、vue自定义全局指令
    leetcode的奇妙冒险(python3)系列:leetcode 283. Move Zeroes
    横冲直撞vue(第五篇):事件修饰符、指令系统综合案例
    横冲直撞vue(第四篇):v-model、指令系统总结、指令系统示例轮播图实现、指令系统示例跑马灯效果实现、在vue中使用样式的方式
    横冲直撞vue(第三篇):vue中template的三种写法、v-bind、v-on、更新元素的指令v-text与v-html、条件渲染指令v-if 与v-show、v-for
    横冲直撞vue(第二篇):什么是vue?框架和库的区别、vue的优点、vue的使用、使用vue实例化对象
    横冲直撞vue(第一篇):常用的ES6语法
    nodejs(第五篇):npm常用命令、包说明文件package.json、packjson-lock.json文件、使用nodemon插件、nrm的安装与使用
    最详细的个人博客教程搭建教程,最快5分钟快速搭建简约风格博客
    面试问了解Linux内存管理吗?10张图给你安排的明明白白!
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13494662.html
Copyright © 2011-2022 走看看