跳到正文

第 L0 层

数学与 CS 底子

这一层

这一层解决什么

读论文时公式不跳过,手里的训练代码出了数值问题知道往哪看。L0 不是一门要「学完」的课,而是一个按需返回的工具箱:读 Transformer 看到 QKᵀ/√d 时能说出这是在做什么投影、为什么除以根号 d;看到 loss 曲线时知道那个数是「每个 token 平均几 bit」;看到 Adam 的四个超参时能说出每个在控制什么。完成标准就两条:手推 softmax 和交叉熵的梯度、读任何一篇 L2 论文的公式部分不跳行。

各节点怎么连成一条线

总入口是 数学:用到时再补,它把本层拆成四个子题,每个一个节点:

  • 线性代数:一层网络算了什么。矩阵乘法是几何动作、形状怎么对,注意力就是三次矩阵乘加一次 softmax。
  • 概率与统计:模型的输出为什么是分布、训练目标为什么是似然。它直接解释了 loss 的形状和采样时温度的含义。
  • 信息论:似然的负对数就是交叉熵,交叉熵的指数就是 perplexity,KL 散度就是后训练里那个「别离参考模型太远」的约束。
  • 优化:梯度怎么求、怎么变成参数更新。反向传播是链式法则,优化器是对梯度的二次加工。

四个节点彼此的先修关系很松,真正的顺序是「上层哪里读不动就回来补哪块」:线代最常被用到,概率和信息论是一对,优化紧接 L1 的 损失与反向传播。

给资深工程师的减法

  • 不要从头学任何一本数学书。MML 和 Chan 的概率书都是分章可读的,只读节点里标出的章。
  • 线性代数跳过行列式和抽象线性空间的证明,只要矩阵乘法、转置、范数、特征分解的直觉。
  • 概率跳过测度论和假设检验,只要随机变量、条件概率、期望、最大似然。
  • 优化跳过凸优化理论,深度学习的损失面不是凸的。
  • 信息论只要熵、交叉熵、KL 三个概念,一篇文章的量。
  • 算法复杂度本层不单独设节点:面试要的那部分在 L6,注意力的 O(n²) 在 Transformer 里讲。

推荐前十

按阅读顺序;每条链到下面的节点。

  1. 1

    But what is a neural network? — 3Blue1Brown free

    先看见一层在算什么,再去学算的是什么 → 数学:用到时再补

  2. 2

    Essence of linear algebra free

    把矩阵乘法看成几何动作,之后每张 Transformer 图都是它 → 线性代数

  3. 3

    Mathematics for Machine Learning — Deisenroth, Faisal and Ong free

    分章可读的免费教材,线代、向量微积分、概率各一章 → 数学:用到时再补

  4. 4

    The Matrix Calculus You Need For Deep Learning free

    只讲深度学习用得上的那块矩阵微积分,手推梯度靠它 → 数学:用到时再补

  5. 5

    Introduction to Probability for Data Science free

    从联合分布到最大似然,推出「交叉熵 = 负对数似然」 → 概率与统计

  6. 6

    Visual Information Theory free

    一小时把熵、交叉熵、KL 画明白,perplexity 从此有意义 → 信息论

  7. 7

    An overview of gradient descent optimization algorithms free

    从 SGD 到 Adam,每个优化器改了上一代哪一处 → 优化

节点

数学:用到时再补

半衰期: 稳定

第 N 层⋮第 1 层权重 × 向量Thecatsatbecauseitwastiredattention:「it」回看前文,最关注「cat」

模型本身是一叠层,一层主要是乘法:一个向量乘一张叫做权重的大数表;大模型就是几十亿个权重。Transformer 的每一层还让每个 token 回头看它前面的 token——这就是注意力,「它」能被接到它所指的东西上靠的就是这个。用模型不需要这些数学,改模型才需要,所以等后面哪一步用到了再学:哪一步读不动公式,回来补哪一块,不先学完整本。线性代数让你看懂「一层算了什么」,微积分让你看懂「梯度从哪来」,概率让你看懂「为什么输出是分布」。

