跳到主要内容

《神经网络与深度学习(第二版)》拆解大纲(定稿:已按审读意见改过)

这一份是动笔前的节级大纲,一节一行,每行「进来时以为 → 出去时知道」。 两头是同一件事的节已经删掉或合并。定稿后正文的节序与这里一致。

切法: 原书 16 章 + 数学附录(五个附录),拆成 38 章。 按新词密度切,不按字数切。 原书第 2、5、6、7、8、9、10、12、13、14、16 章各拆成 2~3 章; 数学附录五份合并重排成 3 章并前置到全书最前面(理由见下面第 ① 条)。

原书拆成
附录 A 线性代数01
附录 B 微积分 + 附录 C 数学优化02
附录 D 概率论 + 附录 E 信息论03
第 1 章 绪论04
第 2 章 机器学习概述05 / 06 / 07 / 08
第 3 章 线性模型09
第 4 章 前馈神经网络10 / 11 / 12
第 5 章 卷积神经网络13 / 14
第 6 章 循环神经网络15 / 16
第 7 章 网络优化与正则化17 / 18 / 19
第 8 章 注意力机制与 Transformer20 / 21 / 22
第 9 章 图神经网络23 / 24
第 10 章 无监督学习25 / 26 / 27
第 11 章 模型独立的学习方式28
第 12 章 深度强化学习29 / 30
第 13 章 大语言模型与智能体31 / 32 / 33
第 14 章 概率图模型34 / 35
第 15 章 深度信念网络36
第 16 章 深度生成模型37 / 38

章数为什么是 38 而不是 35: 审读意见第 ① 条给了两条路,我们选了「数学三章前置」那条。 前置之后,原书第 14~16 章(概率图模型、玻尔兹曼机、深度生成模型)如果还挤在三章里, 每章要塞进 7~9 万字符的原文,节级新词必破线。所以把它们拆成五章(34~38)。 收尾自检表里的「原书每一章都被覆盖了吗」是硬条件,章数不是。


一、审读意见落到了哪里(逐条)

审读提的问题改在哪
章序跳级:数学三章排在末尾,词却从第 02 章起承重取审读给的第一条路:数学三章前置成 01 / 02 / 03,正文顺序整体后移。这样「梯度、链式法则、矩阵、向量、维度、期望、方差、概率分布、熵、交叉熵」全部在 01~03 首现并当场解释,book-jargon 按 index→01→02… 的顺序扫,不会从正文第一章起报一整片
总纲主线写在错误的海拔总纲第 3 节全部改写成效果句:每一级只留「上一步逼出了什么问题、这一步怎么回答」,术语退回章节层。改后全段承重术语从三十来个降到七个,每个都在同一句里用大白话兑现
一词多义五组见下面第二节「五组改名,改完只剩一个意思」
线性代数章节级配额超标(申报 5 实际 9)按正文实际教什么重切:§4 只留「三类要认得的矩阵」(对角 / 正交 / 正定),§5「特征值与特征向量」,§6「奇异值分解」。整个拿掉(只在 37 章高斯 KL 公式里就地一句话解释);行列式保留但换了落点——它在 38 章流匹配里是「体积缩放因子」的承重词,所以在 01 §7 单开一节从「面积被拉伸了几倍」讲起,而不是当成判可逆的小工具
两节重复:暂退法 / 数据增强14 章(AlexNet)只讲现象和效果,不给名字、不记 newTerms;名字与机制全部留给 19 章 §5 / §6
两节重复:下一个词元预测 / 掩码建模「概率的乘法拆解 + 负对数似然」的完整推导放在 27 章 §2(它先出现);31 章 §2 只讲困惑度这一个新东西,前半句改成一行回指;31 章 §3 只做三种范式的取舍比较,掩码机制不再重讲
悬崖行走走查落进悬崖轨迹改成 上 → 右×6 → 下(8 步),逐项回报 −1×7 + 0,折扣后 −5.22;另起半行走一条掉崖轨迹让 −100 真的出现一次。奖励值与折扣率旁边写明「这三个数是为演示设的,原书只说掉崖受到较大惩罚」,并声明「这里先按不滑落算」
四处成节内容没有落点权重规范化(7.5.4)→ 18 章 §5 第三条路;神经架构搜索(7.6.5)→ 19 章 §3 末尾;多模态大语言模型(13.8.3)→ 33 章新开 §6「模型怎么看见东西」;有向图↔无向图转换(14.1.6)→ 34 章 §6
五处较轻的深度学习框架三抽象(1.7)→ 04 章 §7;广义感知器多分类与收敛性(3.4.4)→ 09 章 §6;基于优化器的元学习(11.6.2)→ 28 章 §7;DeepSeek-V3 的 671B / 37B(13.2.4)→ 22 章 §7 当参照物;受限玻尔兹曼机变体(15.2.3)→ 36 章 §5;DCGAN(16.3.3)→ 37 章 §7
事实错误:一千亿亿亿34 章 §1 改成「2 的 100 次方项,大约 10 的 30 次方个数」,并配一个可核对的参照物(全世界硬盘加起来存得下的字节数还不到 10 的 24 次方,标为「补充(不在书里,来自通用知识)」)
三条走查算不出承诺的数评价指标章(08)、预训练章(31)、无监督特征章(25)的走查全部重算,数见下面第三节
评价指标节级配额超标拆成三节:§2「准确率为什么会骗人」(准确率、混淆矩阵,2 个词)、§3「拆开看:查得准还是查得全」(精确率、召回率、F 值、宏平均与微平均,4 个词)、§4「模型说 0.9 的时候有几分把握」(概率校准、不确定性估计)
书架只用了一次33 章七节各挂一行「引哪个源、要它的哪一个事实」,MCP 那一节必须挂 ai-protocol-reference 的锚(原书全书 grep 零命中,不许只靠通用知识);另外 11 章自动微分挂 micrograd 源码锚。清单见下面第四节
总纲缺件补 index.md 六节骨架:第 5 节写四书关系(两三句,不产生依赖,只指路),末尾建兑现表,把跨章许诺逐行记进去
概率图参数估计一节塞四件事34 章 §7 拆成两节:§7「能数的就数,数不动的只能近似」(不含隐变量)与 §8「有隐变量时:先猜它是谁,再更参数」(边际似然、证据下界、EM 两步)。高斯混合模型的一轮 EM 明确标成另起的第二处走查,并写清它为什么落不到主走查上
线性分类器走查漏了 Softmax09 章补一处另起走查:同一批点加一个第三类 [0, 2],用 Softmax 回归算三类打分、概率、交叉熵和一步梯度,并当场演示三组权重同减一个向量结果不变

二、五组改名,改完只剩一个意思

判据(行文第 8 条):同一个词全文只有一个意思,同一个概念全文只有一个名字。

原书两义的词本书怎么叫这个名字在本书只指
feature vector样本向量一条样本的各个特征排成的一列数(05 章 §1 首现)
eigenvector特征向量满足「只被拉长、方向不变」的那个方向(01 章 §5 首现)
概率的链式法则概率的乘法拆解把联合概率按顺序拆成一串条件概率的乘积(03 章 §4 首现)
微积分的链式法则链式法则复合函数求导时把各段导数乘起来(02 章 §4 首现)
对比学习里的温度温度参数对比损失里除在相似度上的那个数(27 章 §4)
解码时的温度采样温度生成时除在打分上、控制随机程度的那个旋钮(31 章 §3)
玻尔兹曼机里的温度温度(能量模型里的)能量除以它再取指数的那个数;36 章 §2 当场点明它和采样温度是同一个数学形状、不是同一个旋钮
VAE 的 decoder解码网络把隐变量映回样本分布的那个网络(37 章 §3)
GAN 的 generator生成网络把噪声直接映成样本的那个网络(37 章 §5)

「方差」不改名,但要拆开说清楚(这是我们的裁决): 偏差-方差分解里的方差和随机变量的方差是同一个数学量(一个随机量围绕自己均值的散布), 只是被测量的对象换了——前者测的是「同一个算法换一批训练数据,学出来的模型彼此差多少」。 所以 03 章 §3 一次把方差讲清,07 章 §3 当场写明「这里方差的对象不是数据而是模型」,不引入第二个名字。


三、五条被重算过的走查(动笔前已验)

① 08 章(评价指标) —— 100 个样本、其中 1 个正例。 两个模型准确率一模一样,别的全不一样:

  • 全预测为负:真正例 0、假正例 0、假负例 1、真负例 99 → 准确率 99%; 精确率是 0 ÷ 0,此时没有定义;召回率 0;F 值跟着没定义。
  • 预测 2 个为正、其中 1 个对:真正例 1、假正例 1、假负例 0、真负例 98 → 准确率 (1+98)/100 = 99%;精确率 1/2 = 0.5;召回率 1/1 = 1.0; F 值 2×0.5×1.0 ÷ (0.5+1.0) = 0.67

四个数全部算得出,且两个模型的准确率相同——这才真正打得掉「99% 准确率」的错觉。

② 25 章(主成分分析) —— 三个不共线的点 (1,2)、(3,5)、(6,6)。 均值 (10/3, 13/3);协方差矩阵 [[4.222, 3.222], [3.222, 2.889]]; 两个特征值 6.8460.265(都不为零);最大那个方向 ≈ (0.775, 0.631)。 三点投到这条线上得到 −3.28、0.16、3.12;留住 6.846 ÷ 7.111 = 96.3% 的方差,丢掉 3.7%。 把第一个点从一维还原回二维得到 (0.79, 2.26),原值是 (1, 2)——丢了多少,肉眼能看见

③ 29 章(悬崖行走) —— 网格 7×3,起点 (1,1),终点 (7,1),(2,1) 到 (6,1) 是悬崖。 轨迹:上 → 右 → 右 → 右 → 右 → 右 → 右 → 下,共 8 步,末步踏到 (7,1)。 逐项回报 −1 重复 7 次、最后一步 0;折扣率 0.9 时 −(1 + 0.9 + 0.81 + … + 0.9⁶) = −5.22。 另起半行:从 (1,1) 直接向右一步到 (2,1),那是悬崖格,回报 −100−100 / −1 / γ=0.9 这三个数是为演示设的(原书只写「掉崖受到较大惩罚」); 原书还写了每步有一定概率滑落,走查里先按不滑落算,当场声明。

④ 31 章(字节对编码) —— 语料写死为 low low low lower lower newer newer newer now now。 第一轮相邻对计数:(o,w) 7 次、(l,o) 5、(w,␣) 5、(w,e) 5、(e,r) 5、(r,␣) 5、(n,e) 3、(e,w) 3、(n,o) 2。 最高的那一对唯一,是 (o,w),合并成 ow。 第二轮出现 5:5:5:5 的并列,我们定的口径是:并列时取字典序最小的那一对,于是选 (e,r) 合并成 er。 两轮之后 lower = l + ow + er,newer = n + e + w + er。 口径这一句写在正文里,不藏脚注。

