Browser does not support (or has disabled) JavaScript, some features of this page may not work properly

EE6406 Analytic & Ensemble Machine Learning 中文复习笔记(持续更新)

更新范围:本文目前只覆盖已有课程回放的 Week 1 / Lecture 1。后续 Lecture 虽可能已有文件,但在确认对应回放前不会写成已授内容。

第一章:机器学习、解析学习与集成学习的统一入口

本章回答三个问题:机器究竟“学”了什么?为什么可以不用反复迭代而直接解出一部分模型?为什么多个并不完美的学习器可能胜过一个学习器?主线不是记算法名称,而是把数据、任务、评价、求解方法和模型组合放进同一框架。

1. 用 E-T-P 定义机器学习

机器学习(Machine Learning, ML)的核心不是“使用了复杂模型”,而是系统利用经验后,在指定任务上的可测性能得到改善。用 Mitchell 的表述,可把一次学习问题写成三元组:

  • \(E\)(experience,经验):训练样本、交互轨迹或其他可用于学习的信息;
  • \(T\)(task,任务):分类、回归、聚类或序列决策等;
  • \(P\)(performance measure,性能度量):准确率、错误率、F1 分数、预测损失或累计奖励等。

若程序利用经验 \(E\) 后,在任务 \(T\) 上由 \(P\) 衡量的性能提高,就称它从 \(E\) 中学习。这里有两个容易漏掉的条件:第一,性能必须对应一个明确任务;第二,“训练得更好”不能只看训练集,真正关心的是对未见样本的泛化。

以垃圾邮件识别为例:\(E\) 是过去已标注为垃圾邮件或正常邮件(ham)的样本,\(T\) 是二分类,\(P\) 可以是独立测试集上的 F1 分数。完整流程为:收集并标注邮件,形成特征表示,用训练集拟合分类器,对新邮件预测,再在未参与拟合的数据上评价。

1.1 四类学习范式

设一条输入样本为 \(\mathbf{x}_i\in\mathbb{R}^d\),其中 \(d\) 是特征数;若有监督标签,则记为 \(y_i\)。四类学习的根本区别在于可获得的信息和目标不同。

范式 可用信息 学习目标 典型输出
监督学习(Supervised Learning) \(\{(\mathbf{x}_i,y_i)\}_{i=1}^{n}\) 学习 \(\mathbf{x}\mapsto y\) 的映射并减少预测误差 类别或连续数值
无监督学习(Unsupervised Learning) \(\{\mathbf{x}_i\}_{i=1}^{n}\) 发现没有标签时的数据结构 簇、低维表示或关联结构
半监督学习(Semi-supervised Learning) 少量有标签数据与大量无标签数据 同时利用标签指导和数据结构 类别或连续数值
强化学习(Reinforcement Learning, RL) 状态、动作、奖励和环境交互 学习能提高长期累计奖励的策略 动作或策略

强化学习不是一次性接收固定训练表再输出答案。智能体在时刻 \(t\) 观察状态 \(s_t\),选择动作 \(a_t\),获得奖励 \(r_t\),再进入新状态。常用目标是最大化折扣回报

\[G_t=\sum_{k=0}^{\infty}\gamma^k r_{t+k},\qquad 0\leq\gamma<1,\]

其中 \(\gamma\) 控制未来奖励的权重。本课程的基础主线以监督学习为主,相关思想再扩展到其他范式;不能因为某种方法可迁移,就混淆四类问题的数据条件。

2. 训练、测试与可计算的性能指标

垃圾邮件分类从标注数据、文本预处理与特征提取,到训练、预测和评价的五阶段流程

图 1(Lecture 1,第 7 页):垃圾邮件分类管线。图中的英文标签依次表示数据收集(Data Collection)、预处理与特征提取(Preprocessing & Feature Extraction)、模型训练(Model Training)、预测(Prediction)和评价(Evaluation)。

图中的箭头表示处理顺序,而不是把评价答案送回训练。原始邮件先被清洗、分词并转换为 \(d\) 维特征向量,再由训练数据确定分类边界;新邮件只能沿已经确定的管线产生预测。底部反馈箭头表示下一轮可改进数据、特征或算法,但若用最终测试集的标签决定怎样改,测试集就参与了模型选择,评价会偏乐观。

对二分类任务,先指定哪个类别是“正类”。以“垃圾邮件”为正类,有四种计数:真正例 \(TP\)、真反例 \(TN\)、假正例 \(FP\) 和假反例 \(FN\)。总样本数为

\[n=TP+TN+FP+FN.\]

