第2章 机器学习的数学基础
本章核心问题
机器学习最依赖的数学工具究竟是什么,它们分别起什么作用?
更具体地说,本章希望回答如下问题:当第1章已经把学习表述为建模、估计与优化之后,支撑这一表述的共同数学语言是什么,为什么线性代数、概率论、微积分与最优化、信息论会在几乎所有机器学习方法中反复出现,以及它们如何共同构成后续章节的理论坐标系。
1. 问题背景
第1章已经说明,现代人工智能中的学习问题可以写成从样本中选择函数、最小化风险并求解参数的过程。然而,这种表述虽然揭示了学习的总体结构,却还没有说明:这些对象究竟用什么语言来表示,随机性如何被刻画,目标函数为何能够被优化,以及不同分布之间的差异如何被比较。
机器学习之所以不是某一单独数学分支的直接应用,原因正在于它处理的是一个复合问题。数据往往以高维向量或矩阵形式出现,因此需要线性代数来组织表示;输出具有噪声与不确定性,因此需要概率论来描述随机机制;模型训练要通过目标函数的下降来进行,因此需要微积分与最优化理论;而分类、生成与语言模型中的许多核心损失,又具有明显的信息论背景,需要熵、交叉熵与相对熵等量来刻画。
因此,本章并不试图穷尽机器学习所需的全部数学内容,而是要建立一套全书共享的基础语言。后续无论讨论线性回归、支持向量机、神经网络、Transformer、大语言模型还是强化学习,读者都会反复遇到本章介绍的对象与记号。若这些基础语言没有在一开始被统一整理,那么后续章节虽然可以分别解释局部方法,却难以形成结构化理解。
从全书位置看,本章的作用正是完成这一整理。它承接第1章中“学习为何能被数学化”的问题,并为第3章“监督学习如何正式形成”提供共同的数学工具。
2. 数学原理
2.1 线性代数:数据、参数与表示空间
机器学习中的样本通常不是孤立标量,而是由多个属性共同构成的向量。若一个样本由 $d$ 个特征描述,则可以把它写成
这里 $x$ 表示一个输入样本,$x_1,\dots,x_d$ 表示它的各个特征分量;$\mathbb R^d$ 表示 $d$ 维实向量空间,即由 $d$ 个实数组成的全体向量的集合。把样本写成向量的意义在于:后续的距离、相似性、线性变换与梯度更新,都可以在统一的空间结构中进行。
若共有 $n$ 个样本,每个样本有 $d$ 个特征,则整个数据集可以写成矩阵
这里大写字母 $X$ 表示数据矩阵;$x_i^\top$ 表示第 $i$ 个样本向量的转置,把列向量写成一行;$\mathbb R^{n\times d}$ 表示所有 $n\times d$ 实矩阵的集合。这样一来,数据集就从“若干独立样本”转化为“一个整体矩阵对象”。这一转化非常关键,因为大量模型训练都可归结为矩阵运算。
在线性模型中,参数也常写成向量形式。若参数为
则最简单的线性预测可以写成
这里 $w$ 表示参数向量,$w^\top x$ 表示向量内积,$b$ 表示偏置项。内积
把各特征按权重加总,因此线性模型本质上是在特征空间中用一个超平面进行拟合或划分。
把单一样本的预测扩展到整个数据集,若记目标向量为
则所有样本的线性预测可以统一写成
这里 $\hat y\in\mathbb R^n$ 表示所有样本的预测结果向量;$\mathbf 1\in\mathbb R^n$ 表示每个分量都等于 $1$ 的向量,因此 $b\mathbf 1$ 表示把同一偏置项加到每个样本上。矩阵表达的优点在于,它把逐样本计算压缩成统一的线性代数形式,使问题结构更加清楚。
除向量与矩阵之外,线性变换也是机器学习中的核心概念。若 $A\in\mathbb R^{m\times d}$,则
表示把原始向量 $x\in\mathbb R^d$ 变换到新的空间 $\mathbb R^m$。这里 $A$ 表示线性变换矩阵,$z$ 表示变换后的表示。神经网络中的线性层、主成分分析中的投影、嵌入空间中的表示变换,本质上都属于这一类操作。
从这一角度看,线性代数在机器学习中的作用不是“计算辅助工具”而已,而是负责回答三个基础问题:数据如何表示,参数如何组织,表示如何变化。
2.2 概率论:不确定性、分布与条件结构
仅有向量与矩阵还不足以描述学习问题,因为现实数据往往伴随噪声、随机性与部分可观察性。概率论的任务,就是把这种不确定性形式化。
设随机变量 $X$ 表示输入,随机变量 $Y$ 表示输出,则学习问题的统计背景通常由联合分布
或其对应的概率质量函数、概率密度函数来决定。这里 $P(X,Y)$ 表示输入输出对 $(X,Y)$ 的联合分布,它刻画了“什么样的输入更常出现”“在某类输入下什么输出更可能出现”等统计结构。
联合分布可以分解为
这里 $P(X)$ 表示输入的边缘分布,$P(Y\mid X)$ 表示在给定输入 $X$ 后输出 $Y$ 的条件分布,符号“$\mid$”表示条件关系。这个分解说明,学习问题通常包含两层结构:一层是样本在输入空间中如何分布,另一层是在给定输入后输出如何随机生成。
在监督学习中,最关键的对象往往是条件分布 $P(Y\mid X)$。例如,分类问题要回答在给定输入 $x$ 时,不同类别 $y$ 的概率是多少;回归问题则可被理解为在给定输入时,输出随机变量的条件均值、条件方差或更完整的条件分布如何。
概率论中的期望是学习理论中最常出现的运算之一。若随机变量 $Z$ 的分布为 $P$,则其期望定义为
这里 $\mathbb E[Z]$ 表示随机变量 $Z$ 的平均值;$p_Z(z)$ 表示连续情形下 $Z$ 的概率密度函数;求和与积分分别对应离散型与连续型随机变量。期望的重要性在于,它把“随机现象的平均行为”转化为可分析的数值对象。第1章中的总体风险,本质上就是损失随机变量的期望。
方差则刻画随机变量相对均值的波动程度:
这里 $\mathrm{Var}(Z)$ 表示 $Z$ 的方差。若均值描述“典型位置”,则方差描述“围绕均值的离散程度”。在学习问题中,方差既用来衡量噪声强弱,也在后续的偏差-方差分析中承担核心角色。
条件期望同样极其重要。给定输入 $X=x$ 时,输出的条件期望写成
它表示“当输入取值为 $x$ 时,输出平均会落在什么位置”。第1章已经说明,平方损失下的最优预测正是这一条件期望,因此它既是概率对象,也是学习目标。
总之,概率论在机器学习中的作用是:把噪声从“误差”提升为“可建模对象”,把样本从“观测集合”提升为“来自某个分布的随机抽样结果”。
2.3 损失函数、目标函数与经验风险
有了表示与概率结构之后,机器学习还需要一个评价准则来区分“更好”和“更差”的模型。这正是损失函数的作用。
设模型由参数 $\theta$ 决定,其输出写作 $f_\theta(x)$。对单个样本 $(x,y)$,损失函数写成
这里 $L$ 表示单样本损失函数,$y$ 表示真实输出,$f_\theta(x)$ 表示模型在输入 $x$ 上的预测值。损失函数把“预测偏差”转化为一个实数,因此它是从统计问题过渡到优化问题的桥梁。
若样本集为
则经验风险定义为
这里 $\hat R_n(\theta)$ 表示基于 $n$ 个样本构造的平均损失;“帽子”说明它是经验量;下标 $n$ 表示与样本规模有关。注意这里把经验风险写成 $\hat R_n(\theta)$,而不是 $\hat R_n(f)$,是因为在实际训练中通常直接优化参数 $\theta$。
若再加入正则化项 $\Omega(\theta)$ 以控制复杂度,则目标函数可写成
这里 $J(\theta)$ 表示最终优化目标,$\Omega(\theta)$ 表示复杂度惩罚项,$\lambda\ge 0$ 表示正则化系数。损失函数与目标函数的区别在于:损失函数通常作用于单样本,目标函数通常整合全部样本并可能附带正则化。
在不同任务中,损失函数的选择不同。
若是回归问题,最常见的平方损失为
这里 $\hat y$ 表示预测值;前面的 $\frac{1}{2}$ 不改变最优解,但会让后续求导时的系数更简洁。若是分类问题,则常见的对数损失或交叉熵会自然出现。
因此,损失函数负责定义“误差是什么”,目标函数负责定义“训练要最小化什么”,经验风险则是在样本层面把这一目标变为可计算量。
2.4 微积分与最优化:梯度、Jacobian 与 Hessian
一旦目标函数被写出,训练问题就转化为最优化问题。若目标函数为 $J(\theta)$,则训练的基本形式是
这里 $\Theta$ 表示参数空间,$\arg\min$ 表示使目标函数达到最小值的参数集合。要有效求解这个问题,就需要知道当参数发生微小变化时,目标函数会怎样变化。这便把问题带入微积分。
当 $\theta$ 是标量时,导数 $J'(\theta)$ 描述函数的局部变化率;当 $\theta\in\mathbb R^d$ 是向量时,对各分量求偏导得到梯度
这里 $\nabla_\theta J(\theta)$ 表示关于参数向量 $\theta$ 的梯度;$\theta_1,\dots,\theta_d$ 表示参数各分量。梯度指出函数增长最快的方向,因此负梯度 $-\nabla_\theta J(\theta)$ 就给出下降最快的局部方向。
这可以由一阶 Taylor 展开看出。对足够小的扰动向量 $\Delta\theta$,有
这里 $\nabla_\theta J(\theta)^\top \Delta\theta$ 表示梯度与扰动的内积。若希望右边尽量减小,就应让 $\Delta\theta$ 与负梯度方向一致。于是最基本的梯度下降更新式为
这里 $\theta_t$ 表示第 $t$ 次迭代时的参数,$\eta>0$ 表示学习率,控制步长大小。梯度下降之所以成为机器学习的统一训练原型,原因正是这一局部线性近似。
当函数的输出本身也是向量时,仅有梯度还不够。设向量值函数
则其 Jacobian 矩阵定义为
这里 $J_g(\theta)\in\mathbb R^{m\times d}$ 记录了每个输出分量对每个输入分量的局部敏感性。在神经网络中,多层复合函数的反向传播正是通过 Jacobian 的链式法则传递梯度。
若进一步考虑二阶信息,则 Hessian 矩阵定义为
这里 $H_J(\theta)$ 描述目标函数的局部曲率。若 Hessian 正定,则说明该点附近函数呈局部凸形;二阶信息在 Newton 法、拟牛顿法以及后续对优化几何的讨论中非常重要。
因此,微积分与最优化在机器学习中的作用可以概括为:梯度告诉我们“往哪里更新”,Jacobian 告诉我们“复合系统中的变化如何传播”,Hessian 告诉我们“局部曲率怎样影响优化难度”。
2.5 信息论:熵、交叉熵与 KL 散度
当学习问题涉及分类、语言建模或生成建模时,我们不仅关心数值误差,还要比较概率分布之间的差异。这时信息论提供了最自然的量化工具。
设离散分布 $p$ 定义在样本空间 $\mathcal Z$ 上,其熵定义为
这里 $H(p)$ 表示分布 $p$ 的熵;$z$ 表示样本空间中的一个可能取值;$p(z)$ 表示该取值的概率。熵衡量的是分布本身的不确定性:分布越分散、越难预测,熵通常越大。
若再给定另一个分布 $q$,则交叉熵定义为
这里第一参数 $p$ 是真实分布,第二参数 $q$ 是模型分布。交叉熵表示:如果真实数据由 $p$ 产生,而我们使用按 $q$ 设计的编码或预测规则,平均会付出多少代价。
交叉熵与熵之差给出 KL 散度:
这里 $D_{\mathrm{KL}}(p\|q)$ 表示从分布 $p$ 到分布 $q$ 的相对熵;分式 $\frac{p(z)}{q(z)}$ 衡量在取值 $z$ 上两分布概率的相对比例。把上式展开可得
推导如下:
再利用熵与交叉熵的定义,
因此
由于 $H(p)$ 与模型分布 $q$ 无关,因此在优化 $q$ 时,最小化 KL 散度等价于最小化交叉熵。这正是现代分类模型和语言模型普遍使用交叉熵损失的理论基础。
特别地,若真实标签是 one-hot 向量,即真实分布在某个类别 $k$ 上取值为 $1$,其余类别上取值为 $0$,则交叉熵
会退化为
这里 $C$ 表示类别总数,$k$ 表示真实类别编号。这个式子说明,多分类中的交叉熵损失本质上就是“惩罚模型不给真实类别足够高的概率”。
因此,信息论在机器学习中的作用,是把“分布是否接近”转化为可优化的数值目标,并把概率预测与损失构造连接起来。
2.6 约束优化与正则化思想
在机器学习中,优化并不是“把误差压到越低越好”这么简单。若模型过于复杂,它可能在训练集上表现极好,却对新样本泛化很差。因此,训练常常还需要对参数施加约束或惩罚。
一个基本的约束优化问题可写成
这里“s.t.”是“subject to”的缩写,表示“满足约束条件”;$g(\theta)\le 0$ 表示参数 $\theta$ 必须落在可行域中。约束优化强调:最优参数不仅要让目标小,还要满足结构限制。
在很多机器学习模型里,硬约束会被改写为软约束,即通过正则化吸收到目标函数中。例如
这里 $\|\theta\|_2$ 表示参数向量的 Euclidean 范数,
因此 $\|\theta\|_2^2=\sum_{j=1}^d\theta_j^2$ 表示参数平方和。这个正则项会惩罚过大的参数,从而倾向于更平滑、更稳定的模型。
类似地,也可以使用 $L^1$ 正则化:
其中
$L^1$ 正则化更容易诱导稀疏解,即让部分参数恰好变为零;$L^2$ 正则化则更倾向于让参数整体缩小但不一定精确为零。
从数学上看,正则化的作用有三层:第一,它改变优化几何,使目标函数更稳定;第二,它限制模型复杂度,缓解过拟合;第三,它把“偏好何种解”这一建模选择显式写入目标函数。因此,正则化不是训练技巧的附属物,而是学习问题建模的一部分。
3. 代表模型或算法
3.1 最小二乘的矩阵形式
线性回归是最适合展示“线性代数 + 概率 + 优化”如何汇合的模型之一。设线性模型为
这里 $\hat y$ 表示模型对全部样本的预测向量,$X$ 表示数据矩阵,$w$ 表示参数向量。为简洁起见先忽略偏置项。最小二乘目标为
这里 $J(w)$ 表示关于参数 $w$ 的目标函数,$Xw-y$ 表示残差向量,$\|\cdot\|_2$ 表示 Euclidean 范数,因此 $\|Xw-y\|_2^2$ 表示所有样本残差平方和。将其展开,有
这里上标 ${}^\top$ 表示转置,因此右式是残差向量与自身的内积。对 $w$ 求梯度,可得
这里 $\nabla_w J(w)$ 表示关于参数向量 $w$ 的梯度。令梯度为零,得到正规方程
这里 $X^\top X$ 被称为 Gram 矩阵;若它可逆,则最优解满足
这个推导清楚说明了:线性代数不仅负责“写出模型”,还直接决定了闭式解的存在形式。
3.2 Logistic 损失的概率形式
对于二分类问题,可令标签 $y\in\{0,1\}$,并设模型输出
这里 $\theta$ 表示参数向量,$\theta^\top x$ 表示输入 $x$ 的线性打分;$p_\theta(y=1\mid x)$ 表示模型认为标签为 $1$ 的条件概率;$\sigma$ 表示 sigmoid 函数,它把任意实数压缩到 $(0,1)$ 区间,因此可解释为概率。于是单样本的条件概率可统一写成
这里利用了 $y\in\{0,1\}$ 的取值结构:当 $y=1$ 时,上式退化为 $\sigma(\theta^\top x)$;当 $y=0$ 时,上式退化为 $1-\sigma(\theta^\top x)$。对数似然为
这里 $\log p_\theta(y\mid x)$ 表示在参数 $\theta$ 下单个样本的对数似然。取负号后得到 logistic 损失:
这里 $L(\theta;x,y)$ 明确写出该损失依赖参数 $\theta$、输入 $x$ 与标签 $y$。这说明 logistic 损失不是人为拼凑出的惩罚项,而是由 Bernoulli 条件概率模型的负对数似然自然导出的。
3.3 梯度下降的统一表达
无论目标函数来自最小二乘、逻辑回归还是神经网络训练,其最基本的迭代形式都可写为
这里 $\theta_t$ 表示第 $t$ 步参数,$\theta_{t+1}$ 表示更新后的参数,$\eta$ 表示学习率,$\nabla_\theta J(\theta_t)$ 表示当前参数处的梯度。若使用全体样本计算梯度,则为批量梯度下降;若只用单个样本或小批量样本近似梯度,则得到随机梯度下降及其变体。统一表达式的重要性在于,它揭示了大量训练算法的共同内核并不在具体模型,而在“通过梯度利用局部几何信息逐步下降”这一思想。
3.4 交叉熵作为现代学习中的核心损失
设真实分布为 $p$,模型分布为 $q_\theta$,则交叉熵目标写成
这里 $p$ 表示真实分布,$q_\theta$ 表示由参数 $\theta$ 决定的模型分布,$z$ 表示类别或符号空间中的一个可能取值。若真实标签为 one-hot,则它退化为负对数概率
其中 $L$ 表示单样本损失,$z^\star$ 表示真实标签或真实下一个符号,因此 $q_\theta(z^\star)$ 就是模型分配给真实结果的概率。这个形式从分类一路延伸到语言模型训练,因此交叉熵之所以成为现代学习中的核心损失,根本原因并不是它“经验上常用”,而是它直接对应“让模型分布逼近真实分布”的概率目标。
4. 典型应用
当我们把一个数据集写成矩阵 $X\in\mathbb R^{n\times d}$ 时,实际上就已经在使用线性代数组织样本。无论是表格数据、图像展开后的像素向量,还是词向量序列,训练过程都依赖于这种统一表示。
当我们把分类器的输出解释为条件概率 $P(Y\mid X=x)$ 时,实际上就在使用概率论理解“预测的不确定性”。模型不仅给出一个类别,还给出不同类别的相对置信程度,这对于风险敏感决策尤为重要。
当我们使用梯度下降更新参数时,实际上是在利用目标函数的局部一阶信息来逐步逼近最优点。深度学习之所以可训练,很大程度上正是因为高维参数空间中的局部梯度仍然能提供有用方向。
当我们使用熵、交叉熵与 KL 散度时,实际上是在比较分布而不是单点误差。语言模型训练、概率生成模型与策略优化中的许多目标,都是这一思想的直接体现。
因此,本章介绍的数学工具并不是彼此孤立的知识点,而是已经在现代机器学习的典型任务中协同工作。
5. 局限性与历史转折
尽管本章整理了机器学习最常用的数学工具,但数学基础本身并不自动构成学习方法。向量、矩阵、概率、梯度、熵与正则化只是语言和工具,它们回答的是“可以怎样表示、怎样度量、怎样优化”,却还没有回答“究竟应如何从样本中组织出一个有效学习框架”。
第一,本章没有讨论训练误差与测试误差之间的关系。仅仅知道如何计算经验风险,并不意味着已经知道经验风险最小化为何能够带来泛化能力。这个问题需要把样本、假设空间、训练集与测试集放入统一框架中讨论。
第二,本章虽然给出了若干典型目标函数,但并未说明监督学习中的任务、数据划分、假设选择与模型评估应如何系统组织。也就是说,这一章提供的是“词汇表”,而不是“句法规则”。
第三,本章介绍的是后续方法共享的共性工具,因此它有意保持一般性;而真正的历史发展还需要进入具体学习范式,在样本与标签的关系中讨论经验拟合、统计推断与泛化问题。
因此,下一章的任务便十分自然:在本章提供的数学语言基础上,把这些对象组织为监督学习的正式框架,并回答机器为何能够利用有限样本学习到对未知样本仍然有效的规律。
6. 本章小结
本章的核心任务,是把机器学习中最常用的数学语言系统整理出来。线性代数负责描述数据、参数与表示变换;概率论负责刻画随机性、条件结构与期望行为;损失函数与经验风险负责把统计问题转化为可计算目标;微积分与最优化负责给出参数更新方向;信息论负责比较分布并构造现代概率模型中的核心损失;约束与正则化则负责把模型复杂度控制纳入建模过程。
这些工具之所以重要,不仅因为它们在技术上“经常出现”,更因为它们分别对应学习问题中的不同层面:表示、不确定性、目标、计算与复杂度控制。后续章节中看似风格各异的方法,实际上都建立在这一组共同语言之上。
但数学工具只是起点。真正的机器学习理论还需要进一步回答:在有限样本下,如何组织训练与评估,怎样理解经验拟合与泛化之间的关系,以及监督学习为何成为最早成熟的学习范式。这正是下一章要正式展开的问题。
关键公式
关键概念
- 向量与矩阵
- 条件概率
- 期望与方差
- 损失函数
- 经验风险
- 梯度
- 熵与交叉熵
- 正则化