Featured image of post 【6.050J】Ch 1 - Bits

【6.050J】Ch 1 - Bits

在发小的推荐下, (重新)学习一下信息论, 希望能为 ai, llm 等领域的学习打下一个更坚实的基础
其实大一上就上过信通概论, 当时大家都说是水课, 我也懒得听, 便听了两节就不去了
现在回过头看似乎还是有些有用的东西的, 虽然确实水
我选择跟随 MIT 6.050J 信息论课程的 notes 部分, 配合 gpt 的讲解, 来完成信息论的学习
Information and Entropy | Electrical Engineering and Computer Science | MIT OpenCourseWare

1.0 比特 Bits

信息的单位: 比特 Bits

  • 比特是信息量的度量单位
  • 这里强调的是信息量, 是数量而非内容和含义

信息的度量方式

  • 物理学中, 用焦耳/开尔文(J/K) 来度量信息
    • 和热力学的熵相关
  • 信息论中, 最常用的度量是比特 bits

如何量化信息

  • 不确定性的消除程度

举例:

  • 抛一枚公平硬币 → 2 个可能结果
    • 如果 Alice 想告诉 Bob 抛硬币的结果,只需传递“1 比特”
  • 抽一张扑克牌 → 52 种可能结果
    • 要告诉 Bob 抽到的是哪一张牌,就需要更多的信息量

计算:

如果有 N 个等可能的结果, 则所需要的信息量是:

$$ \log_2(N)\ \text{bits} $$

这里是针对等可能的结果, 对于不等可能, 后面应该会讲到, 要用的"自信息" 这一概念

通信过程

1. 建立编码规则

  • 通信双方会约定好编码(code), 比如哪个编号对应哪种情况

2. 发送数据

  • 一方根据现实情况, 根据规则传送编号
  • 另一方根据规则, 接受并理解信息

不确定性与信息量

  • 一方发消息前, 另一方对结果不确定(缺少信息)
  • 发送比特后, 另一方的不确定性减少
  • 因此:信息量 = 不确定性减少的量
    • 在 1 阶段,Bob 甚至因为知道“有信息将要传来”,不确定性反而增加了
    • 在 2 阶段,不确定性被减少

详细过程

  • Setup 阶段:
    • 不确定性增加(Bob 从“什么都没想过” → “知道有未知”)
    • 信息量并没有减少,因为没有“确定性”增加
  • Outcome 阶段:
    • 不确定性减少,才真正等于获得了信息量

1.1 布尔比特 Boolean Bit

为什么只用 0 和 1

  • 计算机世界使用二进制
  • 这是物理系统中最容易实现的两个稳定状态
  • 把表示方式抽象成 0,1 后, 不需要关心具体内容, 只需要关心形式规则

一元布尔输入(单输入)

输入 $x∈{0,1}$,输出也只能是 0 或 1。总共有 4 种可能的函数:

输入 恒等 (Identity) 非 (NOT) 恒 0 (ZERO) 恒 1 (ONE)
0 0 1 0 1
1 1 0 0 1
  • 恒等: 输出=输入
  • 非: 取反
  • 恒 0/恒 1: 和输入无关, 直接给定

二元布尔输入(双输入)

输入 $A,B∈{0,1}$,共有 22=422=4 种输入模式(00, 01, 10, 11)。

  • 每种模式的输出可以独立设为 0 或 1 → 一共有 $2^4=16$ 种可能的函数

  • AND(与):只有当 A=1 且 B=1 时才输出 1

  • OR(或):只要 A 或 B 有一个是 1,就输出 1

  • XOR(异或):当 A 和 B 不一样时输出 1

  • NAND(与非):先做 AND, 再取反

  • NOR(或非):先做 OR, 再取反

以下是针对四种双输入的运算表格
../../source/Ch 1 - Bits\_常见双输入函数.png

布尔代数运算符

这是一些逻辑运算符
../../source/Ch 1 - Bits\_逻辑运算符.png
注意这里不要把 OR 运算中的+符号与整数加法混淆

