计算理论—图灵机、复杂性、信息论与机器学习的理论基础

目录

  • 第一部分:可计算性理论
    • 第一章:绪论------什么是计算
    • 第二章:图灵机与可计算函数
    • 第三章:不可计算性与哥德尔定理
  • 第二部分:计算复杂性
    • 第四章:复杂性类------P 与 NP
    • 第五章:NP 完全性与归约
    • 第六章:空间复杂性与层次定理
  • 第三部分:信息论
    • 第七章:信息的度量------熵
    • 第八章:信道编码定理
    • 第九章:数据压缩与编码
  • 第四部分:学习理论
    • 第十章:统计学习理论基础
    • 第十一章:PAC 学习与 VC 维
    • 第十二章:泛化理论的现代视角
  • 第五部分:哲学与联系
    • 第十三章:计算主义与心智哲学
    • 第十四章:人工智能的理论基础
    • 第十五章:深度学习的理论挑战
    • 第十六章:开放问题与未来方向
  • 附录

第一部分:可计算性理论


第一章:绪论------什么是计算

1.1 计算的直觉概念

在日常生活中,我们对"计算"有很强的直觉:

  • 计算器做加法是计算
  • 排序一个列表是计算
  • 搜索网页是计算
  • 训练神经网络是计算

但是,如果有人问:"什么是计算的本质?"这个问题就变得不那么显然了。

1.2 从具体到抽象

1.2.1 早期的计算模型

机械计算:算盘、差分机、分析机------通过物理机械执行运算。

逻辑推理:布尔代数、命题逻辑------通过符号操作进行推理。

形式系统:公理、推理规则、定理------通过形式化规则推导结论。

1.2.2 关键问题

是否存在一个通用的计算模型,能够描述所有"有效的"计算过程?

这个问题在 20 世纪 30 年代得到了回答------通过几种等价的计算模型。

1.3 三种等价的计算模型

1936 年,三位数学家独立提出了不同的计算模型:

模型 提出者 核心思想
图灵机 Alan Turing 一条无限长的纸带,一个读写头,一组状态
λ 演算 Alonzo Church 函数定义与函数应用
递归函数 Kurt Gödel 基本函数与递归构造

Church-Turing 论题:所有"有效可计算"的函数都可以用图灵机计算。

这是一个论题(thesis),而非定理------因为"有效可计算"是一个直觉概念,无法严格证明。

1.4 计算的本质特征

通过分析各种计算模型,我们可以提取出计算的本质特征:

  1. 离散性:计算操作是离散的、有限的
  2. 确定性:每一步操作都是确定的(忽略随机化)
  3. 有限描述:算法可以用有限的符号串描述
  4. 机械执行:不需要创造性,可以机械地执行

第二章:图灵机与可计算函数

2.1 图灵机的定义

2.1.1 直觉描述

想象一个人在做计算:

  • 他面前有一条无限长的纸带,分成一个个格子
  • 每个格子上写着一个符号(来自有限字母表)
  • 他有一个读写头,可以读取当前格子的符号,也可以写入新符号
  • 他有一个状态(来自有限状态集)
  • 他根据规则决定下一步做什么

2.1.2 形式定义

一个图灵机是一个七元组 M=(Q,Σ,Γ,δ,q0,qaccept,qreject)M = (Q, \Sigma, \Gamma, \delta, q_0, q_{accept}, q_{reject})M=(Q,Σ,Γ,δ,q0,qaccept,qreject):

  • QQQ:有限状态集
  • Σ\SigmaΣ:输入字母表(不包含空白符号)
  • Γ\GammaΓ:纸带字母表(包含空白符号 ⊔\sqcup⊔)
  • δ\deltaδ:转移函数
  • q0q_0q0:初始状态
  • qacceptq_{accept}qaccept:接受状态
  • qrejectq_{reject}qreject:拒绝状态

转移函数的形式:

δ:Q×Γ→Q×Γ×{L,R}\delta: Q \times \Gamma \to Q \times \Gamma \times \{L, R\}δ:Q×Γ→Q×Γ×{L,R}

含义:在状态 qqq 读到符号 aaa 时,转移到状态 q′q'q′,写入符号 bbb,读写头向左或向右移动一格。

2.2 图灵机的计算过程

2.2.1 格局

图灵机在某一时刻的格局(configuration)包括:

  • 当前状态
  • 纸带内容
  • 读写头位置

2.2.2 计算步骤

每一步,图灵机根据转移函数更新格局。

2.2.3 接受与拒绝

  • 如果进入 qacceptq_{accept}qaccept,则接受输入
  • 如果进入 qrejectq_{reject}qreject,则拒绝输入
  • 如果永远不停机,则循环

2.3 可计算函数

2.3.1 定义

一个函数 f:Σ∗→Σ∗f: \Sigma^* \to \Sigma^*f:Σ∗→Σ∗ 是图灵可计算 的,如果存在一个图灵机,对于任意输入 xxx:

  • 如果 f(x)f(x)f(x) 有定义,则机器停机,纸带上写着 f(x)f(x)f(x)
  • 如果 f(x)f(x)f(x) 无定义,则机器不停机

2.3.2 例子

可计算函数

  • 加法、减法、乘法、除法
  • 字符串操作(拼接、反转、搜索)
  • 排序、搜索

不可计算函数

  • 停机问题的解
  • 某些数学定理的判定

2.4 编码与通用图灵机

