信息熵,交叉熵与相对熵

前言

最近在多处看到熵的概念,之前零散的了解了一下,最近总结下,加深一下理解。

熵是信息论中的一个概念,用于衡量一个随机变量的不确定性,公式很简单: l o g ( 1 / p ( x ) ) log(1/p(x)) log(1/p(x)),其中 p ( x ) p(x) p(x)为x的概率分布(离散)或者概率密度(连续)函数,公式很直观,概率越小熵越大,即信息量越大。

信息熵

信息熵为熵的期望,用于衡量一个分布的不确定性,以下为离散变量概率分布下的计算公式:
H ( p ) = ∑ i p ( i ) l o g ( 1 / p ( i ) ) = − ∑ i p ( i ) l o g p ( i ) H(p)=\sum_i p(i)log(1/p(i))=-\sum_i p(i)logp(i) H(p)=ip(i)log(1/p(i))=ip(i)logp(i)
基本可以看出,当一个随机变量分布越散,信息熵越大,而分布越集中,信息熵越小,离散分布和连续分布类似,这里不多做讨论。

交叉熵

假设我们知道某个分布的真实概率分布 p ( x ) p(x) p(x)(机器学习中的标签)和一个预测概率分布 q ( x ) q(x) q(x)(模型预测概率),交叉熵公式为:
H ( p , q ) = ∑ i p ( i ) l o g ( 1 / q ( i ) ) = − ∑ i p ( i ) l o g q ( i ) H(p,q)=\sum_i p(i)log(1/q(i))=-\sum_i p(i)logq(i) H(p,q)=ip(i)log(1/q(i))=ip(i)logq(i)
前面讲到信息熵用于衡量一个分布的不确定性,个人理解交叉熵是以预测概率分布来衡量该真实分布的不确定性,因此交叉熵与信息熵是存在误差的,且预测概率分布与真实分布差距越大,这种误差就越大,因此引入相对熵来衡量这种误差。

相对熵(KL散度)

先上公式:
D ( p ∣ ∣ q ) = H ( p , q ) − H ( p ) = ∑ i p ( i ) l o g p ( i ) q ( i ) D(p||q)=H(p,q)-H(p)=\sum_i p(i)log\frac {p(i)}{q(i)} \\ D(pq)=H(p,q)H(p)=ip(i)logq(i)p(i)
顺带提一句,深度学习中经常使用交叉熵作为损失函数,实际上使用的是相对熵,只有相对熵才能衡量两个分布的差异,而在深度学习中,使用的训练集标签往往是完全确定的,例如分类车,当给定一张车的图片,可以将其认定为一个0-1分布:
P ( y ) = { 1 , y = 1 , 0 , y = 0. P(y)=\left\{ \begin{aligned} 1, y=1, \\ 0, y=0. \\ \end{aligned} \right. P(y)={1,y=1,0,y=0.
车的标签是车,因此 y = 1 y=1 y=1概率为1,因此其信息熵为 1 ∗ l o g 1 = 0 1*log1=0 1log1=0,此时相对熵等于交叉熵。

参考信息熵,交叉熵和相对熵

### 信息熵 信息熵是一种衡量随机变量不确定性的指标。对于离散型随机变量 \(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、付费专栏及课程。

余额充值