⑤ 09 章(线性分类器) —— 主走查是二维两类:正例 [1,1]、[2,1],负例 [−1,−1]、[0,−1]。 感知器、Logistic 回归、软间隔支持向量机各更新一步,每步写出净输入、损失、梯度、更新后的权重。 另起第一处走查(因为 Softmax 回归塞不进二分类):同一批点加一个第三类 [0,2], 算一次三类打分、softmax 概率、交叉熵,走一步梯度,并当场演示三组权重同减一个向量结果不变。 另起第二处走查:核函数把同心圆映到高维——只走「原空间算不出、映过去就是一条直线」这一步。


四、书架锚清单(动笔前已 grep 过,路径都存在)

写法别混:拆解章用 shelf=<库>/<源>#<章文件名>,源码本体用 shelf=<库>/<源>@src:<仓内路径>:<行号>,两种都带 事实=

章·节引哪个源要它的哪一个事实
11 §5 自动微分ai-frontier-reference/micrograd@src:一个能跑反向传播的最小实现只有 154 行(engine.py 94 + nn.py 60)
33 §1 循环怎么转ai-frontier-reference/smolagents#01-agent-loop.md「想—做—看」的通用骨架由一个 while 循环驱动,靠 max_steps 兜底终止
33 §2 任务分解与恢复ai-frontier-reference/langgraph#03-persistence-hil.md每一步的状态被显式存下来,所以能中断、能回放、能插人工确认
33 §3 记忆ai-frontier-reference/letta#01-memory-tiers.md记忆分三层:常驻上下文的、数据库里的全部历史、带向量的长期知识
33 §3 记忆(写入侧)ai-frontier-reference/mem0#01-add-pipeline.md一条记忆从对话里被抽出来要走去重与批量落库,不是原样堆进去
33 §4 检索增强ai-frontier-reference/hkuds-lightrag#02-dual-level-retrieval.md把问题拆成高层主题词和低层实体词,分别去查图的边和点
33 §4 多跳ai-frontier-reference/hipporag#02-online-retrieval-ppr.md先挑出少量相关事实做种子,再让相关性在图上扩散来排段落
33 §5 工具与协议ai-protocol-reference/mcp-spec#03-server-primitives.md三种原语按「谁决定它何时被用」分:Prompts 用户控制、Resources 应用控制、Tools 模型控制
33 §7 安全边界ai-agent-reference/llamafirewall#02-scanners.md六个扫描器分本地轻量与远程审计两派,各有独立阈值
33 §7 沙箱ai-agent-reference/aio-sandbox#01-runtime-and-entrypoints.md所有子系统收在一个端口后面,鉴权统一在入口层拦
33 §8 评估ai-frontier-reference/inspect-ai#01-eval-loop.md评测是一个四层漏斗,每条样本走 setup→solver→scorer→写日志
33 §8 评估(奖励门)ai-frontier-reference/tau2-bench#03-evaluation.md各分量按 reward_basis 相乘取 0/1,数据库分靠重放终态的哈希比对

绝对不许去抓 modelcontextprotocol.io(已知永久挂起),用本地 clone 与我们自己的拆解。


五、节级大纲(一节一行:进来时以为 → 出去时知道)

01 数学一:向量与矩阵 —— 把一张图、一句话变成一串数

  1. 一张灰度图为什么能写成一串数 → 进来时以为数学是另一门课;出去时知道向量就是一组按顺序排好的数,图片、句子、一个人的体检单都能这么排
  2. 这一串数有多长 → 以为「长度」只有一种量法;出去时知道范数是给这一串数量长度的规矩,ℓ1 数绝对值之和、ℓ2 是勾股定理的推广、ℓ∞ 只看最大那一个
  3. 两串数有多像 → 以为比较两个向量要逐位看;出去时知道内积一个数就概括了它们的方向关系,正交就是内积为 0
  4. 矩阵是什么:一台把向量搬到另一个空间的机器 → 以为矩阵是数表;出去时知道它是线性映射,乘法就是两台机器串起来,转置、Hadamard 积、外积各干什么活
  5. 有些方向只被拉长,不被转向 → 以为矩阵作用后向量都会歪;出去时知道特征向量是那些方向不变的方向,特征值是它被拉长的倍数,谱半径就是最大那个倍数的绝对值
  6. 任意一台机器都能拆成「转—拉—转」 → 以为只有方阵才好分解;出去时知道奇异值分解对任何形状的矩阵都成立,是真正用得上的方向数,低秩近似就是只留前几个
  7. 面积被拉伸了几倍 → 以为行列式是个考试用的算式;出去时知道它量的是「这台机器把体积放大了多少倍」,为 0 就是把空间压扁了,所以不可逆
  8. 几类要认得的矩阵 → 以为矩阵类型是分类学;出去时知道对角矩阵逐维缩放、正交矩阵只转不拉、正定矩阵让二次型恒正,后面每一章都在用这三件事
  9. 可带走的
  10. 原文地图

主走查: 一个二维向量 [3, 4] 全程走到底——量长度(5)、和 [1, 0] 求内积(3)、被 [[2,0],[0,1]] 拉伸、求这台机器的特征值(2 和 1)与特征向量、算行列式(2,面积翻倍)。

02 数学二:导数与梯度 —— 怎么知道该往哪边挪

  1. 蒙着眼睛下山 → 以为优化要先看全景;出去时知道导数就是脚下这一小步的坡度
  2. 多个旋钮一起拧 → 以为多变量要一个一个试;出去时知道偏导数是「只动一个、别的按住」,梯度把所有偏导排成一个向量、指向上坡最陡的方向
  3. 二阶:坡度自己的坡度 → 以为一阶够用;出去时知道Hessian 矩阵决定了这个平点是谷底、山顶还是鞍点,泰勒展开是这一切的来源
  4. 一串函数套一串函数怎么求导 → 以为复合函数要展开;出去时知道链式法则把各段导数乘起来,这就是后面反向传播的全部数学
  5. 一层套一层的是向量不是数怎么办 → 以为向量求导要另起炉灶;出去时知道矩阵微积分只是记号约定,分母布局决定了梯度写成列还是行,雅可比矩阵是它的一般形式
  6. 沿着负梯度走 → 以为找最小值要解方程;出去时知道梯度下降是一步一步试,学习率是每步迈多大,大了发散小了太慢
  7. 什么样的地形才保证走得到底 → 以为地形无所谓;出去时知道凸函数上局部最低就是全局最低,神经网络不是凸的,所以只能求「够好的解」
  8. 带绳子的下山:约束怎么办 → 以为约束只能靠试;出去时知道拉格朗日乘数法把约束折进目标函数,KKT 条件里的互补松弛说明「没顶到边界的约束等于不存在」
  9. 可带走的
  10. 原文地图

主走查: f(x, w, b) = 1/(exp(−(wx+b))+1),取 x=1、w=0、b=0,拆成六个基本操作,按原书那张计算图逐段算出 ∂f/∂w = 0.25,前向模式和反向模式各走一遍、结果对上。

03 数学三:概率与信息 —— 说不准的时候怎么算账

  1. 同一句话问两遍答案不一样 → 以为随机就是没规律;出去时知道概率分布记的是「每种结果各占多少」
  2. 平均下来是多少、能飘多远 → 以为均值就够;出去时知道期望是长期平均,方差是围着均值散得多开
  3. 连续的量怎么记 → 以为连续变量也能逐点记概率;出去时知道概率密度函数下面的面积才是概率,单点概率是 0,正态分布是最常用的那一条钟形曲线
  4. 一串事件怎么写成一串乘法 → 以为联合概率只能整张表记;出去时知道概率的乘法拆解能把它写成一串条件概率相乘,这是后面语言模型和概率图模型的共同起点
  5. 看到结果反推原因 → 以为条件概率是单向的;出去时知道贝叶斯公式把 p(y|x) 和 p(x|y) 连起来,先验是没看数据前的信念
  6. 哪一组参数最像是它生出来的 → 以为参数只能猜;出去时知道最大似然估计挑「让这批数据最不意外」的参数,取对数只是为了把连乘变连加
  7. 一条消息值多少 → 以为信息量是主观的;出去时知道是一个分布的平均意外程度,越均匀越大
  8. 用错的分布去编码要多花多少 → 以为交叉熵是个损失函数的名字;出去时知道它是「按 q 的编码去编 p 的消息」的平均长度,KL 散度是多花的那部分,恒非负、不对称
  9. 两个分布挨不着的时候 → 以为散度总能用;出去时知道 KL 会变无穷、JS 散度会卡在常数,Wasserstein 距离还能量出远近(搬土的最小工作量)
  10. 一步只看上一步 → 以为序列建模要记全历史;出去时知道马尔可夫链只依赖当前状态,平稳分布是它跑久了停在哪儿,细致平稳条件是后面采样法的门票
  11. 可带走的
  12. 原文地图

主走查: 一枚不公平的硬币(正面 0.75)全程走到底——写出分布、算期望与方差、算熵(0.811 比特)、拿一个错的模型(0.5/0.5)算交叉熵(1 比特)与 KL(0.189)、再看 Jensen 不等式为什么保证 KL ≥ 0。数值当场声明是我们为演示挑的。

04 绪论:从「人来写规则」到「机器自己找规律」

  1. 六十年里换过三次信念 → 以为人工智能一直朝一个方向走;出去时知道它换过四个时期:推理期靠人写规则、知识期靠专家灌知识、学习期靠数据、大模型期靠规模
  2. 为什么手写数字这么难 → 以为「简单任务简单做」;出去时知道人能做却说不清的事,写不出规则,只能给样例
  3. 瓶颈不在模型,在表示 → 以为选对模型最重要;出去时知道传统流程的力气全花在特征工程上,表示学习要解决的是「让模型自己发现该看什么」
  4. 一种颜色的两种记法 → 以为编码只是格式;出去时知道局部表示(one-hot)维度高且互不相干,分布式表示(RGB 三个数)低维稠密还能算相似度,嵌入就是从前者到后者的那一跳
  5. 文本怎么变成向量 → 以为文字天生难办;出去时知道词袋模型N 元特征是最朴素的两招,它们高维稀疏、表达不了相似性,这正是后面要换掉的东西
  6. 深度是什么、贡献度怎么分 → 以为深就是层多;出去时知道深度是「非线性变换做了几次」,贡献度分配问题是深度学习真正的核心难题
  7. 四种网络结构与三个框架抽象 → 以为框架要背 API;出去时知道前馈、记忆、注意力、图四种结构各自的信息组织方式,以及所有框架共享的三个抽象:张量、计算图、自动微分
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 一张 100×100 的彩色照片,从「三万个像素值」这一串数出发,走过特征工程、表示学习、深度学习三种处理路线,每步写出这一串数变成了几维、由谁决定。

