【机器学习】信息量,信息熵,相对熵(KL散度),交叉熵

本文深入探讨信息论中的关键概念,包括信息量、信息熵、相对熵(K-L散度)和交叉熵,解释它们在衡量信息不确定性、分布差异及编码效率上的作用。并通过实例展示这些概念如何应用于分类问题,特别是神经网络中的Softmax回归与交叉熵损失函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.信息量

    信息奠基人香农(Shannon)认为“信息是用来消除随机不确定性的东西”。也就是说衡量信息量大小就看这个信息消除不确定性的程度。“太阳从东方升起了”这条信息没有减少不确定性。因为太阳肯定从东面升起。这是句废话,信息量为0。

    “吐鲁番下中雨了”(吐鲁番年平均降水量日仅6天)这条信息比较有价值,为什么呢,因为按统计来看吐鲁番明天不下雨的概率为98%(1-6/300),对于吐鲁番下不下雨这件事,首先它是随机不去确定的,这条信息直接否定了发生概率为98%的事件------不下雨,把非常大概率的事情(不下雨)否定了,即消除不确定性的程度很大,所以这条信息的信息量比较大。这条信息的情形发生概率仅为2%但是它的信息量去很大,上面太阳从东方升起的发生概率很大为1,但信息量确很小。从上面两个例子可以看出:信息量的大小和事件发生的概率成反比。
    信息量用一个信息所需要的编码长度来定义,而一个信息的编码长度之所以跟其出现的概率呈负相关,是因为一个短编码的代价也是巨大的,因为会放弃所有以其为前缀的编码方式,比如字母”a”用单一个0作为编码的话,那么为了避免歧义,就不能有其他任何0开头的编码词了.所以一个词出现的越频繁,则其编码方式也就越短,同时付出的代价也大. 

信息量的表示如下:

2.信息熵

    理解1:信息熵是用来衡量任意随机变量或整个系统(事物)不确定性的。变量或系统的不确定性越大,熵也就越大,事物越具不确定性(事物越复杂)把它搞清楚所需要的信息量也就越大。

    理解2:信息熵是信息论中用于度量信息量的一个概念。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个度量。

    理解3:信息量度量的是一个具体事件发生所带来的信息,而信息熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。

    理解4:信息熵则代表一个分布的信息量,或者编码的平均长度(即信息量的均值)

信息熵的表示如下:

3.相对熵(K-L散度/信息散度)

    1951年,Kullback和Leibler提出了K-L散度(Kullback-Leibler divergence,也被称作相对熵,relative entropy)用来度量两个分布的偏离程度。

    相对熵,又称KL散度( Kullback–Leibler divergence),是描述两个概率分布P和Q差异的一种方法。它是非对称的,这意味着D(P||Q) ≠ D(Q||P)。特别的,在信息论中,D(P||Q)表示当用概率分布Q来拟合真实分布P时,产生的信息损耗,其中P表示真实分布,Q表示P的拟合分布。

有人将KL散度称为KL距离,但事实上,KL散度并不满足距离的概念,因为:(1)KL散度不是对称的;(2)KL散度不满足三角不等式。

定义

    相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence)。

设P(x)和Q(x)是X取值的两个离散概率分布,则P对Q的相对熵为:

对于连续的随机变量,定义为:

相对熵是两个概率分布P和Q差别的非对称性的度量。

物理意义

    相对熵是用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的比特个数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。

    根据shannon的信息论,给定一个字符集的概率分布,我们可以设计一种编码,使得表示该字符集组成的字符串平均需要的比特数最少。假设这个字符集是X。对于,其出现概率为,那么其最优编码平均需要的比特数等于这个字符集的熵:

    在同样的字符集上,假设存在另一个概率分布,如果用概率分布的最优编码(即字符的编码长度等于 ),来为符合分布的字符编码,那么表示这些字符就会比理想情况多用一些比特数。相对熵就是用来衡量这种情况下平均每个字符多用的比特数,因此可以用来衡量两个分布的距离,即:

性质:

相对熵(KL散度)有两个主要的性质,如下:

(1)不对称性

尽管KL散度从直观上是个度量或距离函数,但它并不是一个真正的度量或者距离,因为它不具有对称性,即

(2)非负性

相对熵的值为非负值,即

,证明可用吉布斯不等式。

证明如下:

由于对数函数是上凸函数,所以:

所以相对熵始终是大于等于0的,当且仅当两分布相同时,相对熵等于0。

相对熵=交叉熵-信息熵:

----(可将K-L散度表达式展开即可log(a/b)=log a - log b)

4.交叉熵

定义

      交叉熵是一个信息论中的概念,它原来是用来估算平均编码长度的。它描述了两个概率分布之间的距离,当交叉熵越小说明二者之间越接近。它是分类问题中使用比较广的一种损失函数。 给定两个概率分布p和q,通过q来表示p的交叉熵为:


    交叉熵刻画的是两个概率分布之间的距离,或可以说它刻画的是通过概率分布q来表达概率分布p的困难程度,p代表正确答案,q代表的是预测值,交叉熵越小,两个概率的分布约接近。

    当事件总数是一定的时候, 概率函数满足:

    

也就是说 所有时间发生的概率都是0到1 之间 , 且总有一个时间会发生,概率的和就为1。

