📑 本页目录(点开跳转)
附录 A · 术语速查卡
📌
Ctrl+F搜。不要通读。 用法:看论文/读代码卡在一个词上 → 搜它 → 看到那一行 → 回去继续。
🧭 「我该翻哪一章」决策表
| 你的问题 | 去哪 |
|---|---|
| 完全没跑过模型 | 01 十分钟第一个模型 |
| 这题该用什么模型? | 02 机器学习在干什么 |
| 表格数据怎么做到最好? | 04 树模型 + 16 特征工程 |
| 我的分数是不是假的? ⭐ | 05 评估与过拟合 |
| 神经网络训不动 / loss 是 NaN | 11 训练调试手册 ⭐ |
| 过拟合了该加什么? | 10 正则化全家桶 |
| 学习率怎么调? | 09 优化器与学习率 |
| 反向传播到底怎么回事? | 08 反向传播 → 数学原理 12 |
| PyTorch 写法忘了 | 附录B 代码速查 |
| 为什么是这样?(原理层) | 《机器学习的数学原理》 ⭐ |
🧱 基础
| 术语 | 英文 | 人话 |
|---|---|---|
| 特征 | Feature | 用来做判断的输入,通常是矩阵的一列 |
| 标签 | Label / Target | 要预测的答案 |
| 样本 | Sample / Instance | 一条数据,矩阵的一行 |
| 监督学习 | Supervised | 有标准答案(分类/回归/排序) |
| 无监督 | Unsupervised | 没答案,找结构(聚类/降维) |
| 自监督 | Self-supervised | 自己造答案(遮词猜词)⭐ 大模型的地基 |
| 假设空间 | Hypothesis Space | 模型允许 f 长什么样,决定能力上限 |
| 归纳偏置 | Inductive Bias | 模型内建的先验假设(CNN=局部+平移,RNN=时序)⭐ |
🎯 训练
| 术语 | 人话 |
|---|---|
| 损失函数 | 衡量预测有多差。MSE(回归) / 交叉熵(分类) / BPR(排序) |
| 梯度下降 | 蒙眼下山:感受下坡方向,迈一小步,重复 |
| 反向传播 | 链式法则+从后往前算,复用中间结果 ⭐ |
| 计算图 | 记录"谁是谁算出来的",反传时沿着它走 |
| epoch | 全部数据过一遍 |
| batch / mini-batch | 一次喂给模型的一小撮样本(32~512) |
| 学习率 lr | 每步迈多大。最重要的超参 ⭐ |
| 优化器 | SGD → Momentum → RMSProp → Adam/AdamW(默认) |
| 调度器 Scheduler | 让 lr 随训练衰减(Cosine 最主流) |
| Warmup | 开头几百步 lr 从 0 慢慢升上去,大模型必备 |
| 梯度裁剪 | 梯度太大就按比例缩小,防爆炸 |
| 梯度累积 | 小显存模拟大 batch |
⚖️ 评估(第 5 章,最重要)
| 术语 | 人话 |
|---|---|
| 过拟合 | 训练好、测试差 = 背答案而非学规律 ⭐ |
| 欠拟合 | 训练集就差 = 模型太弱 |
| 偏差 Bias | 系统性偏离 → 欠拟合 |
| 方差 Variance | 对训练数据太敏感 → 过拟合 |
| 泛化 | 在没见过的数据上的表现(真正要的) |
| 交叉验证 CV | 切 K 折轮流当测试集,比单次切分可靠 |
| StratifiedKFold | 保持类别比例的 K 折,分类默认用它 |
| TimeSeriesSplit | 只用过去预测未来,时序必须用 |
| 数据泄漏 | 用了不该知道的信息 → 离线虚高上线崩 ⭐⭐ |
| 准确率 | 对的比例。⚠️ 类别不平衡时是陷阱 |
| 精确率 Precision | 说是正的里有多少真的 |
| 召回率 Recall | 真的正的里抓到多少 |
| F1 | 精确率和召回率的调和平均 |
| AUC | 随机取一正一负,正的排前面的概率 |
| PR-AUC | 极不平衡时比 AUC 可靠 ⭐ |
| 学习曲线 | 分数随数据量的变化,判断该加数据还是改模型 |
🛡️ 正则化(第 10 章)
| 术语 | 人话 |
|---|---|
| 正则化 | 一切"故意让模型别学太顺"的手段 |
| L1 / Lasso | 惩罚 |w|,会把权重压成 0 → 特征选择 |
| L2 / Ridge / 权重衰减 | 惩罚 w²,权重变小但不为 0,默认选它 |
| Dropout | 训练时随机置零神经元,逼出冗余表示 |
| BatchNorm | 对 batch 内同一特征归一化,CNN 常用 |
| LayerNorm | 对单样本所有特征归一化,Transformer 必用 |
| 早停 | 验证集不降就停,回滚最佳权重。零成本必用 ⭐ |
| 数据增强 | 造数据,注入"这些变化下答案不变"的先验 |
| 标签平滑 | 硬标签 [0,1] 改成 [0.03,0.94],防过度自信 |
🌲 树模型(第 4 章)
| 术语 | 人话 |
|---|---|
| 基尼不纯度 / 信息熵 | 衡量节点纯不纯,决定在哪切 |
| Bagging | 并行、独立训练、投票 → 降方差(随机森林) |
| Boosting | 串行、每棵新树纠正前面的错 → 降偏差(GBDT)⭐ |
| Stacking | 用一个模型学"怎么组合其他模型" |
| GBDT | 每棵新树拟合残差(负梯度) |
| XGBoost / LightGBM / CatBoost | GBDT 的三个工业实现:稳/快/类别特征强 |
| 特征重要性 | ⚠️ 三个坑:偏高基数、相关特征分摊、只反映训练集 |
| Permutation Importance | 打乱某列看性能掉多少,比自带的可靠 |
🧠 神经网络(第 7–15 章)
| 术语 | 人话 |
|---|---|
| MLP / 全连接 | 最基础的神经网络:线性层+激活堆叠 |
| 激活函数 | 提供非线性。ReLU 默认,Sigmoid 会梯度消失 |
| 梯度消失/爆炸 | 反向连乘导致指数衰减/增长 ⭐ |
| 残差连接 | 输出 = F(x) + x,梯度高速公路(ResNet→Transformer)⭐ |
| 卷积 | 小窗口滑过全图,局部连接 + 权重共享 |
| 感受野 | 一个输出对应输入的多大区域 |
| 池化 | 降尺寸、扩感受野 |
| 迁移学习 | 用预训练模型换个头再微调。图像/文本的默认做法 ⭐ |
| RNN / LSTM / GRU | 用记忆状态处理序列。硬伤:串行 + 遗忘 |
| 注意力 | 动态决定该关注哪些位置 |
| 位置编码 | 告诉注意力顺序信息(它天生没有) |
| 万能近似定理 | 一层够宽就能逼近任意函数。⚠️ 但实践中深比宽高效 |
🔧 工程(第 15 章)
| 术语 | 人话 |
|---|---|
| 张量 Tensor | 会自动求导的 numpy 数组 |
zero_grad() |
清梯度。忘了训练直接废 ⭐ |
model.train()/eval() |
切换 Dropout 和 BN 的行为 |
no_grad() |
不建计算图,验证时用,省显存 |
detach() |
切断梯度 |
BCEWithLogitsLoss |
二分类,输出层别加 Sigmoid |
CrossEntropyLoss |
多分类,别加 Softmax,标签传整数 |
| 混合精度 AMP | FP16 计算,显存减半速度翻倍 |
num_workers |
数据加载并行数,治"GPU 吃不满" |
🧹 特征工程(第 16 章)
| 术语 | 人话 |
|---|---|
| 标准化 | (x−μ)/σ,线性模型和 NN 必做,树模型不用 |
| log1p | log(1+x),治长尾分布 |
| 分箱 | 连续值切区间,让模型学非线性 |
| One-Hot | 每个类别一列,类别少时用 |
| 目标编码 | 用类别的目标均值代替。必须 OOF + 平滑,否则泄漏 ⭐ |
| 频次编码 | 用出现次数代替,简单无泄漏 |
| 聚合统计 | 一对多压成一行(用户的订单数/均值/最大)提分最猛 ⭐ |
⚠️ 十五个最容易搞混的地方
| 容易混 | 区别 |
|---|---|
| 偏差 vs 误差 | 偏差是多次重训的平均偏离,不是单次误差 |
| Bagging vs Boosting | Bagging 并行降方差;Boosting 串行降偏差 ⭐ |
| 验证集 vs 测试集 | 验证集用来选(调参/选模型),测试集只用一次报告 ⭐ |
| 准确率 vs AUC | 准确率看硬预测且受阈值影响;AUC 看排序,与阈值无关 |
| AUC vs PR-AUC | 极不平衡时(正例 <5%)PR-AUC 才靠谱,AUC 会虚高 ⭐ |
| 精确率 vs 召回率 | 精确率=说是正的里对多少;召回率=真正的里抓到多少 |
model.eval() vs no_grad() |
前者切换 Dropout/BN 行为;后者不建计算图省显存。验证时两个都要 ⭐ |
| L1 vs L2 | L1 把权重压到恰好 0(特征选择);L2 只压小不归零 |
| BatchNorm vs LayerNorm | BN 跨样本(batch=1 会崩);LN 不跨样本(Transformer 必用)⭐ |
| weight_decay vs L2 | Adam 里两者不等价,AdamW 才是对的做法 ⭐ |
| epoch vs step/iteration | epoch=全部数据一遍;step=一个 batch |
| 学习率 vs batch size | 通常一起调:batch 翻倍,学习率也大致翻倍(线性缩放法则) |
| 过拟合 vs 数据泄漏 | 过拟合是模型太强;泄漏是数据本身有问题——泄漏时换模型没用 ⭐ |
| 微调 vs 冻结主干 | 数据多→微调;数据少(<每类几百张)→冻结更好 |
CrossEntropyLoss vs NLLLoss |
前者内含 softmax(输出层别加);后者要你自己先 log_softmax |
📊 「该看什么数字」速查
| 场景 | 看什么 | 健康值 |
|---|---|---|
| CV 分数 | 均值 ± 标准差 | 提升要超过标准差才算数 ⭐ |
| 手写反向传播 | 梯度检验相对误差 | < 1e-6(参考实现 1.49e-08) |
| 训练刚开始 | 第一个 loss | 分类应≈ ln(类别数)(10 类 ≈ 2.30)⭐ |
| 小数据过拟合测试 | 10 个样本的训练 loss | 应能降到 ≈ 0 |
| 类别不平衡 | 正例比例 | < 5% 就别看准确率 |
| GPU 利用率 | nvidia-smi |
长期 < 50% → 调 num_workers |
💡 第三行值得单独记:分类任务第一个 batch 的 loss 应该约等于
ln(类别数)——因为初始时模型在均匀乱猜。明显偏离说明初始化或标签有问题, 这是第 11 章最省时间的一个自检。
🔗 跨教程速查
| 这里学的 | 在哪里被用到 |
|---|---|
| 树模型 / GBDT | Kaggle 全套的主力 |
| 评估与数据泄漏 | Kaggle 的 CV 策略、推荐算法的离线/线上一致性 |
| 反向传播 / 优化器 | 数学原理 12、推荐算法的所有深度模型 |
| 正则化 | 数学原理 02(正则化=先验) |
| CNN / RNN / 注意力 | 全景导论 02 Transformer |
| 特征工程 | Kaggle 01、推荐算法的特征体系 |
| 迁移学习 | 全景导论的微调、推荐算法的预训练 Embedding |
👉 回到首页