05 机器学习的五个零件

  1. 挑芒果:第一次做一件没人教的事 → 以为机器学习要先懂算法;出去时知道样本特征标签样本向量这四个词就是一次买菜经验
  2. 三份数据各干什么 → 以为数据就是数据;出去时知道训练集调参数、验证集选模型、测试集只在最后用一次,反复用测试集调参就是数据泄露
  3. 模型是一族函数,不是一个 → 以为模型是一个公式;出去时知道假设空间是候选函数的集合,线性模型和非线性模型只差一个「基函数能不能学」
  4. 「学得好不好」得先能算 → 以为好坏靠看;出去时知道损失函数把差距变成一个数,0-1 损失最直观却没法优化,平方损失、交叉熵损失、Hinge 损失各有各的场合
  5. 在有限数据上最小化什么 → 以为直接最小化错误率;出去时知道真正想要的是期望风险、能算的只有经验风险,两者的差就是后面泛化那一章的全部内容
  6. 怎么把参数挪到位 → 以为优化要解方程;出去时知道批量梯度下降随机梯度下降小批量梯度下降三者只差「一次看几条样本」,超参数是不能被梯度调的那一类
  7. 什么时候该停 → 以为训练越久越好;出去时知道提前停止盯的是验证集而不是训练集
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 一筐 5 个芒果(颜色、大小两维),从记录特征、切三份数据、写出线性模型、算平方损失、走一步小批量梯度下降,到用验证集判断该不该停——每步写出具体的数。

06 线性回归:同一条直线的四种解法

  1. 一条直线怎么被拟合出来 → 以为拟合是画出来的;出去时知道它是最小化平方损失的解
  2. 一步到位的闭式解 → 以为只能迭代;出去时知道最小二乘法能直接解出来,代价是要求一个矩阵可逆
  3. 矩阵不可逆怎么办 → 以为算不出来就完了;出去时知道样本比特征少时必然不可逆,两条出路:先降维,或者改用梯度下降
  4. 给对角线加一点点 → 以为岭回归是另一个模型;出去时知道它就是在损失后面加一项 λ‖w‖²,也就是结构风险最小化
  5. 换个说法:哪组参数最像生出这批数据 → 以为最大似然是另一套理论;出去时知道假设噪声服从正态分布时,最大似然估计的解和最小二乘法一模一样
  6. 再给参数加一个先验 → 以为最大后验估计更复杂;出去时知道给参数配一个正态先验之后,它等价于岭回归,正则化系数就是两个方差的比
  7. 四条路通向同一个地方 → 以为四种方法要各记一遍;出去时知道它们只是同一件事的四种说法,这张对照表是全书最省力的一张
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 三个点 (−1, 0)、(0, 1)、(1, 2) 走到底:写出增广矩阵、算 XXᵀ、求闭式解 w=1、b=1、算残差 0;再加一个噪点看岭回归怎么把解拉回来。

07 泛化:训练集上做得好不算数

  1. 训练集 99%、验证集 72% → 以为模型学会了;出去时知道这叫过拟合,反过来两边都低叫欠拟合
  2. 怎么给「太复杂」上税 → 以为限制复杂度靠减层;出去时知道正则化是在目标函数里加一项复杂度惩罚,ℓ1 让参数稀疏、ℓ2 让参数变小
  3. 错误可以拆成三块 → 以为误差是一整团;出去时知道偏差是「平均起来离最优模型多远」,方差是「换批数据模型抖得多厉害」,再加一块谁也去不掉的噪声
  4. 数据少的时候怎么可靠地比模型 → 以为只能划一次验证集;出去时知道交叉验证把数据轮着当验证集,K 轮取平均
  5. 学一个「大概对」的东西要多少样本 → 以为理论没用;出去时知道 PAC 学习给出的界说明:假设空间越大,要的样本越多
  6. 没有一招鲜 → 以为总有最好的算法;出去时知道没有免费午餐定理说的是「脱离具体问题谈优劣没意义」,奥卡姆剃刀和最小描述长度是同一件事的两种说法
  7. 相似性没有客观标准 → 以为分类天生存在;出去时知道丑小鸭定理说一切相似性标准都是主观的,而归纳偏置就是我们主动塞进模型的那份主观
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 用 06 章那三个点,分别拿一次多项式和五次多项式去拟合:训练误差 0 对 0,但换一个新点 (2, 3) 时预测差出多少;再把 λ 从 0 调到 1,看偏差和方差各往哪边走。

08 评价指标:一个准确率骗过所有人

  1. 先看现象:99% 的准确率一文不值 → 以为准确率高就是好;出去时知道正负样本 1:99 时,全预测为负也有 99%
  2. 准确率为什么会骗人 → 以为要换个指标;出去时先知道准确率到底在数什么,混淆矩阵把四种情况摆开(真正例、假正例、假负例、真负例)
  3. 拆开看:查得准还是查得全 → 以为一个数就够;出去时知道精确率问「报出来的里有多少是真的」、召回率问「真的里有多少被报出来」,F 值是两者的调和平均,宏平均与微平均决定小类别有没有被听见
  4. 模型说 0.9 的时候有几分把握 → 以为输出的概率就是概率;出去时知道概率校准要求「说 0.9 的那批里真有九成是对的」,不确定性估计还要分清是数据本身模糊还是模型没见过
  5. 完整流程回看 → 以为评价是最后一步;出去时知道训练阶段和评价阶段用的是不同的数据、不同的目标
  6. 边界与局限
  7. 可带走的
  8. 原文地图

主走查: 100 个样本、1 个正例的那组数(见上面第三节 ①),两个准确率同为 99% 的模型,四个数逐个算出来。

09 线性分类器:四个模型,差别只在损失函数

  1. 直线不能直接当分类器 → 以为回归改改就能分类;出去时知道要在线性打分外面套一个决策函数,决策边界就是打分为 0 的那个超平面
  2. 多于两类怎么办 → 以为多分类是多做几次二分类;出去时知道「一对其余」和「一对一」都会留下判不出来的区域,argmax 方式才没有死角
  3. 把打分挤成概率 → 以为 Logistic 回归是回归;出去时知道它输出的是「属于正类的概率」,而对数几率才是那条直线
  4. 多类版本 → 以为 Softmax 回归要重推一遍;出去时知道它是 Logistic 回归的多类推广,两类时正好退化回去,而且三组权重同减一个向量结果不变(参数冗余)
  5. 错了才改 → 以为感知器过时了;出去时知道它是「错误驱动」的最简形式,线性可分时有限步收敛,收敛次数的界由间隔决定
  6. 从两类推到序列 → 以为感知器只能做二分类;出去时知道换成联合特征函数之后,同一套更新规则能做多分类甚至结构化预测,收敛性同样成立
  7. 不只要分对,还要留出空当 → 以为支持向量机是另一门学问;出去时知道它最大化间隔,解只依赖贴边的那几个样本(这正是 02 章 KKT 互补松弛读出来的)
  8. 原空间分不开就换个空间 → 以为要显式升维;出去时知道核函数直接算高维内积,连坐标都不用写出来
  9. 四种损失摆在一起 → 以为四个模型要各背一遍;出去时知道它们的决策函数完全相同,差别只在损失函数长什么样
  10. 边界与局限
  11. 可带走的
  12. 原文地图

主走查 + 两处另起: 见上面第三节 ⑤。

10 前馈网络:把线性模型摞起来

  1. 一个神经元在干什么 → 以为神经元神秘;出去时知道它是「加权和 + 一个非线性」,和 09 章那个线性打分只差最后一步
  2. 摞起来:层与层之间怎么传 → 以为深就是重复;出去时知道隐藏层逐层把上一层的输出当输入,整个网络是一个复合函数
  3. 为什么中间必须有非线性 → 以为激活函数是可选项;出去时知道连续的线性变换合起来还是一次线性变换,没有非线性时几十层等于一层
  4. 它到底能表示多少东西 → 以为表示能力靠试;出去时知道通用近似定理说够宽的两层网络能逼近任意连续函数,但它没说怎么找到、也没说找得到最优
  5. 网络怎么接到具体任务上 → 以为分类要另外接模型;出去时知道最后一层直接就是 Logistic 回归或 Softmax 回归,前面那些层是在学一个新的表示
  6. 目标函数长什么样 → 以为损失要重写;出去时知道还是交叉熵加一个 Frobenius 范数的正则项,只是参数从一个向量变成了一堆矩阵
  7. 边界与局限
  8. 可带走的
  9. 原文地图

主走查: 一个 2-2-1 的小网络,输入 [1, 0],权重全部写死,逐层算出净输入、活性值、输出概率、交叉熵损失——为 11 章的反向做好前半程。

11 反向传播与自动微分

  1. 逐个参数求导有多贵 → 以为求导就是算式;出去时知道逐个参数施加扰动要算 O(N²) 次,几千亿个参数根本不可能
  2. 一个关键的中间量 → 以为要一路推到底;出去时知道每层只需要一个误差项(损失对这一层净输入的偏导),它就是贡献度分配问题的答案
  3. 误差怎么往回传 → 以为反向是另一套公式;出去时知道第 l 层的误差 = 下一层误差按权重加权回来,再乘上本层激活函数的导数(Hadamard 积登场)
  4. 输出层的起点特别干净 → 以为起点难算;出去时知道 Softmax 配交叉熵时,起点就是「预测减真实」
  5. 让机器自己求导 → 以为要么手推要么符号求导;出去时知道计算图把任何计算拆成基本操作,自动微分在图上按规则累积导数,既不是数值近似也不是符号推导
  6. 前向模式还是反向模式 → 以为两种模式二选一没所谓;出去时知道输入多输出少时反向模式便宜得多,而神经网络的损失恰好是一个标量——反向传播就是反向模式自动微分
  7. 代价:中间结果要存着 → 以为反向是白捡的;出去时知道反向模式必须保留前向的中间值,显存就是这么被吃掉的
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 接着 10 章那个 2-2-1 网络和输入 [1, 0],从输出层误差项开始逐层回传,写出每个权重的梯度值、更新后的权重、以及再跑一次前向后损失降到多少。

