【数学】信息论之从熵、惊奇到交叉熵、KL散度和互信息

news/2025/2/7 10:09:22/文章来源:https://www.cnblogs.com/gongzb/p/18702127

转自:https://www.cnblogs.com/justLittleStar/p/17322197.html

一、熵(PRML)

考虑将A地观测的一个随机变量x,编码后传输到B地。
这个随机变量有8种可能的状态,每个状态都是等可能的。为了把x的值传给接收者,需要传输一个3-bits的消息。注意,这个变量的熵由下式给出:

0
⾮均匀分布⽐均匀分布的熵要⼩。
如果概率分布非均匀,同样使用等长编码,那么并不是最优的。相反,可以根据随机变量服从的概率分布构建Huffman树,得到最优的前缀编码。
0
可以利⽤⾮均匀分布这个特点,使⽤更短的编码来描述更可能的事件,使⽤更长的编码来描述不太可能的事件。
可以使⽤下⾯的编码串:0、10、110、1110、111100、111101、111110、111111来表⽰状态{a, b, c, d, e, f, g, h}。传输的编码的平均长度就是
0
⽆噪声编码定理(noiseless coding theorem)表明,熵是传输⼀个随机变量状态值所需的⽐特位的下界。
 
事实上,熵的概念最早起源于物理学,是在热⼒学平衡的背景中介绍的。后来,熵成为描述统计⼒学中的⽆序程度的度量。
考虑⼀个集合,包含N个完全相同的物体,这些物体要被分到若⼲个箱⼦中,使得第i个箱⼦中有ni个物体。考虑把物体分配到箱⼦中的不同⽅案的数量。有N种⽅式选择第⼀个物体,有(N -1)种⽅式选择第⼆个物体,以此类推。
因此总共有N!种⽅式把N个物体分配到箱⼦中,其中N!表⽰乘积N × (N -1) × · · · × 2 × 1。然⽽,我们不想区分每个箱⼦内部物体的重新排列。在第i个箱⼦中,有ni!种⽅式对物体重新排序,因此把N个物体分配到箱⼦中的总⽅案数量为:
0
这被称为乘数(multiplicity)。熵被定义为通过适当的参数放缩后的对数乘数,即
0

二、惊奇与信息

考虑关于⼀个随机试验中可能出现的事件E。当我们真正观察到事件E时,我们接收到了多少信息呢?对事件E的惊奇程度取决于E发生概率,越是不可能的事件发生,带来的惊奇程度越大
0
  • 如果有⼈告诉我们⼀个相当不可能的事件发⽣了,我们收到的信息要多于我们被告知某个很可能发⽣的事件发⽣时收到的信息。
  • 如果听到⼀个必然事情,那么就不会接收到信息。EX: 明天有24h
对惊奇程度进行量化:信息量可看成E发生时的“惊讶程度”(消除不确定性的程度)
对于信息内容的度量将依赖于概率分布p(x),因此想要寻找⼀个函数h(x),它是概率p(x)的单调递增函数,表达了信息的内容。
h(·)的形式可以这样寻找:
  • 如果有两个不相关的事件x和y,那么观察到两个事件同时发⽣时获得的信息应该等于观察到事件各⾃发⽣时获得的信息之和,即h(x, y) = h(x) + h(y)。
  • 两个不相关事件是统计独⽴的,因此p(x, y) = p(x)p(y)。
根据这两个关系,很容易看出h(x)⼀定与p(x)的对数有关。因此有:h(x) = -log2p(x)。
  • 其中,负号确保了信息⼀定是正数或者是零。
  • 注意,低概率事件x对应于⾼的信息量。
  • 对数的底遵循信息论使⽤2作为对数的底(2进制编码最短)。
h(x)的单位是⽐特(bit, binary digit)。
0
随机变量的熵,衡量了其分布下的编码长度(概率值的倒数的对数)的期望,即平均编码长度。
0
 

三、熵的相关变量

熵用于衡量不确定性,其相当于是编码一个随机变量的平均最小编码长度(最优编码的下界,即huffman编码)

1.自信息-二进制编码长度

 

1q(x)1𝑞(𝑥)

 

2.信息熵

 

H(p(x))=p(x)lnp(x)dx=p(x)ln1p(x)dx=Exp(x)[ln1p(x)]𝐻(𝑝(𝑥))=−∫𝑝(𝑥)ln⁡𝑝(𝑥)𝑑𝑥=∫𝑝(𝑥)ln⁡1𝑝(𝑥)𝑑𝑥=𝐸𝑥∼𝑝(𝑥)[ln⁡1𝑝(𝑥)]

 

3.交叉熵

用一个分布p(x)的编码去编码另一个分布q(x)的代价(平均编码长度)

 

C(p(x)q(x))=p(x)lnq(x)dx=Exp(x)[ln1q(x)]𝐶(𝑝(𝑥)‖𝑞(𝑥))=−∫𝑝(𝑥)ln⁡𝑞(𝑥)𝑑𝑥=𝐸𝑥∼𝑝(𝑥)[ln⁡1𝑞(𝑥)]

 

分布q(x)的自信息(最小编码长度)关于分布p(x)的期望
Ex: q(x1) = 0.25需要2bits,例如00来编码,但p(x1)=0.01
,相当于用更短的编码来编码低频取值(不符合高频短码),可能导致编码代价更大。

随机变量取值越多,熵越大(信息增益)

4.KL散度

衡量两个分布p(x)和q(x)的距离(不相似程度):用一个分布p(x)的编码去编码另一个分布q(x)的额外代价

若KL散度为0,则表示编码额外代价为0,即两个分布相同

 

