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

信息论入门:用掷硬币和猜数字游戏理解熵与互信息

信息论入门用掷硬币和猜数字游戏理解熵与互信息想象你手里握着一枚硬币正准备抛掷——这个简单的动作背后隐藏着信息论最基础也最深刻的原理。当硬币在空中旋转时你其实正在创造一种最原始的信息源它有50%的概率呈现正面50%的概率呈现反面。这种不确定性正是信息论中熵概念的物理体现。本文将带你通过硬币实验和经典的数字猜测游戏直观理解信息量、熵和互信息这些抽象概念的计算逻辑与应用价值。1. 从硬币实验认识信息量1.1 基本概念信息量的直观定义当我们说硬币正面朝上传递了1比特信息时这个数字并非随意得出。信息量的计算公式为I -log₂(p)其中p代表事件发生的概率。对于公平硬币的正面p0.5import math p 0.5 information -math.log2(p) print(information) # 输出1.0这个结果意味着每次抛掷公平硬币都产生1比特的信息量。但如果我们调整硬币的偏心程度情况会如何变化1.2 非公平硬币的信息量计算假设硬币正面概率为0.7反面为0.3此时信息量计算如下结果概率单次信息量(bit)正面0.7-log₂(0.7)≈0.514反面0.3-log₂(0.3)≈1.737注意低概率事件携带更多信息量这与直觉一致——罕见事件发生时传达的信息更具新闻价值1.3 平均信息量熵的计算熵H(X)是信息量的期望值计算公式为H(X) -Σ p(x)log₂p(x)对于上述偏心硬币def entropy(p): return -p*math.log2(p) - (1-p)*math.log2(1-p) print(entropy(0.7)) # 输出约0.881这个值0.881比特表示每次抛掷这种偏心硬币获得的平均信息量比公平硬币的1比特要少说明结果的可预测性更高。2. 20问游戏中的条件熵与互信息2.1 游戏规则与信息获取经典的20问游戏中玩家通过最多20个是/否问题猜出一个预设的数字。这个游戏完美展示了如何通过策略性提问最大化信息获取。理想情况下每个问题应该将剩余可能性均分使每个回答都提供1比特信息量。优化提问策略的步骤始终选择能将剩余数字范围对半分开的问题根据前序回答动态调整问题优先消除最大不确定性的方向2.2 条件熵的计算实例假设数字范围1-8第一个问题数字≥5将可能性分为两组回答是概率4/8剩余数字5-8回答否概率4/8剩余数字1-4条件熵H(X|Y)计算如下H(X|Y) Σ p(y)H(X|Yy) 0.5*(-4*(1/4)*log2(1/4)) 0.5*(-4*(1/4)*log2(1/4)) 22.3 互信息的实际应用互信息I(X;Y)衡量一个问题揭示的信息量。在上述例子中I(X;Y) H(X) - H(X|Y) 3 - 2 1 bit这验证了优化问题确实能提供最大信息量。在实际应用中这种原理被用于决策树构建特征选择数据压缩算法3. 信息论概念的Python可视化3.1 熵函数的可视化实现通过Python可以直观展示不同概率分布下的熵值变化import numpy as np import matplotlib.pyplot as plt probs np.linspace(0.01, 0.99, 100) entropies [-p*np.log2(p)-(1-p)*np.log2(1-p) for p in probs] plt.plot(probs, entropies) plt.xlabel(Probability of Heads) plt.ylabel(Entropy (bits)) plt.title(Binary Entropy Function) plt.grid(True) plt.show()这段代码会生成著名的二元熵函数曲线清晰展示公平硬币p0.5时熵最大的特性。3.2 交互式硬币实验模拟使用IPython widgets创建可调节参数的实验界面from ipywidgets import interact interact(p(0.1, 0.9, 0.05)) def plot_coin_entropy(p0.5): outcomes [Heads, Tails] prob [p, 1-p] info [-math.log2(pi) for pi in prob] entropy sum([pi*ii for pi,ii in zip(prob,info)]) plt.bar(outcomes, info) plt.axhline(entropy, colorr, linestyle--) plt.ylabel(Information (bits)) plt.title(fEntropy {entropy:.3f} bits) plt.show()4. 从理论到实践信息论的应用案例4.1 数据压缩的基本原理信息熵决定了无损压缩的极限。以文本压缩为例文本类型字符熵(bit/char)理论压缩比英文≈4.0≤50%中文≈9.0≤30%实际压缩算法如ZIP、LZMA等都是基于概率模型逼近这个理论极限。4.2 通信系统中的信道容量香农公式将熵概念扩展到通信领域C B * log₂(1 S/N)其中C信道容量bpsB带宽HzS/N信噪比这个公式指导着从Wi-Fi到5G的所有现代通信系统设计。4.3 机器学习中的特征选择在特征工程中互信息是评估特征相关性的重要指标from sklearn.feature_selection import mutual_info_classif # X是特征矩阵y是目标变量 mi_scores mutual_info_classif(X, y)高互信息值的特征通常对预测更有价值这种方法比简单相关系数更能捕捉非线性关系。