12 激活函数与门控单元

  1. 先看现象:深层网络训不动 → 以为是数据不够;出去时知道 Sigmoid 型函数的导数最大只有 0.25,层层相乘之后梯度消失
  2. 另一头:梯度也会炸 → 以为只有消失一种病;出去时知道权重范数大于 1 时误差会指数级放大,梯度截断是最直接的止血
  3. 挤压型的两个老将 → 以为 Logistic 和 Tanh 差不多;出去时知道 Tanh 是零中心化的,而非零中心化会让下一层的输入发生偏置偏移
  4. 换一条折线 → 以为 ReLU 只是更简单;出去时知道它在正半轴导数恒为 1,一举缓解梯度消失,代价是可能「死亡」
  5. 给死掉的一条活路 → 以为变体是调参游戏;出去时知道带泄露的、带参数的、指数线性单元各自补的是哪个洞
  6. 平滑的自门控 → 以为 Swish 和 GELU 是新发明;出去时知道它们是「用一个 0 到 1 的软开关去乘自己」,ReLU 是它的极端情形
  7. 不再逐元素:门控线性单元 → 以为激活函数都作用在单个数上;出去时知道 GLU 用两组线性变换,一组当值、一组当门,SwiGLU 与 GeGLU 是它换了门函数的版本;这正是 22 章现代前馈层的落点
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 净输入 z = −2、0、2 三个值,逐个代进 Logistic、Tanh、ReLU、Swish、GELU,写出函数值和导数值,再看误差项经过 10 层之后各剩多少。

13 卷积:局部连接与权重共享

  1. 全连接处理图片有多亏 → 以为参数多点无所谓;出去时知道 100×100×3 的图接 256 个神经元就是 768 万个参数,而且完全没利用「相邻像素相关」这件事
  2. 一维卷积:延迟叠加 → 以为卷积是图像专用;出去时知道它就是「滑动窗口内的加权求和」,换个权重就换一种特征
  3. 二维卷积与互相关 → 以为要分清翻不翻转;出去时知道深度学习里说的卷积其实是互相关,卷积核可学时两者表示能力等价
  4. 步长与零填充 → 以为输出大小要试出来;出去时知道输出长度有一个确定的公式,窄卷积、宽卷积、等宽卷积只是三组参数选择
  5. 卷积层:从二维到三维 → 以为多通道很复杂;出去时知道每个输出特征图由一组卷积核分别卷各输入通道再相加,参数量与图片大小无关
  6. 汇聚层:把分辨率降下来 → 以为池化是压缩;出去时知道它降维、扩大感受野、并带来一点局部平移鲁棒性,全局平均汇聚还能替掉大半个全连接层
  7. 反向传播在卷积上怎么走 → 以为要重推;出去时知道参数梯度是「输入与上游梯度的互相关」,输入梯度是「翻转的卷积核与上游梯度的宽卷积」,汇聚层则是上采样
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 4×4 的输入配 2×2 的卷积核(原书习题 5-1 那一组),手算窄卷积输出 3×3 的每个数,再做 2×2 最大汇聚,并算出这一层的参数量与连接数。

14 卷积网络的演化

  1. 第一个能上生产的:LeNet-5 → 以为老模型只有历史意义;出去时知道它 7 层、约 6 万参数、34 万连接,「卷积—下采样—分类器」这套范式从此定型
  2. 一次靠工程堆出来的突破:AlexNet → 以为深了就赢;出去时知道它真正带来的是一套配方:GPU 并行、ReLU、训练时随机关掉一部分神经元、把图片翻转裁剪再喂一遍(名字和机制留到 19 章)
  3. 小核堆深:VGG → 以为大核看得远;出去时知道两层 3×3 的感受野等于一层 5×5,参数却从 25 降到 18
  4. 同一层看多个尺度:Inception → 以为核大小要二选一;出去时知道并排放几种核再拼起来就行,1×1 卷积负责在通道维上降维
  5. 让梯度有路可走:残差网络 → 以为深了就该更强;出去时知道直接学「差值」比学整个映射容易,直连边同时给梯度留了一条高速路
  6. 把分辨率还原回去:转置卷积 → 以为反卷积是求逆;出去时知道它只是形式上的转置,插零再卷积即可,棋盘伪影是它的代价
  7. 三种省钱的卷积 → 以为省算力要牺牲精度;出去时知道空洞卷积不加参数就扩感受野、分组卷积切断跨组连接、深度可分离卷积把「空间」和「通道」两件事拆开,参数降到约 1/9
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 一张 32×32×3 的图,配 64 个 3×3 卷积核(步长 1、零填充 1),算出输出尺寸、参数量、汇聚后尺寸;再把同一层换成深度可分离卷积,算出参数量变成多少、比值是多少。

15 循环网络:给网络加一点记忆

  1. 前馈网络为什么处理不了序列 → 以为补零就行;出去时知道它要求定长输入,且完全不知道「上一句说了什么」
  2. 三种加记忆的办法 → 以为循环是唯一解;出去时知道延时器、非线性自回归、循环连接是三条路,前两条都要预先定死看几步
  3. 简单循环网络 → 以为循环很玄;出去时知道隐状态同时接当前输入和上一时刻自己,一条更新公式就够
  4. 按时间展开 → 以为循环网络是新结构;出去时知道展开之后它就是一个在时间上共享参数的深层网络
  5. 四种用法 → 以为序列任务各不相同;出去时知道只有四种模式:序列分类、序列标注、自回归序列建模、条件序列生成
  6. 训练时给真答案、生成时只能给自己 → 以为训练和推断一样;出去时知道教师强制让训练能并行,代价是暴露偏差
  7. 误差怎么沿时间往回传 → 以为和前馈一样;出去时知道随时间反向传播要把所有时刻对同一组参数的梯度加起来
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 一个隐状态只有 1 维的循环网络,输入序列 [1, 0, 1],U=0.5、W=1、b=0、tanh 激活,逐时刻写出净输入与隐状态,再从最后一步往回传两步,写出两个误差项的数。

16 长程依赖与门控循环网络

  1. 间隔一拉长就学不动 → 以为是容量不够;出去时知道误差每回传一步就乘一次同样的矩阵,谱半径大于 1 就炸、小于 1 就消失
  2. 消失的到底是什么 → 以为是参数梯度没了;出去时知道没的是「远处那一项」的贡献,参数只被最近几步推着走
  3. 把乘法改成加法 → 以为要换模型;出去时知道让状态等于「上一状态 + 一个增量」就没有连乘,代价是丢了非线性、而且记忆会饱和
  4. 三个软开关:长短期记忆网络 → 以为 LSTM 复杂;出去时知道它多了一条只做加法的内部通道,遗忘门决定丢多少、输入门决定写多少、输出门决定露多少
  5. 少一个门也够用:门控循环单元 → 以为 GRU 是简化版;出去时知道它把「保留」和「写入」压成一组互补权重,重置门管候选状态看不看历史
  6. 变深与看两头 → 以为循环网络只能一层;出去时知道堆叠是纵向加深、双向是加一条逆序的通路
  7. 从链到树再到图 → 以为循环网络是终点;出去时知道把「一步一状态」推广到任意结构就是消息传递(23 章);而把这条递推线性化,则通往状态空间模型(22 章 §6 兑现)
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 接着 15 章那个网络,把间隔拉到 20 步,用 γ = 0.6 算出远端误差衰减到 6×10⁻⁵;再换成 LSTM,遗忘门取 0.99,同样 20 步后剩 0.82——同一组数字上看出门控到底改了什么。

17 训练为什么难 + 优化算法

  1. 高维里真正的敌人不是山谷 → 以为优化卡在局部最优;出去时知道高维空间中驻点更可能是鞍点,随机性正是逃离它的手段
  2. 平的谷底和尖的谷底 → 以为找到最低就行;出去时知道平坦最小值通常泛化更好,尖锐的对参数扰动敏感
  3. 一次看几条样本 → 以为批量越大越好;出去时知道批大小不改变梯度期望但改变方差,学习率要跟着一起调(线性缩放规则),显存不够时用梯度累积
  4. 学习率怎么随时间变 → 以为学习率设一次就行;出去时知道要先热身再衰减,余弦衰减和热重启各解决什么问题
  5. 给每个参数配自己的学习率 → 以为一个学习率管到底;出去时知道 AdaGrad 按历史梯度平方累积压学习率、RMSprop 改成指数移动平均、AdaDelta 连初始学习率都不要
  6. 让更新带上惯性 → 以为动量是玄学;出去时知道动量法用最近一段时间的梯度加权平均当方向,Nesterov 先走一步再算梯度
  7. 两件事合起来:Adam 与它的后继 → 以为 Adam 是终点;出去时知道它是动量加 RMSprop,偏差修正在早期不可少;Muon 把权重当矩阵、把各方向幅度拉平,SAM 让解落在更平的地方
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 一维参数 θ₀ = 1.0,学习率 0.01,前三步梯度 0.1、0.2、0.15(原书习题 7-16 那组),手算 Adam 第 3 步更新后的 θ₃,并和普通梯度下降、动量法的结果并排比较。

18 初始化、数据预处理与逐层规范化

  1. 全设成 0 会怎样 → 以为初始值无所谓;出去时知道所有隐藏神经元会一模一样地更新,这叫对称权重现象
  2. 方差该设多大 → 以为随机就行;出去时知道太小信号层层衰减、太大激活值饱和,这是 03 章那个方差在网络里的第一次承重使用
  3. 按扇入扇出算:Xavier 与 He → 以为初始化是经验值;出去时知道让每层输入输出方差一致就能推出公式,ReLU 砍掉一半所以方差要翻倍
  4. 逐个采样保不住范数 → 以为方差对了就够;出去时知道正交初始化直接让权重矩阵保范数,循环网络上尤其有用
  5. 输入尺度不齐会怎样 → 以为神经网络能自适应;出去时知道尺度差得远时等高线是长条形,梯度方向几乎都不指向最低点;最小最大值规范化、标准化、白化三种做法各自的代价
  6. 把规范化搬进网络里 → 以为规范化只在输入端;出去时知道批量规范化对同一个神经元跨样本算统计量,真正的好处不是消除内部协变量偏移而是让地形更平滑
  7. 换一个方向算统计量 → 以为都一样;出去时知道层规范化在同一样本内跨神经元算,所以不怕小批量、也能用在循环网络上;均方根规范化连减均值都省了;权重规范化则改成按权重自己算(把长度和方向拆成两个参数),这是第三条路
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 一个 100 → 256 → 128 → 10 的三层网络(原书习题 7-17),逐层算出 Xavier 与 He 初始化的高斯方差;再拿一个 4 个数的小批量走一遍批量规范化,写出均值、方差、规范化后的值、以及缩放平移之后的值。

