信息熵,交叉熵和相对熵

目录

0.总述

1.信息熵

2.交叉熵

3.相对熵/KL散度(Kullback-Leibler divergence), 亦可称为KL距离

4.举例

5.参考资料


0.总述

现在有两个分布,真实分布p和非真实分布q,我们的样本来自真实分布p。

按照真实分布p来编码样本所需的编码长度的期望为,这就是信息熵H( p )

按照不真实分布q来编码样本所需的编码长度的期望为,这就是所谓的交叉熵H( p,q )

这里引申出KL散度D(p||q) = H(p,q) - H(p) = ,也叫做相对熵

 

1.信息熵

熵的定义如下:熵是接收的每条消息中包含的信息的平均量,又被称为信息熵、信源熵、平均自信息量。直白地解释就是信息中含的信息量的大小,其定义如下:

其曲线如下所示:

可以看出,一个事件的发生的概率离0.5越近,其熵就越大,概率为0或1就是确定性事件,不能为我们带信息量。也可以看作是一件事我们越难猜测是否会发生,它的信息熵就越大

2.交叉熵

交叉熵的公式定义如下:

其中p(x)在机器学习中为样本label,q(x)为模型的预估,分别代表训练样本和模型的分布

 

3.相对熵/KL散度(Kullback-Leibler divergence), 亦可称为KL距离

 

KL散度,也叫做相对熵,它表示两个分布的差异,差异越大,相对熵越大。

D(p||q) = H(p,q) - H(p) 

             

等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵

 

机器学习中,我们用非真实分布q去预测真实分布p。

因为真实分布p是固定的,H(p), 训练样本的熵,训练样本定,该值即为固定值。D(p||q) = H(p,q) - H(p) 中 H(p) 固定。

也就是说交叉熵H(p,q)越大,相对熵D(p||q)越大,两个分布的差异越大。

由于KL散度中的前一部分−H(y)不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用用交叉熵做loss,评估模型。

4.举例

比如有如下样本, 对应的标签和预测值

*青蛙老鼠
Label010
Pred0.30.60.1

那么 

对应一个batch的loss就是 

m为当前batch的样本数

 

5.参考资料

https://blog.youkuaiyun.com/tsyccnh/article/details/79163834

https://blog.youkuaiyun.com/wenzishou/article/details/77618992

https://www.cnblogs.com/liaohuiqiang/p/7673681.html

 

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

余额充值