一、深度学习串讲:Transformer 架构与预训练演进
1.1 从 RNN 到 Transformer 的动机
回顾整个发展脉络的起点:循环神经网络(Recurrent Neural Network, RNN)处理序列的方式,是对序列中的每个元素逐步读入,将其融合到模型的记忆单元中,形成一个历史序列与当前输入的信息摘要(压缩包),再读入下一个元素并更新记忆。
这个机制本身是”比较完美的一个想法”,很直观。
但关键瓶颈在于:记忆单元的向量维度有限,对长程信息无法有效保留。Transformer 的突破性思想是:不持续处理所有信息,而是去检索。
总结:Attention 机制本质上就是”检索”在向量级别深度框架中的一种实现。
1.2 Transformer 的核心:Q、K、V
每个位置上的元素向量被拆成三部分:
- Query (Q):表示”我”这个位置想要查什么
- Key (K):表示被检索对象的位置上能提供什么
- Value (V):表示提供关键词的那些位置的真实信息内容
1.3 Encoder 与 Decoder 的结构差异
Transformer 的两个基本模块:
- 多头注意力子层(Multi-head Attention)
- 前馈网络子层(Feed-Forward Network)
两者结合残差连接(Residual Connection)和层归一化(Layer Normalization)组成一个模块,再堆叠多层(原始论文中通常是 6 层)。
Encoder:双向注意力
Encoder 使用双向注意力,每个元素既可以检索前面元素的信息(融合上文语义),也可以检索后面元素的信息(融合下文语义)。原因很简单:整个输入序列已经全部给出,自然应该双向利用。
Decoder:因果注意力 + 交叉注意力
Decoder 的架构更复杂,包含三个子层:
- 因果注意力(Causal Attention,也称单向注意力):生成过程中,后面尚未生成的内容不可见,只能与已经生成的前文做 attention。所以叫”因果”——前是因,后是果。
- 交叉注意力(Cross Attention):在生成过程中融合编码器输出的源语言信息。这一层是从 Encoder 和 Decoder 的交互中产生的,后来在很多跨模态应用中得到推广。
- 前馈网络:与 Encoder 相同。
1.4 预训练的三种路线
如何对 Transformer 架构进行预训练?历史上出现过三种方案。
路线一:联合训练 Encoder + Decoder
T5 (Text-to-Text Transfer Transformer):
- 思路非常”暴力”:在原输入语句中随机删掉一些词或位置上的内容,让 Decoder 生成被 mask 掉的那些部分。
- 这很像后来的 Masked Language Model,但 T5 是联合训练 Encoder 和 Decoder。
BART (Bidirectional and Auto-Regressive Transformer):
- 在 T5 的基础上更加”暴力”:对输入句子经过各种加噪声和篡改——随机挖掉词、随机替换词、打乱词序位置,然后让 Decoder 恢复原始句子。
- 本质上是一个降噪自编码器(Denoising Autoencoder)。
遗憾的是,这两种设计都没有被后来的大模型时代所接受。
路线二:只训练 Encoder——BERT
BERT (Bidirectional Encoder Representations from Transformers) 只训练 Transformer 的 Encoder,使用双向注意力。BERT 的优势在于:
- 文本分类:判断文本表达什么情感
- 序列标注:如中文分词、信息抽取(合同要素抽取等)
- 但它无法做生成任务,因为它只是 Encoder
历史顺序是:GPT 最早,然后才是 BERT,再后是 T5 和 BART。但由于 Google 影响力大,长时间都被 BERT 和 Google 带偏了,GPT 的第一篇文章几乎默默无闻。
路线三:只训练 Decoder——GPT(最终胜出)
GPT (Generative Pre-trained Transformer) 最早(比 BERT 还早约两个月),它完全抛弃 Encoder,只用 Decoder 的因果注意力。分析 GPT 最终胜出的三个原因:
第一,解码效率高(KV Cache):
- 由于是单向因果注意力,已经处理过的 token 的 Q、K、V 不会再发生变化,可以放入缓存复用。
- 而 BERT 的双向注意力中,当新的 token 出现时,前面所有位置上的 Q、K、V 都需要重新计算,复杂度很高。
第二,同等预训练数据量下表现不弱:
- 有篇文章做了大量实验,用同样数量的预训练数据去训练 BERT、T5 或 GPT 架构,GPT 在很多任务上打平甚至更好。
第三,预训练范式与下游任务范式高度一致(最关键):
- GPT 预训练的本质是”给上文、补下文”(Predict next token)。
- 翻译本质上就是给原文(上文)补译文(下文);问答就是给问题(上文)补答案(下文);分类就是把问题+候选类别给模型,让模型输出类别标签。
- 所有 NLP 任务都可以转化为”给上文补下文”的生成任务。
第四,涌现出 Zero-shot 能力(最重要):
- GPT 在学习了数十种不同任务后,居然能够泛化到训练中从未见过的新任务上——只需要修改提示词。
- 这种 Zero-shot Ability 正是当代大语言模型成功的最核心因素。
关键:这才是现在大模型成功的最重要的一篇文章——发现了 zero-shot 能力。
二、图像生成模型:从 VAE 到扩散模型到流匹配
2.1 生成模型的本质
图像生成的核心问题:
一言以蔽之,图像生成就是从一个已知的 P 分布(可控分布,通常是高斯噪声分布),让它转变到一个 Q 分布(真实图像分布)。
2.2 变分自编码器(Variational Auto-Encoder, VAE)
VAE 的思路:
- 用编码器将真实数据从原始空间 $X$ 映射到一个潜空间(Latent Space)$Z$(通常假设为高斯分布)
- 再用解码器从 $Z$ 还原回数据空间
- 生成时,只需在潜空间中采样,通过解码器生成所需内容
- 条件生成时,只需对潜空间进行条件编码即可
VAE 是”一步生成”——一次从噪声映射到数据。
2.3 扩散模型(Diffusion Model)
如果把 VAE 的生成过程变成层次化、多步的,就得到了扩散模型。
总结:VAE 是扩散模型的时间步设为 1 的简化版本;扩散模型是 VAE 的层次化版本。
扩散模型的核心设计思路——概率路径(Probability Path):
- 前向过程:对真实图像不断加噪声,直到原始图像信息完全消失,只剩纯噪声
- 反向过程:从纯噪声出发,每一步学习如何拟合中间加噪的那个过程(即去噪)
- 这个反向过程为正向学习提供了每一步的学习目标
扩散模型每走一步会加一点噪声,在概率空间中进行一个带有噪声的游走,这对应于解一个随机微分方程(Stochastic Differential Equation, SDE)。
2.4 流匹配(Flow Matching)
流匹配的哲学更简单:别加噪声了。
它只需要学习在当前概率空间的某个点上,应该向什么方向走才能让真实图像的概率更高。这在物理上就相当于学习一个速度场(Vector Field)。
- 流匹配学习的是从噪声分布到真实分布的一条直线路径
- 它在解一个常微分方程(Ordinary Differential Equation, ODE),而非随机微分方程
2.5 统一视角
现在整体理论走向大统一:
\[\text{VAE} \subset \text{扩散模型} \subset \text{流匹配}\]- 流匹配是最一般的框架(解常微分方程)
- 在流匹配基础上加上随机因素 → 扩散模型(解随机微分方程)
- 在扩散模型基础上将时间步设为 1 → VAE
评价:现在像 Sora 这样的顶级图像和视频生成模型,已经从扩散模型走到了流匹配模型。图像生成领域的理论进步比 GPT 领域更大——”那些 agent、skill、tool 基本都是工程,没有像图像生成这样推陈出新”。
三、深度学习与大脑:迈向真正的智能
3.1 大脑仍然是下一代 AI 最可参考的对象
GPT 肯定不是终结。它只是人类短短 20-30 年中的一个技术,今后一定还会发生变化。
能耗对比
| 人脑 | GPT / GPU 服务器 | |
|---|---|---|
| 功耗 | 约 20 W | 约 19,000 kWh(GPT 级别推理) |
| 任务种类 | 数千种认知/感知任务 | 有限 |
| 工作机制 | 按需发放脉冲 | 持续供电计算 |
大脑的能耗优势来自按需发放脉冲(on-demand spiking):需要时神经元才被供能并发射脉冲,不需要时就切断能量。
3.2 大脑编码方式:频率编码 vs 时序编码
深度学习的隐向量本质上对应的是频率编码(Rate Coding)——神经元受到的刺激越强,发放频率越高;刺激越弱,发放越稀疏。
但频率编码的编码效率很低。以视觉通路为例:
- 从视网膜 → V1 → V2 → 高层视觉区域,仅约 100 ms
- 每一层的处理时间仅 10 多毫秒
- 神经元在 10 毫秒内最多发射 1-2 次脉冲(受不应期限制)
- 频率编码在这点时间内能表达的信息量极其有限
因此现在的理论倾向于大脑使用的是时序编码(Temporal Coding)——两次脉冲之间的时间间隔本身就能表达不同的信息。
但需要指出:神经科学的最新研究表明,神经元并没有能力精确控制脉冲发射的时间点,发射与否本身也受概率影响。所以更倾向于簇编码(Clustered Coding)假说:信号的表示不是靠单个神经元,而是靠几百个神经元组成的簇——在同一时点上发放的神经元比例才是真正的信号载体。
3.3 反向传播算法在生物大脑中不可行
人脑的基本学习机制与现在神经网络完全不同。
BP 算法在生物大脑中无法实现的原因:
第一,权重对称性问题:
- BP 要求前向传播和反向传播使用完全相同的权重
- 生物神经元只有单向连接,从未观察到前向和反馈使用同一权重
- 虽然有一篇 Nature Communication 证明反向权重即使随机给定也能实现 BP,但这仅解决了部分问题
第二,全局同步协调问题:
- BP 需要一个全局调度器:先告诉”现在前向”,存好梯度;再说”开始反向”
- 生物大脑不可能在学习时让部分神经元停机等待统一信号——否则老虎来了都不知道跑
第三,梯度链式法则需要全局协调:
- 链式求导本质上要协调所有参与神经元,就像一个”指挥家”统一指挥
- 生物大脑中未发现这样的统一调度信号
- 唯一的例外是多巴胺(Dopamine):当感官信号与大脑预测信号发生重大差异时,多巴胺会被广播,提升神经元的活性和学习能力——但这更接近强化学习而非 BP
第四,神经元无法表示负数(最致命):
- 脉冲传播中,梯度有正有负
- 神经元怎么表示负数?有学者提出”基频假设”——基频以上是正,基频以下是负——但从未在生物实验中发现
3.4 脉冲神经网络(Spiking Neural Network, SNN)
SNN 被视为下一代神经网络的候选方案:
- 输入输出都是脉冲,神经元建模为类似电容器的电子元件
- 按需发放脉冲,非常节能
- 在简单任务上已经打败了同等规模的传统人工神经网络
- IBM 的 TrueNorth 项目已经做到 1B 规模,离主流 15B 模型虽有差距,但在持续推进
注意:我们实验室也做 SNN,但越研究越觉得不太靠谱。它现在更多走向了低能耗场景,很难在性能上与 GPT 这样的大模型竞争。
3.5 人脑结构仍有大量未解之谜
- 当前大模型基本都是前馈(Feedforward)的,而大脑中存在大量循环结构(Recurrent loops)
- 大脑中有三个自循环神经环路(highly responsive structures),它们不接受外界输入,却对其他神经元有显著的调节作用——这些环路在学习中扮演什么角色,至今不清楚
- 脑科学计划从低到高:小鼠 → 大鼠 → 猫 → 人。小鼠基本搞定了,猫现在搞不定,人还遥遥无期
3.6 深度学习章节总结
深度学习本质是用分层(Hierarchical)的方式,通过函数复合从低层特征逐步学到高层抽象表征的方法。其训练范式主要是预训练 + 下游任务微调。
关键:深度学习不是人工智能的全部。深度学习在表示学习里,表示学习在机器学习里,机器学习在人工智能里。后面将进入符号主义(Symbolism)的内容——人工智能的另一条实现路径。
四、知识表示:符号主义 AI 的基石
4.1 知识表示问题的提出
早期 AI 的三大核心问题:知识表示、知识获取、知识使用。其中知识表示最为根本——用什么东西来表示知识,直接决定了知识怎么获取、怎么使用。
对比深度学习和符号主义对这三个问题的解法:
| 深度学习 | 符号主义 | |
|---|---|---|
| 知识表示 | 隐空间特征向量 | 符号、规则、逻辑 |
| 知识获取 | 预训练 + 微调 | 人工编写、规则提取 |
| 知识使用 | 模型推理 | 推理机 |
符号主义 AI 的核心公式是:
知识 + 推理机
推理机是预先写好的、通用的。只需要把领域的知识编写好装入推理机,系统就能工作。
4.2 心理学实验:知识的分层组织
早期 AI 受心理学实验影响极大。一个经典的实验:问被试者”金丝雀是鸟”“金丝雀会唱歌”“金丝雀是动物”“金丝雀有皮肤”等问题,记录反应时间。
实验发现:
- “金丝雀是鸟”和”金丝雀会唱歌”反应最快——典型特征直接关联在该概念上
- “金丝雀是动物”“金丝雀有皮肤”反应较慢——需要沿着概念层级向上找寻
结论:人脑中的知识是按层次组织的。共性特征(如”会飞”)被抽象到高层(”鸟”),最独特的特征(如”会唱歌”)直接挂在具体实体(”金丝雀”)上。
4.3 语义网络(Semantic Network)
最早的 AI 知识表示方法:
- 图中的节点表示对象(Entity)
- 节点之间的边表示语义关系
- 通过图上的扩散来完成推理(如问”金丝雀能飞吗?”——从金丝雀节点出发沿图扩散,若可达”会飞”则答案为是)
语义网络正是后来的知识图谱(Knowledge Graph)的前身,思想完全一致。
优点:易读,人类容易理解。
缺点:
- 无法表示过程性知识,推理结果不一定准确
- 图随着知识增加变得过于复杂
- 重名、歧义问题难以处理
- 语义关系类型繁多,缺乏统一标准
评价:知识图谱没有在哪个公司真正很好稳定地落过地。代价很高,但没有真正落地。
4.4 框架(Frame)
为了解决语义网络中知识分散的问题,框架将相关对象的属性集中在一个模块里。框架很像软件工程中”类”的概念:
- 一个 Hotel 框架包含了 Hotel 的各种属性
- 框架可以嵌套(如 Hotel 包含 Room、Chair、Phone 等子框架)
- 最重要的是类比能力:如解释”John is like a fire engine”——将 John 和 Fire Engine 两个框架进行对比,用另一个框架填充差异,推导出 John 可能”很有活力”或”嗓门很大”
4.5 概念图(Conceptual Graph)
在语义网的基础上将关系也当作节点处理,从而可以表达多元关系(n-ary relations)。
例如:”The dog scratches its ear with his paw”:
- Agent: dog
- Object: ear
- Instrument: paw
概念图还可以表示”Tom believes that John baked a pizza”这样的嵌套信念,表达能力接近自然语言。
4.6 知识图谱与数据库融合
911 事件后,美国试图融合 17 个情报机构的 28 个数据库,干了五年失败了。原因在于:
- 关系型数据库基于一阶谓词逻辑(First-Order Logic),具体是基于 Datalog(一阶逻辑的子集)
- 一阶逻辑的致命缺陷:从矛盾出发可以推导出一切(ex falso quodlibet)——前提一旦有冲突,推理就崩溃
三元组(Triple)方式的知识表示——Subject-Predicate-Object——可以更好地融合来自不同源的数据。当英文版和法文版的书目信息来自不同出版社时,可以在图中定义节点之间的等价关系,合并成一个大图。
五、不确定性推理
5.1 什么是不确定性(Uncertainty)
不确定性就是在缺乏充分信息的情况下来进行决策。
AI 中有一个专门的顶会叫 UAI(Uncertainty in AI),专门研究不确定情况下的推理问题。人类的智能天生就具备不确定性下决策的能力——从每天早上决定喝牛奶还是吃包子,到面临重大人生抉择。
不确定性的来源包括:
- 模糊(Ambiguity)、不完整(Incomplete)、错误(Incorrect)的信息
- 测量噪声、随机因素、系统性偏差
- 推理层面的不确定性
5.2 三种推理方式
| 推理类型 | 示例 | 可靠性 |
|---|---|---|
| 演绎推理(Deductive) | 所有人都会死 → 苏格拉底是人 → 苏格拉底会死 | 永远正确 |
| 归纳推理(Inductive) | 火警铃响了 → 着火了 | 不一定(可能是有人抽烟) |
| 溯因推理(Abductive) | 闻到烟味 + 看到衣服着火 → 确实着火了 | 概率更高,但不绝对 |
5.3 非单调推理(Non-Monotonic Reasoning)
传统符号主义推理中,知识随信息增长而单调递增。但在真实推理中,新信息的加入可能推翻原先的结论。
例子:X 看起来是红色的 → 推断 X 是红色的。但如果告诉你 X 被红色灯光照射,那么”X 是红色的”这个结论就被推翻了。
这就是非单调性——新信息可能导致原有断言从真变为假。人类天然能处理这种推理,但计算机上实现非常困难。
5.4 不确定性推理中的经典悖论
布利丹驴悖论(Buridan’s Ass): 一头饿驴面对一望无际的草垛,它既可以从左往右吃,也可以从右往左吃。由于无法决定哪个方向吃得更多,它思考了几天后饿死了。对应到现实中的医疗决策——保守治疗活三个月,手术可能直接死在手术台也可能多活三年。人在这个处境下跟那头驴没有本质区别。
彩票悖论(Lottery Paradox): 100 万张彩票中只有一张中奖。单独评估每一张彩票时,理性的人都会认为”这张不会中奖”(概率极低),但这个判断应用到全部彩票上就错了——因为总有一张会中奖。这被称为集体否认(Collective Denial)。
前言悖论(Preface Paradox): 一位学者花五年写了一本 800-1000 页的书,书中所有定理都丝丝入扣、互相支撑。但统计学家朋友指出:按照统计经验,这么长、这么有趣的一本书,几乎必然有至少一个定理是错的。由于作者不能指出哪个定理错、错多少,按照逻辑,整本书的所有定理都可以被认为是错的——五年心血写了 nothing。
循环否认(Circular Denial): 多个人互相作证但构成循环——A 说 B 不可靠,B 说 C 不可靠,C 说 A 不可靠。当其中某人说”外面在下雨”时,你如何判断真假?
5.5 经典概率论的问题
经典概率论在统计推断时,需要先假设一个理论分布(如正态分布,由均值 $\mu$ 和方差 $\sigma^2$ 刻画),然后通过假设检验判断数据是否来自该分布:
- 设定拒绝域(通常双边各 2.5%,合计 5%)
- 样本落入拒绝域 → 否定原分布
- 样本落入接受域 → 不否定原分布
经典方法的一个严重问题:调研越充分,越不会否定原分布。因为真实分布和理论分布总是有差异的,当采样量很大时,采样均值会落在大面积的重叠区域,你越尽心尽力收集数据,反而越不可能拒绝那个本身就是错的先验分布。少量实验反而更容易发现偏差。
5.6 贝叶斯方法:PROSPECTOR 专家系统
贝叶斯方法通过引入先验概率和条件概率来解决经典概率的问题。
经典案例——PROSPECTOR 专家系统(斯坦福大学开发):
- 根据当地水文和矿物资料,自动发现了一个价值百万的新矿脉
- 先验:某地有油概率 0.6,无油概率 0.4
- 实验条件概率:有油时测出有油的概率 0.8;无油时误报有油的概率 0.1
- 通过贝叶斯公式,结合先验概率、条件概率和实验结果,计算后验概率,做出最终决策
可以认为:一个好的不确定性理论需要解决三个问题:
- 认知推理(Epistemic Reasoning):你相信什么(概率估计)
- 实践推理(Practical Reasoning):根据相信的东西应该怎么做(决策)
- 将个人偏好纳入整个框架(不同人、不同财富阶段的选择不同)
概率论只告诉我们推理时相信什么,但”相信”和”应该怎么做”之间还缺一个好理论将它们关联起来。这也是现在 World Model 转向 World Action Model 的原因。
六、小结
深度学习章节到此结束。后续内容将进入相对传统但正在重新重要起来的人工智能方法——符号主义(基于逻辑学的推理和基于心理学的推理),包括逻辑语言和产生式规则两种范式。机器学习和深度学习的数学基础是概率论和线性代数,建议阅读有几何直觉的教材(如 Strang 的线性代数)。