机器学习范式与数学基础回顾
机器学习作为从数据中自动提取模式并做出预测或决策的科学,其核心在于建立输入与输出之间的映射关系。这一过程本质上是寻找一个函数 $f: \mathcal{X} \to \mathcal{Y}$,使得对于任意输入 $\mathbf{x} \in \mathcal{X}$,输出 $f(\mathbf{x})$ 尽可能接近真实值 $y$。这里的 $\mathcal{X}$ 称为特征空间,$\mathcal{Y}$ 称为标签空间,二者可以是离散的或连续的。根据任务目标与数据结构的差异,机器学习可划分为三大范式:监督学习、无监督学习和强化学习。监督学习使用带标签的数据集 $\mathcal{D} = \{(\mathbf{x}_i, y_i)\}_{i=1}^n$ 训练模型,目标是使预测值 $\hat{y}_i = f(\mathbf{x}_i)$ 与真实值 $y_i$ 的差异最小化;无监督学习仅使用无标签数据 $\{\mathbf{x}_i\}_{i=1}^n$,旨在发现数据内在结构,如聚类、降维或密度估计;强化学习则通过智能体与环境交互获得的奖励信号学习最优策略,其数学描述为马尔可夫决策过程。这三种范式并非截然对立,许多现代算法融合了多范式的思想,例如半监督学习同时利用少量标签数据和大量无标签数据,深度强化学习结合深度表示与策略优化。
监督学习的理论基石是经验风险最小化(Empirical Risk Minimization, ERM)原则。给定损失函数 $\ell(y, \hat{y})$ 衡量单一样本预测误差,模型 $f$ 在数据集 $\mathcal{D}$ 上的经验风险定义为 $$R_{\text{emp}}(f) = \frac{1}{n}\sum_{i=1}^n \ell(y_i, f(\mathbf{x}_i))$$ ERM 原则主张选择使经验风险最小化的模型:$$f^* = \arg\min_{f \in \mathcal{F}} R_{\text{emp}}(f)$$ 其中 $\mathcal{F}$ 是假设空间,即所有可能模型的集合。然而,直接最小化经验风险往往导致过拟合,即模型在训练集上表现优异但在新数据上泛化能力差。为此需引入正则化项控制模型复杂度,形成结构风险最小化:$$f^* = \arg\min_{f \in \mathcal{F}} \left[ \frac{1}{n}\sum_{i=1}^n \ell(y_i, f(\mathbf{x}_i)) + \lambda \Omega(f) \right]$$ 其中 $\Omega(f)$ 为复杂度惩罚项(如模型参数的 $L_2$ 范数),$\lambda > 0$ 为正则化系数。ERM 的泛化能力由统计学习理论保障,其泛化误差上界与假设空间容量(如 VC 维)和样本量相关。这一原则统一了线性回归、逻辑回归、支持向量机等众多监督学习算法,是连接数学优化与机器学习实践的桥梁。
线性代数为高维数据的表示与变换提供了语言。特征向量 $\mathbf{x} \in \mathbb{R}^d$ 可视为 $d$ 维向量空间中的点,其欧几里得范数 $\|\mathbf{x}\|_2 = \sqrt{\sum_{j=1}^d x_j^2}$ 衡量样本与原点的距离,而内积 $\langle \mathbf{x}, \mathbf{z} \rangle = \sum_{j=1}^d x_j z_j$ 不仅反映向量夹角余弦,更是核方法的基础。数据矩阵 $\mathbf{X} \in \mathbb{R}^{n \times d}$ 的每一行对应一个样本,每一列对应一个特征,其秩揭示特征间的线性相关性。奇异值分解(SVD)将 $\mathbf{X}$ 分解为 $\mathbf{U}\mathbf{\Sigma}\mathbf{V}^\top$,其中 $\mathbf{U}$ 和 $\mathbf{V}$ 是正交矩阵,$\mathbf{\Sigma}$ 是对角矩阵,对角线元素 $\sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r > 0$ 为奇异值。SVD 的几何意义是找到数据方差最大的正交方向:$\mathbf{V}$ 的列(右奇异向量)是主成分方向,$\mathbf{\Sigma}^2$ 的对角线元素对应主成分方差。主成分分析(PCA)通过保留前 $k$ 个最大奇异值实现降维,将原始 $d$ 维数据投影到 $k$ 维子空间 $\mathbf{X}\mathbf{V}_k$,其中 $\mathbf{V}_k$ 包含前 $k$ 个右奇异向量。特征值分解(EVD)则是 SVD 在对称矩阵(如协方差矩阵 $\mathbf{X}^\top\mathbf{X}$)上的特例,其 eigenvectors 给出主成分方向,eigenvalues 给出方差。矩阵的 Frobenius 范数 $\|\mathbf{X}\|_F = \sqrt{\sum_{i,j} X_{ij}^2}$ 和谱范数 $\|\mathbf{X}\|_2 = \sigma_1$ 常用于正则化与收敛性分析。
概率论为处理不确定性与随机性提供框架。随机变量 $X$ 是定义在样本空间 $\Omega$ 上的实值函数,其概率分布 $P(X=x)$ 描述取值规律。连续型随机变量由概率密度函数 $p(x)$ 描述,满足 $P(a \leq X \leq b) = \int_a^b p(x)dx$。条件概率 $P(Y=y|X=x) = \frac{P(X=x,Y=y)}{P(X=x)}$ 刻画已知 $X$ 时 $Y$ 的分布,是贝叶斯推理的核心。贝叶斯定理 $$P(\theta|D) = \frac{P(D|\theta)P(\theta)}{P(D)}$$ 将先验分布 $P(\theta)$、似然 $P(D|\theta)$ 与后验分布 $P(\theta|D)$ 联系起来,为参数估计提供概率解释。常见分布包括:高斯分布 $\mathcal{N}(\mu, \sigma^2)$ 描述连续测量误差,其概率密度为 $p(x) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}$;伯努利分布 $\text{Bernoulli}(p)$ 描述二元结果,$P(X=1)=p$;多项式分布 $\text{Multinomial}(p_1,\ldots,p_k)$ 描述 $k$ 类分类的计数。多元高斯分布 $\mathcal{N}(\boldsymbol{\mu}, \boldsymbol{\Sigma})$ 的密度为 $$p(\mathbf{x}) = \frac{1}{(2\pi)^{d/2} |\boldsymbol{\Sigma}|^{1/2}} \exp\left(-\frac{1}{2}(\mathbf{x}-\boldsymbol{\mu})^\top \boldsymbol{\Sigma}^{-1} (\mathbf{x}-\boldsymbol{\mu})\right)$$ 其中 $\boldsymbol{\Sigma}$ 为协方差矩阵,二次型 $(\mathbf{x}-\boldsymbol{\mu})^\top \boldsymbol{\Sigma}^{-1} (\mathbf{x}-\boldsymbol{\mu})$ 定义马氏距离,考虑特征相关性。KL 散度 $D_{\text{KL}}(P\|Q) = \int p(x) \log\frac{p(x)}{q(x)} dx$ 衡量两个分布的差异,是变分推断与生成模型的关键度量。大数定律与中心极限定理为统计推断提供理论依据,前者保证样本均值收敛于期望,后者说明大量独立随机变量和近似服从高斯分布。
优化理论是模型训练的数学引擎。梯度下降法通过迭代更新参数 $\boldsymbol{\theta} \leftarrow \boldsymbol{\theta} - \eta \nabla_{\boldsymbol{\theta}} \mathcal{L}(\boldsymbol{\theta})$ 最小化目标函数 $\mathcal{L}$,其中 $\eta > 0$ 为学习率。其几何意义是沿负梯度方向(函数值下降最快的方向)进行一阶泰勒展开:$$\mathcal{L}(\boldsymbol{\theta} - \eta \nabla\mathcal{L}) \approx \mathcal{L}(\boldsymbol{\theta}) - \eta \|\nabla\mathcal{L}\|_2^2$$ 当目标函数为凸函数时,梯度下降保证收敛到全局最小值。随机梯度下降(SGD)使用单个样本或小批量(mini-batch)的梯度近似代替完整梯度,显著加速大规模数据训练,其更新式为 $\boldsymbol{\theta} \leftarrow \boldsymbol{\theta} - \eta \nabla_{\boldsymbol{\theta}} \ell(\boldsymbol{\theta}; \mathbf{x}_i, y_i)$。动量法引入速度变量 $\mathbf{v}$ 累积历史梯度信息:$$\mathbf{v} \leftarrow \beta \mathbf{v} + (1-\beta) \nabla\mathcal{L}(\boldsymbol{\theta}), \quad \boldsymbol{\theta} \leftarrow \boldsymbol{\theta} - \eta \mathbf{v}$$ 其中 $\beta \in [0,1)$ 通常取 0.9,可加速收敛并减少振荡。自适应学习率方法如 Adam 结合动量与二阶矩估计:$$\mathbf{m} \leftarrow \beta_1 \mathbf{m} + (1-\beta_1) \nabla\mathcal{L}, \quad \mathbf{v} \leftarrow \beta_2 \mathbf{v} + (1-\beta_2) (\nabla\mathcal{L})^2$$ 然后进行偏差校正 $\hat{\mathbf{m}} = \mathbf{m}/(1-\beta_1^t)$, $\hat{\mathbf{v}} = \mathbf{v}/(1-\beta_2^t)$,最后更新 $\boldsymbol{\theta} \leftarrow \boldsymbol{\theta} - \eta \hat{\mathbf{m}}/(\sqrt{\hat{\mathbf{v}}} + \epsilon)$。凸优化研究凸函数在凸集上的最小化,凸函数满足 $f(\lambda \mathbf{x} + (1-\lambda)\mathbf{y}) \leq \lambda f(\mathbf{x}) + (1-\lambda)f(\mathbf{y})$,其局部最小值即全局最小值。常见凸优化问题包括最小二乘、LASSO($L_1$ 正则化)和 SVM 的 primal 问题。拉格朗日乘子法处理等式约束优化:$$\min_{\mathbf{x}} f(\mathbf{x}) \quad \text{s.t.} \quad g_i(\mathbf{x}) = 0$$ 构造拉格朗日函数 $\mathcal{L}(\mathbf{x}, \boldsymbol{\lambda}) = f(\mathbf{x}) + \sum_i \lambda_i g_i(\mathbf{x})$,求解 $\nabla_{\mathbf{x}, \boldsymbol{\lambda}} \mathcal{L} = 0$。KKT 条件扩展至不等式约束 $h_j(\mathbf{x}) \leq 0$,包含原始可行性、对偶可行性、互补松弛性和梯度条件,是 SVM 对偶问题推导的基础。
为将抽象数学工具具象化,考虑房价预测问题。给定 $n$ 套房子的特征 $\mathbf{x}_i = [\text{面积}, \text{卧室数}, \text{房龄}]^\top \in \mathbb{R}^3$ 与对应价格 $y_i \in \mathbb{R}$,目标是构建线性回归模型 $\hat{y} = \boldsymbol{\theta}^\top \mathbf{x} + b$。将偏置项 $b$ 融入权重向量 $\boldsymbol{\theta}' = [\boldsymbol{\theta}^\top, b]^\top$ 并添加常数特征 $x_0=1$,模型可统一写为 $\hat{y} = \boldsymbol{\theta}'^\top \mathbf{x}'$。最小化均方误差损失:$$\mathcal{L}(\boldsymbol{\theta}') = \frac{1}{2n} \sum_{i=1}^n (\boldsymbol{\theta}'^\top \mathbf{x}_i' - y_i)^2 = \frac{1}{2n} \|\mathbf{X}'\boldsymbol{\theta}' - \mathbf{y}\|_2^2$$ 其中 $\mathbf{X}' \in \mathbb{R}^{n \times 4}$ 是设计矩阵,$\mathbf{y} \in \mathbb{R}^n$ 是标签向量。损失函数对 $\boldsymbol{\theta}'$ 的梯度为:$$\nabla_{\boldsymbol{\theta}'} \mathcal{L} = \frac{1}{n} \mathbf{X}'^\top (\mathbf{X}'\boldsymbol{\theta}' - \mathbf{y})$$ 推导中需使用矩阵求导法则:若 $f(\boldsymbol{\theta}) = \frac{1}{2} \|\mathbf{A}\boldsymbol{\theta} - \mathbf{b}\|_2^2$,则 $\nabla_{\boldsymbol{\theta}} f = \mathbf{A}^\top (\mathbf{A}\boldsymbol{\theta} - \mathbf{b})$。该法则可基于分量推导:$f = \frac{1}{2} \sum_i (\sum_j A_{ij}\theta_j - b_i)^2$,对 $\theta_k$ 求偏导得 $\frac{\partial f}{\partial \theta_k} = \sum_i (\sum_j A_{ij}\theta_j - b_i) A_{ik} = [\mathbf{A}^\top (\mathbf{A}\boldsymbol{\theta} - \mathbf{b})]_k$。当 $\mathbf{X}'^\top \mathbf{X}'$ 可逆时,解析解为 $\boldsymbol{\theta}'^* = (\mathbf{X}'^\top \mathbf{X}')^{-1} \mathbf{X}'^\top \mathbf{y}$,对应正规方程。实践中常采用梯度下降迭代求解,其轨迹可可视化如下:
```mermaid graph LR A[初始化参数 θ⁰] --> B[计算梯度 ∇L(θᵗ)] B --> C{梯度范数<br>是否小于阈值?} C -- 否 --> D[更新 θᵗ⁺¹ = θᵗ - η∇L] D --> B C -- 是 --> E[收敛至局部最优解] ```
若特征存在多重共线性(如面积与卧室数高度相关),$\mathbf{X}'^\top \mathbf{X}'$ 接近奇异,导致解不稳定。此时可引入 $L_2$ 正则化(岭回归):$$\mathcal{L}_{\text{ridge}}(\boldsymbol{\theta}') = \frac{1}{2n} \|\mathbf{X}'\boldsymbol{\theta}' - \mathbf{y}\|_2^2 + \frac{\lambda}{2} \|\boldsymbol{\theta}'\|_2^2$$ 梯度变为 $\nabla = \frac{1}{n} \mathbf{X}'^\top (\mathbf{X}'\boldsymbol{\theta}' - \mathbf{y}) + \lambda \boldsymbol{\theta}'$,解析解为 $\boldsymbol{\theta}'^* = (\mathbf{X}'^\top \mathbf{X}' + n\lambda \mathbf{I})^{-1} \mathbf{X}'^\top \mathbf{y}$。正则化等价于在贝叶斯框架下假设参数服从高斯先验 $\boldsymbol{\theta}' \sim \mathcal{N}(0, \sigma^2\mathbf{I})$,后验众数即为正则化解。
为在计算机中实现上述流程,需配置 Python 环境并加载数据。推荐使用 Anaconda 发行版,其包含科学计算所需的核心库:NumPy 提供多维数组与线性代数操作,Pandas 处理表格数据,Matplotlib 与 Seaborn 进行可视化,Scikit-learn 实现经典机器学习算法。以下代码展示环境检查与房价数据加载:
```python
环境验证
import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import fetch_california_housing from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler import warnings warnings.filterwarnings('ignore')
加载加州房价数据集(替代波士顿房价的现代选择)
housing = fetch_california_housing() X = housing.data # 特征矩阵 (n_samples, n_features) y = housing.target # 目标向量 (n_samples,) feature_names = housing.feature_names
print(f"数据集规模: {X.shape[0]} 个样本, {X.shape[1]} 个特征") print(f"特征名称: {feature_names}") print(f"目标范围: [{y.min():.2f},