从 Bit 到 AGI第三章:信息(Information)

什么是信息

从 Bit 到 AGI · 第三章:信息(Information) · 什么是信息

作者 David更新于 第 36 篇(共 186 篇)

第一章你已经知道:计算机里的一切最终都是 0 和 1。但「8 个比特」和「一条天气预报」承载的价值并不相同——有的比特让你大吃一惊,有的只是重复你已知道的事。本章从「信息」这个词的精确定义出发,把它和比特、语言模型串起来。

直觉:惊喜才是信息

想象朋友发短信告诉你两件事:

  1. 「北京今天有太阳。」(7 月)
  2. 「北京今天下了冰雹。」(7 月)

第一句你几乎不意外,第二句你会立刻转发朋友圈。在信息论里,越出乎意料的消息,携带的信息量越大。反过来,如果你已经 100% 确定结果,再听一遍不会产生任何新信息——就像反复听「1+1=2」。

可以用一个生活类比:信息 = 消除的不确定性。你脑子里有一堆「可能发生的结局」,收到消息后,可能结局变少了,少掉的那部分就是信息。

图表加载中…

定义:自信息与比特

设随机事件 xx 发生的概率为 p(x)p(x)。自信息(self-information)定义为:

I(x)=−log⁡2p(x)(单位:bit)I(x) = -\log_2 p(x) \quad \text{(单位:bit)}

为什么用对数、为什么取负号?

  • 概率越小 → −log⁡2p-\log_2 p 越大 → 越「惊喜」→ 信息量越大。
  • 概率为 1(必然发生)→ I=−log⁡21=0I = -\log_2 1 = 0,没有新信息。
  • 两个独立事件的信息量相加(对数把乘法变加法),符合直觉:两个独立惊喜叠在一起,惊喜总量相加。

bit 在这里有两层含义:存储单元(0/1)和信息量单位。公平硬币抛一次、结果有两种等概率可能,信息量恰好是 1 bit——这不是巧合,香农故意用同一个词把「存储」和「不确定性」绑在一起。

例子一:公平硬币 vs 作弊硬币

事件概率 pp自信息 I=−log⁡2pI = -\log_2 p
公平硬币正面0.51 bit
公平硬币反面0.51 bit
作弊硬币(正面 99%)0.99≈ 0.014 bit
作弊硬币(反面 1%)0.01≈ 6.64 bit

抛一次公平硬币,平均惊喜是 1 bit;作弊硬币大多数时候几乎没信息,但偶尔反面出现时信息暴涨。信息不是看「说了几个字」,而是看「概率有多小」。

例子二:8 种天气编码

某地明天天气只有 8 种等可能结果(晴、多云、小雨……),每种概率 1/81/8:

I=−log⁡218=3 bitI = -\log_2 \frac{1}{8} = 3 \text{ bit}

恰好 3 个比特可以编码 8 种状态(23=82^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

试着算:抽奖中特等奖概率 10−610^{-6},自信息是多少 bit?(答案:约 19.93 bit——相当于连续抛 20 次公平硬币的惊喜总量。)

量化:联合事件与条件信息

两个独立事件 AA、BB 同时发生,信息量相加:

I(A∩B)=I(A)+I(B)(当 A,B 独立)I(A \cap B) = I(A) + I(B) \quad (\text{当 } A,B \text{ 独立})

例:两枚公平硬币都正面,I=1+1=2I = 1 + 1 = 2 bit。

若不独立(作弊联轴硬币 BB 总等于 AA),知道 AA 后 BB 已无悬念,I(B∣A)=0I(B \mid A) = 0。语言里几乎每个字都依赖上下文——「行」在「银」后面读 háng,在「走」后面读 xíng——条件信息比单字自信息更能描述真实通信。GPT 学的正是 I(xt∣x<t)I(x_t \mid x_{<t}) 意义上的「剩余惊喜」。

场景无条件 I(x)I(x)有条件 I(x∣上下文)I(x \mid \text{上下文})
英文字母 q≈ 4.7 bitqu 后 ≈ 1 bit
汉字「行」≈ 10–12 bit「银_」后 ≈ 2–3 bit
Token Paris≈ 16 bitcapital of France is 后 ≈ 1–2 bit

常见误区

误区纠正
「信息 = 数据字节数」字节数是存储成本;信息量是消除的不确定性,二者常差一个数量级以上
「中文比英文信息量大」单看字符数没意义;要看在给定上下文下的条件概率
「加密后信息量变多了」加密让比特看起来随机,但明文的信息内容没变;变的是表示方式
「重复发送同一条消息,信息量翻倍」若第二次你已知内容,新增信息 ≈ 0;第一次已全部传达

小结

  • 信息衡量一条消息带来的「惊喜」或「不确定性减少量」,单位是 bit。
  • 精确定义:I(x)=−log⁡2p(x)I(x) = -\log_2 p(x);概率越小,信息越多。
  • 公平硬币 1 次 = 1 bit;8 种等可能结果 = 3 bit——与编码长度直接对应。
  • 磁盘上的字节数 ≫ 真实信息量;GPT 的 Token 序列也在做类似的「瘦身」。

下一篇我们把单条消息的信息推广到整组随机变量,引入信息熵是什么。

本页目录