相关文章:

信息论入门:用掷硬币和猜数字游戏理解熵与互信息

信息论入门:用掷硬币和猜数字游戏理解熵与互信息 想象你手里握着一枚硬币,正准备抛掷——这个简单的动作背后隐藏着信息论最基础也最深刻的原理。当硬币在空中旋转时,你其实正在创造一种最原始的信息源:它有50%的概率呈现正面&…...

YOLOv8训练技巧:结合CCMusic的跨模态数据增强

YOLOv8训练技巧:结合CCMusic的跨模态数据增强 1. 引言 在视频目标检测任务中,我们常常面临一个挑战:如何让模型更好地理解动态场景中的目标行为?传统的YOLOv8训练主要依赖视觉数据,但现实世界中的目标行为往往与音频…...

手把手教你用LongCat-Image-Edit V2:上传图片输入中文指令,轻松改图

手把手教你用LongCat-Image-Edit V2:上传图片输入中文指令,轻松改图 1. 快速了解LongCat-Image-Edit V2 LongCat-Image-Edit V2是美团LongCat团队开源的一款强大的图像编辑工具,它最大的特点就是能用简单的文字指令来修改图片。想象一下&am…...

ComfyUI提示词补全插件实战:提升AI绘画工作流的自动化效率

在AI绘画创作中,提示词(Prompt)的质量直接决定了生成图像的最终效果。对于使用ComfyUI这类节点式工作流的创作者和开发者而言,手动在众多节点间编写、调试和优化提示词,是一个既繁琐又充满不确定性的过程。效率低下、用…...

PrimeNG实战:5个企业级Angular后台必备的UI组件配置技巧

PrimeNG实战:5个企业级Angular后台必备的UI组件配置技巧 在企业级Angular应用开发中,PrimeNG作为一套成熟的UI组件库,其丰富的功能组件和高度可定制性为开发者提供了强大支持。本文将聚焦五个关键组件的实战配置技巧,帮助开发者解…...

如何在CentOS 8上使用OpenSSH搭建安全的SFTP服务(含用户隔离配置)

企业级SFTP服务搭建:CentOS 8下的安全隔离实践 在数字化转型浪潮中,文件传输安全已成为企业IT基础设施的关键环节。传统FTP协议由于明文传输的固有缺陷,正逐渐被基于SSH加密通道的SFTP协议所取代。对于金融、医疗等对数据安全要求严格的行业&…...

Xshell远程部署Qwen3-ASR-1.7B全攻略

Xshell远程部署Qwen3-ASR-1.7B全攻略 1. 为什么选择Xshell连接GPU服务器部署Qwen3-ASR-1.7B 语音识别模型的部署和调试,最常遇到的场景就是本地开发环境和生产环境不一致。你可能在笔记本上写好了代码,但真正要跑Qwen3-ASR-1.7B这种20亿参数的模型&…...

Laravel项目CPU飙升?可能是Session文件存储惹的祸(附Redis迁移指南)

Laravel项目性能优化:从Session文件存储到Redis的完整迁移方案 当你的Laravel应用突然出现CPU使用率飙升,服务器响应变慢,甚至触发监控报警时,Session文件存储可能是那个隐藏的性能杀手。不同于其他显而易见的性能瓶颈&#xff0c…...

Maya到虚幻引擎动画实时传输:LiveLink插件完整配置指南(2023最新版)