由此得到

\[\begin{gathered} \mathrm{Accuracy}=\frac{TP+TN}{n},\\ \mathrm{Error\ Rate}=\frac{FP+FN}{n},\\ \mathrm{Error\ Rate}=1-\mathrm{Accuracy},\\ \mathrm{Precision}=\frac{TP}{TP+FP},\\ \mathrm{Recall}=\frac{TP}{TP+FN},\\ F_1=\frac{2\,\mathrm{Precision}\,\mathrm{Recall}} {\mathrm{Precision}+\mathrm{Recall}},\\ F_1=\frac{2TP}{2TP+FP+FN}. \end{gathered}\]

例如,在 100 封独立测试邮件中,若 \(TP=36\)、\(TN=52\)、\(FP=8\)、\(FN=4\),则

\[\begin{aligned} \mathrm{Accuracy}&=\frac{36+52}{100}=0.88,\\ \mathrm{Error\ Rate}&=\frac{8+4}{100}=0.12,\\ \mathrm{Precision}&=\frac{36}{36+8}=\frac{9}{11}\approx0.8182,\\ \mathrm{Recall}&=\frac{36}{36+4}=0.9,\\ F_1&=\frac{72}{72+8+4}=\frac67\approx0.8571. \end{aligned}\]

范围检查:以上比例都在 \([0,1]\) 内,且准确率与错误率之和为 1。若数据类别极不平衡,只报准确率可能掩盖正类识别失败,因此应结合 precision、recall 或 F1。

评价时必须先划分训练数据与测试数据。任何需要从数据估计的处理参数、特征选择规则或模型参数,都只能由训练部分得到;若让测试集信息参与这些步骤,就产生 data leakage(数据泄漏),测试分数将不再代表泛化能力。

下面的表不是重复课件流程,而是把“每一步究竟能看哪些数据”整理成防泄漏审计表。

环节 需要固定或估计的对象 训练/验证阶段的正确做法 数据泄漏红旗
划分数据 训练、验证、测试的样本归属 先划分,再做任何会从数据学习参数的处理;验证集用于选择方案 处理完整数据后才划分,导致测试分布已影响处理参数
文本预处理 词表、停用词规则、稀有词阈值等 固定规则可直接应用;凡由频次决定的量只用训练折估计,再原样作用于验证/测试 用全部邮件频次筛词,或看到测试标签后修改清洗规则
特征构造 特征集合、变换参数、降维方向 在训练数据上拟合变换;验证/测试只执行 transform 在测试集上重新拟合,或按测试得分挑特征
模型与组合规则 模型参数、超参数、投票权重和平票规则 训练集拟合,验证集选择;最终规则在测试前冻结 为提高一次测试分数临时更换权重、阈值或平票规则
最终评价 \(TP,TN,FP,FN\) 及派生指标 测试集只用于一次独立评价,并结合类别代价解释结果 反复查看测试结果并继续调参,却仍把该分数称为泛化性能

核心判断是:某个操作只要会从样本分布或标签中“学到”一个量,它就属于拟合过程。验证数据可以辅助选择方案,最终测试数据则只能评价已经冻结的完整管线。

3. 现代机器学习为何能快速发展

几个相互加强的条件共同推动了 AlphaGo、AlphaFold、自动驾驶与对话式模型等突破:

  1. 数据:大规模、多样数据能覆盖手写规则难以表达的变化;自博弈、仿真和真实系统反馈还能产生新经验。
  2. 硬件:CPU、GPU(Graphics Processing Unit,图形处理器)、TPU(Tensor Processing Unit,张量处理器)和其他加速器提高了并行矩阵计算能力。
  3. 软件生态:开源框架、数据集、基准和预训练模型降低了复现实验与组合方法的成本。
  4. 算法与架构:深度神经网络、Transformer、强化学习和自监督学习把数据与算力转化为可用能力。
  5. 反馈闭环:自博弈、仿真和部署后的新数据让模型持续更新,而非训练一次后永久静止。

规模并非免费午餐。大模型通常伴随更高的计算和能耗、更大的标注需求、更多超参数以及更弱的可解释性。EE6406 选择解析学习和集成学习,是为了研究两条互补路线:前者尝试直接求解模型,后者尝试组合多个模型。

4. 解析学习:把“训练”转化为数学求解

解析学习(Analytic Learning)在本课程中的操作性含义是:在模型假设允许时,利用线性代数、矩阵分解、最小二乘、正则化或凸优化,直接得到模型参数的闭式解(closed-form solution),而不是依靠大量重复更新逐步逼近。