2.4.1 图灵机的编码

任何图灵机都可以编码为一个二进制字符串。这意味着:

  • 图灵机本身可以作为数据
  • 可以构造处理其他图灵机的图灵机

2.4.2 通用图灵机

通用图灵机 UUU 可以模拟任何图灵机:

U(⟨M,x⟩)=M(x)U(\langle M, x\rangle) = M(x)U(⟨M,x⟩)=M(x)

其中 ⟨M,x⟩\langle M, x\rangle⟨M,x⟩ 是图灵机 MMM 和输入 xxx 的编码。

通用图灵机是可编程计算机的理论模型。

2.5 Church-Turing 论题

2.5.1 论题内容

任何"有效可计算"的函数都是图灵可计算的。

2.5.2 支持证据

  1. 所有已知的计算模型都与图灵机等价
  2. 没有发现比图灵机更强大的"合理"计算模型
  3. 物理定律似乎不允许超图灵计算

2.5.3 物理 Church-Turing 论题

任何物理过程都可以用图灵机高效模拟。

这个更强的论题受到量子计算的挑战。


第三章:不可计算性与哥德尔定理

3.1 对角线论证

3.1.1 Cantor 的对角线论证

定理:实数是不可数的。

证明思路:假设实数可数,可以列出所有实数。然后构造一个实数,它与列表中每个实数都不同(通过取对角线上的数字并改变它)。矛盾。

3.1.2 对角线论证的威力

对角线论证是一种强大的证明技术,用于证明某些集合"太大"而无法被某些方法穷尽。

3.2 停机问题

3.2.1 问题定义

停机问题 :给定图灵机 MMM 和输入 xxx,判断 MMM 在 xxx 上是否停机。

3.2.2 不可计算性证明

定理 3.1:停机问题是不可计算的。

证明(对角线论证):

假设存在一个图灵机 HHH 解决停机问题:

