news 2026/6/10 16:21:32

[信息论与编码理论专题-15]:信息量与事件概率的关系的一步步理解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[信息论与编码理论专题-15]:信息量与事件概率的关系的一步步理解

假设概率空间的总和是1,如果某件事件的概率越大,则事件空间的同等概率的事件的种类的个数越接近1,所需要的编码的个数越小接近1,即包含的信息量越小;事件的概率越小,则事件空间的同等概率的事件的种类的个数越接近无穷大,所需要的编码的个数越大,即包含的信息量越大。

这段话试图从概率、事件空间大小与编码长度的角度解释“为何概率越大,信息量越小”,思路方向是正确的,但表述上存在一些概念混淆和逻辑不严谨之处(牺牲精确性换取可理解性)


✅ 正确直觉:

  • 高概率事件 → 编码短 → 信息量小
  • 低概率事件 → 编码长 → 信息量大
    这完全符合香农信息论的核心思想,也是霍夫曼编码(Huffman Coding)等变长编码的理论基础

❌ 问题所在:对“事件空间”和“同等概率”的理解有偏差

原句分析:

“如果某件事件的概率越大,则事件空间的同等概率的事件的种类的个数越接近1”

这句话容易引起误解。我们来澄清几个关键概念:


🔍 正确理解:固定信源 vs. 虚拟等概信源

1.真实信源(如英文文本)
  • 事件空间:26个字母;
  • 概率分布:不均匀(e 出现概率高,z 很低);
  • 熵 H(X)<log2​26 (因为分布不均)。
2.“等效等概信源”(用于理解熵的含义)

香农提出一个思想实验

一个具有熵 H(X) 的信源,在统计特性上等价于一个有 2H(X) 个等概率符号的信源。

  • 例如:若 H(X)=2 bit/符号,则该信源 ≈ 一个有 22=4 个等概率符号的信源;
  • 这个 2H(X) 被称为有效符号数(effective number of symbols)或困惑度(perplexity)。

这才是“事件种类个数”的正确含义:不是真实事件数,而是等效的等概事件数


📌 修正后的准确表述:

在一个概率总和为1的信源中,若某个事件发生的概率越大,说明该信源的不确定性越小,其信息熵越低,等效于一个包含较少等概率事件的虚拟信源(即有效事件数 2H(X) 接近1)。因此,该事件可以用较短的编码表示,所携带的信息量也越小

反之,若某事件概率极小,说明信源整体不确定性高(或该事件本身罕见),其发生时能显著减少不确定性,因此需要较长的编码,所携带的信息量更大


🧮 用公式说话(香农定义)

  • 单个事件 x 的信息量(自信息):

    I(x)=−log2​P(x)
    • P(x)→1 ⇒ I(x)→0
    • P(x)→0 ⇒ I(x)→∞
  • 整个信源的平均信息量(熵):

    H(X)=E[I(x)]=−∑P(x)log2​P(x)
  • 有效事件数(等效等概符号数):

    Neff​=2H(X)
    • 若所有事件等概率(P=1/N ),则 H(X)=log2​N ,Neff​=N ;
    • 若分布不均,Neff​<N 。

🌰 举例说明

信源事件P(x)I(x)=−log2​P(x)说明
公平硬币正面0.51 bit需1位编码(如"0")
偏置硬币正面0.9≈0.15 bit可用短码(如"0")
偏置硬币反面0.1≈3.32 bit需长码(如"1110")
必然事件“太阳升起”≈1≈0 bit无需编码,无新信息

💡 在霍夫曼编码中,高频符号用短码,低频符号用长码——平均码长趋近于熵 H(X) 。


✅ 总结:如何通俗又准确地说?

“一个事件越常见(概率越大),它带来的‘意外感’就越小,因此信息量越小,编码也可以越短;反之,越罕见的事件,信息量越大,编码越长。”

而整个信源的“等效事件种类数”由熵决定:熵越小,等效种类越少,整体越可压缩


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

[信息论与编码理论专题-16]:等概率时熵最大、编码最长;实际概率不均,熵降低,变长编码可压缩,平均码长更短。

在一个包含 N 个可能事件的系统中&#xff0c;当所有事件等概率发生时&#xff0c;系统的熵达到最大值 log 2​N &#xff0c;此时对事件进行最优无损编码所需的平均码长也达到理论最大值。 而在实际系统中&#xff0c;事件发生的概率往往不相等&#xff1b;若存在较多高概率事…

作者头像 李华
网站建设 2026/6/10 13:07:28

跟AI学一手之自定义调试函数或者类

最后一招是 macos 专用的&#xff0c;有帮助&#xff0c;所以记录一下 from gevent import monkey monkey.patch_all() import signal import sys import os# 检查是否有信号处理 def debug_signal(signum, frame):print(f"收到信号 {signum}&#xff0c;堆栈:", fi…

作者头像 李华
网站建设 2026/6/10 11:10:14

PHP计算机毕设之基于php+vue的动物救助网站的设计与实现基于Vue的宠物领养系统的设计(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/5/29 7:49:24

【ACM模式】栈的操作

求解代码 public static void main(String[] args)throws IOException{BufferedReader br new BufferedReader(new InputStreamReader(System.in));StreamTokenizer in new StreamTokenizer(br);PrintWriter out new PrintWriter(new OutputStreamWriter(System.out));Deque…

作者头像 李华