之后
损失与反向传播 · 经典机器学习:从样本里学 · GPU 入门:为什么是它,瓶颈在哪 · PyTorch:自己训一个网络
  • But what is a neural network? — 3Blue1Brown free

    video · 19 min — The linear algebra of a network seen rather than derived: the picture of what a layer computes that the rest of the map builds on.

  • Mathematics for Machine Learning — Deisenroth, Faisal and Ong free

    book · only ch. 2–6 — Free, and written to be read in parts: linear algebra, vector calculus and probability, each chapter usable alone when a step asks for it.

  • The Matrix Calculus You Need For Deep Learning free

    article · 3 h — Only the slice of matrix calculus deep learning uses — Jacobians and the chain rule over vectors; by the end you can take a two-layer network's gradients by hand, this step's project.

复现项目: Backpropagation by hand, then checked — Work out the gradients of a two-layer network for one example on paper, then compare them with PyTorch's autograd.

落选 (3)
  • Gilbert Strang, MIT 18.06 — 整学期的线代课;本层只要看懂一层算了什么,放在 线性代数 节点按需查。
  • Goodfellow 等《Deep Learning》ch. 2 — 4 — 数学部分写得密,Deisenroth 的 MML 同样免费且更可分章读。
  • Khan Academy 多元微积分 — 覆盖面广但没有矩阵形式,Parr & Howard 那篇正好补这一块。

线性代数

半衰期: 稳定

linear-algebratransformer没有先修

向量、矩阵、矩阵乘法、转置、范数、特征分解、SVD。深度学习里的一层就是「乘一个矩阵、加一个向量、过一个非线性」,注意力就是三次矩阵乘加一次 softmax,所以本层只需要把「矩阵乘法是什么几何动作、形状怎么对」看明白,不用学到抽象线性空间。它是 数学:用到时再补 下四个子题里最常用的一个:损失与反向传播 要靠它写雅可比,Transformer 的每一张图都是它。

之后
Transformer
  • Essence of linear algebra free

    video · 16 集,约 3 小时 — 把矩阵乘法、基变换、行列式、特征向量画成几何动作;看完再读注意力的 QKᵀ 和投影矩阵时,公式不再是符号而是图像,正是「读论文时公式不跳过」这一条。

复现项目: 用 numpy 手写一次注意力 — 给一个 4×8 的输入矩阵,手写 Q、K、V 投影、QKᵀ/√d、softmax、加权求和,每一步写出形状;再和 torch.nn.functional.scaled_dot_product_attention 的结果对齐。

落选 (3)
  • Gilbert Strang, MIT 18.06 — 完整一学期课,对工程师过量;需要证明时再回去查。
  • Mathematics for Machine Learning ch. 2 — 4 — 已作为 数学:用到时再补 的导入精选,这里不重复。
  • Linear Algebra Done Right (Axler) — 偏证明、不碰矩阵计算,和 ML 的用法错位。

概率与统计

半衰期: 稳定

probabilitydecoding-and-inference没有先修

随机变量、条件概率、期望与方差、常见分布、最大似然估计。语言模型的输出是一个分布而不是一个答案,训练目标是最大化数据的似然,采样时的温度是在改这个分布的形状——这些都要靠本节点的词汇才讲得清。它和 信息论 是一对:似然的负对数就是交叉熵。在 数学:用到时再补 四个子题里,它决定你能否解释 loss 为什么长那样,以及 解码与推理 里温度和 top-p 到底在做什么。

之后
解码与推理
  • Introduction to Probability for Data Science free

    book · only ch. 2–5 — 免费、带 Python 代码的概率教材,联合分布和最大似然估计两章正好对上「为什么交叉熵就是负对数似然」;读到第 8 章能自己推出 softmax + 交叉熵的梯度。

复现项目: 从最大似然推出交叉熵 — 写下分类任务的似然函数,取负对数,证明它就是交叉熵;再对 softmax 的输入求导,得到 p − y,用 PyTorch 的 autograd 验证。

