信息论入门:用掷硬币和猜数字游戏理解熵与互信息
信息论入门用掷硬币和猜数字游戏理解熵与互信息想象你手里握着一枚硬币正准备抛掷——这个简单的动作背后隐藏着信息论最基础也最深刻的原理。当硬币在空中旋转时你其实正在创造一种最原始的信息源它有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)高互信息值的特征通常对预测更有价值这种方法比简单相关系数更能捕捉非线性关系。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2424356.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!