第 1–4 章 · 数学与应用数学的复习(按需取用)
这本的第一部分不是"预习"而是"地图":深度学习用到的线性代数、概率、数值计算被压缩成四章工具书。正确的用法是按需回查——但要先通读一遍知道工具箱里有什么。
线性代数速览
向量、矩阵、张量(多维数组是深度学习的"数据形状"语言);矩阵乘法、单位阵、逆;范数($L^2$、$L^1$、$L^\infty$——正则化的三种口味);特殊矩阵与分解:特征分解 $A = Q\Lambda Q^T$、奇异值分解 $A = U\Sigma V^T$(数据降维与 PCA 的母体);迹与行列式的求导规则($\nabla_A \mathrm{tr}(AB) = B^T$ 是反向传播推导的常用件)。主成分分析:对数据中心化后取协方差矩阵的 top-$k$ 奇异向量——降维 = 投影到最大方差方向。
概率与信息论速览
条件概率、贝叶斯、期望方差;常用分布(伯努利、高斯、指数、Laplace)与它们的"深度学习用途"(输出层似然、权重先验、正则化);结构化概率与图模型的一瞥;信息论:自信息 $-\log P(x)$、熵 $H = -\sum P\log P$、KL 散度 $D_{KL}(P\|Q) = \sum P\log\frac{P}{Q}$——交叉熵损失 = KL + 常数,分类损失的出处。
数值计算速览
上溢下溢与 softmax 的稳定化技巧(减最大值);病态条件;基于梯度的优化:雅可比、海森、梯度下降;链式法则与计算图——反向传播就是这个图上的动态规划。四个约束优化概念(拉格朗日、KKT)在正则化解释时会回收。
老师的提醒
- 复习的深度标准:每个工具能说出"深度学习里谁在用它"(范数→正则化、KL→损失、链式法则→反传)——脱离用途的数学复习记不住。
- 手推一次 softmax 的梯度与数值稳定版(log-sum-exp):这是面试与调试的双重高频。
自检
- 写出 KL 散度与交叉熵的关系。
- SVD 与 PCA 的联系?
- softmax 的数值稳定实现怎么写?
更深一层:数学复习章的"用途索引"
第一部分的真正用法是按需回查——但要先通读一遍建立"工具箱地图"。每个工具都有它的深度学习岗位:线性代数的张量语言(多维数组是深度学习的"数据形状")与奇异值分解(PCA 与降维的母体);概率论的条件概率与贝叶斯(输出层似然与正则化的贝叶斯解释);信息论的 KL 散度(分类损失的出处——交叉熵 = KL + 常数);数值计算的梯度与链式法则(反向传播的数学定义)。读完第一章时,每个概念后面都该有一句"它将被谁用"——脱离用途的数学复习是最低效的。
主成分分析(PCA)值得单独停留:数据中心化后取协方差矩阵的 top-$k$ 奇异向量——降维 = 投影到最大方差方向。它是"核方法"与"自编码器"(第 14 章)的线性祖先——降维 = 在方差最大的方向上保留信息这一句话,从 PCA 到自编码器到流形学习一脉相承。
推导细读:softmax 的数值稳定版——每个工程师的必修
softmax 的朴素实现 $\frac{e^{z_i}}{\sum e^{z_j}}$ 在大 $z$ 时上溢。稳定化技巧:减去最大值后指数——$\frac{e^{z_i - \max z}}{\sum e^{z_j - \max z}}$,数学等价但数值安全。这个技巧的价值远超它的长度:它示范了"数值稳定化"的通用思路——对数域操作(log-softmax、log-sum-exp)、减均值、裁剪。深度学习框架里的每一个"稳定化函数"(log_softmax、logsumexp)都是同一个思路的工业产品。
专题深入:线性代数的"几何再解读"完整版
花书第一章数学复习的深层价值是给每个代数对象补几何身份:矩阵乘法 $A\vec x$ 不是"行乘列"而是线性变换——列向量是基像、行列式是面积缩放、特征向量是"变换下方向不变的轴"。SVD $A = U\Sigma V^T$ 把任意矩阵分解为"旋转-缩放-旋转",它的机器学习身份是最优低秩近似(Eckart-Young 定理:截断 SVD 是 Frobenius 范数意义下的最佳秩 r 近似)——推荐系统的矩阵补全、PCA、词向量的潜在语义分析(LSA)全是截断 SVD 的马甲。条件数 $\kappa(A) = \sigma_{\max}/\sigma_{\min}$ 是数值稳定性的体检表:病态矩阵(条件数大)让输入的微小噪声放大成输出的巨大误差——梯度下降的震荡、最小二乘的多解、深度网络的前几层初始化,都要查条件数。概率复习一章的等价要点:期望、方差、协方差矩阵(多元高斯的全套几何——椭圆等高线、马氏距离、白化变换)是后续每一章的默认语言。
推导细读:信息论的"决策价值"与数值计算的"浮点现实"完整版
信息论部分的推导要点:自信息 $I(x) = -\log p(x)$(越意外信息越大)、熵 $H = \mathbb E[I]$(分布的不确定度)、交叉熵 $H(p, q) = H(p) + D_{KL}(p\|q)$——训练分类器用交叉熵损失 = 最小化 KL 散度 = 让模型分布逼近真实分布,"最大似然 = 最小交叉熵"的等价链条要一次打通。最大似然与最小化 KL 的同构是理解一切生成模型损失函数的钥匙(VAE 的 ELBO、GAN 的 JS 散度、扩散模型的分数匹配都是这个主旋律的变奏)。数值计算章节的工程现实:下溢与上溢(log-sum-exp 技巧——softmax 的稳定实现必须先减最大值)、病态条件与浮点误差的放大、梯度爆炸/消失的数值根源(连乘的雅可比谱半径偏离 1)——"好的损失函数先考虑数值可算性"是从这一章继承的职业习惯。
工程案例细节:数学复习的"出口清单"工程版
第一章的工程出口:PCA 的工业用法(特征降维、去噪、可视化——sklearn 三行代码的背后是协方差矩阵特征分解 + 方差解释率曲线选维数);词向量与奇异值分解(GloVe 之前 LSA 用 SVD 分解词-文档矩阵——语义空间是低秩假设的直接产物);交叉熵损失的实现细节(logits 直接算 + log-sum-exp 融合——PyTorch 的 CrossEntropyLoss 不经过显式 softmax 就是为了数值安全);梯度检查(有限差分 $\frac{f(\theta + \epsilon) - f(\theta - \epsilon)}{2\epsilon}$ 验证手推梯度——写自定义层的标准自检工序);随机数与可复现(种子固定、cuDNN 确定性开关——实验科学的底线)。第一章没有"模型",但每一个后续模型的第一行代码都站在它上面——这是"数学复习"章节被老手反复回看的真实原因。
例题
(1)手算 $KL(P\|Q)$,其中 $P = (0.5, 0.5)$、$Q = (0.9, 0.1)$;(2)说明它与交叉熵 $H(P, Q)$ 的关系。
解答
关系:$H(P, Q) = H(P) + D_{KL}(P\|Q)$,本例 $H(P) = \ln 2 = 0.693$,交叉熵 $= 1.204$。
- 深度学习的用法:训练分类器 = 最小化交叉熵;因 $H(P)$ 是常数,等价于最小化 KL——把 $Q$(模型分布)拉向数据分布 $P$。KL 不对称且可为无穷($Q_i = 0$ 处),这就是"输出层禁止极端 log(0)"要数值防护的原因。