外观
数学基础速查
机器学习离不开数学,但无数入门者把数学当成一堵必须"先翻过去"的高墙:先啃完《高等数学》《线性代数》《概率论》,再开始学机器学习。结果往往是三个月后数学忘了一大半,机器学习还没开始。
这篇文章想拆掉这堵墙。它的思路与本站一贯立场一致——数学不是门槛,而是工具:每一条你真正会用到的数学,都对应着一个具体的机器学习场景。本文把 ML 真正涉及的数学按"用途"重新组织,让你清楚每个概念解决什么问题、在哪个模型里出现、以及去哪里学。
使用建议
本文不是教材,而是"地图 + 词典"。建议第一次通读建立全局观,之后遇到陌生公式再回来查对应小节。它与术语表互补:术语表讲"是什么",本文讲"为什么"。
一、为什么机器学习需要数学:不是门槛,而是工具
1.1 机器学习到底在干什么
把机器学习压缩成一句话:从一个巨大的函数集合里,找一个函数,让它在数据上的表现尽可能好。展开来看是三个环节:
- 数据是点:每个样本都是高维空间里的一个点(向量),特征就是它的坐标;
- 模型是函数:模型本质上是一个带参数的函数 $y = f(x; \theta)$,参数 $\theta$ 决定函数形状;
- 学习是搜索:不断调整 $\theta$,让 $f$ 在训练数据上的误差最小,同时在未见数据上也能表现好(泛化)。
这三个环节恰好对应三块基础数学:
| 环节 | 数学工具 | 回答的问题 | 典型场景 |
|---|---|---|---|
| 描述数据 | 线性代数 | 数据长什么样、距离有多远 | 特征向量、相似度、降维 |
| 调整参数 | 微积分 | 参数该往哪个方向变 | 梯度下降、反向传播 |
| 定义好坏 | 概率统计 + 信息论 | 损失函数凭什么长这样 | 交叉熵、极大似然、正则化 |
再加一块优化作为发动机:梯度下降就是它的入门。后文逐一展开。
1.2 为什么"先学完数学再学 ML"是反模式
数学体系庞大到一辈子学不完,而机器学习实际用到的只是其中高度集中的一小块。更重要的是,现代深度学习框架(PyTorch、TensorFlow、JAX)都内置自动求导——你几乎不需要手推任何梯度。
常见反模式
"先啃完《高等数学》再学 ML"是效率最低的路径:没有具体问题支撑,数学知识既记不住也用不上。正确姿势是倒过来:让 ML 概念先出现在你面前(过拟合、损失函数、梯度下降……),当它背后藏着数学时,回来查本文对应小节。推荐的入门顺序见学习路径与什么是机器学习。
1.3 你需要"会"到什么程度
一句话:会算、懂直觉、能读公式,但不必会证明。
- 会算:给一个小矩阵,能手算矩阵乘法;给一个简单损失函数,能手推一步梯度;
- 懂直觉:知道"梯度指向最陡上升"、"特征值大 = 该方向方差大"意味着什么;
- 能读公式:看到论文里的 $\sum$、$\nabla$、$\mathbb{E}$ 不慌,知道它们在算什么;
- 不必证明:不需要从公理推定理。机器学习工程师的工作是把概念变成代码,不是发表数学论文。
下面五章按"用到最多"排序展开,每章末尾附一组真实可查的自学资源。
二、线性代数:数据与模型的通用语言
如果说机器学习有一种母语,那就是线性代数。数据是向量,模型参数是矩阵,神经网络的前向传播就是一连串矩阵乘法。
2.1 向量:把数据翻译成几何
一个样本就是一个向量:有 $d$ 个特征,就生活在 $d$ 维空间里。
$$ x = (x_1, x_2, \dots, x_d) $$
以房价预测为例,一个房子的特征可以是 $(面积=85, 卧室=3, 楼龄=12)$,这就是三维空间里的一个点。向量有两个身份:
- 代数身份:一组有序数字;
- 几何身份:从原点到该点的有向线段,有方向和长度。
这两重身份是全部直觉的来源:"相似"在几何上就是"方向接近",而方向接近用点积度量(见 2.4)。
2.2 矩阵与矩阵乘法
矩阵是矩形的数字阵列,它在 ML 里有两种读法,都很常用:
- 数据表:一行一个样本,一列一个特征。你看到的任何表格型数据(DataFrame)都是矩阵;
- 线性变换:把一个向量映射成另一个向量,效果是缩放、旋转、错切(或组合)。
矩阵乘法的关键是"结果矩阵的每个元素是一次点积"。设 $C = AB$,则
$$ C_{ij} = \sum_{k} A_{ik} B_{kj} $$
即 $C$ 的第 $i$ 行第 $j$ 列,等于 $A$ 的第 $i$ 行与 $B$ 的第 $j$ 列逐项相乘再求和。这恰好是加权求和——而加权求和是神经网络唯一的计算单元。
2.3 为什么矩阵乘法就是神经网络
看一层全连接神经网络:
$$ h = \sigma(W x + b) $$
- $x$ 是输入向量(上一层输出);
- $W$ 是权重矩阵,$Wx$ 的每个分量都是"输入与 $W$ 某行的点积",即对该行对应神经元的加权求和;
- $b$ 是偏置,$\sigma$ 是激活函数(引入非线性)。
一层网络 = "一个线性变换 $Wx+b$,再接一个逐元素非线性函数 $\sigma$"。多层网络 = 多个这样的组合嵌套。所以所谓"深度学习"从数学上看,就是多层复合函数。堆叠矩阵乘法这件事本身是线性代数的家传手艺。更系统的展开见深度学习基础。
2.4 点积与相似度
两个向量 $a, b$ 的点积定义为
$$ a \cdot b = \sum_i a_i b_i = |a| \cdot |b| \cdot \cos\theta $$
其中 $\theta$ 是两个向量的夹角。这个式子揭示了点积的几何含义:它衡量两个向量方向的一致性——方向相同则点积最大,垂直则点积为零。
由此得到 ML 中最常用的相似度度量——余弦相似度:
$$ \cos\theta = \frac{a \cdot b}{|a| \cdot |b|} $$
它只关心方向、不受向量长度(如文本频率)干扰。这是推荐系统、向量检索、语义搜索、Embedding 比较的默认指标:把用户、商品、句子都编码成向量,相似度就是"用户向量和商品向量的夹角余弦"。它甚至有一个自己名字的求法——归一化后点积即余弦。
2.5 范数:度量向量的大小
范数是"向量的长度"的推广,最常用两种:
- L2 范数(欧氏长度):$|x|_2 = \sqrt{x_1^2 + \dots + x_d^2}$,对应"直线距离";
- L1 范数:$|x|_1 = |x_1| + \dots + |x_d|$,对应"曼哈顿距离"(沿坐标轴走)。
它们出现在两个关键位置:
- 距离度量:K 近邻、K-Means 用欧氏距离找"最近的样本";
- 正则化:L2 正则对参数向量施加 $|w|_2^2$ 惩罚,L1 正则施加 $|w|_1$ 惩罚——前者让权重整体变小,后者迫使部分权重精确归零(特征选择)。详见正则化。
2.6 特征值分解:PCA 的心脏
特征值与特征向量回答一个深刻的问题:一个线性变换有哪些"方向不变"的轴? 若存在非零向量 $v$ 与标量 $\lambda$ 使
$$ A v = \lambda v $$
则 $v$ 是 $A$ 的特征向量,$\lambda$ 是对应特征值。几何含义:变换 $A$ 作用在 $v$ 上不改变方向,只按 $\lambda$ 缩放长度。特征值越大,说明这个方向被拉得越长。
主成分分析(PCA)与特征值分解直接挂钩。PCA 要做的事是:找出一组方向,把数据投影上去后方差最大(信息保留最多)。可以证明,这些方向就是数据协方差矩阵的特征向量,而投影后的方差就是对应的特征值。于是:
$$ \text{数据} \xrightarrow{\text{计算协方差}} \Sigma \xrightarrow{\text{特征分解}} \Sigma v = \lambda v \xrightarrow{\text{取前 k 大特征值}} \text{主成分} $$
直觉:特征值排序就是"按信息量排序"。取前 $k$ 个特征向量构成投影矩阵,就把 $d$ 维数据压到 $k$ 维,同时丢失的信息最少。这是降维、去噪、可视化(降到 2/3 维)的标准做法。
2.7 概念 → ML 用途速查表
| 线性代数概念 | ML 用途 | 出现位置 |
|---|---|---|
| 向量 | 数据表示 | 一切特征、Embedding |
| 矩阵乘法 | 加权求和、特征组合 | 神经网络每一层 |
| 点积 / 余弦相似度 | 衡量相似度 | 检索、推荐、聚类 |
| 范数 | 度量大小、正则化 | 距离类算法、L1/L2 正则 |
| 特征值 / 特征向量 | 找方差最大的方向 | PCA、谱聚类、PageRank |
| 矩阵求逆 | 解析求解 | 最小二乘的闭式解 |
| 行列式 | 度量体积/可逆性 | 理论分析(较少直接用) |
| 转置 | 维度对齐 | 任何矩阵运算 |
自学资源 · 线性代数
- 3Blue1Brown《线性代数的本质》(Essence of Linear Algebra,YouTube):必看,约 15 个短视频,把向量、矩阵乘法、特征值全部讲成几何动画,一集 10 分钟,建立全部直觉;
- Gilbert Strang《MIT 18.06 线性代数》:MIT OpenCourseWare 免费完整课程,配套教材《Introduction to Linear Algebra》(Wellesley-Cambridge Press)——线性代数的"正统但友好"路线;
- Khan Academy 线性代数:大量分步练习,适合动手巩固。
三、微积分:找出"往哪个方向调"
线性代数描述世界,微积分负责"求变"。机器学习的学习过程就是不断微调参数,微积分提供"往哪调"的方向。
3.1 导数:瞬时变化率
一元函数 $f(x)$ 在 $x_0$ 处的导数
$$ f'(x_0) = \lim_{h \to 0} \frac{f(x_0 + h) - f(x_0)}{h} $$
是函数在 $x_0$ 处"随输入变化的瞬间速率",几何上就是切线斜率。在 ML 里,损失函数 $L(w)$ 的导数回答:$w$ 增大一点点,损失是变大还是变小、变化多剧烈。导数符号告诉我们该往哪个方向动 $w$ 才能让 $L$ 下降。
3.2 偏导数与梯度
参数通常有很多个($w_1, \dots, w_d$),损失函数 $L(w_1, \dots, w_d)$ 是多元函数。对单个变量求导而固定其余变量,得到偏导数 $\frac{\partial L}{\partial w_i}$。把所有偏导数排成向量,就是梯度:
$$ \nabla L = \left( \frac{\partial L}{\partial w_1}, \dots, \frac{\partial L}{\partial w_d} \right) $$
梯度有两个核心性质,是全部优化直觉的起点:
- 梯度的方向是函数"上升最快"的方向;
- 梯度的模长是上升的速率。
所以要让损失下降,就要沿负梯度方向移动参数——这就是梯度下降(第 6 章展开)。
3.3 链式法则 = 反向传播
神经网络是函数嵌套,其梯度求法全靠一条规则——链式法则:
$$ \frac{dL}{dx} = \frac{dL}{dh} \cdot \frac{dh}{dz} \cdot \frac{dz}{dx} $$
如果 $y = f(g(h(x)))$,那么对 $x$ 的导数等于各层导数之积。神经网络的参数 $\theta$ 到损失 $L$ 之间隔着几十层函数,链式法则告诉我们:把每层的局部导数相乘,就能从输出端一路"穿回"输入端。
反向传播(Backpropagation)就是链式法则的工程实现:
损失 L ──→ ∂L/∂h_输出 ──→ ∂L/∂W_末层 ──→ …… ──→ ∂L/∂W_首层
(沿计算图从后往前传)它先做一次前向传播算出各层输出,再从输出层开始逐层往回算梯度并缓存中间结果,避免重复计算。今天你不需要手写它——框架的自动求导就是它的实现——但理解"梯度是从损失出发、沿计算图反向传播"这一点,对调试网络至关重要(比如梯度消失,就是连乘的导数趋近于零)。详见深度学习基础。
3.4 泰勒展开:把复杂函数局部近似
泰勒定理说:光滑函数在一点附近可以用多项式近似。取一阶项得到线性近似:
$$ f(x) \approx f(x_0) + f'(x_0)(x - x_0) $$
这看起来平凡,却是梯度下降的数学出处。对损失函数在 $w_t$ 附近做一阶展开并求"使 $L$ 下降最快的方向",得到的正是负梯度 $- \nabla L$——一个"走一小步"的线性化推理。取到二阶项得到
$$ f(x) \approx f(x_0) + f'(x_0)(x - x_0) + \frac{1}{2} f''(x_0)(x - x_0)^2 $$
二阶项用到二阶导数(Hessian 矩阵),对应牛顿法族优化器——实践里用得少(计算贵),知道存在即可。
3.5 与 ML 的对接点
| 微积分概念 | ML 用途 |
|---|---|
| 导数 | 判断参数往哪边调损失会降 |
| 梯度 | 损失函数上升最快的方向(负梯度 = 下降方向) |
| 链式法则 | 反向传播 = 多层复合函数的梯度计算 |
| 偏导数 | 逐参数求梯度(高维) |
| 泰勒展开 | 梯度下降、学习率选择的局部线性化依据 |
| 积分(罕见) | 概率归一化、期望计算(理论侧) |
自学资源 · 微积分
- 3Blue1Brown《微积分的本质》(Essence of Calculus):导数、积分直觉的顶级可视化;
- 3Blue1Brown 神经网络系列:尤其第 3 集,把梯度下降和反向传播讲成动画,是"微积分如何服务 ML"的最佳演示;
- Khan Academy 多元微积分:偏导数、梯度、链式法则的系统课程;
- MIT OCW 18.02 多元微积分(Strang/Edwards 讲授):完整系统学习。
四、概率与统计:给不确定性建模
现实数据带噪声,模型预测有不确定性。概率论就是描述这种不确定性的语言;统计推断则回答"从数据里能反推出什么"。机器学习的损失函数、评估指标、模型假设,几乎全部从这里长出。
4.1 概率公理
概率三公理,只需记两条直觉:
- 任何事件概率在 $[0, 1]$,全空间概率为 1;
- 互斥事件相加:$P(A \cup B) = P(A) + P(B)$(互斥时)。
它保证"概率"是一套自洽的度量系统,而不是随意的百分比。在 ML 里,模型输出的"置信度"、分类概率都遵守这套规则。
4.2 条件概率与贝叶斯定理
条件概率 $P(A \mid B)$ 表示"已知 B 发生时 A 的概率"。它的定义式是
$$ P(A \mid B) = \frac{P(A \cap B)}{P(B)} $$
由此推出贝叶斯定理——ML 中最重要的公式之一:
$$ P(\theta \mid D) = \frac{P(D \mid \theta), P(\theta)}{P(D)} $$
各项有标准名字和直觉:
- 先验 $P(\theta)$:看到数据前,你对参数/假设的信念(比如"垃圾邮件先验占 20%");
- 似然 $P(D \mid \theta)$:给定参数,数据出现的可能性;
- 后验 $P(\theta \mid D)$:看到数据后更新过的信念——这正是"学习"的概率定义;
- 证据 $P(D)$:数据的边缘概率,通常只作归一化常数。
一句话:后验 ∝ 似然 × 先验。学习 = 用数据(似然)更新先验。朴素贝叶斯分类器、贝叶斯网络、正则化的另一种理解(高斯先验 → L2 正则)都站在它肩上。
4.3 随机变量与常见分布
随机变量是把随机试验结果映射成数字的变量。它服从某种分布,描述取值的概率规律。ML 中反复出现的就三种分布加一个配角:
| 分布 | 记号 | 取值 | ML 出场位置 |
|---|---|---|---|
| 伯努利分布 | $\mathrm{Bern}(p)$ | 0 或 1 | 二分类:$P(y=1)=p$ |
| 类别分布(分类分布) | $\mathrm{Cat}(p_1,\dots,p_K)$ | $1,\dots,K$ | 多分类:softmax 输出 |
| 正态(高斯)分布 | $\mathcal{N}(\mu, \sigma^2)$ | 全体实数 | 噪声假设、回归误差、权重初始化、特征分布 |
| 均匀分布 | $\mathrm{Unif}(a,b)$ | 区间内 | 参数随机初始化 |
正态分布值得多说一句:它的概率密度
$$ p(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left( -\frac{(x-\mu)^2}{2\sigma^2} \right) $$
以均值 $\mu$ 为对称中心、$\sigma$ 控制胖瘦。**"误差是正态的"**是回归问题最常见的假设,而它正是 4.5 节中 MSE 损失(而不是别的损失)的来历。
4.4 期望与方差
- 期望 $\mathbb{E}[X] = \sum x, p(x)$(离散),是分布的中心(加权平均);
- 方差 $\mathrm{Var}(X) = \mathbb{E}[(X - \mathbb{E}[X])^2]$,衡量波动大小。
在评估一节它们合体为最著名的等式——偏差-方差分解。对回归误差(MSE):
$$ \mathbb{E}[(y - \hat{f}(x))^2] = \underbrace{\text{Bias}^2}{\text{偏差}^2} + \underbrace{\text{Variance}}{\text{方差}} + \underbrace{\sigma^2}_{\text{不可约噪声}} $$
直觉:误差 = 模型的系统性偏差 + 模型对训练集的过度敏感(方差)+ 数据本身的噪声。模型越简单偏差越大方差越小,越复杂则反过来——这就是过拟合与欠拟合的数学根源,也是正则化要调节的对象。完整讨论见模型评估与验证与正则化。
4.5 极大似然估计:损失函数从哪来
这是全文最值得记的推导之一。极大似然估计(MLE):选择使"数据出现概率最大"的参数 $\theta^*$。
$$ \theta^* = \arg\max_\theta \prod_{i} p(y_i \mid x_i; \theta) $$
连乘不便计算,取对数(单调函数,不改变最优解)变连加:
$$ \theta^* = \arg\max_\theta \sum_i \log p(y_i \mid x_i; \theta) $$
现在,对似然做两个不同假设,就会推导出两个不同的损失函数:
假设 1:误差服从正态分布 $y = f_\theta(x) + \varepsilon,\ \varepsilon \sim \mathcal{N}(0,\sigma^2)$。代入对数似然化简(丢弃常数项),最大化似然等价于
$$ \arg\min_\theta \sum_i \left( y_i - f_\theta(x_i) \right)^2 $$
——这就是均方误差(MSE)损失!回归损失不是拍脑袋定的,是"误差正态"假设下的最大似然。
假设 2:二分类输出服从伯努利分布 $y \sim \mathrm{Bern}(p_\theta(x))$。最大化对数似然化简后等价于
$$ \arg\min_\theta -\sum_i \left[ y_i \log \hat{p}_i + (1 - y_i)\log(1 - \hat{p}_i) \right] $$
——这就是交叉熵损失(对二分类是 binary cross-entropy)。它同时也是第 5 章从信息论推出的同一个式子:两条路通向同一个损失,说明交叉熵既是最小化"编码代价",也是最大化似然。
所以当人问"为什么分类用交叉熵、回归用 MSE"时,答案是:它们分别是伯努利/高斯假设下的极大似然估计。这个视角能让无数困惑瞬间消失。
4.6 中心极限定理:噪声为什么总是正态
中心极限定理(CLT)直觉版:大量独立同分布的小随机变量相加,其和的分布趋近正态,无论每个小变量本身是什么分布。
$$ \frac{1}{n}\sum_{i=1}^n X_i ;\xrightarrow{n \to \infty}; \mathcal{N}\left(\mu, \frac{\sigma^2}{n}\right) $$
直觉价值巨大:测量误差是大量小误差叠加 → 近似正态;平均估值 $\bar{x}$ 围绕真值波动 → 可以算置信区间。它还解释了 4.5 里"误差设成正态"为什么合理——正态不是随意选择,而是自然界的默认结果。在 ML 里它还支撑 bootstrap、假设检验等统计工具的使用直觉。
自学资源 · 概率与统计
- Khan Academy 概率论与统计学:公理、条件概率、贝叶斯、分布的完整入门;
- Harvard Stat 110《Introduction to Probability》(Joe Blitzstein,YouTube/edX 免费):概率论口碑最好的课程,直觉与严格并重;
- MIT OCW 18.05《Introduction to Probability and Statistics》:更贴近应用;
- StatQuest(Josh Starmer,YouTube):贝叶斯、p 值、置信区间等概念的可视化速讲,适合复习。
五、信息论:损失函数的根源
信息论研究"信息如何量化",它给了机器学习两件礼物:熵(量化不确定性)与 KL 散度(量化两个分布的距离)。分类损失函数的"标准答案"就长在它身上。
5.1 信息量与熵
一个事件携带的信息量与它的概率成反比:必然事件(概率 1)不含信息,极罕见事件(概率近 0)信息量巨大。
$$ I(x) = -\log_2 p(x) $$
对随机变量取平均,得到熵(entropy):
$$ H(p) = -\sum_x p(x) \log_2 p(x) $$
直觉:熵是"平均需要多少比特来编码这个分布的抽样结果",即不确定性的度量。抛硬币($p=0.5$)熵为 1 比特;确定事件熵为 0;均匀分布熵最大(最不确定)。在 ML 里,模型预测"这个类是猫"给出 $p=0.99$,说明不确定性低——熵小;给出 $p=0.33$,则充满不确定性——熵大。
5.2 交叉熵
如果真实分布是 $p$,但你用(可能错误的)分布 $q$ 来编码,平均需要的比特数是交叉熵:
$$ H(p, q) = -\sum_x p(x) \log_2 q(x) $$
交叉熵一定不小于熵($H(p,q) \ge H(p)$),多出来的部分就是"用错编码的代价"。
5.3 KL 散度:两个分布的距离
把交叉熵与熵的差单独拿出来,就是 KL 散度(Kullback–Leibler divergence):
$$ D_{KL}(p | q) = \sum_x p(x) \log_2 \frac{p(x)}{q(x)} = H(p,q) - H(p) $$
- $D_{KL}(p | q) \ge 0$,且 $D_{KL} = 0$ 当且仅当 $p = q$;
- 它是"用 $q$ 近似 $p$ 的代价",常用于比较预测分布与真实分布;
- 注意它不对称:$D_{KL}(p|q) \ne D_{KL}(q|p)$,所以严格说不是"距离"。
5.4 在 ML 中的角色:交叉熵损失的根源
分类问题的设置:真实标签是 one-hot 分布 $p$(对样本 $y=c$,$p(c)=1$,其余为 0),模型输出预测分布 $q = \mathrm{softmax}(z)$。训练要"让 $q$ 尽量接近 $p$",即最小化
$$ D_{KL}(p | q) = \underbrace{H(p, q)}{\text{交叉熵}} - \underbrace{H(p)}{\text{常数,与模型无关}} $$
由于真实分布 $p$ 固定,$H(p)$ 是常数,最小化 KL 散度 ≡ 最小化交叉熵。而 one-hot 情形下交叉熵退化成"负的预测概率对数":
$$ -\log q(y=c) = -\log \hat{p}_c $$
这就是为什么多分类的标准损失就是交叉熵,Pytorch/TensorFlow 的 CrossEntropyLoss 即此式。再看第 4 章的结论:交叉熵 = 伯努利/类别分布的最大似然。两条路殊途同归——这正是它"标准"地位的原因。
为什么分类不用 MSE
把 MSE 套在分类上(配合 sigmoid/softmax)会出问题:sigmoid 在两端饱和,其导数趋近 0,MSE 对饱和区错误几乎给不出梯度——梯度消失,训练极慢甚至停滞。交叉熵的梯度形式与 $\hat{p} - y$(预测减标签)成正比,天然无此问题。这不是玄学,是两个损失函数数学结构上的硬差别。
5.5 互信息(了解即可)
互信息 $I(X;Y) = H(X) - H(X\mid Y)$ 度量"知道 $Y$ 后,$X$ 的不确定性减少多少",是分布之间的非线性关联度量。它在特征选择、聚类评估、表征学习(InfoNCE 等自监督损失)里有一席之地。入门阶段知道概念即可。
自学资源 · 信息论
- StatQuest:熵、交叉熵、KL 散度的短视频讲解,直观好懂;
- Khan Academy 信息论课程(Brit Cruise 系列):从编码、比特讲起,无痛入门;
- Claude Shannon《A Mathematical Theory of Communication》(1948):信息论开山论文,可读性意外地好;
- Cover & Thomas《Elements of Information Theory》:系统教材,按需查阅。
六、优化:把参数找出来
有了损失函数(目标),下一步是找到让损失最小的参数。这就是优化。绝大多数 ML 训练是同一个套路:梯度下降及其变体。
6.1 凸优化直觉
函数值画成地形图:
损失 L
│ ∖
│ ∖ · · · ← 非凸:多个局部谷底
│ ∖ ∕
│ V ← 全局最低(凸:唯一的碗底)
│
└───────────────────────→ 参数 w- 凸函数:只有一个碗底(全局最小),任何局部最优点就是全局最优点——线性回归、逻辑回归、SVM 的目标都是凸的,理论上有"保证收敛到最优";
- 非凸函数:地形多起伏,只有局部最优——深度神经网络的目标几乎总是非凸,但我们实践上仍然找到了好解(见 6.4)。
凸性最重要的一句话直觉:凸问题让你放心用梯度下降;非凸问题靠工程技巧(初始化、学习率调度、批归一化)开路。
6.2 梯度下降:一切优化的源头
第 3 章已备好工具:损失 $L(w)$ 的负梯度指向下降最快的方向。于是迭代公式——整个 ML 里出现频率最高的式子:
$$ w_{t+1} = w_t - \eta \nabla L(w_t) $$
- $w_t$:第 $t$ 步的参数;
- $\nabla L(w_t)$:当前点损失对参数的梯度;
- $\eta$(学习率):步长,最关键的超参数。
学习率失衡的经典画面:
损失
│ ↑ 学习率过大:来回震荡甚至发散
│ ↕ ↕
│ ↕ ↕
│ ↕ ↕ ↕
│···↕↕···
│ ↑ 学习率适中:平稳抵达谷底
│ ~~~~
│ ~~~~
│~~~~
└────────────────────→ 迭代次数- 学习率过大:越过谷底来回弹,甚至发散;
- 学习率过小:走得极慢,半天不收敛;
- 实践方案:学习率调度(衰减)、Adam 等自适应优化器(自动按各参数梯度大小调步长)。
按每次用多少数据,梯度下降有三个档位:
| 变体 | 每次用数据量 | 特点 |
|---|---|---|
| 批量梯度下降 | 全部训练集 | 稳定但慢,每步都要全量算一遍 |
| 随机梯度下降(SGD) | 1 个样本 | 快但有噪声,震荡 |
| Mini-batch SGD | 一小批(如 32/64/128) | 实践默认:兼顾稳定与速度 |
6.3 拉格朗日乘子与正则化
正则化(限制模型复杂度)与优化中的约束问题是同构的。约束优化问题的一般形式:
$$ \min_w f(w) \quad \text{s.t.} \quad g(w) \le c $$
拉格朗日乘子法把它变成无约束问题:
$$ \mathcal{L}(w, \lambda) = f(w) + \lambda, (g(w) - c) $$
其中 $\lambda$ 是乘子。关键的对应关系——L2 正则化就是加了参数范数约束的拉格朗日形式:
$$ \underbrace{\min_w ; \text{Loss}(w)}_{\text{原始目标}} ;\longleftrightarrow; \underbrace{\min_w ; \text{Loss}(w) + \lambda |w|2^2}{\text{拉格朗日化的正则目标}} $$
直觉解释:正则化是给"参数太大"加价($\lambda$ 是惩罚税率),与"参数必须在半径 $\sqrt{c}$ 的球内"的约束优化互为表里。$\lambda$ 越大,解被限制得越小——这就是"复杂度税"的数学出处。L1 正则同理(把球换成菱形,拐角处迫使某些坐标归零,从而特征选择)。深入见正则化与优化。
6.4 非凸世界里的深度学习:为什么仍然有效
严格说,深度网络的损失函数是非凸的,理论只能保证局部最优,但实践效果却出奇地好。目前较被接受的高维直觉是:当参数空间维度极高时,局部最优往往不"尖",而是大片近乎平坦的低谷,其中大部分低低谷对应的泛化表现都差不多;加上随机初始化、mini-batch 噪声、学习率调度,优化器就像在连绵丘陵里不停向低处移动,总能走到够低的地方。理解到"深度学习优化是工程性的、靠实践调参"这个层次即可,不必追求严谨证明。相关的实践问题见优化。
自学资源 · 优化
- 3Blue1Brown 神经网络系列第 3 集:梯度下降与反向传播的可视化;
- StatQuest 梯度下降:大白话讲清步长与收敛;
- 吴恩达《机器学习专项课程》:梯度下降、学习率的经典入门讲法;
- Boyd & Vandenberghe《Convex Optimization》:凸优化的标准教材(深度参考,不必通读)。
七、学习策略:按需学习,边用边补
7.1 三条原则
- 按需学习:先遇到问题,再补数学。遇到"为什么用交叉熵"就去看第 5 章;遇到"为什么 L2 能让权重变小"就去看 6.3。带着问题学,学完就能用,记忆最牢;
- 边用边补:每次在代码里遇到陌生数学,当天花 20 分钟查对应小节 + 一个教学视频,比攒着"以后系统学"有效得多;
- 直觉优先于推导:先懂"这个式子在干什么、解决什么问题",推导能看懂即可,不追求独立完成证明。
7.2 推荐学习顺序
按"投入产出比"排序:
| 阶段 | 学什么 | 用在哪里 | 对应小节 |
|---|---|---|---|
| 第 1 周 | 向量、矩阵乘法、点积 | 理解数据和神经网络层 | 二 |
| 第 1-2 周 | 导数、梯度、链式法则 | 理解训练过程 | 三 |
| 第 2-3 周 | 分布、期望方差、MLE | 理解损失函数从哪来 | 四 |
| 第 3 周 | 熵、交叉熵、KL 散度 | 理解分类损失、生成模型 | 五 |
| 持续 | 梯度下降及其变体 | 实际训练任何模型 | 六 |
| 需要时 | 特征值、PCA、凸性 | 降维、优化理论 | 二、六 |
节奏建议:第 1 步不是学完上述所有数学,而是先用最简单的模型(线性回归)跑通"数据 → 损失 → 梯度下降"的完整闭环,再回头把每个环节背后的数学逐条补齐。推荐的完整入门路线见学习路径。
7.3 实用技巧
- 可视化优先:向量、矩阵、梯度全部可以用几何动画理解,3Blue1Brown 是首选;写代码时用 Matplotlib 画出损失随迭代的变化曲线,直观感受收敛;
- 手算小例子:给一个 2×2 矩阵、一个 2 维样本,亲手算一遍前向传播和一步梯度更新,比看十遍公式都管用;
- 善用框架自动求导,但保持敬畏:PyTorch 会算梯度,你要能口头解释"这一步在算什么";调不好时,回来查第 3、6 章;
- 公式阅读法:遇到陌生公式,先圈出"变量"(希腊字母是参数还是数据)、再看"结构"($\sum$ 求和、$\exp$ 归一化)、最后想"直觉含义"(它是在平均?在测距离?在惩罚?);
- 不懂没关系,查表:本文第 2.7 节的"概念 → 用途"表、各章自学资源,就是你的随身索引。遇到术语不清楚,翻术语表。
八、延伸阅读
- 什么是机器学习 —— 机器学习全景概念,数学的落点
- 学习路径 —— 推荐的完整学习顺序
- 术语表 —— 与本文配套的"是什么"词典
- 模型评估与验证 —— 偏差-方差、指标背后的统计
- 正则化 —— 拉格朗日、范数惩罚的工程落地
- 优化 —— 梯度下降变体与调参实践
- 深度学习基础 —— 矩阵乘法与链式法则的集大成者
- 精选资源清单 —— 按阶段整理的课程与书籍地图
- 常见问题 —— 对本文涉及概念的常见疑问
参考资料
以下均为公开、可免费获取或正规出版的真实资源,供按需查阅。
- 3Blue1Brown,《Essence of Linear Algebra》与《Essence of Calculus》系列视频,YouTube(3blue1brown.com)。
- 3Blue1Brown,《But what is a neural network?》神经网络系列(含梯度下降与反向传播),YouTube。
- Gilbert Strang,《Introduction to Linear Algebra》(第 5 版),Wellesley-Cambridge Press;配套课程 MIT 18.06,MIT OpenCourseWare(ocw.mit.edu)。
- MIT OCW 18.02《Multivariable Calculus》与 18.05《Introduction to Probability and Statistics》,ocw.mit.edu。
- Joe Blitzstein,Harvard Stat 110《Introduction to Probability》,HarvardX/edX 与 YouTube 免费公开。
- Khan Academy,《Linear Algebra》《Multivariable Calculus》《Statistics and Probability》《Information Theory》系列课程,khanacademy.org。
- Josh Starmer,StatQuest 频道(梯度下降、熵、交叉熵、KL 散度、贝叶斯等),YouTube。
- Christopher M. Bishop,《Pattern Recognition and Machine Learning》(PRML),Springer,2006。
- Ian Goodfellow、Yoshua Bengio、Aaron Courville,《Deep Learning》("花书"),MIT Press,2016。
- Trevor Hastie、Robert Tibshirani、Jerome Friedman,《The Elements of Statistical Learning》(ESL),Springer,2009。
- Claude Shannon,《A Mathematical Theory of Communication》,Bell System Technical Journal,1948。
- Thomas Cover、Joy Thomas,《Elements of Information Theory》(第 2 版),Wiley,2006。
- Stephen Boyd、Lieven Vandenberghe,《Convex Optimization》,Cambridge University Press,2004。
- Marc Deisenroth、A. Aldo Faisal、Cheng Soon Ong,《Mathematics for Machine Learning》,Cambridge University Press,2020(mml-book.github.io 免费 PDF)。
- Andrew Ng,《Machine Learning Specialization》,Coursera,2022。