当前位置: 首页 > news >正文

什么是信息熵

信息熵

公式

  • 一个离散随机变量 X X X的可能取值为 X = x 1 , x 2 , . . . , x n X=x_1,x_2,...,x_n X=x1,x2,...,xn,而对应的概率为 p i = p ( X = x i ) p_i=p(X=x_i) pi=p(X=xi),如下

    x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3 x 4 x_4 x4 x n x_n xn
    p( x 1 x_1 x1)p( x 2 x_2 x2)p( x 3 x_3 x3)p( x 4 x_4 x4)p( x n x_n xn)

    在信息论中,某个信息 x i x_i xi 出现的不确定性的大小定义为 x i x_i xi 所携带的信息量,用 I ( x i ) I(x_i) I(xi) 表示。 I ( x i ) I(x_i) I(xi) 与信息 x i x_i xi 出现的概率 p ( x i ) p(x_i) p(xi) 之间的关系为
    I ( x i ) = log ⁡ 1 p ( x i ) = − log ⁡ p ( X i ) \begin{aligned} I(x_i) &= \log\frac{1}{p(x_i)} \\ &= -\log p(X_i) \end{aligned} I(xi)=logp(xi)1=logp(Xi)
    以上是求单一信息的信息量;求全部信息的平均信息量,即

    1. 离散型随机变量的信息熵定义为:

    H ( x ) = − ∑ i = 1 n p ( x i ) log ⁡ p ( x i ) = H ( P ) \begin{aligned} H(x) &= -\sum\limits_{i=1}^n p(x_i) \log p(x_i) \\ &= H(P) \end{aligned} H(x)=i=1np(xi)logp(xi)=H(P)

    1. 连续型随机变量的信息熵定义为:

    H ( x ) = − ∫ f ( x ) log ⁡ ( f ( x ) ) d x H(x) = -\int f(x) \log(f(x))dx H(x)=f(x)log(f(x))dx

    规定当 p ( x i ) = 0 p(x_i) = 0 p(xi)=0 时, p ( x i ) log ⁡ p ( x i ) = 0 p(x_i)\log p(x_i) = 0 p(xi)logp(xi)=0

  • 信息熵是一个平均信息量,可以解释为:用基于P的编码去编码来自P的样本,其最优编码平均所需要的比特个数。

例子

  • 以《数学之美》中一个小例子来理解上述的公式,世界杯有32支球队,赛后我问一个知道比赛的观众“哪支球队是冠军”?他不愿告诉我,让我猜,并且没猜一次,他需要收一块钱(一块钱能买1G流量,上网查它不香吗?)才肯告诉我是否才对,我可以吧球队编号从1到32,然后提问“冠军是在1-16号球队中吗?”假如他告诉我猜错了,那么肯定就在17-32号球队中,这样只需要提问5次( 2 5 = 32 2^5=32 25=32),就能知道哪只球队是冠军。所以谁是世界杯冠军这条消息只值5元( log ⁡ 2 32 = 5 \log_2^{32}=5 log232=5)。

    香农用“比特”(Bit)来度量信息量,一个比特是一位二进制数,在计算机中,一个字节是8比特。则在上面的例子中,这条信息量是5比特,信息量的比特数和所有可能情况的对数函数有关。即信息量
    I ( x i ) = log ⁡ 2 1 p ( x i ) = − log ⁡ 2 p ( X i ) = log ⁡ 2 1 1 32 = − log ⁡ 2 1 32 = 5 ( b i t ) \begin{aligned} I(x_i) &= \log_2\frac{1}{p(x_i)} \\ &= -\log_2 p(X_i)\\ &=\log_2\frac{1}{\frac{1}{32}}\\ &=-\log_2\frac{1}{32} \\ &=5(bit) \end{aligned} I(xi)=log2p(xi)1=log2p(Xi)=log23211=log2321=5(bit)
    当然我们发现实际上可能并不需要5次才能猜中,因为巴西,德国,意大利这样的球队会比其他球队更有可能夺冠,所以第一次猜测时不需要等分,而可以将少数热门球队分为一份,其他的另分为一份,重复这个过程,有可能3次或者4次就能猜出结果。所以,当没只球队夺冠的可能性(概率)不等时(使用 p 1 , p 2 , … , p 32 分别表示这 32 只球队夺冠的概率 p_1,p_2,\dots,p_{32}分别表示这32只球队夺冠的概率 p1,p2,,p32分别表示这32只球队夺冠的概率),“谁是世界杯冠军”的信息量比5比特少。香农指出,它准确的信息量是
    H ( x ) = − ∑ i = 1 n p ( x i ) log ⁡ p ( x i ) = H ( P ) = − ( p 1 ⋅ log ⁡ p 1 + p 2 ⋅ log ⁡ p 2 + ⋯ + p 32 ⋅ log ⁡ p 32 ) \begin{aligned} H(x) &= -\sum\limits_{i=1}^n p(x_i) \log p(x_i) \\ &= H(P)\\ &=-(p_1\cdot\log p_1 + p_2\cdot\log p_2 + \cdots + p_{32}\cdot\log p_{32} ) \end{aligned} H(x)=i=1np(xi)logp(xi)=H(P)=(p1logp1+p2logp2++p32logp32)
    香农称之为信息熵,一般用H表示,单位是比特。当这32支球队夺冠概率相同时,对应的信息熵等于5比特。

  • 汉字编码

    有一本50万字的书,假设每个字出现的概率相同,那么每个字携带的信息量是
    log ⁡ 2 500000 ≈ 18.93 b i t \log_2^{500000} \approx 18.93 bit log250000018.93bit
    即加入每个字等概率,大约需要19比特(19位二进制数)表示一个汉字

    这本书总携带的信息量为
    500000 ∗ log ⁡ 2 500000 ≈ 500000 ∗ 18.93 Bit = 9465000 Bit = ( 9465000 / 8 ) Byte = 1183125 Byte = ( 1183125 / 1024 / 1024 ) G ≈ 1.13 G \begin{aligned} 500000*\log_2^{500000} &\approx 500000*18.93 ~\text{Bit} \\ &=9465000~\text{Bit}\\ &=(9465000 / 8)~ \text{Byte} \\ &=1183125~\text{Byte}\\ &=(1183125/1024/1024) \text{G}\\ &\approx 1.13\text{G} \end{aligned} 500000log250000050000018.93 Bit=9465000 Bit=(9465000/8) Byte=1183125 Byte=(1183125/1024/1024)G1.13G
    即在假设每个字出现的概率相同的情况下,50万字的书携带的信息量为9465000比特;

    但是汉子使用频率不均等,10%的汉字占常用文本的95%以上。且在考虑上下文的情况下,每个汉字的信息熵只有5bit左右,即50万字携带250万比特的信息,采用较好的算法压缩,整本书可以存成一个320k的文件,若直接用两字节的国标编码存储这本书,大约需要1MB大小,是压缩文件的3倍,这两个数据量的差异在信息论中叫冗余度,且250万比特在这只是一个平均数,同样两本50万字的书,所含的信息量可以相差很多。如果一本书重复的内容很多,它的信息量就小,冗余度就大。且不同语言的冗余度差别也很大,一本很厚的英文书翻译成中译本一般会薄很多。