这与典型迭代更新形成对照。若参数为 \(\mathbf{w}^{(k)}\in\mathbb{R}^p\),目标函数为 \(J(\mathbf{w})\),梯度下降(Gradient Descent, GD)写成

\[\mathbf{w}^{(k+1)}=\mathbf{w}^{(k)}-\eta\nabla J\!\left(\mathbf{w}^{(k)}\right),\]

其中 \(k\) 是迭代编号,\(\eta>0\) 是学习率。迭代法要选择初始化、学习率、批大小与停止条件;收敛速度和最终解可能受这些选择影响。解析法则试图从最优性条件直接求解。

4.1 最小二乘闭式解:维度、推导与成立条件

用一个线性模型说明“直接解出参数”的含义。设有 \(n\) 个样本、\(p\) 个待估参数;设计矩阵 \(\mathbf{X}\in\mathbb{R}^{n\times p}\),目标向量 \(\mathbf{y}\in\mathbb{R}^{n}\),参数 \(\mathbf{w}\in\mathbb{R}^{p}\)。模型预测为

\[\widehat{\mathbf{y}}=\mathbf{Xw}\in\mathbb{R}^{n}.\]

最小二乘目标是让残差平方和最小:

\[J(\mathbf{w})=\lVert\mathbf{Xw}-\mathbf{y}\rVert_2^2.\]

对 \(\mathbf{w}\) 求梯度并令其为零:

\[\begin{aligned} \nabla_{\mathbf{w}}J &=2\mathbf{X}^{\mathsf T}(\mathbf{Xw}-\mathbf{y})=\mathbf{0},\\ \mathbf{X}^{\mathsf T}\mathbf{Xw} &=\mathbf{X}^{\mathsf T}\mathbf{y}. \end{aligned}\]

第二行称为正规方程。维度检查为

\[\begin{aligned} (p\times n)(n\times p)&=p\times p,\\ (p\times p)(p\times1)&=p\times1,\\ (p\times n)(n\times1)&=p\times1. \end{aligned}\]

若 \(\mathbf{X}\) 的列线性无关,使 \(\mathbf{X}^{\mathsf T}\mathbf{X}\) 可逆,则唯一解为

\[\widehat{\mathbf{w}} =\left(\mathbf{X}^{\mathsf T}\mathbf{X}\right)^{-1} \mathbf{X}^{\mathsf T}\mathbf{y}.\]

实际数值实现通常不显式计算逆矩阵,而是直接解线性方程,或使用 QR/SVD 分解以获得更好的数值稳定性。若列相关或 \(p>n\),正规矩阵可能奇异;可用 Moore-Penrose 伪逆选取最小范数解,或引入正则化。以 ridge regression(岭回归)为例,其预览形式为

\[\widehat{\mathbf{w}}_{\lambda} =\left(\mathbf{X}^{\mathsf T}\mathbf{X}+\lambda\mathbf{I}_p\right)^{-1} \mathbf{X}^{\mathsf T}\mathbf{y},\qquad \lambda>0,\]

其中 \(\lambda\) 控制拟合误差与参数大小之间的折中,\(\mathbf{I}_p\) 是 \(p\times p\) 单位矩阵。这里的公式只用于建立闭式学习直觉;具体回归方法将在相应已授 Lecture 再系统展开。

4.2 完整数值例:三点拟合一条直线

设输入 \(x\) 的单位为小时,输出 \(y\) 的单位为分。观测为 \((0,1),(1,3),(2,5)\),拟合 \(\widehat y=w_0+w_1x\)。含截距后,\(n=3\)、\(p=2\):

\[\mathbf{X}= \begin{bmatrix} 1&0\\ 1&1\\ 1&2 \end{bmatrix},\qquad \mathbf{y}= \begin{bmatrix}1\\3\\5\end{bmatrix}.\]

逐项相乘得到

\[\mathbf{X}^{\mathsf T}\mathbf{X} =\begin{bmatrix}3&3\\3&5\end{bmatrix},\qquad \mathbf{X}^{\mathsf T}\mathbf{y} =\begin{bmatrix}9\\13\end{bmatrix}.\]

正规矩阵行列式为 \(3\times5-3\times3=6\neq0\),因此解唯一:

\[\begin{aligned} \widehat{\mathbf{w}} &=\frac16 \begin{bmatrix}5&-3\\-3&3\end{bmatrix} \begin{bmatrix}9\\13\end{bmatrix}\\ &=\frac16 \begin{bmatrix}45-39\\-27+39\end{bmatrix} =\begin{bmatrix}1\\2\end{bmatrix}. \end{aligned}\]