分类问题

 在神经网络中怎样把前向传播得到的结果也变成概率分布呢?Softmax回归就是一个非常有用的方法。(为什么交叉熵经常要个softmax一起使用?面试中会问到)

Softmax回归本身可以作为一个学习算法来优化分类结果,但在TensorFlow中,Softmax回归的参数被去掉了,它只是一层额外的处理层,将神经网络的输出变成一个概率分布。下图展示了加上Softmax回归的神经网络结构图。 

 

    假设原始神经网络输出为 y1, y2, y3, ... , yn

 softmax 处理后的输出为: 

   

(原始神经网络的输出被用作置信度来生成新的输出,新的输出满足概率分布所有要求)

这样就把神经网络的输出也变成了一个概率分布,从而可以通过交叉熵来计算预测的概率分布和真实答案的概率分布之间的距离了。

举例

假设有一个3分类问题,某个样例的正确答案是(1,0,0)
某模型经过Softmax回归之后的预测答案是(0.5,0.4,0.1),那么这个预测和正确答案之间的交叉熵为: 
H((1,0,0),(0.5,0.4,0.1))=−(1×log0.5+0×log0.4+0×log0.1)≈0.3
H((1,0,0),(0.5,0.4,0.1))=−(1×log0.5+0×log0.4+0×log0.1)≈0.3

如果另一个模型的预测是(0.8,0.1,0.1),那么这个预测值和真实值之间的交叉熵是:
H((1,0,0),(0.8,0.1,0.1))=−(1×log0.8+0×log0.1+0×log0.1)≈0.1
H((1,0,0),(0.8,0.1,0.1))=−(1×log0.8+0×log0.1+0×log0.1)≈0.1

从直观上可以很容易地知道第二个预测答案要优于第一个。通过交叉熵计算得到的结果也是一致的(第二个交叉熵的值更小)。

区别与联系:

信息熵,是随机变量或整个系统的不确定性。熵越大,随机变量或系统的不确定性就越大。

相对熵,用来衡量两个取值为正的函数或概率分布之间的差异。

交叉熵,用来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出的努力的大小。

相对熵=交叉熵-信息熵:

 

 

 

 

 

 


 

 

 

 

 

 

 

 

### 信息熵 信息熵是一种衡量随机变量不确定性的指标。对于离型随机变量 \(X\),其概率质量函数为 \(P(X)\),则信息熵定义如下: \[ H(X) = - \sum_{i=1}^{n} P(x_i) \log_2(P(x_i)) \] 其中,\(P(x_i)\) 表示事件 \(x_i\) 发生的概率[^1]。 信息熵越高,则系统的不确定性越大;反之亦然。 --- ### 交叉熵 交叉熵是用来衡量两个概率分布之间差异的一种方法,在机器学习中广泛应用于分类任务中的损失计算。假设真实分布为 \(P\),预测分布为 \(Q\),那么交叉熵可以表示为: \[ H(P, Q) = - \sum_{i=1}^{n} P(x_i) \log(Q(x_i)) \] 这里需要注意的是,交叉熵不仅依赖于真实的概率分布 \(P\),还取决于模型预测的概率分布 \(Q\)。因此,它是评估模型性能的重要工具之一[^2]。 --- ### KL KL (Kullback-Leibler divergence),也称为相对熵,用于量化两个概率分布之间的差异程。给定两个概率分布 \(P\) \(Q\),KL 的公式为: \[ D_{KL}(P || Q) = \sum_{i=1}^{n} P(x_i) \log{\frac{P(x_i)}{Q(x_i)}} \] 值得注意的是,KL 具有 **对称性** **非负性** 的特点。即通常情况下 \(D_{KL}(P || Q) \neq D_{KL}(Q || P)\)[^3]。 --- ### JS JS (Jensen-Shannon divergence)是对称版本的 KL ,解决了 KL 不对称的问题。它通过引入中间分布来实现这一点。设 \(M = \frac{1}{2}(P + Q)\),则 JS 可写成: \[ D_{JS}(P || Q) = \frac{1}{2} D_{KL}(P || M) + \frac{1}{2} D_{KL}(Q || M) \] 由于 JS 基于 KL 构建,所以它的取值范围在 \([0, 1]\) 内,并且满足对称性有限性条件。 --- ### 定义区别与联系 | 指标 | 描述 | |------------|------------------------------------------------------------------------------------------| | **信息熵** | 测量单个随机变量本身的不确定性 | | **交叉熵** | 量两个概率分布间的差异,主要用于监督学习中的目标优化 | | **KL ** | 计算一个分布相对于另一个分布的信息增益或“距离”,是对称的 | | **JS ** | 基于 KL 改进而来,解决对称问题并提供更稳定的数值表现 | 这些概念都属于信息论范畴,但在实际应用中有不同的侧重点。例如,交叉熵被频繁用作神经网络训练的目标函数,而 KL 更多地出现在变分推断等领域。 --- ### 在机器学习学习中的作用 - **信息熵**:帮助理解数据集内部结构以及特征的重要性。 - **交叉熵**:作为分类任务的核心损失函数,指导模型参数调整以最小化误差。 - **KL **:适用于生成对抗网络 (GANs) 或变分自编码器 (VAEs) 中隐空间分布匹配的任务。 - **JS **:相比 KL 更加稳定可靠,尤其适合处理不平衡样本情况下的相似比较场景。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值