19 超参数优化与网络正则化

  1. 超参数为什么不能用梯度调 → 以为它们也是参数;出去时知道目标函数对它们不连续、而且每评估一组的代价极高
  2. 网格搜索与随机搜索 → 以为网格最全面;出去时知道不同超参数的重要性差很远,网格会把力气浪费在不重要的那一维上
  3. 用已经试过的去猜下一次 → 以为搜索只能盲试;出去时知道贝叶斯优化拿高斯过程建模「配置 → 效果」,用收益函数挑下一个;逐次减半和 HyperBand 则是「早点掐掉没希望的」;搜到尽头是连网络结构一起搜(神经架构搜索)
  4. 传统的两把尺子 → 以为深度学习不用 ℓ1/ℓ2;出去时知道它们仍在,只是在过度参数化时效果不如浅层模型显著;权重衰减在 Adam 上和 ℓ2 正则化并不等价,所以才有解耦的那一版
  5. 训练时随机关掉一部分神经元 → 以为暂退法是随便加的噪声;出去时知道它降低神经元之间的共适应,还能从集成学习和贝叶斯两个角度解释;用在循环网络上必须共享掩码
  6. 把一张图变成很多张 → 以为数据增强只是凑数;出去时知道它是把「任务允许什么变换」这条先验显式写进训练,mixup 更进一步在样本之间做凸组合
  7. 给答案也加点噪声 → 以为标签是硬事实;出去时知道标签平滑防止模型过于自信、改善校准,拿一个更强的模型的输出当软目标就是知识蒸馏
  8. 训练过程诊断 → 以为看最终指标就行;出去时知道四种典型现象各自该先查什么,以及测试集为什么只能用一次
  9. 边界与局限
  10. 可带走的
  11. 原文地图

主走查: 一个 4 维输入、保留率 0.8 的暂退法,写出掩码、缩放后的值、期望为什么不变;再把同一个样本的标签从 one-hot 平滑到 ε=0.1,写出平滑后的四个数与交叉熵的变化。

20 注意力机制

  1. 一个向量装不下一篇文章 → 以为编码就是压缩;出去时知道阅读理解任务编码时还不知道会被问什么,丢掉任何细节都可能致命
  2. 打分再加权 → 以为注意力神秘;出去时知道它只有两步:给每个位置打分、按分数加权求和
  3. 打分函数有几种写法 → 以为只有点积;出去时知道加性、点积、缩放点积、双线性各自的代价,除以根号维度是为了防止 softmax 进入梯度饱和区
  4. 只挑一个还是都要一点 → 以为硬选更准;出去时知道硬性注意力不可导、要靠强化学习,所以实际都用软性的
  5. 键和值分开 → 以为查询和内容是一回事;出去时知道用「键」算分、用「值」取内容,这一步是后面所有变体的基础
  6. 并行看好几遍 → 以为多头注意力是堆算力;出去时知道每个头在不同的投影空间里找不同的关系
  7. 只要位置不要内容 → 以为注意力必然输出向量;出去时知道指针网络只用第一步的分布,直接当成指向输入位置的指针
  8. 自己看自己 → 以为自注意力是另一件事;出去时知道它是「查询也来自同一个序列」,任意两个位置一步可达
  9. 三种编码器摆在一起 → 以为新的一定更好;出去时知道循环、卷积、自注意力在计算量、顺序操作数、最长路径三项上各有取舍
  10. 边界与局限
  11. 可带走的
  12. 原文地图

主走查: 三个词的句子,查询、键、值全部写死成 2 维向量,算出三个缩放点积打分、softmax 权重、加权求和的输出;再加一个头看拼接后维度怎么变。

21 Transformer:骨架与数据流

  1. 一个块里装了什么 → 以为 Transformer 是一整块;出去时知道一个块只有两件事:多头自注意力做位置间交互、逐位置前馈网络做非线性变换,外面套残差与规范化
  2. 自注意力不知道谁前谁后 → 以为顺序天然存在;出去时知道打分只看内容,必须显式注入位置编码
  3. 正弦余弦那一版 → 以为位置编码要学;出去时知道多个频率叠加天然提供多尺度位置信息,但外推能力有限
  4. 换成「相隔多远」 → 以为绝对位置就够;出去时知道相对位置偏置直接把「越远越少看」写进打分,ALiBi 是最简形式
  5. 把位置转进点积里 → 以为 RoPE 很难;出去时知道它对查询和键做一个与位置有关的旋转,点积天然只依赖相对位置
  6. 解码器:不许偷看未来 → 以为掩码是实现细节;出去时知道因果掩码把未来位置的打分设成负无穷,softmax 之后正好是 0
  7. 从一段文字到下一个词 → 以为模型直接吐字;出去时知道完整数据流是:分词 → 嵌入 → 若干个块 → logits → softmax → 采样 → 追加,循环往复
  8. 三种架构范式 → 以为架构越多越乱;出去时知道仅编码器、仅解码器、编码器-解码器只是信息流方向和训练目标不同
  9. 边界与局限
  10. 可带走的
  11. 原文地图

主走查: 四个位置的因果掩码矩阵手写出来(下三角 0、上三角 −∞),再拿 20 章那三个词的打分,加上掩码、重新 softmax,看第 2 个位置的权重从 (0.2, 0.5, 0.3) 变成 (0.29, 0.71, 0)。

22 现代 Transformer 的四条优化线

  1. 四条线各解决什么 → 以为优化是一堆技巧;出去时知道它们分属块内结构、长上下文、推断系统、容量扩展四类,混在一起看必乱
  2. 规范化挪到子层前面 → 以为 Pre-Norm 和 Post-Norm 差不多;出去时知道前者给每个子层更稳的输入尺度,深层更好训
  3. 前馈层换成门控 → 以为激活函数换一个而已;出去时知道这是 12 章那个门控单元在整个架构里的落点,同样预算下表示能力更强
  4. 一样的结果,不一样的算法 → 以为闪存注意力是近似;出去时知道它算的还是同一个 softmax 注意力,只是分块计算、在线归一,把访存量压下来
  5. 序列一长就撑不住 → 以为只能截断;出去时知道位置外推、局部窗口/稀疏连接、线性注意力三条路各改什么;线性注意力可以等价写成一个递推,这正是 16 章那条递推线性化之后的状态空间模型
  6. 生成时别重算 → 以为推断和训练一样;出去时知道键值缓存把历史的键值存下来,前缀填充和逐词元解码是两种完全不同的计算形态;分组查询注意力让多个查询头共享键值,分页注意力管内存,投机解码先猜后验
  7. 参数多但不全算 → 以为大就是慢;出去时知道混合专家每个词元只激活少数专家,总参数 671B 而每词元只激活约 37B 就是这么来的
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 一个 32 头、每头 128 维、48 层的模型,生成到第 1000 个词元时,算出没有键值缓存要重算多少次注意力、有缓存要存多少个数;再把 32 组键值换成 4 组(分组查询),缓存降到几分之一。

23 图数据与消息传递

  1. 有些数据排不成网格 → 以为数据都能拉成向量;出去时知道社交关系、引用关系、分子结构天然是,邻居数量不固定
  2. 怎么把图放进计算机 → 以为只有邻接矩阵;出去时知道邻接矩阵写公式方便但稀疏图上浪费,邻接表和边列表各自的场合
  3. 一个能衡量「相邻像不像」的矩阵 → 以为拉普拉斯矩阵是纯理论;出去时知道 xᵀLx 正好是相邻节点差值的平方和,这就是后面谱方法的全部基础
  4. 三类任务 → 以为图任务千奇百怪;出去时知道只有节点级、边级、图级三类,区别只在读出函数
  5. 划错数据集比模型错更致命 → 以为随机划分就行;出去时知道链接预测必须把目标边从训练图里删掉,图级任务必须整张图为单位划分
  6. 消息传递:一层只看一跳 → 以为图神经网络各不相同;出去时知道它们都是「构造消息 → 邻域聚合 → 状态更新」三步,层数决定了看多远
  7. 聚合函数为什么必须与顺序无关 → 以为求和平均随便挑;出去时知道邻居本质是集合,聚合必须对排列不变
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 原书图 9.1a 那个五节点无向图,写出邻接矩阵、度矩阵、拉普拉斯矩阵,给每个节点配一个数 x=(1,2,3,4,5),算 (Lx)₁ 和 xᵀLx,看它们各自在说什么。

24 四个经典图神经网络与三个共性问题

  1. 卷积怎么搬到图上 → 以为图卷积是类比;出去时知道要先找到图上的「频率基」
  2. 卷积定理:换个基就变成逐点相乘 → 以为傅里叶变换太远;出去时知道卷积的本质是「换基 → 逐点乘 → 换回来」,而基就是拉普拉斯算子的特征函数
  3. 图上的频率基 → 以为图没有频率;出去时知道拉普拉斯矩阵的特征向量就是,特征值越大对应变化越剧烈
  4. 谱卷积为什么不能直接用 → 以为有公式就能算;出去时知道特征分解代价高、而且滤波器不天然局部
  5. 用多项式近似:一路化简到 GCN → 以为 GCN 是拍脑袋;出去时知道 K 阶多项式天然是 K 跳局部算子,再取一阶、加自环、对称归一化,就得到那条简洁的传播公式
  6. 大图上怎么训:GraphSAGE → 以为采样是偷懒;出去时知道它把邻居采样写进计算图,才有了小批量训练和归纳式泛化
  7. 邻居不一样重要:GAT → 以为聚合权重固定;出去时知道注意力可以在邻域内学出来,多头拼接增稳
  8. 聚合函数决定能分辨什么:GIN → 以为聚合是实现细节;出去时知道求和聚合配 MLP 才能达到 WL 测试的判别力,平均聚合会把 {a,a,b} 和 {a,b} 混为一谈
  9. 三个绕不开的问题 → 以为层数越多越好;出去时知道过度平滑让节点趋同、过压缩让远处信息挤不过来、大图上邻域会爆炸
  10. 边界与局限
  11. 可带走的
  12. 原文地图

主走查: 三节点链图 u—v—w,初始特征 1、2、0,权重取 1、忽略激活,按 GCN 那条归一化公式算出中心节点的新值 1/√6 + 2/3 ≈ 1.075;再换成求和聚合与平均聚合各算一遍,看三者差在哪。

25 无监督特征学习:PCA、稀疏编码、自编码器

  1. 没有标签的时候学什么 → 以为无监督是次一等;出去时知道它学的是特征、结构、分布,而不是输入到输出的映射
  2. 投到哪个方向信息丢得最少 → 以为降维就是砍维度;出去时知道主成分分析挑方差最大的方向,而这个方向正好是协方差矩阵最大特征值对应的特征向量(01 章那个特征向量在这里承重)
  3. 少数几个特征被点亮 → 以为编码越密越好;出去时知道稀疏编码要求过完备的字典 + 少量非零系数,好处是可解释和自动做特征选择
  4. 自己教自己:重构 → 以为自编码器需要标签;出去时知道它拿输入当目标,瓶颈层就是学到的编码
  5. 容量太大反而学不到东西 → 以为容量越大越好;出去时知道编码维度不小于输入时它会退化成恒等函数,必须加约束
  6. 三种加约束的办法 → 以为约束是超参数;出去时知道稀疏自编码器压激活概率、堆叠自编码器逐层训、降噪自编码器先弄坏再还原
  7. 逐层预训练的历史位置 → 以为它已经没用;出去时知道它是「先用无标注数据学表示,再迁到下游」这条路线的祖先
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 三个点 (1,2)、(3,5)、(6,6) 走完整套主成分分析,见上面第三节 ②。