所以 \(\widehat y=1+2x\)。代回三个输入得到 \((1,3,5)\),残差平方和为 0,完成第二种交叉检查。量纲上,\(w_0=1\) 的单位是分,\(w_1=2\) 的单位是分/小时。

为避免考试中“公式写对但中间维度或量纲丢分”,可按下表逐行审计。它保留上面的完整计算,只把每一步的必查条件重新组织成答题清单。

步骤 本例中应写出的量 数值结果 自检问题
1. 定义形状 \(n=3,p=2\),\(\mathbf{X}\in\mathbb{R}^{3\times2}\),\(\mathbf{y}\in\mathbb{R}^{3}\) 三行分别为 \([1,0],[1,1],[1,2]\) 截距列是否保留?样本数与行数是否一致?
2. 形成正规方程 \(\mathbf{A}=\mathbf{X}^{\mathsf T}\mathbf{X}\),\(\mathbf{b}=\mathbf{X}^{\mathsf T}\mathbf{y}\) \(\mathbf{A}=[[3,3],[3,5]]\),\(\mathbf{b}=[9,13]^{\mathsf T}\) \(\mathbf{A}\) 是否为 \(2\times2\),\(\mathbf{b}\) 是否为 \(2\times1\)?
3. 检查唯一性 \(\det(\mathbf{A})\neq0\) \(15-9=6\) 若行列式为 0,是否改用伪逆或正则化而不是硬写逆矩阵?
4. 求解参数 \(\mathbf{A}\widehat{\mathbf{w}}=\mathbf{b}\) \(\widehat{\mathbf{w}}=[1,2]^{\mathsf T}\) 参数向量是否有 \(p=2\) 个元素?
5. 代回验算 \(\widehat{\mathbf{y}}=\mathbf{X}\widehat{\mathbf{w}}\) \([1,3,5]^{\mathsf T}\),残差平方和为 0 预测维度是否为 \(n\times1\),残差平方和是否非负?
6. 解释量纲 截距与斜率分别对应基准值和单位输入变化 \(w_0=1\) 分,\(w_1=2\) 分/小时 斜率是否写成“输出单位/输入单位”?

4.3 “闭式”不等于“没有代价”

对 \(n\times p\) 的稠密设计矩阵,形成 \(\mathbf{X}^{\mathsf T}\mathbf{X}\) 约需 \(O(np^2)\) 运算,求解 \(p\times p\) 线性系统约需 \(O(p^3)\) 运算,并需约 \(O(p^2)\) 的矩阵存储;迭代法每轮可能更便宜,却要付出迭代次数 \(K\) 和超参数选择的成本。因此“哪一种更快”必须结合 \(n\)、\(p\)、稀疏性、条件数、精度要求和硬件判断。

维度 迭代学习 解析学习
参数获得方式 重复更新逐步逼近 根据最优性条件直接求解
关键选择 初始化、学习率、批大小、停止条件 模型假设、矩阵求解、正则化
可复现性 受随机性与训练设置影响 唯一解且实现固定时通常确定
规模适应性 常适合大规模、复杂非线性模型 常适合小中规模或局部学习模块
主要风险 慢收敛、不收敛、调参成本 奇异或病态矩阵、内存和分解成本
可解释性 依模型而定,复杂模型通常较弱 参数关系往往更直接,但不是自动可解释

课程结论是“互补而非替代”。解析学习需要合适的模型假设,对高度非线性问题可能不够灵活;某些方法要处理大矩阵,扩展性仍是研究问题。反过来,迭代优化虽然强大,也不应被当作所有学习问题的唯一求解方式。

5. 集成学习:组合多个学习器

集成学习(Ensemble Learning)训练多个基学习器(base learner),组合它们的预测,再产生一个最终决策。成功集成需要三个要素:单个学习器有合理准确性、学习器之间有差异性,以及组合规则有效。

5.1 分类投票、回归平均与加权组合

设有 \(M\) 个分类器 \(h_m(\mathbf{x})\),类别集合为 \(\mathcal{C}\)。非负权重 \(\alpha_m\) 满足 \(\sum_{m=1}^{M}\alpha_m=1\),加权硬投票为

\[H(\mathbf{x})= \underset{c\in\mathcal{C}}{\arg\max} \sum_{m=1}^{M}\alpha_m\,\mathbb{I}\!\left[h_m(\mathbf{x})=c\right],\]