Maya到虚幻引擎动画实时传输:LiveLink插件完整配置指南(2023最新版) 在3D动画与游戏开发领域,实时工作流已成为提升效率的关键。想象一下:当你在Maya中调整角色动画时,虚幻引擎视口中的角色同步做出响应——…...

高效全流程文件转Markdown工具

高效全流程文件转Markdown工具 【免费下载链接】markitdown 将文件和办公文档转换为 Markdown 的 Python 工具 项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown 1. 如何破解多格式文件处理痛点? 现代办公中,文档格式碎片化已成为效…...

GLM-4v-9B快速入门:一张图看懂高分辨率视觉问答,小白也能轻松上手

GLM-4v-9B快速入门:一张图看懂高分辨率视觉问答,小白也能轻松上手 1. 什么是GLM-4v-9B GLM-4v-9B是智谱AI于2024年开源的多模态大模型,拥有90亿参数,能够同时理解文本和图片内容。这个模型特别擅长处理高分辨率图像(…...

Z-Image-Turbo-rinaiqiao-huiyewunv惊艳效果展示:日奈娇微调权重生成高清二次元写真集

Z-Image-Turbo-rinaiqiao-huiyewunv惊艳效果展示:日奈娇微调权重生成高清二次元写真集 1. 项目亮点速览 Z-Image Turbo (辉夜大小姐-日奈娇)是基于Tongyi-MAI Z-Image底座模型开发的专属二次元人物绘图工具。这个工具通过注入辉夜大小姐(日奈娇)微调权重&#xff…...

解决容器管理复杂性:Rancher Desktop的一站式Kubernetes开发方案

解决容器管理复杂性:Rancher Desktop的一站式Kubernetes开发方案 【免费下载链接】rancher-desktop Container Management and Kubernetes on the Desktop 项目地址: https://gitcode.com/gh_mirrors/ra/rancher-desktop 在本地开发环境中,开发者…...

MedGemma X-Ray效果对比:与CheXNet、ChestX-Det等模型结果对照

MedGemma X-Ray效果对比:与CheXNet、ChestX-Det等模型结果对照 1. 引言:医疗AI影像分析的新选择 在医疗影像分析领域,AI技术正在快速改变传统的阅片方式。今天我们要对比的MedGemma X-Ray,是一款基于前沿大模型技术开发的智能医…...

3D模型生成开源工具入门指南:从AI驱动3D建模到实践应用

3D模型生成开源工具入门指南:从AI驱动3D建模到实践应用 【免费下载链接】TRELLIS.2 Native and Compact Structured Latents for 3D Generation 项目地址: https://gitcode.com/gh_mirrors/tr/TRELLIS.2 随着数字内容创作的蓬勃发展,3D模型的需求…...

3大核心引擎让数据管道构建效率提升80%:Bruin低代码数据处理平台全解析

3大核心引擎让数据管道构建效率提升80%:Bruin低代码数据处理平台全解析 【免费下载链接】bruin Bruin is a data pipeline tool that is designed to be easy-to-use. It allows building data pipelines using SQL and Python, and has built-in data quality chec…...

新手友好,快马平台带你零基础跑通第一个yolo检测程序

今天想和大家分享一个特别适合机器学习新手的实践项目——用YOLO算法跑通第一个目标检测程序。作为一个刚接触计算机视觉的小白,我最初被各种环境配置和代码复杂度劝退了好几次,直到发现了这个能快速上手的解决方案。 为什么选择YOLO作为入门&#xff1…...

PyTorch张量变形实战:reshape vs view的5个常见坑点及解决方案

PyTorch张量变形实战:reshape vs view的5个常见坑点及解决方案 在深度学习项目开发中,PyTorch张量的形状变换操作就像厨师的刀工——看似基础却直接影响最终"菜品"的质量。许多开发者在使用reshape和view时都曾遭遇过神秘的RuntimeError&#…...

别再被ban了!Playwright爬虫防检测的5个实用配置(2023最新版)

Playwright爬虫隐形实战指南:2023年突破反爬的7种高阶策略 每次看到"403 Forbidden"的提示页面,是不是感觉血压瞬间飙升?作为爬虫开发者,我们与网站防护系统的博弈从未停止。传统的UserAgent轮换、IP代理池早已被列入基…...

PyArmor介绍

Content一、PyArmor 是什么二、PyArmor 的工作原理三、PyArmor 的主要功能1 代码混淆(Obfuscation)2 代码加密3 运行环境绑定4 License 授权5 防止反编译四、安装 PyArmor五、基本使用方法1 加密代码2 加密整个项目3 指定输出目录六、PyArmor PyInstall…...

‘pip install -e .‘ and ‘pip install .‘

Content1️⃣ pip install -e .工作原理常见使用场景2️⃣ pip install .3️⃣ 两者核心区别4️⃣ 举个最直观例子使用使用5️⃣ 实际开发中怎么用6️⃣ 一个很多人不知道的小知识这两个命令都是用来 安装当前目录中的 Python 项目(通常包含 setup.py 或 pyproject.…...

DeepSeek-R1-Distill-Qwen-7B入门指南:3步完成模型部署与调用

DeepSeek-R1-Distill-Qwen-7B入门指南:3步完成模型部署与调用 如果你对AI大模型感兴趣,想快速体验一个强大的推理模型,DeepSeek-R1-Distill-Qwen-7B是个不错的选择。这个模型在数学、代码和推理任务上表现相当出色,而且现在通过O…...

算法优化中的数据局部性与缓存调度策略的技术7

数据局部性与缓存调度策略概述定义数据局部性(时间局部性、空间局部性)及其在算法优化中的重要性缓存层次结构(L1/L2/L3缓存、主存)与性能影响缓存调度策略的基本目标:减少缓存缺失(Cache Miss)…...

PP-DocLayoutV3效果展示:display_formula与inline_formula的混合公式精准切分案例

PP-DocLayoutV3效果展示:display_formula与inline_formula的混合公式精准切分案例 1. 引言:文档布局分析的挑战与突破 在日常的文档处理工作中,我们经常会遇到各种复杂的排版情况。特别是学术论文、技术文档中经常出现的数学公式&#xff0…...

张量分解技术在高光谱遥感图像去噪中的应用与主流数据集盘点

1. 高光谱遥感图像去噪的挑战与机遇 高光谱遥感图像就像给地球做CT扫描,每个像素点都包含数百个连续光谱波段信息。这种"图谱合一"的特性让它在环境监测、精准农业等领域大显身手,但同时也带来了巨大的数据处理挑战。我处理过不少高光谱数据&a…...

vxe-table隐藏技巧:5分钟实现Excel式复杂表格(带自定义打印配置)

vxe-table隐藏技巧:5分钟实现Excel式复杂表格(带自定义打印配置) 在数据密集型的现代Web应用中,表格组件一直是前端开发的核心需求之一。传统的表格解决方案往往难以满足企业级应用对复杂交互、高性能渲染和深度定制的要求。vxe-t…...

告别跨窗口拖放烦恼:DropPoint让文件传输从未如此简单

告别跨窗口拖放烦恼:DropPoint让文件传输从未如此简单 【免费下载链接】DropPoint Make drag-and-drop easier using DropPoint. Drag content without having to open side-by-side windows 项目地址: https://gitcode.com/gh_mirrors/dr/DropPoint 突破传统…...

Windows下MySQL数据库备份策略:全量与增量的自动化实践

1. Windows下MySQL备份的必要性 数据库备份就像给重要文件买保险,你可能永远用不上它,但一旦需要时没有备份,那绝对是灾难性的。我在运维岗位上见过太多因为没做备份导致数据丢失的案例,有的公司甚至因此直接倒闭。Windows环境下的…...

小白友好:ms-swift框架快速上手,5步完成大模型微调与部署

小白友好:ms-swift框架快速上手,5步完成大模型微调与部署 你是不是也想试试微调自己的大模型,但被复杂的代码和配置劝退了?今天我要介绍的ms-swift框架,就是专门为简化大模型微调而生的神器。它让大模型微调变得像搭积…...

MBP-Ubuntu实战指南:三步解决WiFi与Touch Bar硬件适配难题

MBP-Ubuntu实战指南:三步解决WiFi与Touch Bar硬件适配难题 【免费下载链接】T2-Ubuntu 项目地址: https://gitcode.com/gh_mirrors/t2u/T2-Ubuntu 在MacBook Pro上安装Ubuntu系统后,许多用户会遇到WiFi功能缺失和Touch Bar无法工作的问题。MBP-U…...