26 概率密度估计与聚类

  1. 想知道「数据长什么样」 → 以为估计分布很抽象;出去时知道密度估计就是从样本反推那条曲线
  2. 先假定形状再估参数 → 以为参数估计要另学;出去时知道假设正态分布之后,最大似然的解就是样本均值和样本方差
  3. 离散的情形 → 以为多项分布要重推;出去时知道带约束的最大似然用拉格朗日乘数法一步解出来,结果就是频率
  4. 不假定形状行不行 → 以为不假设就没法算;出去时知道直方图方法固定区间数点、核密度估计换成平滑的窗口、K 近邻方法反过来固定点数改区间
  5. 参数法的三个坎 → 以为假设分布很安全;出去时知道模型选择、不可观测变量、维度灾难三件事都会让它失效
  6. 只想知道「哪些该算一类」 → 以为聚类和降维是一回事;出去时知道它输出的是离散的簇编号,K-Means 交替做「分配」和「更新中心」
  7. 聚类结果取决于你在什么空间里算距离 → 以为聚类是客观的;出去时知道同一批文档按主题、按风格、按时间聚都合理,内部指标和外部指标各自只反映一种偏好
  8. 边界与局限
  9. 可带走的
  10. 原文地图

主走查: 六个一维数 {1, 2, 3, 8, 9, 10},先用 K=2 的 K-Means 走两轮(写出每轮的分配和中心),再用宽度 1 的直方图和高斯核估计 x=2 处的密度,三个结果并排看。

27 自监督学习:监督信号从数据自己来

  1. 标签从哪儿来 → 以为无标注数据没用;出去时知道自监督学习从数据自身构造目标,训练形式和监督学习没区别
  2. 用前面预测后面 → 以为语言模型只是应用;出去时知道概率的乘法拆解把整句话的概率拆成逐位置的条件概率,最大化似然等价于逐位置最小化负对数似然(这条推导只在这里做一遍)
  3. 挖空再填回来 → 以为掩码建模和上一条差不多;出去时知道它用的是双向上下文,适合理解型表示;两者构成预训练的两条路线
  4. 拉近正例、推开负例 → 以为对比学习需要标签;出去时知道同一样本的两个视图就是正例对,温度参数控制这条损失有多尖锐
  5. 不给负例也行 → 以为没有负例就会坍塌;出去时知道动量编码器、停止梯度这些技巧各自防的是什么
  6. 直接预测表示而不是像素 → 以为自监督一定要重构;出去时知道联合嵌入预测把目标搬到表征空间,不必恢复低层细节
  7. 两个模态天然成对 → 以为跨模态要人工对齐;出去时知道图文对本身就是监督信号,跨模态对比学习学的是共享的语义空间
  8. 怎么判断学到的表示好不好 → 以为看预训练损失;出去时知道那只是代理指标,要靠线性探测、微调、检索等下游任务间接评估
  9. 边界与局限
  10. 可带走的
  11. 原文地图

主走查: 一句五个词的话「我 今天 去 了 学校」,按逐位置条件概率写出整句概率的拆解式,给每一步编一个概率值,算出负对数似然与困惑度;再把同一句话随机遮住「去」,写出掩码目标——同一句话上看清两条路线的差别。

28 模型独立的学习方式

  1. 三个臭皮匠什么时候真的赛过诸葛亮 → 以为多几个模型总归更好;出去时知道集成学习的收益完全取决于基模型的错误相不相关
  2. 制造差异的两条路 → 以为集成就是平均;出去时知道 Bagging 类靠重采样和随机特征造差异,Boosting 类靠「盯着上一个分错的样本」
  3. 少量标注 + 大量无标注 → 以为无标注数据总能帮忙;出去时知道半监督学习成功的前提是伪标签质量和分布匹配,自训练容易误差累积,协同训练要求两个视角互补
  4. 几个相关任务一起学 → 以为多任务学习就是共享参数;出去时知道共享方式有硬共享、软共享、层次共享、共享-私有四种,任务不相关时会负迁移
  5. 把学到的搬到新任务上 → 以为迁移学习就是微调;出去时知道要先分清领域变了还是任务变了,归纳迁移和转导迁移的做法完全不同
  6. 只更新一小撮参数 → 以为大模型必须全量微调;出去时知道适配器、前缀、低秩适配都是「只训练新增的少量参数」,LoRA 把权重更新拆成两个低秩矩阵
  7. 学了新的别忘了旧的 → 以为顺序学习自然可行;出去时知道灾难性遗忘是主要风险,弹性权重巩固用 Fisher 信息矩阵标记「哪些参数对旧任务要紧」;另一条路是学一个更好的优化器本身
  8. 学怎么学 → 以为元学习很玄;出去时知道 MAML 学的是一个「走一两步就能适配」的初始值;而大模型的上下文学习可以看成不更新参数的隐式元学习
  9. 边界与局限
  10. 可带走的
  11. 原文地图

主走查: 5 个样本、初始权重各 1/5,第一轮弱分类器只分错第 3 个(原书习题 11-13),手算加权错误率 0.2、集成权重 α₁ = 0.693、更新并归一化后的五个样本权重(0.125×4 + 0.5)。

29 强化学习:问题定义与值函数方法

  1. 下棋没法逐步标注 → 以为强化学习是另一种监督学习;出去时知道它面对的是序列决策、延迟奖励、探索与利用三件事
  2. 五个零件把问题框住 → 以为交互难以形式化;出去时知道马尔可夫决策过程只要状态、动作、转移概率、奖励、折扣率五样
  3. 从这一步往后能拿多少 → 以为回报就是奖励之和;出去时知道折扣率决定了「多看重远期」,没有它持续任务会发散
  4. 给状态和动作各打一个分 → 以为策略要直接学;出去时知道状态值函数Q 函数都在回答「从这儿开始能拿多少」,贝尔曼方程把当前和下一步连起来
  5. 模型已知时:动态规划 → 以为一定要交互;出去时知道知道转移概率和奖励时可以直接迭代,策略迭代和值迭代只差「策略评估要不要跑到收敛」
  6. 模型未知时:采样 → 以为不知道模型就没法学;出去时知道蒙特卡罗方法跑完整条轨迹取平均,代价是必须等到结束
  7. 走一步就更新:时序差分 → 以为要等结果;出去时知道用「下一步的估计」代替「真实的后续回报」,SARSA 用实际采到的动作、Q 学习用最好的那个动作
  8. 状态太多记不下 → 以为表格法够用;出去时知道深度 Q 网络用神经网络逼近 Q 函数,目标网络冻结和经验回放各治一种不稳定
  9. 边界与局限
  10. 可带走的
  11. 原文地图

主走查: 悬崖行走的那条 8 步轨迹,见上面第三节 ③;并在同一条轨迹上走一次 Q 学习更新,写出更新前后的 Q 值。

30 强化学习:策略梯度与演员-评论员

  1. 能不能直接学策略 → 以为必须先估值;出去时知道策略梯度直接对策略参数求导,天然支持随机策略和连续动作
  2. 梯度里为什么没有环境模型 → 以为要知道转移概率;出去时知道求对数概率的导数时,状态转移那一项被消掉了
  3. 只有跑完才知道好不好 → 以为REINFORCE 就够;出去时知道它无偏但方差大,训练很不稳
  4. 减方差的通用招:减去一个基准 → 以为减常数会改变目标;出去时知道只要基准与动作无关,期望就不变,而方差能显著下降
  5. 让评论员来当基准 → 以为演员-评论员是新模型;出去时知道它只是把「跑完一整条」换成「走一步 + 值函数估计」,时序差分误差同时喂给两边
  6. 一步别迈太大 → 以为学习率调小就行;出去时知道旧数据只在旧策略附近可信,信赖域要求新旧策略别差太远
  7. 把约束换成裁剪:PPO → 以为约束优化很难实现;出去时知道近端策略优化把「差太远就不再奖励」直接写进目标函数,还能让一批数据反复用几轮
  8. 优势怎么估才稳 → 以为一步或者整条二选一;出去时知道广义优势估计用一个衰减系数在偏差与方差之间连续调
  9. 样本从哪来、奖励谁定 → 以为算法选对就行;出去时知道在线/离线、有模型/无模型、奖励模型各自的风险完全不同
  10. 边界与局限
  11. 可带走的
  12. 原文地图

主走查: 一个两动作的单状态问题,策略参数 θ 决定动作 A 的概率 0.6,采样到轨迹回报 +1 与 −1 各一次,手算 REINFORCE 的梯度、加上基准之后的梯度,看方差怎么降下来。

31 大语言模型的预训练

  1. 语言模型到底在算什么 → 以为它在生成句子;出去时知道它算的是「这串词一起出现的概率」,并按顺序拆成逐位置条件概率(推导在 27 章,这里只回指)
  2. 平均而言它在几个词里挑 → 以为损失值不好解释;出去时知道困惑度是把负对数似然取指数,单位就是「等效候选数」
  3. 拿到概率之后怎么挑词 → 以为选最大的就行;出去时知道贪婪解码容易重复、束搜索仍是确定性的、Top-k 采样固定候选数、核采样按累积概率自适应,采样温度调的是分布的尖锐程度
  4. 三种预训练范式怎么取舍 → 以为各有各的好;出去时知道大模型统一选了从左到右,原因是架构简单、任务统一、易扩展(掩码机制在 27 章讲过,这里只做取舍比较)
  5. 文本先要被切成什么 → 以为按词切最自然;出去时知道词级切不完、字符级序列太长,子词是折中;字节对编码从字符出发反复合并最高频的相邻对
  6. 生僻字和表情怎么办 → 以为总会有未登录词;出去时知道先编成字节流再合并,256 个起点覆盖一切
  7. 规模、数据、算力怎么配 → 以为越大越好;出去时知道规模法则给出幂律关系,而在固定预算下参数量和数据量应当同比例增长(约 1:20)
  8. 现在的模型长什么样 → 以为各家差别很大;出去时知道架构高度趋同,差异更多在数据与训练配方;混合专家让总参数与每词元激活参数拉开
  9. 边界与局限
  10. 可带走的
  11. 原文地图