其中 \(\mathbb{I}[\cdot]\) 是指示函数。等权时 \(\alpha_m=1/M\),就是多数投票。若最高票并列,必须预先规定规则,例如比较验证集表现、再比较平均置信度,或使用固定类别顺序;不能看到测试答案后临时决定。

例如三个分类器依次给出“猫、狗、猫”,等权多数投票得到“猫”。但若权重为 \((0.2,0.6,0.2)\),则“猫”的总权重为 0.4,“狗”为 0.6,结果变成“狗”。因此题目若未说明是多数投票还是加权投票,答案并不唯一。

对回归器 \(f_m(\mathbf{x})\in\mathbb{R}\),加权平均为

\[F(\mathbf{x})=\sum_{m=1}^{M}\alpha_m f_m(\mathbf{x}).\]

若三个预测为 \(2.0,2.6,3.4\),等权平均为 \(8/3\approx2.6667\);权重为 \((0.5,0.3,0.2)\) 时,结果为

\[\begin{aligned} F&=0.5(2.0)+0.3(2.6)+0.2(3.4)\\ &=1.00+0.78+0.68\\ &=2.46. \end{aligned}\]

权重非负且和为 1,所以 2.46 必须位于最小预测 2.0 与最大预测 3.4 之间;这是快速范围检查。

把同一组输出放进不同组合规则,最容易看出“组合规则也是模型的一部分”。下表给出中间量而不只列最终答案。

任务与规则 预先固定的条件 本例中间计算 最终结果 快速检查
分类:等权硬投票 每个分类器一票;平票规则预先确定 猫 2 票,狗 1 票 总票数应为 \(M=3\)
分类:加权硬投票 权重 \((0.2,0.6,0.2)\),和为 1 猫 \(=0.2+0.2=0.4\),狗 \(=0.6\) 各类别权重和应等于总权重 1
回归:等权平均 每个回归器权重 \(1/3\) \((2.0+2.6+3.4)/3=8/3\) \(2.6667\) 平均值必须位于 \([2.0,3.4]\)
回归:加权平均 权重 \((0.5,0.3,0.2)\),非负且和为 1 \(1.00+0.78+0.68\) \(2.46\) 凸组合仍必须位于 \([2.0,3.4]\)

分类时要比较每个类别累计的票数或权重;回归时要计算数值平均。把两者都写成“投票”,或省略权重和平票规则,都会让答案不完整。

5.2 为什么“差异性”与“准确性”缺一不可

同一样本分别输入决策树、支持向量机和神经网络,三个学习器给出猫、狗、猫后进行多数投票

图 2(Lecture 1,第 46 页):异构学习器的预测与多数投票。Decision Tree、SVM、Neural Network 分别是决策树、支持向量机和神经网络;Majority Voting 表示多数投票。

图中的三类模型使用不同表示与决策机制:树按分支规则切分,SVM 图示强调样本在特征空间中的间隔与分界,神经网络通过多层连接形成非线性映射。因此它们可能在同一样本上给出不同判断。示例票型为“猫、狗、猫”,多数票得到“猫”;可考结论不是“模型越多越好”,而是基学习器既要有足够准确性,又要有能减少同错概率的差异性。

一个简化概率模型能说明多数投票的收益。假设三个分类器错误相互独立,且每个分类器错误率都是 \(p=0.2\)。多数投票失败意味着至少两个分类器同时出错:

\[\begin{aligned} P_e&=3p^2(1-p)+p^3\\ &=3(0.2)^2(0.8)+(0.2)^3\\ &=0.096+0.008\\ &=0.104. \end{aligned}\]

在“独立且同误差率”的特殊假设下,集成错误率 10.4% 低于单模型的 20%。但若三个模型完全相关、总在同一批样本上犯同样的错,多数投票错误率仍接近 20%,不会凭空改善。这就是要主动制造差异性的原因。另一方面,若单体比随机猜测还差,简单增加数量也不能保证变好。

真实学习器的错误通常相关,且误差率不同,因此上式是解释机制的理想化计算,不是对任意集成的性能保证。

5.3 Bagging 与 Boosting 的结构差异

Bagging(Bootstrap Aggregating,自助聚合集成)和 Boosting(提升法)都使用多个学习器,但依赖关系不同。

Bagging 的通用流程:

  1. 输入训练集 \(D\)、基学习算法 \(A\) 和学习器数 \(M\)。
  2. 对每个 \(m=1,\ldots,M\),从 \(D\) 中有放回抽样得到 \(D_m\)。
  3. 独立训练 \(h_m=A(D_m)\);各学习器可并行。
  4. 分类使用投票,回归使用平均或预定加权规则。
  5. 用独立验证/测试数据检查集成是否真的改善,而不是只比较训练误差。

