什么是信息
从 Bit 到 AGI · 第三章:信息(Information) · 什么是信息
第一章你已经知道:计算机里的一切最终都是 0 和 1。但「8 个比特」和「一条天气预报」承载的价值并不相同——有的比特让你大吃一惊,有的只是重复你已知道的事。本章从「信息」这个词的精确定义出发,把它和比特、语言模型串起来。
直觉:惊喜才是信息
想象朋友发短信告诉你两件事:
- 「北京今天有太阳。」(7 月)
- 「北京今天下了冰雹。」(7 月)
第一句你几乎不意外,第二句你会立刻转发朋友圈。在信息论里,越出乎意料的消息,携带的信息量越大。反过来,如果你已经 100% 确定结果,再听一遍不会产生任何新信息——就像反复听「1+1=2」。
可以用一个生活类比:信息 = 消除的不确定性。你脑子里有一堆「可能发生的结局」,收到消息后,可能结局变少了,少掉的那部分就是信息。
定义:自信息与比特
设随机事件 发生的概率为 。自信息(self-information)定义为:
为什么用对数、为什么取负号?
- 概率越小 → 越大 → 越「惊喜」→ 信息量越大。
- 概率为 1(必然发生)→ ,没有新信息。
- 两个独立事件的信息量相加(对数把乘法变加法),符合直觉:两个独立惊喜叠在一起,惊喜总量相加。
bit 在这里有两层含义:存储单元(0/1)和信息量单位。公平硬币抛一次、结果有两种等概率可能,信息量恰好是 1 bit——这不是巧合,香农故意用同一个词把「存储」和「不确定性」绑在一起。
例子一:公平硬币 vs 作弊硬币
| 事件 | 概率 | 自信息 |
|---|---|---|
| 公平硬币正面 | 0.5 | 1 bit |
| 公平硬币反面 | 0.5 | 1 bit |
| 作弊硬币(正面 99%) | 0.99 | ≈ 0.014 bit |
| 作弊硬币(反面 1%) | 0.01 | ≈ 6.64 bit |
抛一次公平硬币,平均惊喜是 1 bit;作弊硬币大多数时候几乎没信息,但偶尔反面出现时信息暴涨。信息不是看「说了几个字」,而是看「概率有多小」。
例子二:8 种天气编码
某地明天天气只有 8 种等可能结果(晴、多云、小雨……),每种概率 :
恰好 3 个比特可以编码 8 种状态()。这不是巧合:若所有结果等概率,自信息等于所需的最少比特数——后面「熵」和「压缩」都建立在这个事实上。
量化:从字符到 Token
一段英文文本在磁盘上每个 ASCII 字符占 8 bit(1 字节),但字符的平均信息量远低于 8。粗略统计,英文字母序列的信息量约 1.0–1.5 bit/字符(后面会细讲)。也就是说,存储格式里大约 80% 以上是冗余——文件比「真正需要传达的内容」胖了很多。
GPT 处理的 Token 也是比特串,但一个 Token 往往对应半个词或一个汉字片段。中文常见分词下,一个 Token 平均携带约 2–4 bit 的有效语义信息(取决于上下文可预测程度)。模型不是在「理解魔法」,而是在用更少的比特表示更有信息量的片段。
动手试一试:计算自信息
import math
def self_information(probability: float) -> float:
"""返回自信息,单位 bit。probability 必须在 (0, 1]。"""
if not 0 < probability <= 1:
raise ValueError("probability must be in (0, 1]")
return -math.log2(probability)
# 公平硬币
print(self_information(0.5)) # 1.0
# 作弊硬币反面(1%)
print(round(self_information(0.01), 2)) # 6.64
# 8 种等可能天气
print(self_information(1 / 8)) # 3.0
# 必然事件
print(self_information(1.0)) # 0.0试着算:抽奖中特等奖概率 ,自信息是多少 bit?(答案:约 19.93 bit——相当于连续抛 20 次公平硬币的惊喜总量。)
量化:联合事件与条件信息
两个独立事件 、 同时发生,信息量相加:
例:两枚公平硬币都正面, bit。
若不独立(作弊联轴硬币 总等于 ),知道 后 已无悬念,。语言里几乎每个字都依赖上下文——「行」在「银」后面读 háng,在「走」后面读 xíng——条件信息比单字自信息更能描述真实通信。GPT 学的正是 意义上的「剩余惊喜」。
| 场景 | 无条件 | 有条件 |
|---|---|---|
英文字母 q | ≈ 4.7 bit | qu 后 ≈ 1 bit |
| 汉字「行」 | ≈ 10–12 bit | 「银_」后 ≈ 2–3 bit |
Token Paris | ≈ 16 bit | capital of France is 后 ≈ 1–2 bit |
常见误区
| 误区 | 纠正 |
|---|---|
| 「信息 = 数据字节数」 | 字节数是存储成本;信息量是消除的不确定性,二者常差一个数量级以上 |
| 「中文比英文信息量大」 | 单看字符数没意义;要看在给定上下文下的条件概率 |
| 「加密后信息量变多了」 | 加密让比特看起来随机,但明文的信息内容没变;变的是表示方式 |
| 「重复发送同一条消息,信息量翻倍」 | 若第二次你已知内容,新增信息 ≈ 0;第一次已全部传达 |
小结
- 信息衡量一条消息带来的「惊喜」或「不确定性减少量」,单位是 bit。
- 精确定义:;概率越小,信息越多。
- 公平硬币 1 次 = 1 bit;8 种等可能结果 = 3 bit——与编码长度直接对应。
- 磁盘上的字节数 ≫ 真实信息量;GPT 的 Token 序列也在做类似的「瘦身」。
下一篇我们把单条消息的信息推广到整组随机变量,引入信息熵是什么。