主走查: 语料 low low low lower lower newer newer newer now now 的两轮字节对编码,见上面第三节 ④;再拿一个五词句子算困惑度。

32 指令微调与偏好对齐

  1. 预训练完的模型不会好好回答 → 以为它已经能用;出去时知道它只是个「续写器」,问首都在哪它可能接着出题
  2. 拿「指令—回答」对再训一轮 → 以为指令微调是继续预训练;出去时知道数据规模小得多、只对回答部分算损失、轮数也少
  3. 少而精 → 以为数据越多越好;出去时知道它主要在激活已有能力而不是灌入新知识,所以千条高质量样本就能顶用
  4. 会答不等于答得好 → 以为微调就够;出去时知道模仿参考答案没法表达「哪个更好」,必须引入偏好信号
  5. 让人比较两个回答 → 以为要给绝对分;出去时知道成对比较更容易达成一致,Bradley-Terry 模型把偏好变成可优化的奖励差
  6. 用奖励模型 + 强化学习 → 以为对齐要重训;出去时知道基于人类反馈的强化学习把语言模型当策略、奖励模型当回报,再用 KL 惩罚拴住别跑太远
  7. 能不能不训奖励模型 → 以为强化学习绕不开;出去时知道直接偏好优化利用最优策略的解析解,把配分函数消掉,对齐退化成一个二分类损失
  8. 在线的另一条路 → 以为 DPO 是终点;出去时知道组相对策略优化用同组多个回答的相对奖励替掉价值网络,特别适合答案可验证的任务
  9. 让它更会想 → 以为推理靠模型大;出去时知道过程奖励盯每一步、测试时扩展把算力挪到推断阶段、可验证奖励下的强化学习能长出自我检查行为
  10. 编出来的答案怎么办 → 以为幻觉是 bug;出去时知道训练目标本身不惩罚事实错误,缓解要靠外部知识、事实性奖励和「不确定就说不确定」
  11. 边界与局限
  12. 可带走的
  13. 原文地图

主走查: 一条指令两个回答,奖励差为 1.2,算出 Bradley-Terry 给出的偏好概率 0.77;再用 β=0.1 的直接偏好优化,写出隐式奖励、损失值、以及梯度权重为什么在模型判错时更大。

33 智能体:从生成文本到在环境中行动

  1. 从「说」到「做」 → 以为智能体是更大的模型;出去时知道它是「模型 + 工具 + 记忆 + 规划 + 环境反馈」组成的系统
  2. 想一步、做一步、看一眼 → 以为规划要一次给全;出去时知道 ReAct 把推理和行动交替进行,每轮拿观察修正下一步;工程上这就是一个带上限的循环(书架:smolagents / langgraph)
  3. 记得住多久 → 以为上下文窗口就是记忆;出去时知道短期记忆装在上下文里、长期记忆放在外部库里,写入侧还要去重与整理(书架:letta / mem0)
  4. 答案不在参数里的时候 → 以为只能靠微调;出去时知道检索增强生成先查后答,查询改写、重排、多跳各解决什么(书架:lightrag / hipporag)
  5. 手怎么伸出去 → 以为工具调用就是拼字符串;出去时知道要有受约束的结构化请求、校验、执行、回填这一整套;而出门第一眼会撞见的那个协议名叫模型上下文协议(MCP),它把服务器能给的东西按「谁决定它何时被用」分成三种原语(书架:mcp-spec;原书全书零命中,这一节的说法必须挂书架锚)
  6. 模型怎么看见东西 → 以为多模态是另一条线;出去时知道视觉编码器把图变成视觉词元,和文本词元拼在一起送进同一个模型;模块拼接式和原生多模态是两类做法
  7. 出错了怎么办、越权了怎么办 → 以为加个 try 就行;出去时知道反思机制把失败写成自然语言经验、最小权限与沙箱把危险动作关起来、提示注入是这套系统特有的攻击面(书架:llamafirewall / aio-sandbox)
  8. 怎么判断它到底行不行 → 以为看最终答案;出去时知道要分开评任务成功率、检索质量、生成忠实性、工具调用正确性、权限安全、失败恢复(书架:inspect-ai / tau2-bench)
  9. 多个智能体一起干 → 以为人多力量大;出去时知道分工、讨论、辩论三种模式各自的收益,以及协调开销和群体思维的代价
  10. 边界与局限
  11. 可带走的
  12. 原文地图

主走查: 一个「查某研究主题的代表性进展并总结」的任务,从用户指令出发走三轮「想—做—看」,每轮写出思考、工具调用的参数、返回的观察、以及上下文里累计了多少词元;最后写出评估该看哪六个数。

34 概率图模型:怎么表示、怎么估参数

  1. 一百个是非题的联合分布有多大 → 以为高维只是慢;出去时知道 2 的 100 次方项约等于 10 的 30 次方个数,比全世界硬盘装得下的字节数还多六个数量级
  2. 条件独立能省多少 → 以为独立性假设是偷懒;出去时知道四个二值变量从 15 个参数降到 9 个,靠的就是「已知 X₁ 时 X₂ 与 X₃ 无关」
  3. 有方向的图 → 以为箭头就是因果;出去时知道贝叶斯网络的连边说的是「局部条件分布依赖谁」,只有额外引入因果假设才能读成因果
  4. 三种局部结构决定了什么时候独立 → 以为独立性靠算;出去时知道链式、分叉、汇聚三种结构里,观测中间节点的效果完全相反(汇聚结构会「解释消除」)
  5. 没有方向的图 → 以为无向图更简单;出去时知道马尔可夫随机场按最大团分解,势能函数写成能量的指数,而配分函数从此成为一切困难的来源
  6. 两种图之间怎么换 → 以为可以随便互转;出去时知道有向转无向要给共同父节点连边(道德化),代价是丢掉一部分独立性
  7. 能数的就数,数不动的只能近似 → 以为参数估计都一样;出去时知道全可观测的有向图可以逐个局部估计,而无向图被配分函数耦合在一起,只能采样、伪似然或对比散度
  8. 有隐变量时:先猜它是谁,再更参数 → 以为对数里套求和只是麻烦;出去时知道引入一个变分分布就得到证据下界,EM 算法在「让下界贴住似然」和「抬高下界」之间交替
  9. 边界与局限
  10. 可带走的
  11. 原文地图

主走查: 四个二值变量那条链(X₁ → X₂、X₁ → X₃、X₂,X₃ → X₄),数清 15 与 9 这两个参数量,再把 X₁ 的概率写死为 0.6,给出一组条件概率表,算出 p(1,0,1,1) 的具体值。 另起的第二处走查: 一维两成分高斯混合跑一轮 EM(写出后验责任度、更新后的均值方差与混合系数)。 为什么另起: 四个二值变量那条链上没有连续隐变量,EM 的两步在它上面走不出数来。

35 概率图模型:推断、变分推断与采样

  1. 观测了一部分,想知道另一部分 → 以为推断就是套贝叶斯公式;出去时知道关键是求边际概率,而求和的项数随变量数指数增长
  2. 换个求和顺序能省多少 → 以为顺序无所谓;出去时知道乘法分配律把 K² 次加法降到 K²+K 次,这就是变量消除法
  3. 别重复算同一块 → 以为每个边际都要重算;出去时知道把中间的和积结果当成「消息」存起来,链上一次前向一次反向就够(信念传播)
  4. 有环怎么办 → 以为有环就没救;出去时知道可以硬跑(不保证收敛)、也可以先转成树结构
  5. 换个更好算的分布来凑 → 以为近似就是放弃精度;出去时知道变分推断把推断变成优化:在一族简单分布里找最大化证据下界的那一个
  6. 平均场:假装各组互相独立 → 以为假设太粗;出去时知道它让每一组的最优解有闭式,坐标上升轮着更新即可
  7. 用神经网络来做这件事 → 以为变分推断是老方法;出去时知道摊销变分推断用一个网络直接把样本映到变分参数,这正是 37 章变分自编码器的核心
  8. 直接采样行不行 → 以为采样简单;出去时知道复杂分布连累积分布函数的逆都写不出来,只能间接采
  9. 三种间接采样 → 以为方法越多越乱;出去时知道拒绝采样靠一个罩得住的提议分布、重要性采样靠加权、高维时两者的效率都会崩
  10. 让采样走成一条链 → 以为采样是独立抽;出去时知道马尔可夫链蒙特卡罗构造一条平稳分布正好是目标分布的链,Metropolis-Hastings 用接受率修正,吉布斯采样逐维用全条件概率、接受率恒为 1
  11. 边界与局限
  12. 可带走的
  13. 原文地图

主走查: 用 34 章那条四变量链,先用变量消除法算 p(x₁, x₄),写出两种消除顺序各要多少次加法与乘法;再对同一个模型跑三步吉布斯采样,写出每一步抽到的值。

36 玻尔兹曼机与深度信念网络

  1. 用「能量」定义一个分布 → 以为概率模型都要先写密度;出去时知道能量越低概率越高,配分函数负责归一
  2. 温度是什么旋钮 → 以为温度是比喻;出去时知道温度(能量模型里的)除在能量上再取指数,高温时状态几乎随机、低温时退化成确定性的取最大;它和 31 章那个采样温度是同一个数学形状,不是同一个旋钮
  3. 全条件概率恰好是一个 Logistic 函数 → 以为要重新推;出去时知道两个状态的能量差除以温度再过 Logistic,就是这个变量取 1 的概率
  4. 学习为什么这么慢 → 以为采样能解决一切;出去时知道梯度是「数据分布下的期望减模型分布下的期望」,后者每更新一次都要重新逼近平衡
  5. 砍掉同层连接 → 以为受限玻尔兹曼机只是简化;出去时知道二分图带来条件独立,整层可以并行采样;高斯-伯努利等变体只是换了能量函数以处理连续值
  6. 只走 k 步就更新 → 以为近似不可靠;出去时知道对比散度从数据出发只走 k 步,是有偏但够用的近似,持续对比散度让链不重启以减小偏差
  7. 摞起来:深度信念网络 → 以为它是纯有向图;出去时知道只有顶上两层是无向的,下面各层是有向生成连接
  8. 它在历史上的位置 → 以为逐层预训练已经过时;出去时知道「先用无标注数据学表示,再迁到下游」这条思路本身活了下来,只是换了目标函数和架构
  9. 边界与局限
  10. 可带走的
  11. 原文地图

主走查: 一个 3 可见 + 2 隐藏的受限玻尔兹曼机,权重写死,给定可见向量 (1,0,1),算出两个隐单元取 1 的概率、采样一次、再重构可见层、算出 CD-1 的一次权重更新量。