Boosting 的通用流程:

  1. 初始化所有训练样本的重要性,或初始化待拟合残差。
  2. 训练第一个弱学习器并计算其错误。
  3. 提高难分样本的影响,或让下一学习器拟合前序模型尚未解释的部分。
  4. 按顺序重复训练;后一个学习器依赖前面的结果,不能完全并行。
  5. 按学习器质量进行加权组合,并通过验证控制轮数,防止对噪声过度追逐。
Bagging 并行训练独立学习器并侧重降低方差,Boosting 顺序训练依赖学习器并侧重降低偏差的对比示意

图 3(Lecture 1,第 48 页):Bagging 与 Boosting 的训练依赖和误差作用示意。Parallel/Sequential training 分别表示并行/顺序训练,Independent/Dependent learners 分别表示相对独立/前后依赖的学习器。

图中 Bagging 一列的散点围绕虚线波动,用来表达对多个不稳定预测求平均后常能减小方差;Boosting 一列的红、黑曲线则表示后续学习器不断补偿前序模型的系统误差,常用于降低偏差。这些坐标没有给出单位或定量数值,只是机制示意。“Bagging 降方差、Boosting 降偏差”是课程中的常见概括,不是无条件定理:基学习器、噪声、采样方式、损失函数和轮数变化都可能改变结果。

比较点 Bagging Boosting
训练关系 多个学习器并行、相对独立 多个学习器顺序训练、前后依赖
制造差异的方式 重采样数据、随机化学习过程 逐步关注错误样本或残差
主要统计效果 通常侧重降低方差 通常侧重降低偏差
噪声与过拟合 往往更稳健 可能更关注异常点,需要控制
计算特点 易并行,推理要运行多个模型 训练串行,推理同样要组合多模型

“降方差”和“降偏差”是主要倾向,不是无条件定理。两者谁更好取决于数据、基学习器、噪声、资源和评价目标。

6. 两个应用把维度和组合落到实处

6.1 人脸识别中的解析学习

人脸图像先转换为特征向量,再由解析学习模型形成特征空间分界并输出身份

图 4(Lecture 1,第 38 页):人脸识别的“图像 → 特征向量 → 解析模型 → 身份”链路。Feature Extraction 表示特征提取,Analytic Learning Model 表示解析学习模型。

图中的 \([f_1,f_2,\ldots,f_d]^{\mathsf T}\) 表示一张人脸被转换为 \(d\) 维特征向量;中间红点、蓝方块与分界线是特征空间中的类别几何示意,不代表本数据集只有二维,也不说明本讲已经指定某一种距离度量。解析模型利用这些特征求出分类规则,最后把新样本映射到身份。可考关键是区分三个维度:原始图像的像素维度、特征向量维度 \(d\)、训练样本数 \(n\)。

课程示例使用 CMU 人脸数据:20 个身份,每人 32 张图,共 \(20\times32=640\) 张;每张灰度图为 \(120\times128\) 像素,每像素 256 个灰度级。若直接展平,每张图的原始维度为

\[d=120\times128=15{,}360.\]

设计矩阵将是 \(\mathbf{X}\in\mathbb{R}^{640\times15{,}360}\)。像素总数为

\[640\times15{,}360=9{,}830{,}400,\]

若每像素存 1 byte,仅原始灰度值约为 \(9.375\) MiB。更关键的是 \(n=640<d=15{,}360\),直接构造的线性问题是高维欠定问题;\(\mathbf{X}^{\mathsf T}\mathbf{X}\) 有 \(15{,}360^2=235{,}929{,}600\) 个元素,用 64 位浮点数约需 1.76 GiB。这个维度检查解释了为什么实际流程通常先做特征提取,再用闭式学习模型识别身份,并需要分解、伪逆或正则化等工具。

6.2 信用风险中的集成学习

设申请人特征 \(\mathbf{x}\) 包含人口统计、就业、收入、信用历史等信息。多个决策树可以分别输出“高风险/低风险”或风险概率,再用投票、平均或加权组合形成最终评分。价值不只是提高平均准确率,也包括减少单棵树因样本扰动造成的决策变化。

不过,集成会增加训练和推理成本、模型管理难度,并可能降低解释性。在金融或医疗等高风险场景,不能只优化总准确率;还要检查类别代价、校准、公平性、稳定性和可解释要求。

7. 如何选择范式:先看问题约束

