应用与计算数学
机器学习的数学
支撑从数据中学习模式的算法的线性代数、优化与概率论。
直观学习即在地形中下降
假设你想预测某样东西——房价、垃圾邮件标签、句子中的下一个词——使用一个带有可调「旋钮」θ 的模型。训练模型意味着选择 θ,使所选的误差度量 L(θ)(即损失)尽可能小。如果把 L 想象成在所有旋钮设置空间上的地形高度,学习就变成了一个物理过程:从某处出发,反复向下坡方向迈步。
z=sinxcosy:一个有许多山丘与山谷的损失地形。与单一碗状不同,从不同起点附近出发的梯度下降可能滑入不同的山谷——不同的局部极小值。你得到的形状取决于模型。用平方误差训练的线性模型,其损失恰好是一个抛物面——正是用来说明凸优化的那种单一碗状——因此梯度下降总能找到最佳拟合。而由许多层非线性函数复合而成的深度神经网络,其损失地形通常更接近上面那种凹凸不平的曲面:布满局部凹陷、平坦高原和鞍点。
大学经验风险最小化
定义: 损失函数
损失函数 ℓ(y^,y) 衡量当真实值为 y 时预测 y^ 有多糟:当 y^ 接近 y 时为 0(或很小),预测越差则值越大。对回归问题,常见选择是平方误差 ℓ(y^,y)=(y^−y)2;对分类问题,交叉熵是标准做法。
定义: 经验风险
给定包含 n 个样本 {(xi,yi)}i=1n 的训练集和模型 fθ,经验风险 R^(θ) 是训练集上的平均损失。训练模型——包括线性回归、逻辑回归乃至深度网络——意味着寻找使 R^(θ) 最小的 θ。
R^(θ)=n1i=1∑nℓ(fθ(xi),yi) 实际上,我们关心的是在新数据上的表现,而不仅是训练集:总体(真实)风险 R(θ) 是在样本来源的整个潜在分布 D 上对损失取平均,而不仅是我们碰巧采样到的 n 个样本。由于 D 未知,R(θ) 无法直接计算——R^(θ) 只是一个替代量,差值 R(θ)−R^(θ) 称为泛化差距。
R(θ)=E(x,y)∼D[ℓ(fθ(x),y)] 大学梯度下降及其收敛速度
梯度下降通过反复沿使 L 下降最快的方向——负梯度方向——移动来最小化 R^(θ)(下文简写为 L(θ))。每一步计算 ∇L(θk),并移动一段由学习率 η>0控制的小距离。
θk+1=θk−η∇L(θk) 常见的训练算法及其更新规则| 方法 | 更新规则 | 每步开销 | 典型用途 |
|---|
| 批量梯度下降 | θk+1=θk−η∇L(θk) | 每步 O(n) | 小型数据集,精确梯度 |
| 随机梯度下降 | θk+1=θk−η∇ℓi(θk) | 每步 O(1) | 超大数据集,更新快但有噪声 |
| 小批量SGD | θk+1=θk−ηb1∑i∈B∇ℓi(θk) | 每步 O(b) | 深度学习的标准做法;兼顾速度与稳定性 |
| 动量法 | vk+1=βvk+∇L(θk),θk+1=θk−ηvk+1 | 每步 O(n) 或 O(b) | 加速穿过狭窄山谷与高原地带 |
设 L 为凸函数且 L-光滑(其梯度满足利普希茨常数为 L:∥∇L(x)−∇L(y)∥≤L∥x−y∥),且 θ⋆ 使 L 取最小值。步长 η=1/L 的梯度下降在 K 步后满足 L(θK)−L(θ⋆)≤2KL∥θ0−θ⋆∥2。
为什么成立?
光滑性保证每次梯度步骤使 L 下降的量与梯度大小的平方成正比,因此 L(θk) 永不增加。凸性使我们能将每步的下降量与仍剩余的差距 L(θk)−L(θ⋆) 相比较。把 K 步中保证的下降量累加起来——一个望远镜求和——表明总下降量是有界的,而由于不增数列中的最佳点至少和平均值一样好,最终的差距必须以 1/K 的速度缩小。
证明
由 L-光滑性,对任意 x,y:L(y)≤L(x)+∇L(x)⊤(y−x)+2L∥y−x∥2。取 y=θk+1=θk−L1∇L(θk)、x=θk,得到下降引理:L(θk+1)≤L(θk)−2L1∥∇L(θk)∥2。
由 L 的凸性:L(θk)≤L(θ⋆)+∇L(θk)⊤(θk−θ⋆)。将其加到下降引理上:L(θk+1)−L(θ⋆)≤∇L(θk)⊤(θk−θ⋆)−2L1∥∇L(θk)∥2。
对右边配方:∇L(θk)⊤(θk−θ⋆)−2L1∥∇L(θk)∥2=2L(∥θk−θ⋆∥2−θk−θ⋆−L1∇L(θk)2)=2L(∥θk−θ⋆∥2−∥θk+1−θ⋆∥2),因为 θk+1−θ⋆=θk−θ⋆−L1∇L(θk)。
于是 L(θk+1)−L(θ⋆)≤2L(∥θk−θ⋆∥2−∥θk+1−θ⋆∥2)。对 k=0,…,K−1 求和,右边望远镜式相消为 2L(∥θ0−θ⋆∥2−∥θK−θ⋆∥2)≤2L∥θ0−θ⋆∥2。
下降引理还表明 L(θk) 是非增的,因此 L(θK) 不超过 L(θ1),…,L(θK) 的平均值:L(θK)−L(θ⋆)≤K1∑k=1K(L(θk)−L(θ⋆))≤2KL∥θ0−θ⋆∥2,这正是所要证明的界。
大学反向传播:大规模的链式法则
一个具有 D 层的网络计算 z(l)=W(l)a(l−1)+b(l),再应用非线性函数 a(l)=σ(z(l)),其中 l=1,…,D,a(0) 为输入。若对每一层都天真地单独套用链式法则来计算 ∂L/∂W(l),会一遍遍重复相同的子计算,耗时随深度呈二次增长。
z(l)=W(l)a(l−1)+b(l),a(l)=σ(z(l)) 反向传播通过为每一层只计算一个中间量——误差项 δ(l)=∂L/∂z(l)——来避免重复计算,从输出层开始向后推进。每个 δ(l) 都直接由 δ(l+1) 构造而成,是复用而非重新计算,而权重梯度则立即由 δ(l) 与该层的输入 a(l−1) 得出:
δ(l)=((W(l+1))⊤δ(l+1))⊙σ′(z(l)),∂W(l)∂L=δ(l)(a(l−1))⊤ 由于每个 δ(l) 只计算一次并被其前一层复用,一次反向传播的总开销与 D 成正比,与一次前向传播同阶——而非 D2。正是这一点使得训练具有数十甚至数百层的网络在计算上变得可行。
大学降维:SVD与PCA
真实数据集常常含有冗余、相关的特征。奇异值分解(SVD)将任意矩阵 A(例如以 n 个已中心化的数据点为行)分解为 A=UΣV⊤,其中 U 与 V 的列向量标准正交,Σ 是对角矩阵,对角元为非负的奇异值 σ1≥σ2≥⋯≥0。
A=UΣV⊤ 主成分分析(PCA)使用右奇异向量 v1,v2,…(V 的列)作为新的坐标轴:v1 是(已中心化)数据分布最开的方向,v2 是次开的方向,依此类推,每个方向都与之前的正交。只保留前 k 个方向而舍弃其余方向,能在所有 k 维投影中尽可能多地保留数据的变化,从而压缩数据。
设 A∈Rm×n 的奇异值为 σ1≥σ2≥⋯≥σr>0,对 k<r 令 Ak=∑i=1kσiuivi⊤ 只保留前 k 个奇异分量。则对任意满足 rank(B)≤k 的矩阵 B,都有 ∥A−B∥2≥σk+1,且该界可以取到:∥A−Ak∥2=σk+1。因此 Ak 是 A 在算子范数下的最优秩-k 近似。
为什么成立?
奇异值衡量 A 沿每个正交方向 vi 对向量的拉伸程度;保留最大的若干个、舍弃最小的,就是舍弃 A 拉伸最少的方向。任何其他秩-k 矩阵 B 都必定无法重构前 k+1 个奇异方向中的某个方向(这些方向太多,装不进 k 维的像空间),而这一失败至少要付出 σk+1 的代价。
证明
可达性。 由于 U,V 的列标准正交,∥A−Ak∥2=∥U(Σ−Σk)V⊤∥2=∥Σ−Σk∥2,其中 Σk 保留前 k 个奇异值而将其余置零。Σ−Σk 是对角矩阵,元素为 0,…,0,σk+1,…,σr,因此其算子范数即为其最大元素 σk+1。
最优性。 设 B 为满足 rank(B)≤k 的任意矩阵;其零空间(核)维数至少为 n−k。令 S=span(v1,…,vk+1) 为一个 (k+1) 维子空间。由于 dim(kerB)+dim(S)≥(n−k)+(k+1)=n+1>n,这两个子空间必定在原点之外也有交集:存在单位向量 z∈S 使得 Bz=0。
写成 z=∑i=1k+1civi,其中 ∑i=1k+1ci2=1(因为 z 为单位范数且 vi 标准正交)。由于 Bz=0,利用 ui 的标准正交性可得 ∥(A−B)z∥=∥Az∥=∑i=1k+1ciσiui=∑i=1k+1ci2σi2。
由于对每个 i≤k+1 都有 σi≥σk+1,故 ∑i=1k+1ci2σi2≥σk+12∑i=1k+1ci2=σk+12。因此对任意秩 ≤k 的矩阵 B 都有 ∥A−B∥2≥∥(A−B)z∥≥σk+1,结合可达性即证明了该定理。
同一个 Ak 在秩 ≤k 的矩阵中也使 Frobenius 范数误差最小,被舍弃的误差等于被舍弃的奇异值:∥A−Ak∥F=∑i=k+1rσi2。由于数据的总方差等于 ∑iσi2,这恰好就是 PCA 只保留 k 个成分时所遗漏的方差——这个量越小,k 维就越能忠实地概括原始数据。
∥A−Ak∥F=i=k+1∑rσi2 大学实际应用与典型例题
这些工具几乎共同出现在每一个实用的机器学习系统中:梯度下降(及其变体)训练推荐引擎、图像分类器和语言模型;反向传播使得为语音识别和计算机视觉训练深度网络在计算上变得可行;而PCA则用于压缩基因组数据、对传感器读数去噪,以及将高维金融或科学数据集可视化为二维或三维。
例题: 房价预测中梯度下降的一步
某房地产网站将预测价格(单位 100,000 美元)建模为 y^=θx,其中 x 是房屋面积(单位 1,000 平方英尺)。三套训练房屋给出 (xi,yi):(1,2)、(2,3)、(3,5)。使用平方误差经验风险 R^(θ)=31∑i=13(θxi−yi)2,从 θ0=1 出发,求以 η=0.05 进行一步梯度下降后的 θ1。
解答
先求导:∇R^(θ)=32∑i=13xi(θxi−yi)=32[(θ−2)+2(2θ−3)+3(3θ−5)]=32(14θ−23)。
在 θ0=1 处求值:预测值为 y^i=1,2,3;残差 y^i−yi=−1,−1,−2;因此 ∇R^(1)=32(14⋅1−23)=32(−9)=−6。
应用更新规则:θ1=θ0−η∇R^(θ0)=1−0.05×(−6)=1+0.3=1.3。
梯度为负,因此梯度下降正确地将 θ 向上推:增大单位面积价格斜率降低了该训练集上的平方误差,使 θ 趋向真正的最小二乘最优值(令 ∇R^(θ)=0 可得 θ⋆=23/14≈1.64)。
例题: 求协方差矩阵的主成分
两个已中心化的特征具有协方差矩阵 Σ=(4221)。求第一主成分的方向及其所解释的总方差比例。
解答
主方向是 Σ 的特征向量。特征方程为 det(Σ−λI)=(4−λ)(1−λ)−2⋅2=λ2−5λ=0,得特征值 λ1=5,λ2=0。
对 λ1=5:解 (Σ−5I)v=0,即 (−122−4)v=0,得 v∝(2,1)。归一化后,第一主成分方向为 u1=51(2,1)。
总方差为 tr(Σ)=4+1=5,等于 λ1+λ2=5+0。第一成分所解释的方差比例为 λ1/(λ1+λ2)=5/5=100%。
由于 λ2=0,该数据集恰好是一维的:每个点都精确地落在方向 (2,1) 上,因此投影到这一条直线上(秩-1近似)完全不丢失信息,这与 Eckart–Young 公式 ∥A−A1∥F=λ2=0 相符。
损失为 L(θ)=(θ−4)2。从 θ0=0 出发,以学习率 η=0.1 进行一步梯度下降后,θ1 是多少?
对于包含 n 个样本 {(xi,yi)} 和损失函数 ℓ 的训练集,哪个公式正确定义了经验风险 R^(θ)?
某矩阵的奇异值为 σ1=6,σ2=3,σ3=2。最优秩-1近似 A1 的 Frobenius 范数误差 ∥A−A1∥F 是多少?
某自动驾驶汽车的视觉网络有50层。用反向传播计算所有权重的梯度所花费的开销,大约与网络多做一次前向传播相当,而不是多花50倍。反向传播的哪一性质解释了这一点?
参考文献
- Ian Goodfellow, Yoshua Bengio, Aaron Courville (2016). Deep Learning
- Christopher M. Bishop (2006). Pattern Recognition and Machine Learning
- Chiyuan Zhang, Samy Bengio, Moritz Hardt, Benjamin Recht, Oriol Vinyals (2017). Understanding deep learning requires rethinking generalization · arXiv:1611.03530
- Arthur Jacot, Franck Gabriel, Clément Hongler (2018). Neural Tangent Kernel: Convergence and Generalization in Neural Networks · arXiv:1806.07572
- Mikhail Belkin, Daniel Hsu, Siyuan Ma, Soumik Mandal (2019). Reconciling modern machine learning practice and the classical bias-variance trade-off · arXiv:1812.11118