Jensen-Shannon散度(JS散度)

embedded/2024/10/11 0:05:34/

Jensen-Shannon散度Jensen-Shannon Divergence, JS散度)是概率分布之间的一种相似性度量。它是基于Kullback-Leibler散度(KL散度)的对称版本,并且具有一些更好的性质,例如它总是非负的,并且是有界的。

JS散度在信息论和机器学习中广泛使用,特别是在衡量两个分布之间的相似性和区分度时。相比于KL散度,它对称且更加稳定,不容易出现无限大的情况。

1. JS散度的定义

给定两个概率分布 P P P Q Q Q (它们可以是离散或连续分布),JS散度定义为:

J S ( P ∣ ∣ Q ) = 1 2 K L ( P ∣ ∣ M ) + 1 2 K L ( Q ∣ ∣ M ) JS(P || Q) = \frac{1}{2} KL(P || M) + \frac{1}{2} KL(Q || M) JS(P∣∣Q)=21KL(P∣∣M)+21KL(Q∣∣M)

其中 M M M P P P Q Q Q 的平均分布,即:

M = 1 2 ( P + Q ) M = \frac{1}{2}(P + Q) M=21(P+Q)

K L ( P ∣ ∣ Q ) KL(P || Q) KL(P∣∣Q) 是经典的Kullback-Leibler散度,用于衡量分布 P P P 相对于分布 Q Q Q 的相对熵,定义为:

K L ( P ∣ ∣ Q ) = ∑ x P ( x ) log ⁡ P ( x ) Q ( x ) KL(P || Q) = \sum_x P(x) \log \frac{P(x)}{Q(x)} KL(P∣∣Q)=xP(x)logQ(x)P(x)

在连续情形下,KL散度通过积分表示:

K L ( P ∣ ∣ Q ) = ∫ P ( x ) log ⁡ P ( x ) Q ( x ) d x KL(P || Q) = \int P(x) \log \frac{P(x)}{Q(x)} \, dx KL(P∣∣Q)=P(x)logQ(x)P(x)dx

2. JS散度的性质

JS散度有一些重要的性质,使得它在实际应用中非常有用:

  • 非负性 J S ( P ∣ ∣ Q ) ≥ 0 JS(P || Q) \geq 0 JS(P∣∣Q)0,并且只有在 P = Q P = Q P=Q 时等于0,即当两个分布完全相同时,JS散度为0。

  • 对称性:JS散度是对称的,即 J S ( P ∣ ∣ Q ) = J S ( Q ∣ ∣ P ) JS(P || Q) = JS(Q || P) JS(P∣∣Q)=JS(Q∣∣P),这点与KL散度不同,后者不是对称的。

  • 有界性:JS散度的值介于0和 log ⁡ 2 \log 2 log2 之间,特别是在离散分布的情况下。即:

    0 ≤ J S ( P ∣ ∣ Q ) ≤ log ⁡ 2 0 \leq JS(P || Q) \leq \log 2 0JS(P∣∣Q)log2

    这意味着它是有界的度量,不像KL散度在某些情况下会趋向无穷大。

3. 与KL散度的关系

JS散度是KL散度的对称化和平均化版本。它通过引入中间分布 M M M 解决了KL散度的两个问题:

  • 不对称性:KL散度 K L ( P ∣ ∣ Q ) ≠ K L ( Q ∣ ∣ P ) KL(P || Q) \neq KL(Q || P) KL(P∣∣Q)=KL(Q∣∣P),JS散度通过将 P P P Q Q Q 的平均分布 M M M 引入进来,使得它对称。
  • KL散度的无限问题:当 P P P Q Q Q 在某些点上取值为0时,KL散度可能会趋向无穷大,而JS散度通过引入均值分布 M M M 来避免这种情况。

4. JS散度的应用