伯努利分布的熵

  • 伯努利分布(两点分布、0-1分布)

    x10
    概率p1-p

    H ( x ) = − ∑ x p ( x ) log ⁡ p ( x ) = − p log ⁡ p − ( 1 − p ) log ⁡ ( 1 − p ) \begin{aligned} H(x)&=-\sum_x p(x)\log p(x)\\ &=-p\log p-(1-p)\log(1-p) \end{aligned} H(x)=xp(x)logp(x)=plogp(1p)log(1p)


熵的性质

  • 对于离散型随机变量,当其服从均匀分布时,熵有极大值;
  • 对与离散型随机变量,取某一个值的概率为1,其他所有值的概率为0时,熵有极小值。

相关文章:

什么是信息熵

信息熵 公式 一个离散随机变量 X X X的可能取值为 X x 1 , x 2 , . . . , x n Xx_1,x_2,...,x_n Xx1​,x2​,...,xn​,而对应的概率为 p i p ( X x i ) p_ip(Xx_i) pi​p(Xxi​),如下 x 1 x_1 x1​ x 2 x_2 x2​ x 3 x_3 x3​ x 4 x_4 x4​… x n x_n xn​p( x …...

使用API有效率地管理Dynadot域名,清除某一文件夹中域名的默认DNS设置

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…...

2.11 sqlite3数据库【数据库的相关操作指令、函数】

练习: 将 epoll 服务器 客户端拿来用 客户端:写一个界面,里面有注册登录 服务器:处理注册和登录逻辑,注册的话将注册的账号密码写入数据库,登录的话查询数据库中是否存在账号,并验证密码是否正确…...

当 LSTM 遇上 ARIMA!!

大家好,我是小青 ARIMA 和 LSTM 是两种常用于时间序列预测的模型,各有优劣。 ARIMA 擅长捕捉线性关系,而 LSTM 擅长处理非线性和长时间依赖的关系。将ARIMA 和 LSTM 融合,可以充分发挥它们各自的优势,构建更强大的时…...

kali连接xshell

1.先保证宿主机:以太网适配器 VMware Network Adapter VMnet8 和kali(net 模式)在同一个网段 windows VMnet8开启 查看是否是自动获取ip ipv4 和ipv6一样的 查看 windows VMnet8的IPv4的地址 查看 kali 的IP地址 window ping的结果&#xf…...

图像曲率滤波

看到这么一个非常有意思的东西,记录一下 https://www.zhihu.com/question/35499791 https://zhuanlan.zhihu.com/p/22971865 GCFilter_talk.pdf_免费高速下载|百度网盘-分享无限制 https://github.com/YuanhaoGong/CurvatureFilter?tabreadme-ov-file...

TCP 和 UDP 可以绑定相同的端口吗?

前言 当一个网络接口接收到一个数据报时,IP 模块首先检查目的地址是否为自己的 IP 地址,如果是的话,数据报交付给由 IPv4 头部的协议字段指定的协议模块。 TCP 和 UDP 在内核中是两个完全独立的模块,送给 TCP/UDP 模块的报文根据…...

【Python网络爬虫】爬取网站图片实战

【Python网络爬虫】爬取网站图片实战 Scrapying Images on Website in Action By Jackson@ML *声明:本文简要介绍如何利用Python爬取网站数据图片,仅供学习交流。如涉及敏感图片或者违禁事项,请注意规避;笔者不承担相关责任。 1. 创建Python项目 1) 获取和安装最新版…...

