机器学习数学基础

机器学习的核心是数学。本文整理 ML 必备的数学知识,聚焦于实际应用。

概览:数学与 ML 的对应关系

┌─────────────────────────────────────────────────────────────────┐
│                    机器学习数学体系                              │
│                                                                 │
│   线性代数           微积分            概率统计          优化    │
│      │                 │                  │              │      │
│      ▼                 ▼                  ▼              ▼      │
│   数据表示         梯度计算           不确定性        参数学习   │
│   特征变换         反向传播           贝叶斯推断      损失最小化 │
│   降维/PCA         链式法则           分布建模        收敛分析  │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
数学分支ML 应用
线性代数数据表示、特征变换、降维、注意力机制
微积分梯度下降、反向传播、优化
概率统计贝叶斯推断、分布建模、不确定性估计
优化理论损失函数、收敛性、正则化

1. 线性代数

1.1 向量与矩阵

向量:有序数列,表示数据点或特征

矩阵:二维数组,表示数据集或变换

ML 中的应用

概念示例
样本一个向量
数据集矩阵 (n 个样本,d 维特征)
权重矩阵
图像张量

1.2 向量运算

点积(内积)

ML 应用

  • 相似度计算(余弦相似度)
  • 神经网络的线性层:
import numpy as np
 
# 点积
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
dot_product = np.dot(a, b)  # 32
 
# 余弦相似度
cos_sim = np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

范数:向量的”长度”

范数定义用途
L1 范数稀疏正则化(Lasso)
L2 范数权重衰减(Ridge)
L∞ 范数对抗样本

1.3 矩阵运算

矩阵乘法

ML 应用:全连接层

# 矩阵乘法
X = np.random.randn(32, 784)  # 32 个 784 维样本
W = np.random.randn(784, 128)  # 线性变换
Y = X @ W  # (32, 128)

转置

常用性质

1.4 特征值与特征向量

定义:对于方阵 ,若存在非零向量 和标量 使得:

是特征值, 是特征向量。

几何意义:特征向量是变换后方向不变的向量,特征值是拉伸倍数。

ML 应用

  • PCA:用协方差矩阵的特征向量做降维
  • 谱聚类:用拉普拉斯矩阵的特征向量
# 特征分解
A = np.array([[3, 1], [1, 3]])
eigenvalues, eigenvectors = np.linalg.eig(A)
# eigenvalues: [4, 2]
# eigenvectors: 每列是一个特征向量

1.5 奇异值分解(SVD)

定义:任意矩阵 可分解为:

其中:

  • :左奇异向量(正交)
  • :奇异值(对角,降序)
  • :右奇异向量(正交)

ML 应用

  • 降维:保留前 k 个奇异值
  • 推荐系统:矩阵分解
  • 图像压缩
# SVD
A = np.random.randn(100, 50)
U, S, Vt = np.linalg.svd(A, full_matrices=False)
 
# 低秩近似(保留前 10 个奇异值)
k = 10
A_approx = U[:, :k] @ np.diag(S[:k]) @ Vt[:k, :]

1.6 正定矩阵

定义:对于对称矩阵 ,若对所有非零向量

是正定的。

判断方法:所有特征值为正

ML 应用

  • 协方差矩阵(半正定)
  • 核矩阵
  • 凸优化

2. 微积分

2.1 导数与梯度

导数:函数在某点的变化率

偏导数:多变量函数对某一变量的导数

梯度:所有偏导数组成的向量

几何意义:梯度指向函数增长最快的方向

2.2 常用导数公式

函数导数

激活函数导数

激活函数公式导数
Sigmoid
Tanh
ReLU
Softmax见 Jacobian 矩阵

2.3 链式法则(Chain Rule)

核心:复合函数求导

多变量形式

ML 应用:反向传播的数学基础

前向传播: x → h = Wx → a = σ(h) → L = loss(a, y)

反向传播(链式法则):
∂L/∂W = ∂L/∂a · ∂a/∂h · ∂h/∂W

2.4 雅可比矩阵与海森矩阵

雅可比矩阵:向量值函数的一阶导数

海森矩阵:二阶导数矩阵

ML 应用

  • 雅可比:神经网络层间梯度传播
  • 海森:二阶优化(Newton 法)、曲率分析

2.5 自动微分

核心思想:利用链式法则自动计算梯度

import torch
 
# 定义变量,启用梯度
x = torch.tensor([2.0, 3.0], requires_grad=True)
W = torch.tensor([[1.0, 2.0], [3.0, 4.0]], requires_grad=True)
 
# 前向传播
y = W @ x
loss = y.sum()
 
# 反向传播(自动计算梯度)
loss.backward()
 
print(W.grad)  # ∂loss/∂W
print(x.grad)  # ∂loss/∂x

2.6 矩阵求导(Matrix Calculus)

重要:这是理解线性回归、神经网络梯度推导的核心知识。

基本记号

类型输入输出结果形状
标量对向量
向量对向量 (雅可比)
标量对矩阵

常用公式(标量对向量)

函数 梯度 说明
线性函数
同上(标量)
L2 范数平方
二次型
最小二乘

向量对向量(雅可比矩阵)

函数 雅可比

线性回归推导示例

损失函数

展开

求梯度(利用公式):

令梯度为零,得正规方程:

记忆技巧

  1. 维度匹配:结果形状必须与被求导变量相同
  2. 转置规则
  3. 链式法则
  4. 标量技巧:标量的转置等于自身,

参考资源


3. 概率与统计

3.1 基本概念

概率:事件发生的可能性

条件概率

独立性

贝叶斯定理

ML 解释

术语含义
先验(Prior)
似然(Likelihood)
后验(Posterior)