JS散度在很多领域都得到了广泛应用,主要包括:

  • 机器学习:在生成对抗网络(GANs)中,JS散度被用于衡量生成分布与真实分布之间的差异,用以训练生成器和判别器。不过,由于JS散度在某些情况下会导致梯度消失问题,Wasserstein距离(特别是WGAN中的Wasserstein-1距离)后来在GANs中得到更广泛的应用。

  • 文本分析和自然语言处理:JS散度常用于比较文本或文档的词频分布。例如,在主题模型中,它可以用来度量不同主题之间的差异。

  • 生物信息学:在比较基因序列或表达谱时,JS散度可以用来衡量不同生物样本或基因型之间的差异。

  • 信息论:JS散度在信息论中作为一种度量,用来量化不同概率分布之间的信息差异。

5. JS散度的直观解释

JS散度的本质是通过测量两个分布 P P P Q Q Q 与它们的“中间分布” M M M 之间的差异,来衡量 P P P Q Q Q 的相似性。具体来说:

  • 如果 P P P Q Q Q 非常相似,它们与中间分布 M M M 的差异都会很小,JS散度接近于0。
  • 如果 P P P Q Q Q 差异很大,它们与 M M M 的差异会较大,JS散度的值也会增大。

这使得JS散度在度量两个概率分布的相似性时,比单纯的KL散度更加灵活和稳定。

总结

Jensen-Shannon散度是一种改进的、对称的概率分布相似性度量,能够有效克服KL散度的局限性。它具有非负性、对称性和有界性等良好性质,广泛应用于机器学习、自然语言处理、生物信息学和信息论等领域。JS散度的直观含义是通过比较两个分布与它们的中间分布的差异,来量化两个分布之间的相似性。


http://www.ppmy.cn/embedded/125614.html

相关文章

Luminar财务造假风波:激光雷达龙头的困境与挑战

近日,美国激光雷达上市公司Luminar被爆出财务造假嫌疑,这一消息震惊了整个行业。Luminar,这家曾风光无限的激光雷达公司,最高市值一度达到120亿美元,其年轻的创始人也因此坐拥豪宅豪车无数。然而,如今在市值仅剩5亿美元左右的时候,却被爆出如此丑闻,令人不禁唏嘘。 带…

软考《信息系统运行管理员》- 4.4 信息系统软件运维系统与专用工具

4.4 信息系统软件运维系统与专用工具 文章目录 4.4 信息系统软件运维系统与专用工具信息系统软件运维系统的功能信息系统软件信息采集信息系统软件监控信息系统软件分发功能 信息系统软件运维专用工具 信息系统软件运维系统的功能 信息系统软件信息采集 可以快速查询网络内各…

软件测试面试题大全

什么是软件测试? 答案:软件测试是一系列活动,旨在评估软件产品的质量,并验证它是否满足规定的需求。它包括执行程序或系统以识别任何缺陷、问题或错误,并确保软件产品符合用户期望。 软件测试的目的是什么&#xff1f…

SQL自学:使用函数处理数据

一、使用函数 1、文本处理函数 文本处理函数如同强大的文字操控工具,能够实现对文本数据的多样化操作。它可以进行字符串的转换、截取、拼接等处理,满足不同场景下对文本信息的处理需求。 例如,通过特定的文本处理函数,可以将文…

设计模式(2)工厂模式

让一个工厂类去生产出对象 (new )来。 我们想要一个 形状,我们用工厂去生产出,圆形,方形。 package com.example.factory2;public interface Shape {void draw(); }public class Square implements Shape {Overridep…

大数据-159 Apache Kylin 构建Cube 准备和测试数据

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

【大数据】Flink CDC 实时同步mysql数据

目录 一、前言 二、Flink CDC介绍 2.1 什么是Flink CDC 2.2 Flink CDC 特点 2.3 Flink CDC 核心工作原理 2.4 Flink CDC 使用场景 三、常用的数据同步方案对比 3.1 数据同步概述 3.1.1 数据同步来源 3.2 常用的数据同步方案汇总 3.3 为什么推荐Flink CDC 3.4 Flink …

【Iceberg分析】Spark与Iceberg集成落地实践(一)

Spark与Iceberg集成落地实践(一) 文章目录 Spark与Iceberg集成落地实践(一)清理快照与元数据配置表维度自动清理元数据文件属性SPARK DDL语句作用 手动清理 清理孤岛文件合并数据文件可用配置rewriteDataFiles核心类图 清理快照与…