机器学习期末速成
这篇不是把三十讲重新压缩抄一遍,而是帮助你在考前建立一张能工作的知识地图:拿到一个概念,知道它解决什么问题;拿到一道计算题,知道从哪个公式开始;拿到一道比较题,知道差异落在哪个假设上。
源目录中没有往年真题,因此下面只依据课程课件、课堂展示和作业整理重点,不猜测题型,更不补造“真题”。
1. 先记住机器学习的完整闭环
一个学习问题至少要说清五件事:
- 输入与输出:输入 是什么,目标 是类别、数值、序列还是动作?
- 模型:用什么参数化函数 表示预测规律?
- 损失:怎样衡量预测和标签的差异?
- 优化:怎样根据损失更新参数 ?
- 泛化:模型在没见过的数据上是否仍然可靠?
训练集用于拟合参数,验证集用于选择模型与超参数,测试集只用于最后评估。把测试集反复用于调参,相当于把答案提前泄露给模型,得到的测试性能会偏乐观。
2. 学习范式与泛化
| 范式 | 训练信号 | 典型任务 |
|---|---|---|
| 监督学习 | 输入与标签 | 分类、回归、检测 |
| 无监督学习 | 只有输入 | 聚类、降维、密度估计 |
| 半监督学习 | 少量有标签、大量无标签数据 | 标签昂贵的识别任务 |
| 强化学习 | 状态、动作与延迟奖励 | 导航、博弈、控制 |
经验风险最小化写成
训练误差低不代表真实风险低。模型过于简单会欠拟合,过于灵活又可能记住训练噪声。正则化、更多数据、合理的数据增强、早停和交叉验证,都是在控制这种泛化差距。
PAC 学习关注“需要多少样本,才能以至少 的概率让真实误差不超过 ”。VC 维衡量假设类能打散多大规模的样本;容量越大,表达力越强,通常也需要更多数据约束。
3. 三个概率不等式怎样选
- 只知道非负随机变量的均值:Markov 不等式;
- 还知道方差:Chebyshev 不等式;
- 独立、有界变量的样本均值:Hoeffding 不等式。
例如 时,
若 独立同分布,均值为 ,则
做题时先写清随机变量满足的条件,再选不等式;不能因为 Hoeffding 的界看起来更紧就无条件套用。
4. 线性回归、正则化与梯度下降
线性回归用
拟合连续值。平方误差目标为
满列秩时,令梯度为零得到正规方程
矩阵不可逆时使用伪逆。岭回归加入 惩罚;若首列表示截距且不希望惩罚截距,可令
于是
梯度下降统一写成
学习率过大会震荡甚至发散,过小则收敛缓慢。Mini-batch 梯度在均匀采样时是全梯度的无偏估计,但某一个批次仍会随机偏离全梯度。
5. 贝叶斯学习、最大似然与 MAP
贝叶斯公式是
- 最大似然估计只最大化 ;
- MAP 同时考虑似然与先验 ;
- 后验分布则保留参数不确定性的完整描述。
由于连乘容易下溢,通常最大化对数似然:
朴素贝叶斯使用条件独立假设
所以分类时比较
条件独立往往不完全真实,但它显著减少了需要估计的参数,在小数据上仍可能很有效。
6. HMM 的三个基本问题
隐马尔可夫模型由初始分布 、状态转移矩阵 和发射概率 构成。必须区分三件事:
- 评估:给定模型,观测序列出现的概率是多少?用前向算法;
- 解码:最可能的隐藏状态序列是什么?用 Viterbi;
- 学习:参数未知时怎样估计?有隐藏状态标签时计数,无标签时用 Baum–Welch / EM。
前向量递推为
Viterbi 把求和换成最大值,并额外记录使最大值成立的前驱状态,最后反向回溯路径。
7. 决策树与两类集成方法
熵衡量类别不确定性:
按属性 划分后的信息增益为
ID3 选择信息增益最大的属性;C4.5 用增益率缓解偏爱多取值属性的问题。树不断生长会过拟合,因此需要预剪枝或后剪枝。
AdaBoost 和随机森林都组合许多弱模型,但方向相反:
| 方法 | 样本关系 | 模型关系 | 降低什么 |
|---|---|---|---|
| AdaBoost | 每轮提高错分样本权重 | 串行依赖 | 主要降低偏差 |
| 随机森林 | Bootstrap 抽样 | 可并行训练 | 主要降低方差 |
AdaBoost 弱分类器权重常写为
若 ,这个弱分类器没有提供正向信息,应先检查训练过程。
8. 线性判别、感知机与 SVM
线性判别函数为
决策边界是 。 是超平面的法向量,点到边界的有符号距离与 成正比。
感知机只对分错样本更新。若标签 ,一种写法是
Fisher 线性判别寻找类间距离大、类内离散小的投影方向。SVM 则最大化几何间隔:
软间隔加入松弛变量和惩罚系数 。 大时更重视训练误差, 小时允许更多违例以换取更宽间隔。核技巧用 直接计算高维特征内积,不必显式构造映射 。
9. PCA 与稀疏表示
PCA 先中心化数据,再对协方差矩阵求特征分解。最大特征值对应变化最大的方向;取前 个特征向量组成 ,低维表示为
PCA 的最大方差与最小平方重构误差是同一问题的两种视角。PCA 不使用类别标签,也不等于“选择原有的几个特征”。
稀疏表示希望
且 只有少量非零元素。 优化通常困难,常用 松弛:
匹配追踪是逐步选择最相关原子的贪心方法;字典学习则交替更新稀疏编码与字典。
10. 强化学习与 Q-learning
强化学习的核心不是预测当前标签,而是最大化长期折扣回报。Q-learning 更新为
方括号中的量叫 TD 误差。 控制未来奖励的重要程度, 是学习率。-greedy 用概率 随机探索,否则选择当前 Q 值最大的动作。
Q-learning 是 off-policy:更新目标使用最大 Q 值对应的贪心动作,不要求该动作就是实际采样的下一动作。
11. 神经网络与反向传播
一层网络写成
如果层与层之间没有非线性激活,多层线性变换仍可合并成一个线性变换,深度不会增加表达能力。
反向传播只是链式法则的高效组织。若已知上一层传回的 ,则
自动微分不等于符号求导,也不等于数值差分。反向模式自动微分从标量损失出发,一次反向遍历就能得到对大量参数的梯度,因此特别适合深度学习。
12. 损失函数与输出层必须配套
| 任务 | 常见输出 | 常见损失 |
|---|---|---|
| 回归 | 连续值 | MSE、Huber |
| 二分类 | 一个 logit | Binary cross-entropy |
| 多分类 | 每类一个 logit | Softmax cross-entropy |
| 多标签分类 | 每类独立 logit | 逐类 binary cross-entropy |
Softmax 为
多分类交叉熵为
实现时通常直接使用接受 logits 的数值稳定版本,不要先手工 Softmax 再传给同样会做 Softmax 的损失函数。
13. CNN:尺寸、参数与感受野
二维卷积的单边输出尺寸为
其中 是核大小, 是步幅, 是填充, 是膨胀率。普通卷积层参数量为
卷积依靠局部连接与权重共享减少参数;池化或带步幅卷积负责下采样。卷积对平移近似等变,池化只能带来有限的局部不变性,不能说 CNN 对任意平移都完全不变。
架构演进的主线:
- LeNet 建立“卷积—池化—分类”的模板;
- AlexNet 证明深 CNN 能在大规模数据上工作;
- VGG 用重复的小卷积核统一设计;
- Inception 并行处理多尺度特征;
- ResNet 用 缓解深层网络优化困难。
14. RNN、LSTM 与 Transformer
RNN 用隐藏状态保存历史:
它在时间上共享参数,但长链乘积容易造成梯度消失或爆炸。LSTM 用遗忘门、输入门和输出门控制细胞状态:
Transformer 的核心是缩放点积注意力:
除以 是为了避免维度增大后点积方差过大,使 Softmax 进入饱和区。多头注意力让不同子空间关注不同关系;位置编码补回序列顺序;解码器的因果 mask 防止当前位置看到未来 token。
BERT 主要使用编码器做双向上下文预训练,ViT 则把图像切成 patch 后当作 token 序列。
15. 优化器与学习率
SGD 只使用当前梯度;Momentum 累积方向:
AdaGrad 累积全部历史平方梯度,学习率可能衰减过快;RMSProp 用指数滑动平均只保留近期尺度;Adam 同时维护一阶矩和二阶矩,并在初期做偏差修正。
AdamW 把权重衰减从梯度更新中解耦。对自适应优化器而言, 正则化与 decoupled weight decay 通常不等价。
常见学习率策略包括预热、阶梯衰减、指数衰减和余弦衰减。优化器表现异常时,先检查学习率、梯度尺度、数据归一化和损失口径,而不是立刻更换一个更复杂的名字。
16. 激活、初始化与归一化
- Sigmoid 输出在 ,两端容易饱和且不是零中心;
- Tanh 输出在 ,仍有饱和问题;
- ReLU 简单高效,但负半轴梯度为零;
- Leaky ReLU 为负半轴保留小斜率;
- GELU 平滑地按输入大小进行门控,常见于 Transformer。
初始化的目标是让激活和梯度的方差跨层不过度放大或缩小。Xavier 适合近似对称的激活,Kaiming 针对 ReLU 类激活调整方差。
归一化方法的关键是“沿哪些维度统计”:
| 方法 | 统计范围 | 典型场景 |
|---|---|---|
| BatchNorm | 同通道的 batch 与空间位置 | CNN、大 batch |
| LayerNorm | 单样本的特征维 | Transformer、RNN |
| InstanceNorm | 单样本单通道的空间位置 | 风格迁移 |
| GroupNorm | 单样本的通道组与空间位置 | 小 batch 视觉模型 |
BatchNorm 训练时使用当前批次统计量,推理时使用运行均值和方差;LayerNorm 不依赖 batch 大小。
17. 视觉任务先看输出粒度
- 图像分类:整张图输出一个类别;
- 目标定位:类别加一个边界框;
- 目标检测:输出多个类别与边界框;
- 语义分割:每个像素输出语义类别;
- 实例分割:还要区分同类的不同实例;
- 姿态估计:输出关键点坐标或热图。
拿到任务时先写清输出结构,再确定标签、损失与评价指标。网络名字相同,不代表训练目标相同。
18. 高频比较题
| 容易混淆的概念 | 核心区别 |
|---|---|
| ML 与 MAP | MAP 比 ML 多一个参数先验 |
| 0-1 损失与交叉熵 | 前者直接数错分,后者提供可优化的连续概率损失 |
| Bagging 与 Boosting | 前者并行降方差,后者串行关注难样本 |
| PCA 与 LDA | PCA 无监督保留方差,LDA 有监督增强类间可分性 |
| 硬间隔与软间隔 SVM | 后者用松弛变量容忍违例 |
| 参数模型与非参数模型 | 前者参数维度固定,后者复杂度可随数据增长 |
| 反向传播与梯度下降 | 前者计算梯度,后者使用梯度更新参数 |
| 卷积与相关 | 数学卷积翻转核,深度学习库通常实现相关但仍称卷积 |
| epoch 与 iteration | epoch 是遍历一次训练集,iteration 是更新一次参数 |
| BN 与 LN | BN 跨样本统计,LN 在单样本特征内统计 |
19. 考场计算题固定检查
- 概率题先检查条件概率方向,避免把 当成 。
- 矩阵求导先写维度,结果必须与被求导参数同形状。
- DP、HMM 或反向传播要写清状态的语义和计算顺序。
- 卷积尺寸必须同时看核、步幅、填充和膨胀率。
- 参数量要区分权重、偏置以及是否共享参数。
- Softmax、对数和指数计算优先使用数值稳定形式。
- 分类输出和损失函数必须匹配,二分类与多分类不要混写。
- 写优化器时区分“梯度怎么算”和“参数怎样更新”。
- 写模型优缺点时指出成立条件,不说“某算法永远更好”。
- 最后做极端情况检查:概率是否在 ,损失是否非负,输出尺寸和参数量是否合理。
如果这十九部分能顺着讲下来,你掌握的就不再是一串模型名字,而是从建模、学习、优化到泛化的一条完整链路。