3.2 期望与方差

期望(均值):

方差

标准差

协方差

相关系数

3.3 常见概率分布

离散分布

分布参数概率质量函数用途
伯努利二分类
二项n 次实验中成功次数
多项多分类
泊松计数数据

连续分布

分布参数概率密度函数用途
均匀随机初始化
正态(高斯)连续值建模
指数时间间隔

高斯分布的重要性

  • 中心极限定理:大量独立随机变量之和趋向正态
  • 最大熵原理:给定均值和方差,高斯熵最大
  • 数学性质好:共轭性、解析解
import numpy as np
from scipy import stats
 
# 高斯分布
mu, sigma = 0, 1
x = np.linspace(-4, 4, 100)
pdf = stats.norm.pdf(x, mu, sigma)
 
# 采样
samples = np.random.normal(mu, sigma, size=1000)

3.4 最大似然估计(MLE)

目标:找到使观测数据概率最大的参数

取对数(方便计算):

示例:高斯分布

观测数据 ,估计均值:

与损失函数的关系

分布假设对应损失函数
高斯MSE(均方误差)
伯努利Binary Cross-Entropy
多项Cross-Entropy

3.5 信息论基础

信息熵:随机变量的不确定性

交叉熵:用 q 编码 p 的平均编码长度

KL 散度:分布差异度量

ML 应用

  • 分类损失:交叉熵
  • VAE:KL 散度正则化
  • 知识蒸馏:软标签对齐

4. 优化理论

4.1 梯度下降

核心思想:沿梯度反方向更新参数

其中 是学习率。

变体

方法更新规则特点
SGD基础版本
Momentum
加速、减少震荡
AdaGrad自适应学习率(累积梯度平方)稀疏数据
RMSprop指数移动平均梯度平方解决 AdaGrad 衰减
AdamMomentum + RMSprop最常用

Adam 更新规则

import torch.optim as optim
 
# 常用优化器
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)
optimizer = optim.Adam(model.parameters(), lr=0.001, betas=(0.9, 0.999))
optimizer = optim.AdamW(model.parameters(), lr=0.001, weight_decay=0.01)

4.2 凸优化

凸函数定义

重要性质

  • 局部最优 = 全局最优
  • 梯度下降保证收敛

判断方法:海森矩阵半正定(

常见凸函数

非凸优化(深度学习):

  • 损失函数非凸
  • 可能陷入局部最优
  • 实践中效果良好(鞍点、平坦极小值)

4.3 正则化

L2 正则化(权重衰减)

梯度更新:

L1 正则化(Lasso)

特点:产生稀疏解(部分权重为 0)

贝叶斯视角

正则化等价先验
L2高斯先验
L1拉普拉斯先验

4.4 学习率调度

策略公式特点
Step Decay阶梯下降
Cosine Annealing平滑下降
Warmup前 N 步线性增长稳定初期训练
One Cycle先升后降快速收敛
from torch.optim.lr_scheduler import CosineAnnealingLR, OneCycleLR
 
scheduler = CosineAnnealingLR(optimizer, T_max=100, eta_min=1e-6)
scheduler = OneCycleLR(optimizer, max_lr=0.01, total_steps=1000)

5. 实践速查

5.1 NumPy 常用操作

import numpy as np
 
# 创建
a = np.array([1, 2, 3])
A = np.zeros((3, 4))
B = np.ones((3, 4))
I = np.eye(3)  # 单位矩阵
R = np.random.randn(3, 4)  # 标准正态
 
# 基本运算
C = A @ B.T          # 矩阵乘法
d = np.dot(a, a)     # 点积
norm = np.linalg.norm(a)  # 范数
 
# 线性代数
det = np.linalg.det(I)    # 行列式
inv = np.linalg.inv(I)    # 逆矩阵
vals, vecs = np.linalg.eig(I)  # 特征分解
U, S, Vt = np.linalg.svd(A)    # SVD
 
# 统计
mean = np.mean(R)
std = np.std(R)
cov = np.cov(R)

5.2 PyTorch 张量操作

import torch
 
# 创建
x = torch.tensor([1.0, 2.0, 3.0])
X = torch.randn(3, 4)
 
# 梯度
x = torch.randn(3, requires_grad=True)
y = (x ** 2).sum()
y.backward()
print(x.grad)
 
# 广播
a = torch.randn(3, 1)
b = torch.randn(1, 4)
c = a + b  # (3, 4)
 
# 常用函数
softmax = torch.softmax(X, dim=-1)
log_softmax = torch.log_softmax(X, dim=-1)

5.3 学习资源推荐

书籍

  • 《Mathematics for Machine Learning》— 免费在线,系统全面
  • 《Linear Algebra Done Right》— 线性代数理论
  • 《Pattern Recognition and Machine Learning》— 概率视角

课程

  • MIT 18.06 Linear Algebra(Gilbert Strang)
  • Stanford CS229 Machine Learning(数学部分)
  • 3Blue1Brown(可视化讲解)

在线工具

  • Desmos(函数可视化)
  • GeoGebra(几何可视化)
  • WolframAlpha(符号计算)

6. 速查表

6.1 线性代数速查

概念符号/公式说明
点积相似度
L2 范数向量长度
矩阵乘法线性变换
转置行列互换
逆矩阵逆变换
特征值不变方向
SVD通用分解

6.2 微积分速查

概念公式说明
链式法则复合函数求导
梯度最速上升方向
Sigmoid 导数激活函数梯度
Softmax + CE简洁梯度

6.3 概率统计速查

概念公式说明
贝叶斯后验推断
期望平均值
方差离散程度
高斯最常用分布
交叉熵分类损失
KL 散度分布差异

相关笔记