news 2026/8/29 1:53:40

熵和交叉熵和KL散度

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
熵和交叉熵和KL散度

理解熵和交叉熵的关键在于区分“事物本身的不确定性”和“我们对事物的预测与真实情况的差异”。下面我们通过一个天气预报的比喻来直观理解。

🔍 理解熵:不确定性的度量

衡量的是一个概率分布本身的不确定性或混乱程度。分布越均匀、越难猜中结果,熵就越高。

想象你要预报A城市明天的天气,历史数据如下:

  • ☀️ 晴天概率:80%

  • ☁️ 多云概率:15%

  • 🌧️ 下雨概率:5%

这个天气分布的熵计算如下:

H(A) = - [0.8*log₂(0.8) + 0.15*log₂(0.15) + 0.05*log₂(0.05)] ≈ 0.884 比特

这个值(约0.884比特)可以理解为“准确预报天气所需的最小平均信息量”。如果天气更极端,比如几乎总是晴天,熵会降低(不确定性减小);如果三种天气概率相等,熵会升高(不确定性增大)。

📊 理解交叉熵与KL散度:预测与真实的差距

现在,假设你作为预报员,对A城市天气的预测分布为:

  • ☀️ 晴:40%

  • ☁️ 云:30%

  • 🌧️ 雨:30%

真实分布(上文熵中的分布)是:

  • ☀️ 晴:80%

  • ☁️ 云:15%

  • 🌧️ 雨:5%

交叉熵衡量的是,当你用预测分布(Q)​ 去描述真实分布(P)​ 时,所付出的平均信息量。其计算公式为:

H(P, Q) = - Σ P(x) * log(Q(x))

代入我们的例子:

H(真实, 预测) = - [0.8*log₂(0.4) + 0.15*log₂(0.3) + 0.05*log₂(0.3)] ≈ 1.405 比特

这个值(1.405比特)大于真实的熵(0.884比特)。之所以更大,是因为你的预测分布(Q)与真实分布(P)有差异,导致编码效率降低。这个多出来的“信息损耗”或“差异程度”,就是KL散度(Kullback-Leibler Divergence)。

它们三者的核心关系是:

KL散度 = 交叉熵 - 熵

Dₖₗ(P||Q) = H(P, Q) - H(P)

代入计算:

Dₖₗ(真实||预测) = 1.405 - 0.884 = 0.521 比特

下表总结了这些概念的关键点:

概念

衡量对象

核心意义

在天气预报例子中的含义

熵 (H(P))

单个概率分布 (P)

系统内在的不确定性或平均信息量

准确预报A城市天气所需的最小平均信息量(0.884比特)

交叉熵 (H(P, Q))

两个概率分布 (P 和 Q)

预测分布 (Q)​ 去表示真实分布 (P)​ 所需的平均信息量

用你错误的预测模型来预报天气,所需的平均信息量(1.405比特)

KL散度 (Dₖₗ(P||Q))

两个概率分布 (P 和 Q)

预测分布 (Q)​ 与真实分布 (P)​ 之间的差异程度

你的预测模型真实情况差距(0.521比特)

它们的关系可以用下图清晰地展示:

flowchart TD A[("预测分布 Q<br>与真实分布 P 的差异")] --> B[KL散度 Dₖₗ(P||Q)<br>衡量两个分布的差异] C[("预测的代价")] --> D[交叉熵 H(P,Q)<br>使用分布Q表示分布P的平均信息量] E[("固有的不确定性")] --> F[熵 H(P)<br>分布P本身的不确定性] B --> D F --> D style A stroke-dasharray: 5 5 style C stroke-dasharray: 5 5 style E stroke-dasharray: 5 5

从图和公式都能直观看出:交叉熵是由系统本身的不确定性(熵)和由于预测不准带来的额外成本(KL散度)共同构成的

💡 核心要点与机器学习中的应用

总结一下关键要点:

  • 熵是“底价”:是描述真实分布所需信息量的理论最小值。

  • 交叉熵是“实付”:是你使用有误差的预测分布时,实际付出的信息量成本。

  • KL散度是“溢价”:是由于预测不精准而产生的额外成本。

  • 最小化交叉熵等价于最小化KL散度:因为在机器学习中,训练数据的真实分布(P)是固定的,其熵(H(P))也就固定了。因此,通过优化算法降低交叉熵损失(H(P, Q)),本质上就是在减少预测分布(Q)与真实分布(P)之间的KL散度,让模型的预测越来越接近真实情况。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 18:34:38

Ray-MMD渲染完全指南:从入门到精通的高质量MMD制作

Ray-MMD渲染完全指南&#xff1a;从入门到精通的高质量MMD制作 【免费下载链接】ray-mmd &#x1f3a8; The project is designed to create a physically-based rendering at mikumikudance. 项目地址: https://gitcode.com/gh_mirrors/ra/ray-mmd Ray-MMD作为MMD领域最…

作者头像 李华
网站建设 2026/8/27 22:26:13

SmartDNS中domain-set规则配置错误排查与性能优化方案

SmartDNS中domain-set规则配置错误排查与性能优化方案 【免费下载链接】smartdns A local DNS server to obtain the fastest website IP for the best Internet experience, support DoT, DoH. 一个本地DNS服务器&#xff0c;获取最快的网站IP&#xff0c;获得最佳上网体验&am…

作者头像 李华
网站建设 2026/8/29 0:22:07

Vite多页面架构重构:从传统到现代化的完整升级方案

Vite多页面架构重构&#xff1a;从传统到现代化的完整升级方案 【免费下载链接】vite Next generation frontend tooling. Its fast! 项目地址: https://gitcode.com/GitHub_Trending/vi/vite 架构重构的必要性分析 传统MPA架构的局限性诊断 在传统多页面应用(MPA)开发…

作者头像 李华
网站建设 2026/8/25 8:16:38

Step1X-3D:如何生成高保真可控3D纹理资产?

Step1X-3D&#xff1a;如何生成高保真可控3D纹理资产&#xff1f; 【免费下载链接】Step1X-3D 项目地址: https://ai.gitcode.com/StepFun/Step1X-3D 导语&#xff1a;Step1X-3D框架正式开源&#xff0c;通过创新数据处理和双阶段生成架构&#xff0c;解决3D资产生成中…

作者头像 李华
网站建设 2026/8/24 15:47:03

acme-tiny ACME协议升级指南:从v1到v2的完整迁移方案

acme-tiny ACME协议升级指南&#xff1a;从v1到v2的完整迁移方案 【免费下载链接】acme-tiny A tiny script to issue and renew TLS certs from Lets Encrypt 项目地址: https://gitcode.com/gh_mirrors/ac/acme-tiny acme-tiny是一个轻量级的Python脚本&#xff0c;专…

作者头像 李华
网站建设 2026/8/18 6:43:26

ERNIE 4.5-A47B:300B参数大模型免费商用攻略

ERNIE 4.5-A47B&#xff1a;300B参数大模型免费商用攻略 【免费下载链接】ERNIE-4.5-300B-A47B-PT 项目地址: https://ai.gitcode.com/hf_mirrors/baidu/ERNIE-4.5-300B-A47B-PT 百度ERNIE 4.5系列再添重磅成员——ERNIE-4.5-300B-A47B-PT模型正式开放免费商用&#xf…

作者头像 李华