落选 (3)
  • Blitzstein & Hwang, Introduction to Probability (Stat 110) — 经典但面向统计系,篇幅和习题量对工程师过重;找不到过线的独立背书。
  • Seeing Theory(Brown) — 可视化很好,但停在直觉层,推不出似然和梯度。
  • Mathematics for Machine Learning ch. 6 — 已在 数学:用到时再补 的导入精选里。

信息论

半衰期: 稳定

information-theorybackprop-and-losspretraining-and-scaling没有先修

熵、交叉熵、KL 散度、perplexity。它回答三个工程里每天遇到的问题:loss 的数值到底是什么意思(每个 token 平均几 bit)、为什么 perplexity 是预训练的标尺、RLHF 和 DPO 里那个「别离参考模型太远」的约束是什么。它建立在 概率与统计 之上,数学:用到时再补 把它列为四个子题之一;向上接 损失与反向传播(交叉熵作为损失)和 预训练与 scaling(scaling laws 的纵轴就是它)。

之后
损失与反向传播 · 预训练与 scaling
  • Visual Information Theory free

    article · 1 小时 — 用面积图把熵、交叉熵、KL 散度画出来,读完能用一句话说清「交叉熵衡量的是用错误分布编码的代价」;这是手推交叉熵、看懂 perplexity 和 DPO 里 KL 项的前提。

复现项目: 算一次语料的熵 — 对一段文本分别按字符和按词估计一元分布的熵,再算一个小语言模型在同一文本上的交叉熵,解释 perplexity = exp(交叉熵) 为什么能比较不同 tokenizer 下的模型。

落选 (2)
  • MacKay, Information Theory, Inference, and Learning Algorithms — 经典全书,ML 用得上的只有前几章,按需查阅。
  • Cover & Thomas, Elements of Information Theory — 面向通信理论,证明密度对本层目标过量。

优化

半衰期: 稳定

optimizationbackprop-and-loss没有先修

梯度、链式法则、梯度下降及其变种(SGD、动量、Adam)、学习率调度、凸与非凸。训练一个网络就是在高维损失面上沿负梯度走,本节点回答「梯度是什么、怎么求、怎么走才不发散」。它是 数学:用到时再补 四个子题里和 损失与反向传播 接得最紧的:反向传播只是链式法则的高效实现,优化器则决定这些梯度怎么变成参数更新。预训练与 scaling 里的学习率 warmup、cosine 衰减也是这里的话题。

之后
损失与反向传播
  • An overview of gradient descent optimization algorithms free

    article · 1 小时 — 从批量梯度下降到 SGD、动量、Adam,一篇讲完每个优化器各改了上一代的哪一处;读完你能解释训练代码里 lr、momentum、betas 每个参数在控制什么,这是手推梯度之后的下一步。

复现项目: 手写三个优化器 — 在一个二维碗形函数上手写 SGD、动量、Adam 的更新公式,画出三条轨迹;换一个病态条件数的函数再画一次,解释为什么 Adam 走得更稳。

落选 (3)
  • Boyd & Vandenberghe, Convex Optimization — 深度学习的损失面不是凸的,本书的大部分篇幅用不上。
  • 3Blue1Brown「Gradient descent, how neural networks learn」 — 和 数学:用到时再补 已导入的同系列视频重叠,看了第一集自然会接着看。
  • Goodfellow 等《Deep Learning》ch. 8 — 内容扎实但 2016 年之后优化器的实践(AdamW、warmup)没覆盖。

完成标准自测

  • 在纸上写出 softmax + 交叉熵对 logits 的梯度(p − y),并说出每一步用了哪条链式法则。
  • 给一个 (batch, seq, d) 的输入,写出单头注意力每一步的张量形状,解释为什么除以 √d。
  • 用一句话说清交叉熵、KL 散度、perplexity 三者的关系。
  • 读 Adam 的更新公式,说出 β₁、β₂、ε 各在做什么,以及 AdamW 和 Adam 差在哪。
  • 打开任意一篇 L2 论文的方法部分,公式不跳行地读完。

复现项目手推一个两层网络在单个样本上的全部梯度,再和 PyTorch autograd 逐项对拍(挂在 数学:用到时再补)。

作者的笔记原稿。