布尔代数定律

以下等式对所有布尔变量都成立
../../source/Ch 1 - Bits\_恒等式.png
可以用于电路简化, 逻辑推理, 代数证明

可逆性

  • 一元函数里:恒等和取反是可逆的(输入 ↔ 输出一一对应)
  • 二元函数:一般是不可逆的(因为输入 2 位 → 输出 1 位,丢信息)
  • 组合函数可以是可逆的,比如:
    • 输出 = (A⊕B, A),这是 2 输入 → 2 输出,可逆

延伸:这和 量子计算有关,量子演化必须可逆(幺正运算)

1.2 电路比特 Circuit Bit

从布尔表达式到逻辑电路

  • 在 布尔代数 中,我们写的是公式(如 A⋅B+C‾A⋅B+C)
  • 在 电路 中,每个布尔函数对应一个逻辑门(gate):
    • NOT → 反相器
    • AND → 与门
    • OR → 或门
    • XOR → 异或门
    • NAND / NOR → 与非 / 或非门

../../source/Ch 1 - Bits\_电路比特.png

组合逻辑

  • 定义:输出只依赖于当前输入,没有“记忆”
  • 特点:
    • 电路里没有反馈环路(no loops)
  • 输入确定 → 输出立即确定
  • 用真值表或布尔表达式就能完整描述

电路比特的特点

  • 可以复制:一个门的输出可以接到多个门的输入
  • 可以丢弃:如果某个输出不用,就留空即可
  • 这和布尔比特完全一致,也是为什么 电路比特是布尔比特的物理实现模型

1.3 控制比特 Control Bit

程序中的布尔条件

  • 在计算机程序里,布尔表达式通常用来控制执行流程
  • 典型的例子就是 if 语句
  • 控制比特(control bit) = 程序里的“条件判断”信号

控制比特与布尔代数的区别

控制表达式的语义 ≠ 纯粹的布尔代数

  • 在布尔代数里,我们总是“完整计算”表达式的值
  • 在程序控制里,有个优化:短路求值 (short-circuit evaluation)

例子

  • 表达式 (and (< x 0) (> y 0))
    • 如果先算 x<0,发现为假,那么整个 AND 就是 0,后面的 y>0 根本不用算
    • 程序直接跳过,节省运算时间,还避免可能的副作用(例如 y>0 判断里如果有函数调用就不会执行)

控制比特的关键特征

  1. 可以忽略不影响结果的部分
    • AND:只要前面已经 0,后面的不用算
    • OR:只要前面已经 1,后面的不用算
  2. 效率更高
    • 避免无用的计算
    • 在底层 CPU 指令里,这对应着“条件跳转”,可以少走一条指令
  3. 可能影响程序语义
    • 因为短路,某些表达式里后面代码可能有副作用(比如修改变量),那部分就不执行了
    • 所以写程序时要注意:布尔逻辑在 控制流 和 逻辑推理 里并不完全等价

1.4 物理比特 Physical Bit

为什么需要物理比特

  • 如果一个比特要存储或传输,它必须依附在某种物理实体上
  • 这个实体必须有两种可区分的稳定状态,分别代表 0 和 1

物理比特的本质

  • 存储:把物体放到某个状态
  • 读取:通过测量来确定状态
  • 通信:如果物体在空间中移动但状态保持 → 传输信息
  • 记忆:如果物体在时间上保持状态 → 存储信息
  • 遗忘:如果状态被随机扰动改变 → 信息丢失

为什么关心"更小"

  • 工程目标: “更小、更快、更强、更聪明、更安全、更便宜”
  • 信息存储/传输的物理载体,越小越快越稳定,就越有价值
  • 但这会遇到极限:当物体太小,量子效应就出现了 -> 量子比特

信息论视角

  • 物理比特和抽象比特的关系:
    • 抽象比特:逻辑符号,完全精确
    • 物理比特:依赖物理状态,有可能受噪声影响
  • 如果状态被干扰(比如热噪声、散射),比特值可能出错
    • → 这就是为什么要研究 纠错编码(Error-Correcting Codes)