37 深度生成模型(一):变分自编码器与生成对抗网络

  1. 生成模型到底要做到哪两件事 → 以为生成就是造样本;出去时知道密度估计和采样是两件事,高维下两件都难
  2. 用一个低维隐变量把复杂度拆开 → 以为隐变量是数学技巧;出去时知道它把「直接建模 p(x)」换成「先验 + 条件分布」两块好办的东西
  3. 后验算不出来怎么办 → 以为 EM 就够;出去时知道深度模型里后验太复杂,于是用一个推断网络去近似它,用一个解码网络去表示条件分布
  4. 目标函数其实只有一个 → 以为编码器解码器各有目标;出去时知道两者都在最大化证据下界,而它正好拆成「重构项 + KL 正则项」
  5. 采样挡住了梯度 → 以为随机就没法求导;出去时知道重参数化把 z = μ + σ⊙ε,随机性被挪到与参数无关的 ε 上
  6. 两种失衡 → 以为调好 β 就行;出去时知道 KL 太强会后验坍塌、太弱则隐空间失去插值性质;隐变量被压到一个更紧凑的空间这件事,正是 38 章隐空间扩散的前提
  7. 不写密度,直接学生成过程 → 以为一定要有似然;出去时知道生成对抗网络只学一个从噪声到样本的映射,由判别网络提供训练信号;DCGAN 用带步长的卷积和微步卷积把这件事做稳
  8. 最优判别器揭示了它在最小化什么 → 以为对抗训练没有目标;出去时知道判别器最优时,生成器实际在最小化 JS 散度
  9. 两个病根 → 以为调参能治;出去时知道分布不重叠时 JS 恒等于常数(梯度消失),而非饱和目标下更受逆向 KL 主导,于是倾向于只覆盖少数模式(模式坍塌)
  10. 换一把尺子 → 以为改结构就行;出去时知道 W-GAN 换成 Wasserstein 距离,评价网络的打分从此有「距离」的意义
  11. 边界与局限
  12. 可带走的
  13. 原文地图

主走查: 一维数据 x = 2,推断网络输出 μ=1.5、σ=0.5,取 ε=0.4,算出 z=1.7、重构 x̂=1.9、重构项、KL 项(用两个正态分布的闭式解)、以及总的证据下界。

38 深度生成模型(二):扩散模型与流匹配

  1. 一步生成太难,那就分成一千步 → 以为扩散是另一套理论;出去时知道它把一次困难的生成,拆成很多次「稍微去噪一点」
  2. 前向加噪可以一步到位 → 以为要真的加一千次;出去时知道任意时刻的带噪样本有闭式,训练时直接构造
  3. 信噪比:同一条式子的另一种读法 → 以为 α 是个抽象系数;出去时知道它就是「信号还剩多少、噪声占了多少」
  4. 反向该学什么 → 以为只能预测上一步;出去时知道预测原始样本、预测噪声、预测分数函数、预测速度四种参数化在数学上可以互转,差别在数值性质
  5. 采样是在解一个方程 → 以为采样只有一种走法;出去时知道 DDPM 每步注入随机性、DDIM 可以确定性且少步,训练目标并不唯一决定采样路径
  6. 网络怎么知道现在是第几步 → 以为时间步是个整数;出去时知道它被编成向量注入各层;条件信息则通过拼接、特征调制、交叉注意力三种方式进来
  7. 让它更听话:引导 → 以为条件输进去就够;出去时知道无分类器引导把有条件与无条件的预测做线性外推,等价于把条件似然抬到 1+w 次方,代价是多样性下降
  8. 别在像素上扩散 → 以为高分辨率只能靠算力;出去时知道隐空间扩散先用自动编码器压到紧凑空间再扩散(这正是 37 章 §6 那个前提的兑现),代价是生成质量被编码器的重建能力卡住
  9. 不绕这个弯行不行 → 以为扩散是唯一路线;出去时知道流匹配直接学一个从噪声到数据的速度场,采样就是解常微分方程
  10. 条件流匹配:一辆车比一整座城好描述 → 以为速度场算不出来;出去时知道固定终点的条件路径是一条直线,对它回归与对边际速度场回归的梯度一致
  11. 路径能不能更直 → 以为路径是给定的;出去时知道最优传输耦合和矫正流都在减少路径交叉,路径越直、需要的积分步数越少
  12. 四条路线放在一起看 → 以为它们互相取代;出去时知道隐变量建模、对抗训练、多步去噪、连续流变换是四种典型思路,评估时的盲点各不相同(这一节回收 37 章的变分自编码器与生成对抗网络,以及本章的扩散与流匹配)
  13. 边界与局限
  14. 可带走的
  15. 原文地图

主走查: 取 ᾱ_t = 0.36,原始样本 x₀ = 1.0,噪声 ε = 0.5,算出 x_t = 0.9、信噪比 0.5625;再让网络预测出 ε̂ = 0.45,反推 x̂₀、算出这一步的均方误差;最后把同一组数换成流匹配的线性插值路径,写出 t=0.4 时的位置与目标速度。


六、新词配额账(动笔前的规划值)

口径按标准: 只数 book-jargon 词表里的承重词,按第一次出现的位置归章; 同一概念的不同叫法算一张脸;当场解释了照样算。 章不设上限,配额卡在段(1 个)和节(5 个)。

位置计划在这里首现的承重词个数
总纲神经网络、模型、训练、深度学习、机器学习、人工智能、参数7
01向量、矩阵、维度、范数、点积、张量、标量、线性、非线性、高维10
02梯度、链式法则、优化、学习率、收敛、局部最优、全局最优、复杂度8
03概率、概率分布、期望、方差、标准差、高斯分布、似然、熵、交叉熵、马尔可夫、对数、指数12
04特征、表示学习、嵌入、词向量、分布式、监督学习、无监督学习、强化学习、端到端、GPU10
05样本向量、标注、损失、损失函数、梯度下降、批量、超参数、过拟合、欠拟合、泛化10
06正则化、误差、映射3
07偏差、噪声、归纳偏置、基线4
08准确率、混淆矩阵、精确率、召回率、F1、二分类、指标7
09分类器、逻辑回归、softmax、支持向量机、感知器、决策树(仅对照)6
10隐藏层、单元、激活函数、前向传播、权重、偏置6
11反向传播、自动微分、误差项、计算图4
12ReLU、门控、梯度消失3
13卷积、卷积神经网络、池化、全连接、特征图、感受野6
14残差、LeNet-5、剪枝(仅对照)3
15循环神经网络、序列、隐状态、上下文4
16长程依赖、状态空间、外推3
17优化器、动量、批大小、学习率调度、预热、余弦退火、混合精度、梯度累积8
18归一化、层归一化、均方根、标准差(已在 03)、分布式训练4
19暂退法、数据增强、软标签、蒸馏、灾难性遗忘(仅提及)、A/B 测试(仅对照)5
20注意力、自注意力、多头注意力、编码器、解码器、序列到序列6
21Transformer、位置编码、旋转位置编码、词元、词元化、词表、logits、上下文窗口、自回归9
22键值缓存、分组查询注意力、稀疏注意力、混合专家、推理、延迟、吞吐、显存8
23图神经网络、稀疏、稠密3
24谱、低秩(仅提及)2
25降维、主题建模(仅对照)、离群点(仅对照)、内在维度4
26聚类、采样、最近邻、阈值4
27自监督、对比学习、负采样、正例、负例、掩码语言建模、温度参数、多模态、跨模态9
28迁移学习、微调、多任务、半监督、弱监督、LoRA、元学习、少样本、零样本、上下文学习10
29智能体、马尔可夫决策过程、策略、奖励、折扣率、探索、Q 学习7
30策略梯度、PPO、优势函数、重要性采样4
31大语言模型、预训练、语言模型、困惑度、解码策略、贪婪解码、核采样、采样温度、子词、字节、Unicode、规模法则、基准测试13
32指令微调、对齐、RLHF、奖励模型、DPO、思维链、幻觉、监督微调、偏好调优9
33工具调用、检索增强、向量数据库、重排、多跳、MCP、协议、提示注入、沙箱、视觉词元、多智能体、记忆12
34概率图模型、配分函数、证据下界、EM 算法、隐变量5
35变分推断、吉布斯采样、蒙特卡罗、平稳分布4
36玻尔兹曼机、能量函数、对比散度、深度信念网络4
37生成模型、变分自编码器、生成对抗网络、判别式、重参数化、KL 散度(已在 03)、JS 散度6
38扩散模型、流匹配、分数函数、去噪、无分类器引导、隐空间6

跨章重复申报已经逐条判过,首现权归属如下(审读点名的 22 个,以及顺带查出来的):

首现归谁后面各章怎么办
配分函数34(无向图分解)36 只回指,不重讲
重要性采样30(PPO 需要它)35 只补「在采样法里它长什么样」
状态空间模型16(递推线性化的伏笔)22 兑现,不重新定义
分词器 / 词元化21(数据流那一节)31 只讲 BPE 的具体做法
提前停止05(优化算法那一节)19 只当正则化的一种再提一次
交叉熵03(信息论)05 只讲它当损失函数时长什么样
期望 / 方差0307 写明「方差的对象是模型不是数据」
链式法则02(微积分那个)11 直接用;概率那个改叫「概率的乘法拆解」,在 03 首现
温度27(温度参数)31 叫采样温度、36 叫温度(能量模型里的),两处都当场点明关系
生成网络37 §7(GAN)37 §3 的 VAE 那个改叫解码网络
特征向量01(Av=λv)05 的样本特征改叫样本向量
正则化06(岭回归)19 展开成一整章的一节
归一化 / 规范化1809 的 softmax 归一化就地一句话,不算首现概念
采样26(密度估计)35 讲具体方法、31 讲解码采样
微调2832 讲指令微调
预训练27(自监督的落点)31 讲大模型的预训练
注意力2022 / 24 / 33 都只用不定义
嵌入04(分布式表示)21 讲词元嵌入
智能体29(强化学习里的)33 讲大模型智能体
稀疏 / 稠密23(图的存储)25 讲稀疏编码
低秩24(低秩近似)28 讲 LoRA
张量0113 讲卷积核那个四维张量

七、动笔前的自查(已过)

  • 每个数学词的首现章号 ≤ 它的解释章号(数学三章前置之后,全部满足)
  • 五组一词多义已改名,每组在大纲里各留一行「这个名字在本书只指 X」
  • 五条被点名的走查已重算,数字当场核过
  • 四处成节的漏项、五处较轻的漏项都有落点
  • 10^30 这个数已改正,并配了可核对的参照物
  • 书架锚清单已 grep 过,12 条路径全部存在
  • 两节重复的三组已各自定下「哪一处是真首现」
  • 跨章许诺已列出,写作时逐条记进总纲兑现表