KL散度、JS散度、Wasserstein距离[通俗易懂]

KL散度、JS散度、Wasserstein距离[通俗易懂]1.KL散度KL散度又称为相对熵,信息散度,信息增益。KL散度是是两个概率分布P和Q差别的非对称性的度量。KL散度是用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数。典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。定义如下:DKL(P//Q)=−∑x∈XP(x)log1P(x)+∑x∈XP(x)log1Q(x)DKL(…

大家好,又见面了,我是你们的朋友全栈君。

1. KL散度

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

定义如下:

DKL(P//Q)=xXP(x)log1P(x)+xXP(x)log1Q(x) D K L ( P / / Q ) = − ∑ x ∈ X P ( x ) l o g 1 P ( x ) + ∑ x ∈ X P ( x ) l o g 1 Q ( x )



因为对数函数是凸函数,所以

KL K L
散度的值为非负数。

有时会将 KL K L 散度称为 KL K L 距离,但它并不满足距离的性质:

1. KL散度不是对称的: KL(A,B) K L ( A , B ) KL(B,A) K L ( B , A )

2. KL散度不满足三角不等式: KL(A,B) K L ( A , B ) > >
KL(A,C)+KL(C,B)

K L ( A , C ) + K L ( C , B )

2. JS散度(Jensen-Shannon)

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

这里写图片描述

KL K L 散度和 JS J S 散度度量的时候有一个问题:

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

3. Wasserstein距离

Wasserstein W a s s e r s t e i n 距离度量两个概率分布之间的距离,定义如下:
这里写图片描述
Π(P1,P2) Π ( P 1 , P 2 ) P1 P 1 P2 P 2 分布组合起来的所有可能的联合分布的集合。对于每一个可能的联合分布γ,可以从中采样 (x,y)γ ( x , y ) ∼ γ 得到一个样本x和y,并计算出这对样本的距离||x−y||,所以可以计算该联合分布 γ γ 下,样本对距离的期望值 E(x,y)γ[||xy||] E ( x , y ) ∼ γ [ | | x − y | | ] 。在所有可能的联合分布中能够对这个期望值取到的下界 infγ i n f γ Π(P1,P2) Π ( P 1 , P 2 ) E(x,y) γ[||xy||] ∼ γ [ | | x − y | | ] 就是Wasserstein距离。

直观上可以把 E(x,y)γ[||xy||] E ( x , y ) ∼ γ [ | | x − y | | ] 理解为在 γ γ 这个路径规划下把土堆P1挪到土堆P2所需要的消耗。而 Wasserstein W a s s e r s t e i n 距离就是在最优路径规划下的最小消耗。所以 Wesserstein W e s s e r s t e i n 距离又叫Earth-Mover距离。

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

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

转载自:
KL散度、JS散度、Wasserstein距离

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125006.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JavaScript 开发者年度调查报告

    JavaScript 开发者年度调查报告

    2022年3月3日
    37
  • postman进行http接口测试

    postman进行http接口测试无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。HTTP的接口测试工具有很多,可以进行http请求的方式也有很多,但是可以直接拿来就用,而且功能还支持的不错的,我使用过的来讲,还是postman比较上手。优点:1、支持用例管理2、支持get、post、文件上…

    2022年5月10日
    35
  • ssdp协议介绍_wsd协议

    ssdp协议介绍_wsd协议SSDP是一个“简单服务发现协议”,即英文“SimpleServiceDiscoveryProtocol的缩写”,该协议定义了如何在网络上发现网络服务的方法。SSDP也规定了存放在XML文件中的信息格式。SSDP信息的传送是依靠HTTPU和HTTPMU进行的。不论是控制点,或是UPnP设备,工作中都必然用到SSDP,设备接入网络之后,要利用它向网络广播自己的存在(广播的信息中还有设备位

    2022年10月11日
    0
  • c# mysql executenonquery_c#数据四种执行方法(ExecuteNonQuery)

    c# mysql executenonquery_c#数据四种执行方法(ExecuteNonQuery)1.使用ExecuteReader()操作数据库2.使用ExecuteNonQuery()操作数据库3.使用ExecuteScalar()操作数据库4.使用DataSet数据集插入记录,更新数据一、使用ExecuteReader()操作数据库,执行查询操作的非常好的方法。ExecuteReader比DataSet而言,DataReader具有较快的访问能力,并且能够使用较少的服务器资源。DataR…

    2022年9月11日
    1
  • nginx reload不生效_nginx权重配置

    nginx reload不生效_nginx权重配置解释/usr/local/nginx/sbin/nginx-sreload 用过多次这条命令,一直以为是重启Nginx,今天有幸看了下Nginx官方文档介绍这条命令 Nginx服务不会终止,主进程检查配置,应用配置的过程。主进程会启动一个新的工作进程处理新来的请求。主进程发送消息给老的工作进程,通知老的进程不在接受请求,处理完现有的请求后退出(优雅退出) …

    2025年6月19日
    0
  • pytest fixtures_jig和fixture的区别

    pytest fixtures_jig和fixture的区别fixture的优势Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进:命名方式灵活,不局限于setup和teardown这几个命名conf

    2022年7月31日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号