H(⟨M,x⟩)={1M(x) 停机0M(x) 不停机H(\langle M, x\rangle) = \begin{cases} 1 & M(x) \text{ 停机} \\ 0 & M(x) \text{ 不停机} \end{cases}H(⟨M,x⟩)={10M(x) 停机M(x) 不停机

构造一个新的图灵机 DDD:

D(⟨M⟩)={不停机H(⟨M,⟨M⟩⟩)=1停机H(⟨M,⟨M⟩⟩)=0D(\langle M\rangle) = \begin{cases} \text{不停机} & H(\langle M, \langle M\rangle\rangle) = 1 \\ \text{停机} & H(\langle M, \langle M\rangle\rangle) = 0 \end{cases}D(⟨M⟩)={不停机停机H(⟨M,⟨M⟩⟩)=1H(⟨M,⟨M⟩⟩)=0

现在问:D(⟨D⟩)D(\langle D\rangle)D(⟨D⟩) 停机吗?

  • 如果停机,则 H(⟨D,⟨D⟩⟩)=1H(\langle D, \langle D\rangle\rangle) = 1H(⟨D,⟨D⟩⟩)=1,但根据 DDD 的定义,D(⟨D⟩)D(\langle D\rangle)D(⟨D⟩) 不停机。矛盾。
  • 如果不停机,则 H(⟨D,⟨D⟩⟩)=0H(\langle D, \langle D\rangle\rangle) = 0H(⟨D,⟨D⟩⟩)=0,但根据 DDD 的定义,D(⟨D⟩)D(\langle D\rangle)D(⟨D⟩) 停机。矛盾。

因此,HHH 不存在。□\square□

3.2.3 停机问题的意义

停机问题的不可计算性告诉我们:

  • 存在原则上无法用算法解决的问题
  • 计算有固有的局限性
  • 完全自动化的程序验证是不可能的

3.3 哥德尔不完备定理

3.3.1 背景:希尔伯特计划

20 世纪初,希尔伯特提出:

  1. 将所有数学形式化
  2. 证明数学是完备的(所有真命题都可证)
  3. 证明数学是一致的(不会证明假命题)
  4. 存在判定过程(可以机械地判断命题的真假)

3.3.2 第一不完备定理

定理 3.2(哥德尔第一不完备定理):任何包含算术的一致的形式系统都是不完备的------存在既不能证明也不能证伪的命题。

直觉:存在"真的但不可证"的数学命题。

3.3.3 第二不完备定理

定理 3.3(哥德尔第二不完备定理):任何包含算术的一致的形式系统都无法证明自身的一致性。

直觉:数学无法"自证清白"。

3.3.4 不完备定理的意义

  • 数学有固有的局限性
  • 形式化方法有边界
  • 人工智能有理论上的限制

3.4 不可计算性的层级

3.4.1 图灵度

不同的不可计算问题有不同的"难度"------这形成了图灵度的层级。

3.4.2 停机问题的变体

  • 停机问题:不可计算
  • 通用停机问题:不可计算
  • 某些特定问题:可计算

3.4.3 实际意义

不可计算性告诉我们:

  • 不是所有问题都有算法解
  • 程序验证有根本性的困难
  • 人工智能有理论上的天花板

第二部分:计算复杂性


第四章:复杂性类------P 与 NP

4.1 为什么需要复杂性理论

4.1.1 可计算性 vs 可行性

可计算性理论告诉我们问题能否 被解决,但没有告诉我们多快能被解决。

一个可计算的问题可能需要指数时间------这在实际中是不可接受的。

4.1.2 复杂性理论的核心问题

哪些问题可以在合理的时间内解决?

4.2 时间复杂性

4.2.1 时间复杂性类

TIME(t(n))\text{TIME}(t(n))TIME(t(n)) :在 O(t(n))O(t(n))O(t(n)) 时间内可判定的语言类。

P\mathbf{P}P(多项式时间)

P=⋃kTIME(nk)\mathbf{P} = \bigcup_{k} \text{TIME}(n^k)P=k⋃TIME(nk)

EXPTIME\mathbf{EXPTIME}EXPTIME(指数时间)

EXPTIME=⋃kTIME(2nk)\mathbf{EXPTIME} = \bigcup_{k} \text{TIME}(2^{n^k})EXPTIME=k⋃TIME(2nk)

4.2.2 P 类的意义

P\mathbf{P}P 通常被认为是"高效可解"问题的数学形式化。

理由

  • 多项式时间算法通常是实用的
  • 指数时间算法通常在实际中不可行
  • 多项式时间在复合下封闭(多项式组合仍是多项式)

4.2.3 P 中的例子

  • 排序(O(nlog⁡n)O(n \log n)O(nlogn))
  • 最短路径(O(n3)O(n^3)O(n3))
  • 线性规划(多项式时间)
  • 素数测试(AKS 算法,O(n12)O(n^{12})O(n12))

4.3 NP 类

4.3.1 非确定性图灵机

非确定性图灵机(NDTM)在每一步可以"猜"一个选择,如果存在一条接受路径,则接受。

直觉:NDTM 可以"并行"探索所有可能的计算路径。

4.3.2 NP 的定义

NP\mathbf{NP}NP(非确定性多项式时间):可以用非确定性图灵机在多项式时间内判定的语言类。

等价定义 :L∈NPL \in \mathbf{NP}L∈NP 当且仅当存在一个多项式时间验证器 VVV,使得:

x∈L  ⟺  ∃y (证书), V(x,y)=1x \in L \iff \exists y \text{ (证书), } V(x, y) = 1x∈L⟺∃y (证书), V(x,y)=1

4.3.3 NP 的直觉

NP 问题是"容易验证"的问题------给定一个候选解,可以在多项式时间内验证它是否正确。

例子

  • 布尔可满足性(SAT):给定一个布尔公式,是否存在使其为真的赋值?(验证:给定赋值,代入检查)
  • 旅行商问题(TSP) :是否存在长度不超过 kkk 的路线?(验证:给定路线,计算长度)
  • 图着色 :能否用 kkk 种颜色着色?(验证:给定着色,检查相邻顶点)

4.4 P vs NP 问题

4.4.1 核心问题

P=NP\mathbf{P} = \mathbf{NP}P=NP 吗?

即:所有容易验证的问题是否也容易求解?

4.4.2 为什么这个问题重要

如果 P=NP\mathbf{P} = \mathbf{NP}P=NP:

  • 密码学被打破(许多密码基于 NP 问题的困难性)
  • 优化问题变得容易
  • 数学证明可以自动化

如果 P≠NP\mathbf{P} \neq \mathbf{NP}P=NP:

  • 某些问题本质上是困难的
  • 密码学有理论基础
  • 启发式算法是必要的

4.4.3 当前状态

P\mathbf{P}P vs NP\mathbf{NP}NP 是计算机科学最重要的开放问题之一(克雷数学研究所百万美元悬赏问题)。

大多数专家相信 P≠NP\mathbf{P} \neq \mathbf{NP}P=NP,但没有证明。


第五章:NP 完全性与归约

5.1 归约

5.1.1 归约的定义

问题 AAA 归约 到问题 BBB(记为 A≤pBA \leq_p BA≤pB),如果存在一个多项式时间可计算的函数 fff,使得:

x∈A  ⟺  f(x)∈Bx \in A \iff f(x) \in Bx∈A⟺f(x)∈B

直觉 :如果能解决 BBB,就能解决 AAA。

5.1.2 归约的意义

  • 如果 A≤pBA \leq_p BA≤pB 且 B∈PB \in \mathbf{P}B∈P,则 A∈PA \in \mathbf{P}A∈P
  • 如果 A≤pBA \leq_p BA≤pB 且 A∉PA \notin \mathbf{P}A∈/P,则 B∉PB \notin \mathbf{P}B∈/P

归约建立了问题之间的相对难度关系。

5.2 NP 完全性

5.2.1 定义

语言 LLL 是 NP 完全的,如果:

  1. L∈NPL \in \mathbf{NP}L∈NP
  2. 对于所有 L′∈NPL' \in \mathbf{NP}L′∈NP,L′≤pLL' \leq_p LL′≤pL

直觉:NP 完全问题是 NP 中"最难"的问题。

5.2.2 Cook-Levin 定理

定理 5.1(Cook-Levin):布尔可满足性问题(SAT)是 NP 完全的。

这是第一个被证明为 NP 完全的问题(1971 年)。

5.2.3 NP 完全性的意义

如果任何 NP 完全问题在 P\mathbf{P}P 中,则 P=NP\mathbf{P} = \mathbf{NP}P=NP。

因此,NP 完全问题是"最有可能不在 P\mathbf{P}P 中"的问题。

5.3 经典 NP 完全问题

5.3.1 组合优化问题

  • 旅行商问题(TSP):找最短的访问所有城市的路线
  • 图着色:用最少的颜色给图着色
  • 背包问题:在重量限制下最大化价值
  • 子集和:是否存在子集和为某值

5.3.2 逻辑与约束问题

  • SAT:布尔公式的可满足性
  • 3-SAT:每个子句恰好 3 个文字的 SAT
  • 哈密顿回路:图中是否存在访问所有顶点的回路
  • 团问题 :图中是否存在大小为 kkk 的完全子图

5.4 处理 NP 完全问题

5.4.1 近似算法

对于优化问题,可以寻找近似解------保证在最优解的某个因子内。

例子

  • TSP(满足三角不等式):2-近似算法
  • 顶点覆盖:2-近似算法
  • 集合覆盖:O(ln⁡n)O(\ln n)O(lnn)-近似算法

5.4.2 参数化复杂性

对于某些问题,困难性只依赖于某个参数 kkk,而不是输入大小 nnn。

固定参数可解(FPT) :时间复杂度为 f(k)⋅nO(1)f(k) \cdot n^{O(1)}f(k)⋅nO(1)。

5.4.3 随机化算法

使用随机性可能加速某些问题的求解。

BPP 类:可以用随机化多项式时间算法高效解决的问题。

5.4.4 启发式方法

在实际中,启发式方法(如遗传算法、模拟退火、深度学习)通常能找到"足够好"的解。


第六章:空间复杂性与层次定理

6.1 空间复杂性

6.1.1 空间复杂性类

SPACE(s(n))\text{SPACE}(s(n))SPACE(s(n)) :在 O(s(n))O(s(n))O(s(n)) 空间内可判定的语言类。

L\mathbf{L}L(对数空间)

L=SPACE(log⁡n)\mathbf{L} = \text{SPACE}(\log n)L=SPACE(logn)

PSPACE\mathbf{PSPACE}PSPACE(多项式空间)

PSPACE=⋃kSPACE(nk)\mathbf{PSPACE} = \bigcup_{k} \text{SPACE}(n^k)PSPACE=k⋃SPACE(nk)

6.1.2 空间与时间的关系

定理 6.1 :P⊆NP⊆PSPACE\mathbf{P} \subseteq \mathbf{NP} \subseteq \mathbf{PSPACE}P⊆NP⊆PSPACE

定理 6.2(Savitch) :NSPACE(s(n))⊆SPACE(s(n)2)\mathbf{NSPACE}(s(n)) \subseteq \mathbf{SPACE}(s(n)^2)NSPACE(s(n))⊆SPACE(s(n)2)

这意味着非确定性在空间上比在时间上"便宜"。

6.2 层次定理

6.2.1 时间层次定理

定理 6.3(时间层次) :如果 t1(n)=o(t2(n))t_1(n) = o(t_2(n))t1(n)=o(t2(n)),则:

TIME(t1(n))⊊TIME(t2(n))\text{TIME}(t_1(n)) \subsetneq \text{TIME}(t_2(n))TIME(t1(n))⊊TIME(t2(n))

意义:更多时间确实能解决更多问题。

6.2.2 空间层次定理

定理 6.4(空间层次) :如果 s1(n)=o(s2(n))s_1(n) = o(s_2(n))s1(n)=o(s2(n)),则:

SPACE(s1(n))⊊SPACE(s2(n))\text{SPACE}(s_1(n)) \subsetneq \text{SPACE}(s_2(n))SPACE(s1(n))⊊SPACE(s2(n))

6.2.3 层次定理的意义

  • 复杂性类形成真正的层级
  • 资源增加确实能解决更多问题
  • P≠EXPTIME\mathbf{P} \neq \mathbf{EXPTIME}P=EXPTIME(确定的)

6.3 电路复杂性

6.3.1 电路模型

布尔电路是由逻辑门(AND, OR, NOT)组成的有向无环图。

6.3.2 电路复杂性类

NC\mathbf{NC}NC:可以用多项式大小、对数深度的电路解决的问题。

AC\mathbf{AC}AC :类似于 NC\mathbf{NC}NC,但允许无界扇入的门。

6.3.3 电路下界

证明某些问题需要"大"电路是困难的。

已知:存在需要指数大小电路的问题(通过计数论证)。

未知:NP 问题是否需要超多项式大小的电路?


第三部分:信息论


第七章:信息的度量------熵

7.1 信息的直觉概念

7.1.1 什么是信息

  • 太阳从东方升起:几乎没有信息(已知的事实)
  • 今天会下雨:有一定信息(不确定性减少)
  • 彩票中奖:大量信息(极不可能的事件)

直觉 :信息量与事件的意外程度相关。

7.1.2 Shannon 的洞察

Claude Shannon(1948)提出了信息的数学定义:

信息是不确定性减少的度量。

7.2 信息熵

7.2.1 自信息

事件 AAA 的自信息

I(A)=−log⁡P(A)I(A) = -\log P(A)I(A)=−logP(A)

直觉

  • 概率大的事件,自信息小(不意外)
  • 概率小的事件,自信息大(很意外)

7.2.2 熵

随机变量 XXX 的

H(X)=−∑xP(x)log⁡P(x)H(X) = -\sum_x P(x) \log P(x)H(X)=−x∑P(x)logP(x)

直觉:熵是自信息的期望值------平均而言,每次观测能获得多少信息。

7.2.3 熵的性质

  • H(X)≥0H(X) \geq 0H(X)≥0
  • H(X)=0H(X) = 0H(X)=0 当且仅当 XXX 是确定的
  • H(X)≤log⁡∣X∣H(X) \leq \log |X|H(X)≤log∣X∣,等号成立当且仅当 XXX 是均匀分布
  • 熵是凹函数

7.2.4 联合熵与条件熵

联合熵

H(X,Y)=−∑x,yP(x,y)log⁡P(x,y)H(X, Y) = -\sum_{x,y} P(x,y) \log P(x,y)H(X,Y)=−x,y∑P(x,y)logP(x,y)

条件熵

H(Y∣X)=−∑xP(x)H(Y∣X=x)H(Y|X) = -\sum_x P(x) H(Y|X=x)H(Y∣X)=−x∑P(x)H(Y∣X=x)

链式法则

H(X,Y)=H(X)+H(Y∣X)H(X, Y) = H(X) + H(Y|X)H(X,Y)=H(X)+H(Y∣X)

7.3 互信息

7.3.1 定义

互信息

I(X;Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X)I(X; Y) = H(X) - H(X|Y) = H(Y) - H(Y|X)I(X;Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X)

直觉 :知道 YYY 后,XXX 的不确定性减少了多少。

7.3.2 互信息的性质

  • I(X;Y)≥0I(X; Y) \geq 0I(X;Y)≥0
  • I(X;Y)=0I(X; Y) = 0I(X;Y)=0 当且仅当 X,YX, YX,Y 独立
  • I(X;Y)=I(Y;X)I(X; Y) = I(Y; X)I(X;Y)=I(Y;X)(对称性)

7.3.3 数据处理不等式

定理 7.1 :如果 X→Y→ZX \to Y \to ZX→Y→Z 形成马尔可夫链,则:

I(X;Z)≤I(X;Y)I(X; Z) \leq I(X; Y)I(X;Z)≤I(X;Y)

直觉:信息处理不能创造新信息,只能保持或丢失信息。

7.4 相对熵(KL 散度)

7.4.1 定义

KL 散度

DKL(P∥Q)=∑xP(x)log⁡P(x)Q(x)D_{KL}(P \| Q) = \sum_x P(x) \log \frac{P(x)}{Q(x)}DKL(P∥Q)=x∑P(x)logQ(x)P(x)

7.4.2 性质

  • DKL(P∥Q)≥0D_{KL}(P \| Q) \geq 0DKL(P∥Q)≥0(Gibbs 不等式)
  • DKL(P∥Q)=0D_{KL}(P \| Q) = 0DKL(P∥Q)=0 当且仅当 P=QP = QP=Q
  • DKL(P∥Q)≠DKL(Q∥P)D_{KL}(P \| Q) \neq D_{KL}(Q \| P)DKL(P∥Q)=DKL(Q∥P)(不对称)

7.4.3 与机器学习的联系

KL 散度是许多机器学习目标函数的基础:

  • 变分推断中的 ELBO
  • 策略梯度中的策略更新
  • 语言模型的训练目标

第八章:信道编码定理

8.1 通信系统模型

8.1.1 Shannon 的通信模型

复制代码
信源 → 编码器 → 信道 → 解码器 → 信宿
              ↑                ↑
            噪声              噪声

8.1.2 信道的数学描述

离散无记忆信道

P(y∣x) 给定输入 x 时输出 y 的概率P(y|x) \text{ 给定输入 } x \text{ 时输出 } y \text{ 的概率}P(y∣x) 给定输入 x 时输出 y 的概率

常见信道

  • 二进制对称信道(BSC) :以概率 ppp 翻转比特
  • 二进制擦除信道(BEC) :以概率 ppp 擦除比特
  • 高斯信道:输出 = 输入 + 高斯噪声

8.2 信道容量

8.2.1 定义

信道容量

C=max⁡P(x)I(X;Y)C = \max_{P(x)} I(X; Y)C=P(x)maxI(X;Y)

直觉:信道每传输一个符号能可靠传输的最大信息量。

8.2.2 例子

BSC 信道

C=1−H(p)=1+plog⁡p+(1−p)log⁡(1−p)C = 1 - H(p) = 1 + p\log p + (1-p)\log(1-p)C=1−H(p)=1+plogp+(1−p)log(1−p)

当 p=0p = 0p=0 或 p=1p = 1p=1 时,C=1C = 1C=1(完美信道)。

当 p=0.5p = 0.5p=0.5 时,C=0C = 0C=0(完全噪声)。

8.3 Shannon 信道编码定理

8.3.1 定理内容

定理 8.1(信道编码定理)

  1. 如果传输速率 R<CR < CR<C,则存在编码方案使得错误概率任意小。
  2. 如果传输速率 R>CR > CR>C,则任何编码方案的错误概率都远离零。

8.3.2 定理的意义

  • 存在性:可靠的通信是可能的(即使有噪声)
  • 界限:存在一个根本的速率上限
  • 编码:好的编码方案存在(但定理没有给出构造方法)

8.3.3 Shannon 的贡献

Shannon 的天才在于:

  • 将通信问题形式化为数学问题
  • 证明了容量的存在性
  • 分离了信源编码和信道编码

8.4 实际编码方案

8.4.1 线性码

汉明码:可以纠正单个错误。

LDPC 码:稀疏校验矩阵,接近 Shannon 极限。

8.4.2 Turbo 码

1993 年发现,首次接近 Shannon 极限。

8.4.3 Polar 码

2009 年发现,理论上达到 Shannon 极限,且有高效的编解码算法。


第九章:数据压缩与编码

9.1 无损压缩

9.1.1 信源编码定理

定理 9.1(信源编码定理):任何无损压缩方案的压缩率不能低于信源的熵。

压缩后大小原始大小≥H(X)\frac{\text{压缩后大小}}{\text{原始大小}} \geq H(X)原始大小压缩后大小≥H(X)

9.1.2 Huffman 编码

原理:用短码表示频繁出现的符号,用长码表示罕见的符号。

最优性:Huffman 编码是最优的前缀码。

9.1.3 算术编码

原理 :将整个消息映射到 [0,1)[0, 1)[0,1) 区间上的一个实数。

优势:可以接近熵率,比 Huffman 编码更高效。

9.1.4 Lempel-Ziv 算法

原理:利用重复模式进行压缩。

应用:gzip、PNG、DEFLATE。

9.2 有损压缩

9.2.1 率失真理论

问题:在给定的失真约束下,最小化描述长度。

率失真函数 :R(D)R(D)R(D) 是在失真不超过 DDD 时的最小速率。

9.2.2 变换编码

原理:将信号变换到另一个域(如频域),然后量化。

应用:JPEG(DCT)、MP3(MDCT)、AAC。

9.2.3 预测编码

原理:用预测模型减少冗余。

应用:语音编码(线性预测)、视频编码(运动补偿)。

9.3 Kolmogorov 复杂性

9.3.1 定义

字符串 xxx 的 Kolmogorov 复杂性 K(x)K(x)K(x) 是能输出 xxx 的最短程序的长度。

9.3.2 性质

  • K(x)≤∣x∣+O(1)K(x) \leq |x| + O(1)K(x)≤∣x∣+O(1)(可以硬编码)
  • 大多数字符串不可压缩:K(x)≈∣x)K(x) \approx |x)K(x)≈∣x)
  • K(x)K(x)K(x) 是不可计算的

9.3.3 与熵的关系

对于随机变量的典型值,Kolmogorov 复杂性近似等于熵。


第四部分:学习理论


第十章:统计学习理论基础

10.1 学习问题的形式化

10.1.1 学习的目标

给定训练数据,找到一个假设 hhh,使得 hhh 在未见过的数据上表现良好。

10.1.2 学习的三个要素

  1. 假设空间 H\mathcal{H}H:候选假设的集合
  2. 损失函数 ℓ\ellℓ:衡量预测与真实值的差异
  3. 学习算法 A\mathcal{A}A:从数据中选择假设的过程

10.1.3 经验风险 vs 期望风险

经验风险(训练误差):

R^(h)=1n∑i=1nℓ(h(xi),yi)\hat{R}(h) = \frac{1}{n} \sum_{i=1}^{n} \ell(h(x_i), y_i)R^(h)=n1i=1∑nℓ(h(xi),yi)

期望风险(泛化误差):

R(h)=Eℓ(h(x),y)R(h) = \mathbb{E}\\ell(h(x), y)R(h)=Eℓ(h(x),y)

核心问题:经验风险能否代表期望风险?

10.2 一致性与收敛

10.2.1 一致学习器

学习算法是一致的,如果随着训练样本增加,经验风险收敛到期望风险的最小值。

10.2.2 大数定律

大数定律 保证:对于固定的 hhh,R^(h)→R(h)\hat{R}(h) \to R(h)R^(h)→R(h)。

问题 :学习算法会选择 hhh,而不是固定的。

10.3 过拟合

10.3.1 现象

  • 训练误差很小
  • 测试误差很大

10.3.2 原因

假设空间太大,包含了"记住"训练数据而非"学习"规律的假设。

10.3.3 偏差-方差权衡

期望误差=偏差2+方差+噪声\text{期望误差} = \text{偏差}^2 + \text{方差} + \text{噪声}期望误差=偏差2+方差+噪声

  • 偏差:模型的假设与真实规律的差距
  • 方差:模型对训练数据的敏感度
  • 噪声:数据本身的随机性

第十一章:PAC 学习与 VC 维

11.1 PAC 学习框架

11.1.1 定义

PAC(Probably Approximately Correct)学习

一个概念类 C\mathcal{C}C 是 PAC 可学习的,如果存在算法 A\mathcal{A}A,对于任意:

  • ϵ>0\epsilon > 0ϵ>0(精度)
  • δ>0\delta > 0δ>0(置信度)
  • 分布 DDD

在 m=poly(1/ϵ,1/δ,n)m = \text{poly}(1/\epsilon, 1/\delta, n)m=poly(1/ϵ,1/δ,n) 个样本后,以概率 1−δ1-\delta1−δ 输出假设 hhh,使得:

R(h)≤min⁡c∈CR(c)+ϵR(h) \leq \min_{c \in \mathcal{C}} R(c) + \epsilonR(h)≤c∈CminR(c)+ϵ

11.1.2 PAC 学习的意义

  • 概率性:允许小的失败概率
  • 近似性:允许小的误差
  • 多项式时间:要求高效算法

11.2 有限假设空间

11.2.1 基本结果

定理 11.1 :如果 H\mathcal{H}H 是有限的,则对于任意 ϵ,δ>0\epsilon, \delta > 0ϵ,δ>0,当:

m≥1ϵ(ln⁡∣H∣+ln⁡1δ)m \geq \frac{1}{\epsilon} \left(\ln |\mathcal{H}| + \ln \frac{1}{\delta}\right)m≥ϵ1(ln∣H∣+lnδ1)

时,以概率 1−δ1-\delta1−δ,所有 h∈Hh \in \mathcal{H}h∈H 满足:

∣R(h)−R^(h)∣≤ϵ|R(h) - \hat{R}(h)| \leq \epsilon∣R(h)−R^(h)∣≤ϵ

11.2.2 样本复杂度

所需样本数与假设空间大小的对数成正比------这解释了为什么正则化有效。

11.3 VC 维

11.3.1 打散

假设空间 H\mathcal{H}H 打散 点集 SSS,如果对于 SSS 的任意子集,都存在 h∈Hh \in \mathcal{H}h∈H 能将其分开。

11.3.2 VC 维的定义

H\mathcal{H}H 的 VC 维 是 H\mathcal{H}H 能打散的最大点集的大小。

例子

  • 二维平面上的线性分类器:VC 维 = 3
  • ddd 维空间中的线性分类器:VC 维 = d+1d+1d+1

11.3.3 VC 维与样本复杂度

定理 11.2 :如果 H\mathcal{H}H 的 VC 维为 ddd,则:

m=O(d+log⁡(1/δ)ϵ2)m = O\left(\frac{d + \log(1/\delta)}{\epsilon^2}\right)m=O(ϵ2d+log(1/δ))

样本足以 PAC 学习。

11.3.4 VC 维的意义

  • VC 维衡量假设空间的"复杂度"
  • VC 维越大,需要越多的样本
  • VC 维是与分布无关的

11.4 结构风险最小化

11.4.1 基本思想

在经验风险和模型复杂度之间权衡:

R(h)≤R^(h)+Ω(H,m)R(h) \leq \hat{R}(h) + \Omega(\mathcal{H}, m)R(h)≤R^(h)+Ω(H,m)

其中 Ω\OmegaΩ 是复杂度惩罚项。

11.4.2 常见正则化

  • ℓ2\ell_2ℓ2 正则化 :Ω=λ∥w∥2\Omega = \lambda \|w\|^2Ω=λ∥w∥2
  • ℓ1\ell_1ℓ1 正则化 :Ω=λ∥w∥1\Omega = \lambda \|w\|_1Ω=λ∥w∥1
  • Dropout:隐式正则化

第十二章:泛化理论的现代视角

12.1 深度学习的泛化之谜

12.1.1 现象

深度网络通常:

  • 参数量远大于训练样本数(过参数化)
  • 训练误差可以达到零
  • 测试误差却很低

12.1.2 传统理论的局限

经典 VC 维理论预测:过参数化应该导致过拟合。

但实际中,过参数化的深度网络泛化得很好。

12.2 隐式正则化

12.2.1 SGD 的隐式偏好

SGD 倾向于找到平坦的最小值------这些最小值通常泛化更好。

直觉:平坦最小值对参数扰动不敏感,因此对数据扰动也不敏感。

12.2.2 初始化的影响

初始化决定了 SGD 的"起点",影响最终找到的解。

12.2.3 网络架构的归纳偏置

网络架构本身包含归纳偏置

  • CNN 的局部性和平移等变性
  • RNN 的时序性
  • Transformer 的注意力机制

12.3 双下降现象

12.3.1 现象

当模型复杂度增加时,测试误差先下降、后上升、再下降。

12.3.2 解释

  • 欠参数化:模型太简单,偏差大
  • 临界点:模型刚好能拟合训练数据
  • 过参数化:模型有"多余"的容量,可以选择更"好"的解

12.4 核方法视角

12.4.1 神经正切核(NTK)

在无限宽度极限下,深度网络的训练动力学等价于核方法。

12.4.2 核方法的泛化

核方法的泛化能力取决于核的谱性质。


第五部分:哲学与联系


第十三章:计算主义与心智哲学

13.1 计算主义

13.1.1 基本主张

计算主义:心智是一种计算过程。

13.1.2 强 AI 与弱 AI

  • 强 AI:机器可以真正"思考"
  • 弱 AI:机器可以模拟思考

13.1.3 中文房间论证

Searle 的中文房间思想实验:一个不懂中文的人,按照规则操作符号,可以产生正确的中文回答。这算是"理解"中文吗?

13.2 图灵测试

13.2.1 定义

如果机器在对话中能让人无法区分它是机器还是人,则通过图灵测试。

13.2.2 局限

  • 行为主义:只关注外在行为,不关注内在理解
  • 欺骗性:可能通过"技巧"而非"智能"通过测试

13.3 意识与计算

13.3.1 Hard Problem

意识的困难问题:为什么物理过程会产生主观体验?

13.3.2 整合信息理论

IIT:意识与系统的"整合信息"相关。

13.3.3 全局工作空间理论

GWT:意识与信息的全局广播相关。


第十四章:人工智能的理论基础

14.1 智能的定义

14.1.1 行为主义定义

智能是实现目标的能力

14.1.2 认知主义定义

智能是处理信息的能力

14.1.3 进化主义定义

智能是适应环境的能力

14.2 AI 的理论框架

14.2.1 符号主义

核心思想:智能是符号操作。

代表:逻辑推理、专家系统。

局限:知识获取瓶颈、常识推理困难。

14.2.2 连接主义

核心思想:智能从简单的连接中涌现。

代表:神经网络、深度学习。

局限:可解释性差、需要大量数据。

14.2.3 行为主义

核心思想:智能是与环境的交互。

代表:强化学习、机器人学。

局限:探索-利用困境。

14.3 No Free Lunch 定理

14.3.1 内容

NFL 定理:没有任何算法在所有问题上都优于随机猜测。

14.3.2 意义

  • 没有"万能"的学习算法
  • 归纳偏置是必要的
  • 算法选择需要考虑具体问题

第十五章:深度学习的理论挑战

15.1 表示学习

15.1.1 什么是好的表示

  • 不变性:对不相关的变化不变
  • 等变性:对相关的变化等变
  • 解耦:不同因素独立编码

15.1.2 深度学习的优势

深度网络可以学习层次化表示

  • 底层:简单的局部特征
  • 高层:复杂的全局特征

15.2 优化的理论

15.2.1 非凸优化的困难

深度学习的损失函数是高度非凸的。

15.2.2 为什么 SGD 有效

  • 过参数化使得局部最小值"足够好"
  • SGD 的噪声帮助逃离鞍点
  • 平坦最小值与泛化相关

15.3 泛化的理论

15.3.1 传统理论的局限

VC 维理论无法解释深度学习的泛化。

15.3.2 新的理论方向

  • 隐式正则化:SGD 的偏好
  • 信息论方法:信息瓶颈
  • 核方法视角:NTK
  • 动力系统视角:训练动力学

第十六章:开放问题与未来方向

16.1 理论开放问题

16.1.1 P vs NP

这是计算机科学最重要的开放问题。

16.1.2 量子计算的优势

量子计算能解决哪些经典计算无法高效解决的问题?

16.1.3 深度学习的理论

  • 为什么深度学习有效?
  • 什么是最优的网络架构?
  • 如何保证深度学习的可靠性?

16.2 哲学开放问题

16.2.1 机器能思考吗?

这是一个哲学问题,而非技术问题。

16.2.2 通用人工智能(AGI)

AGI 是否可能?如果可能,如何实现?

16.2.3 AI 对齐

如何确保 AI 的目标与人类一致?

16.3 跨学科联系

16.3.1 计算与物理

  • 计算的物理极限
  • 量子计算
  • 可逆计算

16.3.2 计算与生物

  • 神经计算
  • 进化计算
  • 分子计算

16.3.3 计算与认知

  • 认知架构
  • 具身认知
  • 社会认知

附录

A. 核心概念速查

概念 定义 意义
图灵机 计算的数学模型 定义了可计算性
Church-Turing 论题 有效可计算 = 图灵可计算 计算的基本假设
停机问题 判断程序是否终止 不可计算的典型例子
P 多项式时间可解 "高效"的数学定义
NP 多项式时间可验证 "容易验证"的数学定义
NP 完全 NP 中最难的问题 P vs NP 的核心
信息的度量 通信和压缩的基础
信道容量 可靠传输的最大速率 通信的基本极限
VC 维 假设空间的复杂度 学习的样本复杂度
PAC 学习 概率近似正确学习 学习理论的框架

B. 重要定理

定理 内容 意义
Cook-Levin SAT 是 NP 完全的 NP 完全性的基础
Shannon 信道编码 速率 < 容量时可靠通信可能 通信理论的基石
Shannon 信源编码 压缩率 ≥ 熵 数据压缩的极限
哥德尔不完备 一致系统不完备 数学的局限性
PAC 学习 有限假设空间可学习 学习理论的基础

C. 参考文献

  1. Sipser, M. (2012). Introduction to the Theory of Computation (3rd ed.). Cengage Learning.

  2. Cover, T. M., & Thomas, J. A. (2006). Elements of Information Theory (2nd ed.). Wiley.

  3. Shalev-Shwartz, S., & Ben-David, S. (2014). Understanding Machine Learning: From Theory to Algorithms. Cambridge University Press.

  4. Arora, S., & Barak, B. (2009). Computational Complexity: A Modern Approach. Cambridge University Press.

  5. Turing, A. M. (1936). On Computable Numbers, with an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society.

  6. Shannon, C. E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal.

  7. Valiant, L. G. (1984). A Theory of the Learnable. Communications of the ACM.

  8. Vapnik, V. N. (1998). Statistical Learning Theory. Wiley.

  9. Gödel, K. (1931). Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I. Monatshefte für Mathematik und Physik.

  10. Cook, S. A. (1971). The Complexity of Theorem-Proving Procedures. STOC 1971.

相关推荐
dtq04243 分钟前
C语言刷题数组5,6(求平均值,求最大值)
c语言·数据结构·算法
郭梧悠14 分钟前
Hash算法入门Hash冲突解决方案
算法·哈希算法
洛水水1 小时前
【力扣100题】81.寻找两个正序数组的中位数
数据结构·算法·leetcode
happymaker06261 小时前
LeetCodeHot100——155.最小栈
算法
洛水水2 小时前
【力扣100题】85.每日温度
算法·leetcode·职场和发展
Coder-magician2 小时前
《代码随想录》刷题打卡day15:二叉树part05
数据结构·c++·算法
Kurisu_红莉栖2 小时前
力扣56合并区间
算法·leetcode
Irissgwe2 小时前
算法的时间复杂度和空间复杂度
数据结构·c++·算法·c·时间复杂度·空间复杂度
随意起个昵称2 小时前
区间dp-基础题目3(永别)
c++·算法
周末也要写八哥2 小时前
有向图Hierholzer算法的另一种实现
算法