不存在对所有数据集都最好的单一学习算法。选择时至少依次问:

  1. 任务与度量是什么? 分类、回归还是交互决策?误判代价是否对称?
  2. 数据规模和形状是什么? 明确 \(n\)、\(d\)、标签条件、稀疏性与噪声,而不是只说“数据很多”。
  3. 模型假设是否支持解析解? 若目标能转成稳定的线性代数问题,闭式法可能快速、确定且易解释。
  4. 矩阵是否可解、是否承受得起? 检查秩、条件数、\(O(np^2+p^3)\) 计算量与 \(O(p^2)\) 存储量。
  5. 单模型是否不稳定或偏差过大? 不稳定模型可考虑 Bagging;需要逐步修正系统误差时可考虑 Boosting。
  6. 学习器是否真正多样? 只复制高度相关的模型,通常得不到预期集成收益。
  7. 部署约束是什么? 延迟、内存、能耗、可解释性和更新频率可能比离线准确率更重要。

教师在本讲中特别强调:理解方法为何成立、何时失效,比背诵算法名称更重要;解析学习与迭代学习是可组合的,解析学习与集成学习也可与深度学习构成混合系统。

8. 章末复习页

8.1 必会公式与符号

符号/公式 含义与检查点
\((E,T,P)\) 经验、任务、性能度量;缺一就无法严谨说明“学得更好”
\(\mathbf{X}\in\mathbb{R}^{n\times p}\) \(n\) 个样本、\(p\) 个待估参数对应的设计矩阵
\(\widehat{\mathbf{y}}=\mathbf{Xw}\) 输出维度必须为 \(n\times1\)
\(\mathbf{X}^{\mathsf T}\mathbf{Xw}=\mathbf{X}^{\mathsf T}\mathbf{y}\) 最小二乘正规方程
\(\widehat{\mathbf{w}}=(\mathbf{X}^{\mathsf T}\mathbf{X})^{-1}\mathbf{X}^{\mathsf T}\mathbf{y}\) 仅当正规矩阵可逆时为唯一闭式解
\(H(\mathbf{x})=\arg\max_c\sum_m\alpha_m\mathbb{I}[h_m(\mathbf{x})=c]\) 加权分类投票;必须说明权重与平票规则
\(F(\mathbf{x})=\sum_m\alpha_m f_m(\mathbf{x})\) 加权回归;常要求 \(\alpha_m\ge0\)、\(\sum_m\alpha_m=1\)
\(F_1=2TP/(2TP+FP+FN)\) 类别不平衡时比单独准确率更有信息,但仍要结合任务代价

8.2 典型答题流程

闭式学习题: 写 \(n,p\) 与单位 → 构造 \(\mathbf{X},\mathbf{y}\) → 检查乘法维度 → 写目标函数 → 推出正规方程 → 检查秩/可逆性 → 求解参数 → 代回并算残差 → 解释参数与假设。

集成题: 列出每个学习器输出 → 确认分类还是回归 → 确认等权、加权或概率平均 → 明确平票规则 → 逐项聚合 → 做范围/票数检查 → 解释准确性与差异性 → 比较计算与解释成本。

8.3 完整自检练习与解答

练习 1:性能度量。 某垃圾邮件测试集共有 100 封邮件,规定“垃圾邮件”为正类。模型正确识别 36 封垃圾邮件,漏掉 4 封垃圾邮件,把 8 封正常邮件错判成垃圾邮件,其余正常邮件均判断正确。

  1. 写出 \(TP,TN,FP,FN\)。
  2. 计算 accuracy、error rate、precision、recall 和 F1。
  3. 若测试集参与了特征选择,这些结果能否作为泛化性能?说明原因。

解答: 正类总数为 \(36+4=40\),正常邮件总数为 60,所以 \(TP=36,FN=4,FP=8,TN=60-8=52\)。逐步计算得 accuracy \(=0.88\),error rate \(=0.12\),precision \(=36/44\approx0.8182\),recall \(=36/40=0.9\),F1 \(=72/84\approx0.8571\)。若测试集参与特征选择,就发生数据泄漏;模型间接利用了测试信息,结果不能作为无偏的泛化估计。模型意义:准确率看整体,recall 反映漏拦垃圾邮件的程度,precision 反映被拦邮件中有多少确为垃圾邮件。