2024年博客之星年度评选—创作影响力评审+主题文章创作评审目前排名(2024博客之星陪跑小分队助力2024博客之星创作者成长)

2024年博客之星年度评选—创作影响力评审主题文章创作评审目前排名 2024年博客之星主题文章创作评审文章得分公布!2024年博客之星创作影响力评审2024年博客之星主题文章创作评审目前排名公布! 【2024博客之星】恭喜完成✅主题创作的226位博主&#xff0…...

【CLIP系列】4:目标检测(ViLD、GLIP)

目录 1 ViLD2 GLIP2.1 前言2.2 损失计算2.3 模型框架 1 ViLD OPEN-VOCABULARY OBJECT DETECTION VIA VISION AND LANGUAGE KNOWLEDGE DISTILLATION 从标题就能看出来,作者是把CLIP模型当成一个Teacher,去蒸馏他自己的网络,从而能Zero Shot去…...

Qt Designer菜鸟使用教程(实现一个本地英文翻译软件)

1 安装Qt Designer 安装这个包的时候会自带安装 Qt Designer, 安装目录为python的安装根目录的 Lib/site-packages/qt5_applications/Qt/bin 目录下。 pip install pyqt5-tools2 新建窗体 2.1 新建主窗体 创建之后如下图: 设置主窗口大小: 设置窗…...

【一文读懂】HTTP与Websocket协议

HTTP协议 概述 HTTP (Hypertext Transfer Protocol),即超文本传输协议,是一种用于在客户端和服务器之间传输超文本(例如网页、图片、音频、视频等)的通信协议。它是万维网(WWW)的基础,负责在浏…...

大语言模型入门

大语言模型入门 1 大语言模型步骤1.1 pre-training 预训练1.1.1 从网上爬数据1.1.2 tokenization1.1.2.1 tokenization using byte pair encoding 1.3 预训练1.3.1 context1.3.2 training1.3.3 输出 1.2 post-training1.2.1 token 1.2 SFT监督微调1.3 人类反馈强化学习1.3.1 人…...

SQL 大厂面试题目(由浅入深)

今天给大家带来一份大厂SQL面试覆盖:基础语法 → 复杂查询 → 性能优化 → 架构设计,大家需深入理解执行原理并熟悉实际业务场景的解决方案。 1. 基础查询与过滤 题目:查询 employees 表中所有薪资(salary)大于 10000…...

Shader Step和frac函数

Step又称为阶跃函数,在着色器(Shader)编程中,step 函数是一个非常有用的函数,尤其是在GLSL(OpenGL Shading Language)和其他类似的着色器语言中。它用于生成基于阈值的阶跃函数输出。step 函数的…...

FreeRtos实时系统: 十二.FreeRTOS的队列集

FreeRtos实时系统: 十二.FreeRTOS的队列集 一.队列集简介二.队列集相关API函数三.队列集操作实验 一.队列集简介 左边的接收任务会在没接收到队列时会阻塞,如果前面释放信号量这时该任务也获取不到信号量。 右边使用队列集如果获取到,判断句柄是谁&#…...

NLP Word Embeddings

Word representation One-hot形式 在上一周介绍RNN类模型时,使用了One-hot向量来表示单词的方式。它的缺点是将每个单词视为独立的,算法很难学习到单词之间的关系。 比如下面的例子,即使语言模型已经知道orange juice是常用组合词&#xf…...

如何在24GB的GPU上运行DeepSeek-R1-Distill-Qwen-32B

如何在24GB的GPU上运行DeepSeek-R1-Distill-Qwen-32B 一、背景二、解决方案三、操作步骤1.下载模型2.安装依赖3.量化4.生成推理代码5.运行A.缓存上限为128条B.不限制缓存上限C.输出内容 一、背景 随着深度学习的不断发展,大型语言模型(LLM,L…...

2025年二级建造师报名流程图解

2025年二级建造师报名时间!附报名流程! ⏰️已公布25年二建考试时间的省份如下: ️4月19日、20日考试的城市有:贵州 ️5月10日、11日考试的城市有:湖北、陕西、宁夏、甘肃、福建、浙江、江西、黑龙江、河南、湖南、…...

深入浅出:Python 中的异步编程与协程

引言 大家好,今天我们来聊聊 异步编程 和 协程,这是近年来编程语言领域中的热点话题之一,尤其在 Python 中,它作为一种全新的编程模型,已经成为处理 IO密集型 任务的强力工具。尽管很多人对异步编程望而却步&#xff0…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...