📑 本页目录(点开跳转)
02 · 机器学习到底在干什么
⏱ 28 分钟 | ⭐ 核心
🎯 一句话
机器学习就一件事:从数据里找一个函数 f,让它对没见过的数据也管用。 「对没见过的也管用」这五个字,就是全部难点所在。
🆚 零、和普通编程的根本区别
💡 一句话:普通编程是"你写规则",机器学习是"你给例子,让机器写规则"。
什么时候该用机器学习:
| 情况 | 用什么 |
|---|---|
| 规则清晰、能写出来 | ✅ 普通代码("满 100 减 20" 别用模型) |
| 规则存在但说不清楚 | ⭐ 机器学习("这张照片里是猫" —— 你说不出判断规则) |
| 规则经常变 | ⭐ 机器学习(重新训练比重写代码快) |
| 没有规则、纯随机 | ❌ 谁也救不了(第 5 章的"不可约误差") |
⚠️ 新手最常见的浪费:用模型去解一个 if-else 就能解决的问题。 先问一句"这能不能写成规则"——能,就别上模型。
🧠 一、三要素:任何算法都逃不出这个框架
不管是逻辑回归、XGBoost 还是 GPT,拆开都是这三样:
- 线性模型:f 只能是直线/平面
- 决策树:f 是一堆 if-else 切出的方块
- 神经网络:f 可以是任意复杂的曲面
- 回归:均方误差 MSE
- 分类:交叉熵
- 排序:BPR / pairwise(推荐算法第 5 章见过)
- 解析解:直接求公式(线性回归可以)
- 梯度下降:一小步一小步挪(神经网络)
- 贪心搜索:每次选最优切分(决策树)
🔑 拿到任何新算法,就问这三个问题:它假设 f 长什么样?它的损失函数是什么?它怎么优化? 能答上来,就算懂了这个算法。
🔨 用三要素拆解三个你已经见过的模型
| 假设空间 | 损失函数 | 优化方法 | |
|---|---|---|---|
| 线性回归 | 直线/超平面 | MSE | 解析解或梯度下降 |
| XGBoost | 一堆树的加和 | 任意可微损失 + 复杂度罚 | 贪心找切分 + 梯度提升 |
| GPT | Transformer 能表达的函数 | 交叉熵(猜下一个词) | AdamW + 反向传播 |
💡 看出来了吗:GPT 和线性回归在框架上没有本质区别, 只是假设空间大了 10 亿倍、数据多了 10 亿倍。 "大模型"是量变,三要素这个框架没变。
🔗 数学原理第 1 章会告诉你更深的一层: 损失函数不是随便选的——MSE 对应"假设噪声是高斯的",交叉熵对应"假设标签服从伯努利分布"。 选损失函数 = 声明你对数据的假设。
🎭 二、核心难题:泛化
你能测量的:训练误差(在见过的数据上错多少)
你真正要的:泛化误差(在没见过的数据上错多少)
↑ 这两个不是一回事
整个机器学习都在处理这个鸿沟
为什么会有鸿沟:训练数据只是真实世界的一个样本,里面既有真规律,也有噪声和巧合。
模型能力弱 → 只学到了粗糙的规律 → 欠拟合(两边都差)
模型能力刚好 → 学到真规律,忽略噪声 → ✅ 泛化好
模型能力过强 → 把噪声和巧合也学进去了 → 过拟合(训练好测试差)
💡 人话类比:
你观察到「过去 10 天下雨我都带伞了,而且这 10 天我都穿了蓝袜子」。 真规律:下雨要带伞。 巧合:蓝袜子和下雨有关。 一个"能力过强"的模型会把蓝袜子也学进去 —— 这就是过拟合。
💡 为什么"数据越多越不容易过拟合":
数据少时,"蓝袜子"这种巧合很容易出现(10 天全是蓝袜子完全可能)。 数据到 1000 天时,蓝袜子和下雨的巧合几乎必然被打破——噪声被平均掉了,真规律留下来。
🔗 数学原理第 9 章 PAC把这句话变成了公式:
m ≥ (1/ε)(ln|H| + ln(1/δ))—— 模型能力(|H|)越大,需要的数据越多。 这是"要多少数据才够"这个问题唯一的理论答案。
⚠️ 一个必须现在就建立的习惯
❌ 用训练集的分数判断模型好坏
✅ 永远留出【模型没见过】的数据来评估
→ 这就是第 5 章要讲的训练/验证/测试集划分
→ 违反它,你所有的结论都是假的
📚 三、三类任务(分清楚,选错模型就白干)
- 分类:答案是类别 「这个肿瘤是良性还是恶性」
- 回归:答案是数字 「这套房值多少钱」
- 排序:答案是顺序 「哪个商品该排前面」← 推荐算法
- 👉 你 90% 的时间在做这个
- 聚类:把相似的分成一堆 「用户能分成几种类型」
- 降维:压缩到低维 「30 个特征压成 2 个来画图」
- 👉 第 6 章讲
- 「遮住下一个词,让模型猜」← 大模型预训练就是这个!
- 数据本身提供监督信号,不需要人标注
- 👉 这是大模型能吃下整个互联网的根本原因
🔗 一个重要的连接:你在全景导论第 4 章学的「预训练=猜下一个词」, 在分类上属于自监督——它把「无标注文本」变成了「有答案的监督任务」。 这个技巧是大模型革命的地基。
💡 为什么自监督这么厉害:
监督学习的天花板 = 人能标多少数据
→ ImageNet 花了几年标了 1400 万张图
自监督的天花板 = 世界上有多少数据
→ 整个互联网,而且【完全免费】 ⭐
⭐ 这个数量级差异,就是大模型和传统模型的分水岭
还有两类你会遇到的
| 类型 | 是什么 | 典型场景 |
|---|---|---|
| 半监督 | 少量标注 + 大量无标注 | 标注贵的领域(医疗影像) |
| 强化学习 | 没有正确答案,只有奖励信号 | 游戏、机器人、RLHF(大模型对齐) ⭐ |
🔗 RLHF 让大模型"听话"的那一步就是强化学习——全景导论第 4 章。
⚖️ 四、没有免费的午餐
不存在一个在所有问题上都最好的算法。
这不是鸡汤,是有数学证明的定理(No Free Lunch Theorem)。它的实践含义:
| ❌ 错误的想法 | ✅ 正确的想法 |
|---|---|
| 「XGBoost 是最强的算法」 | 「XGBoost 在中小规模表格数据上通常最强」 |
| 「深度学习碾压一切」 | 「深度学习在图像/文本/大数据上强,小表格数据经常输给树模型」 |
| 「先上最复杂的模型」 | 「先上简单基线,用数据证明复杂度必要」 |
🔗 数学原理第 11 章给了严格版本, 结论比你想的更强:在所有可能的问题上平均,随机猜和最先进的算法一样好。 之所以机器学习仍然有用,是因为真实问题有结构——而选对模型 = 选对和这个结构匹配的假设。
也是智能体工程第 6 章的降级测试、 以及Kaggle 第 21 章任务决策路径背后的同一条原理。
实践中的选型直觉(第 19 章挑战 B 会让你亲手验证):
| 数据类型 | 首选 |
|---|---|
| 表格数据、几万到几百万行 | 梯度提升树(XGBoost/LightGBM)⭐ |
| 图像 | CNN / 预训练视觉模型 |
| 文本 | 预训练语言模型微调 |
| 数据极少(<1000 行) | 线性模型 + 强正则 |
| 需要可解释 | 线性模型 / 单棵决策树 |
| 有强先验知识(周期性、单调性) | 把知识编码进模型/特征,比换模型有效得多 ⭐ |
🗺️ 五、一个完整项目的样子(后面每一章都是它的一环)
① 问题定义 这是分类还是回归?用什么指标? ← 本章
② 数据 从哪来?有多脏?怎么划分? ← 第 5、16 章
③ 基线 最简单的模型能到多少分? ← 第 1、3 章
④ 特征 能不能造出更有信息量的输入? ← 第 16 章
⑤ 模型 换更强的模型有没有提升? ← 第 4、7-15 章
⑥ 调参 在噪声之上还有没有空间? ← 第 4、9 章
⑦ 诊断 欠拟合还是过拟合?该加什么? ← 第 5、10、11 章
⑧ 上线 线上和线下一致吗? ← 第 11 章
💡 绝大多数人的时间分配是错的: 新手把 80% 时间花在 ⑤⑥(换模型、调参), 老手把 80% 时间花在 ①②④(问题定义、数据、特征)。 —— 因为前者的天花板由后者决定。
🔗 和站内其他章的关系
| 相关的地方 | 这一章的位置 |
|---|---|
| 推荐算法第 5 章的 BPR 损失 | 三要素里的「损失函数」,排序任务专用 |
| 推荐算法第 12 章的离线/在线不一致 | 泛化鸿沟的工业版 |
| 全景导论第 4 章预训练 | 自监督学习 |
| 全景导论第 4 章 RLHF | 强化学习 |
| 数学原理第 1 章 | 损失函数从哪来 |
| 数学原理第 9 章 | "要多少数据"的定量答案 |
| 数学原理第 11 章 | NFL 的严格版 |
| Kaggle 第 2 章正则化 | 对抗过拟合的工具箱 |
| 智能体第 6 章降级测试 | 没有免费午餐的工程实践 |
✅ 检查点
- 机器学习和普通编程的根本区别是什么?什么时候不该用机器学习?
- 机器学习三要素是什么?拿到新算法该问哪三个问题?
- 用三要素拆解一下 GPT。它和线性回归有本质区别吗?
- 训练误差和泛化误差的区别?为什么会有鸿沟?
- 为什么"数据越多越不容易过拟合"?
- 欠拟合和过拟合分别是什么原因?
- 「预训练=猜下一个词」属于哪类学习?为什么它是大模型的分水岭?
- 除了监督/无监督/自监督,还有哪两类?RLHF 属于哪类?
- 「没有免费的午餐」的实践含义是什么?为什么机器学习仍然有用?
- 新手和老手的时间分配有什么区别?为什么?
👀 答案
- 普通编程是你写规则,机器学习是你给例子让机器写规则。规则清晰能写出来时不该用("满 100 减 20"别上模型)。
- 模型(f 能长什么样/能力上限)、损失函数(往哪个方向努力)、优化方法(能不能真找到)。问:假设空间是什么?损失是什么?怎么优化?
- 假设空间=Transformer 能表达的函数,损失=交叉熵(猜下一个词),优化=AdamW+反向传播。没有本质区别——只是假设空间大了 10 亿倍、数据多了 10 亿倍。大模型是量变。
- 训练误差是在见过的数据上的表现(可测量),泛化误差是在没见过的数据上的(真正要的)。鸿沟来自训练数据只是真实世界的一个样本,含有噪声和巧合。
- 数据少时"蓝袜子"这种巧合很容易出现;数据多了巧合几乎必然被打破——噪声被平均掉,真规律留下。定量版是 PAC 的 m ≥ (1/ε)(ln|H|+ln(1/δ))。
- 欠拟合=模型能力太弱,连真规律都没学到(训练测试都差);过拟合=能力太强,把噪声和巧合也学进去了(训练好测试差)。
- 自监督——数据本身提供答案,不需要人工标注。分水岭在于:监督学习的天花板是"人能标多少",自监督的天花板是"世界上有多少数据",而且免费。
- 半监督(少量标注+大量无标注)和强化学习(只有奖励信号)。RLHF 属于强化学习。
- 不存在通用最优算法 → 先上简单基线、用数据证明复杂度必要。仍然有用是因为真实问题有结构,选对模型 = 选对和这个结构匹配的假设。
- 新手 80% 时间在换模型/调参,老手 80% 时间在问题定义/数据/特征。因为前者的天花板由后者决定。
🛑 可以停在这里
⚡ 走神救援
普通编程是你写规则,ML是你给例子让机器写规则——规则能写出来就别上模型。ML=从数据找函数f,难点全在"对没见过的也管用"。三要素:模型(f能长啥样/能力上限)+损失(往哪努力)+优化(能否找到)——拿到新算法就问这三个。GPT 和线性回归在这个框架里没有本质区别,只是量变(🔗数学原理第1章:损失函数不是随便选的,MSE=高斯噪声假设,交叉熵=伯努利假设)。核心难题泛化:训练误差可测但泛化误差才是要的,鸿沟来自数据含噪声和巧合(蓝袜子);数据多了巧合被平均掉(定量版=PAC的 m≥(1/ε)(ln|H|+ln(1/δ)))。能力弱→欠拟合,过强→过拟合。任务类型:监督(90%时间)/无监督/自监督(预训练=猜下一个词——分水岭在于天花板从"人能标多少"变成"世界有多少数据"且免费)/半监督/强化学习(RLHF)。没有免费午餐→先上简单基线;ML仍有用是因为真实问题有结构,选模型=选匹配这个结构的假设。⭐新手80%时间调参,老手80%时间在问题定义/数据/特征——前者的天花板由后者决定。
下一节 👉 03-线性模型.md