练习 2:闭式直线拟合。 给定三组观测 \((x,y)=(0,1),(1,3),(2,5)\),模型为 \(\widehat y=w_0+w_1x\)。

  1. 写出 \(\mathbf{X}\) 和 \(\mathbf{y}\) 的数值与维度。
  2. 计算 \(\mathbf{X}^{\mathsf T}\mathbf{X}\) 和 \(\mathbf{X}^{\mathsf T}\mathbf{y}\)。
  3. 求 \(w_0,w_1\),再以残差平方和检查答案。
  4. 若 \(x\) 的单位为小时、\(y\) 的单位为分,写出两个参数的单位。

解答: \(\mathbf{X}\in\mathbb{R}^{3\times2}\) 的三行为 \([1,0],[1,1],[1,2]\),\(\mathbf{y}=[1,3,5]^{\mathsf T}\in\mathbb{R}^{3}\)。计算得 \(\mathbf{X}^{\mathsf T}\mathbf{X}=[[3,3],[3,5]]\),\(\mathbf{X}^{\mathsf T}\mathbf{y}=[9,13]^{\mathsf T}\)。正规矩阵行列式为 6,逆矩阵为 \(\frac16[[5,-3],[-3,3]]\),因此 \(\widehat{\mathbf{w}}=[1,2]^{\mathsf T}\)。三项预测正好是 \(1,3,5\),残差平方和为 0。\(w_0\) 的单位是分,\(w_1\) 的单位是分/小时。模型意义:在这一数据与线性假设下,输出每增加 1 小时平均增加 2 分。

练习 3:不同组合规则。 三个分类器对同一样本的输出依次为“猫、狗、猫”;三个回归器的输出依次为 \(2.0,2.6,3.4\)。

  1. 分类使用等权多数投票,结果是什么?
  2. 分类权重改为 \((0.2,0.6,0.2)\),结果是什么?
  3. 回归分别计算等权平均和权重 \((0.5,0.3,0.2)\) 下的结果。
  4. 说明为什么必须在看测试答案之前确定组合规则。

解答: 等权时“猫”获 2 票、“狗”获 1 票,所以结果为“猫”。加权时“猫”的总权重为 \(0.2+0.2=0.4\),“狗”为 0.6,所以结果改为“狗”。回归等权平均为 \((2.0+2.6+3.4)/3\approx2.6667\),加权结果为 \(2.46\)。若根据测试真值临时选规则,就相当于用测试信息调参,会高估泛化性能。模型意义:组合方式本身就是模型的一部分,并非无关紧要的后处理。

练习 4:独立错误假设下的多数投票。 三个二分类器错误相互独立,每个错误率均为 \(p=0.2\),使用多数投票。

  1. 写出集成出错的全部互斥情况。
  2. 计算集成错误率。
  3. 若三个分类器总在相同样本上出错,上述数值还成立吗?

解答: 集成出错包括“恰有两个错”和“三个全错”。因此

\[\begin{aligned} P_e&=3(0.2)^2(0.8)+(0.2)^3\\ &=0.096+0.008\\ &=0.104. \end{aligned}\]

该值低于单模型的 0.2。若错误完全相关,独立性假设失效;三个模型会一起对或一起错,集成错误率不会按二项式降到 0.104,而可能仍为 0.2。模型意义:集成收益来自“有能力但犯不同错误”的学习器,而不是模型数量本身。

8.4 高频易错点

  • 把“训练误差下降”直接等同于泛化改善,忽略独立测试与数据泄漏。
  • 写闭式解时不说明 \(\mathbf{X}^{\mathsf T}\mathbf{X}\) 可逆条件,或不检查矩阵维度。
  • 把 closed-form 误解成零计算成本;大矩阵分解仍可能很昂贵。
  • 声称解析学习总比迭代学习快、稳健或可扩展;这些结论都依赖问题规模和假设。
  • 只说“多个模型会更准”,却不讨论基学习器准确性、错误相关性与组合规则。
  • 混淆 Bagging 的并行重采样与 Boosting 的顺序纠错。
  • 分类题未说明平票处理,加权题未检查权重和,回归题未做输出范围检查。
  • 把“Bagging 降方差、Boosting 降偏差”当作所有数据和模型上的绝对保证。

本章结论

机器学习由经验 \(E\)、任务 \(T\) 和评价 \(P\) 共同定义。解析学习通过合适的数学模型把一部分训练问题转成直接求解,优点是快速、确定和便于分析,边界是模型假设、矩阵条件与规模。集成学习通过组合准确而多样的学习器提高可靠性,代价是额外计算、管理和解释难度。真正的建模能力,是根据数据形状、误差结构和部署约束选择或组合这些范式,而不是预设某一种方法永远最好。

Author: Alan
Date:2026年08月21日

Comments