KL(p(x)q(x))=p(x)lnq(x)p(x)dx=p(x)lnp(x)q(x)dx=p(x)lnp(x)p(x)lnq(x)dx=p(x)lnq(x)dx(p(x)lnp(x))=C(p(x)q(x))H(p(x))=Exp(x)[lnp(x)q(x)]𝐾𝐿(𝑝(𝑥)‖𝑞(𝑥))=−∫𝑝(𝑥)ln⁡𝑞(𝑥)𝑝(𝑥)𝑑𝑥=∫𝑝(𝑥)ln⁡𝑝(𝑥)𝑞(𝑥)𝑑𝑥=∫𝑝(𝑥)ln⁡𝑝(𝑥)−𝑝(𝑥)ln⁡𝑞(𝑥)𝑑𝑥=−∫𝑝(𝑥)ln⁡𝑞(𝑥)𝑑𝑥−(−∫𝑝(𝑥)ln⁡𝑝(𝑥))=𝐶(𝑝(𝑥)‖𝑞(𝑥))−𝐻(𝑝(𝑥))=𝐸𝑥∼𝑝(𝑥)[ln⁡𝑝(𝑥)𝑞(𝑥)]

 

由于熵为常数项,最小化交叉熵,相当于最小化KL散度(最大似然),离散形式即求和。

5. 互信息

image
image

联合分布p(x, y)和边缘分布乘积累p(x)p(y)的KL散度。
如果互信息为0,则两个边缘分布独立p(x, y) = p(x) p(y)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/879968.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用多项式回归分析简单投掷数据-训练投石机数据预测模型

用多项式回归分析简单投掷数据 进阶实验:训练投石机数据预测模型 问题描述:(1)投掷角度不变,已知电机速度,如何得出实际投掷距离?(2)其电机速度(motor_speed)和投掷距离(distance)的对应关系有什么关系? 投掷角度不变,电 机速度与投掷距离 的数据集展示: 学习:i可以通过…

css背景模糊效果

下面是效果下面是实现代码<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-…

线性回归模型训练-训练温度传感器数据预测模型

基础实验:训练温度传感器数据预测模型 任务描述:LM35是科创作品制作中常用的温度传感器(1)已知电压值, 如何得出实际温度值?(2)输出电压(Sensor)和真实温度(Temperature)有什么关 系?请借助大模型生成这两列数据的关系图 /目录学习:可以通过机器学习,训练传感器数据预测模型…

【分享】银行业如何实现内外网文件传输,保持核心竞争力?

数据要素是数字经济的重要基石,也是国家经济安全的关键要素。银行业数据因其数据体量大、数据类型多、涉及主体庞大及应用场景复杂等天然特征,在数据流转上面临风险和挑战,包括法律法规层面、安全层面、效率层面等。为响应和落实国家层面对于金融行业网络安全的建设要求,同…

SMT32的HEX文件里加入固件版本的方法(转)

使用MDK编译器,让STM32程序HEX文件中加入固件版本信息。 代码代码如下: //------------------------------------------------------------------------------#include <absacc.h>//------------------------------------------------------------------------------#d…

uniapp 自定义tabBar组件 custom-tab-bar

custom-tab-bar 自定义tabBar组件。 在小程序和App端,为提升性能,在 pages.json 里配置固定的原生tabBar。但在H5端,这一设计并不会提升性能。 同时,H5端尤其是PC宽屏,对tabBar的位置和样式有更灵活的需求,tabBar作为一级导航,更多的时候是在PC网页顶部而不是底部。 自定…

无法连接/访问 Linux虚拟的中的端口(Redis)

Could not connect to Redis at 192.168.137.132:6379: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。当出现 “Could not connect to Redis at 192.168.137.132:6379: No route to host” 错误,意味着客户端无法找到通往 Redis 服务器(IP 为 192…

钉钉发送告警(非@)

环境: OS:Centos 7 python:2.7[root@yunwei-zabbix-1000001-prd alertscripts]# more dingtalk_middleware.py #!/usr/bin/env python #-*- coding: utf-8 -*-import sys, json, urllib2def Dingtalk(message):content = messageurl = "https://oapi.dingtalk.com/robot/…

为GitLab配置Microsoft Graph作为邮件收发工具

先决条件Microsoft/Office 365订阅(Exchange是必须的)并添加一个gitlab专用的账户,本文使用E5开发者订阅 部署好的GitLab,参考上一篇文章步骤一、 配置Microsoft Entra 1. 注册应用程序 登录Azure门户,进入Microsoft Entra ID,选择管理-应用注册-新注册填写你想要的名称,…

C# 深度学习框架 TorchSharp 原生训练模型和图像识别-自定义网络模型和识别手写数字

目录使用 Torch 训练模型定义神经网络加载数据集创建网络模型定义损失函数训练识别手写图像 教程名称:使用 C# 入门深度学习 作者:痴者工良 教程地址:https://torch.whuanle.cn 电子书仓库:https://github.com/whuanle/cs_pytorch Maomi.Torch 项目仓库:https://github.co…

ZW3D二次开发_入门_Action与Ribbon菜单定制--转自 知乎 捣蛋龙

ZW3D二次开发_入门_Action与Ribbon菜单定制捣蛋龙 ​关注他5 人赞同了该文章​ 目录收起ZW3D二开入门目录 - 知乎 (zhihu.com)最新测试环境:2025 SP前言定制Ribbon菜单1.新建工作区2.定义"行为"3.定义自定义Ribbon文件4.编写策略文件5.编写引导程序6.多环境差异化策…