量子比特 Qubit

从经典到量子

  • 经典比特:
    • 可以复制、丢弃;
    • 状态完全确定:0 或 1
  • 量子比特(qubit):
    • 物理载体太小,量子效应显著;
    • 不能简单地用“布尔代数”来描述;
    • 引入了三大关键特性:可逆性 (reversibility)、叠加 (superposition)、纠缠 (entanglement)

表示方式

  • 两个基本状态不是写成数字 0、1,而是写作 ∣0⟩, ∣1⟩
    • 这样做有两个好处:
      1. 避免和整数 0/1 混淆
      2. 方便推广到多个量子比特的张量积(tensor product)空间
  • 物理例子:一个光子的偏振方向
    • 水平偏振 = ∣0⟩
    • 垂直偏振 = ∣1⟩

核心特征

(1) 可逆性 (Reversibility)

  • 在量子力学中,如果某个态能演化到另一个态,那么反向过程也一定可能
  • 所以量子运算本质上必须是可逆的(幺正变换)
  • 但注意:
    • 测量是不可逆的:一旦测量,量子态会坍缩;
    • 与环境相互作用也会导致不可逆的信息丢失(退相干)

(2) 叠加 (Superposition)

  • 一个 qubit 不一定只是 ∣0⟩ 或 ∣1⟩,它可以是两者的线性组合:
    $∣ψ⟩=α∣0⟩+β∣1⟩$
    其中$∣α∣^2+∣β∣^2=1$
  • 但 测量时,只能得到两种结果之一:
    • 概率 = ∣α∣2 得到 ∣0⟩
    • 概率 = ∣β∣2 得到 ∣1⟩
  • 测量之后,状态会“坍缩”到对应的基态

这和经典概率不同:经典概率意味着“结果已经确定,只是我们不知道”;
量子叠加意味着“结果本身就是同时存在的可能性,测量才使它确定”。


(3) 纠缠 (Entanglement)

  • 两个 qubit 可以形成一个整体态,而不是独立的
  • 例如:
    $∣ψ⟩=\frac{1}{ \sqrt{2} }(∣00⟩+∣11⟩$
  • 特点:测量一个比特会瞬间决定另一个比特的状态,即使它们相距很远
  • 纠缠是量子通信和量子计算最重要的资源

不可克隆性

  • Bob 如果想复制光子再测量多个方向,行不通
  • 原因:复制一个未知量子态必须先测量,而测量会改变态
  • 这就是著名的 量子不可克隆定理 (No-cloning theorem)

经典比特 Classic Bit

为什么需要经典比特?

  • 在日常计算机中,我们并不是用单个光子、单个原子来存储信息,而是用 大量相同的物理对象(电子、电荷、光子等)
  • 这时,量子效应(随机、坍缩、不可克隆)基本可以忽略,比特表现得非常稳定
  • 所以我们把它建模为 经典比特
    • 可以无限次测量;
    • 可以复制;
    • 不会因为测量而改变状态

经典比特的测量

  • 量子比特:一次测量就坍缩,不能重复测量
  • 经典比特:由许多物理粒子构成,可以多次测量,几乎不受影响
  • 比如:测量电压,0V–0.2V 解释为 0,0.8V–1V 解释为 1,中间区间避免使用

恢复逻辑

  • 在真实电路里,电压不可能完美是 0 或 1,总会有小偏差(例如 0.98V、0.05V)
  • 数字电路设计里引入了“恢复逻辑”:
    • 小偏差会被电路自动纠正,恢复成理想的 0V 或 1V
    • 只要噪声不超过阈值(例如 0.2V),系统就能稳定工作
  • 现代计算机的可靠性就依赖于这种恢复逻辑

经典比特的特点

  • 可测量,不会改变状态
  • 可复制
  • 对噪声有容忍度
  • 是对“真实物理系统”的一种近似模型
Licensed under CC BY-NC-SA 4.0
最后更新于 Sep 03, 2025 11:25 UTC
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计