🏠 总目录📚 本教程 02 · 机器学习在干什么 ← →
📑 本页目录(点开跳转)

02 / 先看直觉,再看细节

模型不是背答案,
目标是答对没见过的题。

先分清你要预测什么,再选模型和评估方式。

先抓住一个具体结果

同一份天气记录,两种问题

问“明天温度是多少”是在预测数值;问“明天会不会下雨”是在判断类别。输入可以相同,答案的形式和评估指标却不同。

接下来,按需要选一项

你现在想看什么?

这些入口是选择,不是必须按顺序完成的任务。

可以停在这里

先分清你要预测什么,再选模型和评估方式。

需要更多细节时,继续看完整正文 →
继续探索

原有正文、图解和例子都在下方。按需跳转,不必一次读完。

02 · 机器学习到底在干什么

⏱ 28 分钟 | ⭐ 核心


🎯 一句话

机器学习就一件事:从数据里找一个函数 f,让它对没见过的数据也管用。 「对没见过的也管用」这五个字,就是全部难点所在。


🆚 零、和普通编程的根本区别

普通编程:规则数据程序答案机器学习:数据答案学习规则(模型)
盯住「规则」这个框换了边:左边它是你写进去的输入,右边它是跑出来的产物。⭐ 所以机器学习真正的交付物不是代码,是一份你没亲手写、也读不太懂的规则 —— 后面所有「怎么知道它对不对」的麻烦都从这儿来。

💡 一句话:普通编程是"你写规则",机器学习是"你给例子,让机器写规则"。

什么时候该用机器学习:

情况 用什么
规则清晰、能写出来 ✅ 普通代码("满 100 减 20" 别用模型)
规则存在但说不清楚 ⭐ 机器学习("这张照片里是猫" —— 你说不出判断规则)
规则经常变 ⭐ 机器学习(重新训练比重写代码快)
没有规则、纯随机 ❌ 谁也救不了(第 5 章的"不可约误差")

⚠️ 新手最常见的浪费:用模型去解一个 if-else 就能解决的问题。 先问一句"这能不能写成规则"——能,就别上模型。


🧠 一、三要素:任何算法都逃不出这个框架

不管是逻辑回归、XGBoost 还是 GPT,拆开都是这三样:

① 模型(假设空间)—— 我允许 f 长什么样?
  • 线性模型:f 只能是直线/平面
  • 决策树:f 是一堆 if-else 切出的方块
  • 神经网络:f 可以是任意复杂的曲面
💡 这决定了模型的「能力上限」
② 损失函数 —— 怎么衡量 f 有多差?
  • 回归:均方误差 MSE
  • 分类:交叉熵
  • 排序:BPR / pairwise(推荐算法第 5 章见过)
💡 这决定了模型「往哪个方向努力」
③ 优化方法 —— 怎么找到最好的那个 f?
  • 解析解:直接求公式(线性回归可以)
  • 梯度下降:一小步一小步挪(神经网络)
  • 贪心搜索:每次选最优切分(决策树)
💡 这决定了「能不能真的找到」

🔑 拿到任何新算法,就问这三个问题:它假设 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 章要讲的训练/验证/测试集划分
违反它,你所有的结论都是假的

📚 三、三类任务(分清楚,选错模型就白干)

监督学习 Supervised —— 有标准答案
  • 分类:答案是类别 「这个肿瘤是良性还是恶性」
  • 回归:答案是数字 「这套房值多少钱」
  • 排序:答案是顺序 「哪个商品该排前面」← 推荐算法
  • 👉 你 90% 的时间在做这个
无监督 Unsupervised —— 没有答案,找结构
  • 聚类:把相似的分成一堆 「用户能分成几种类型」
  • 降维:压缩到低维 「30 个特征压成 2 个来画图」
  • 👉 第 6 章讲
自监督 Self-Supervised —— 自己造答案 ⭐
  • 「遮住下一个词,让模型猜」← 大模型预训练就是这个!
  • 数据本身提供监督信号,不需要人标注
  • 👉 这是大模型能吃下整个互联网的根本原因

🔗 一个重要的连接:你在全景导论主线 4 · 它怎样从续写机变助手学的「预训练=猜下一个词」, 在分类上属于自监督——它把「无标注文本」变成了「有答案的监督任务」。 这个技巧是大模型革命的地基。

💡 为什么自监督这么厉害:

结果对照

监督学习的天花板 = 人能标多少数据
ImageNet 花了几年标了 1400 万张图
自监督的天花板 = 世界上有多少数据
整个互联网,而且【完全免费】 ⭐
⭐ 这个数量级差异,就是大模型和传统模型的分水岭

还有两类你会遇到的

类型 是什么 典型场景
半监督 少量标注 + 大量无标注 标注贵的领域(医疗影像)
强化学习 没有正确答案,只有奖励信号 游戏、机器人、RLHF(大模型对齐) ⭐

🔗 RLHF 让大模型"听话"的那一步就是强化学习——全景导论主线 4 · 它怎样从续写机变助手。


⚖️ 四、没有免费的午餐

不存在一个在所有问题上都最好的算法。

这不是鸡汤,是有数学证明的定理(No Free Lunch Theorem)。它的实践含义:

❌ 错误的想法 ✅ 正确的想法
「XGBoost 是最强的算法」 「XGBoost 在中小规模表格数据上通常最强」
「深度学习碾压一切」 「深度学习在图像/文本/大数据上强,小表格数据经常输给树模型」
「先上最复杂的模型」 「先上简单基线,用数据证明复杂度必要」

🔗 数学原理第 11 章给了严格版本, 结论比你想的更强:在所有可能的问题上平均,随机猜和最先进的算法一样好。 之所以机器学习仍然有用,是因为真实问题有结构——而选对模型 = 选对和这个结构匹配的假设。

也是智能体工程第 6 章的降级测试、 以及Kaggle 第 21 章任务决策路径背后的同一条原理。

实践中的选型直觉(第 19 章挑战 B 会让你亲手验证):

数据类型 首选
表格数据、几万到几百万行 梯度提升树(XGBoost/LightGBM)⭐
图像 CNN / 预训练视觉模型
文本 预训练语言模型微调
数据极少(<1000 行) 线性模型 + 强正则
需要可解释 线性模型 / 单棵决策树
有强先验知识(周期性、单调性) 把知识编码进模型/特征,比换模型有效得多 ⭐

🗺️ 五、一个完整项目的样子(后面每一章都是它的一环)

操作步骤

  1. 问题定义 这是分类还是回归?用什么指标? ← 本章
  2. 数据 从哪来?有多脏?怎么划分? ← 第 5、16 章
  3. 基线 最简单的模型能到多少分? ← 第 1、3 章
  4. 特征 能不能造出更有信息量的输入? ← 第 16 章
  5. 模型 换更强的模型有没有提升? ← 第 4、7-15 章
  6. 调参 在噪声之上还有没有空间? ← 第 4、9 章
  7. 诊断 欠拟合还是过拟合?该加什么? ← 第 5、10、11 章
  8. 上线 线上和线下一致吗? ← 第 11 章

💡 绝大多数人的时间分配是错的: 新手把 80% 时间花在 ⑤⑥(换模型、调参), 老手把 80% 时间花在 ①②④(问题定义、数据、特征)。 —— 因为前者的天花板由后者决定。


🔗 和站内其他章的关系

相关的地方 这一章的位置
推荐算法第 5 章的 BPR 损失 三要素里的「损失函数」,排序任务专用
推荐算法第 12 章的离线/在线不一致 泛化鸿沟的工业版
全景导论主线 4 的预训练 自监督学习
全景导论主线 4 的 RLHF 强化学习
数学原理第 1 章 损失函数从哪来
数学原理第 9 章 "要多少数据"的定量答案
数学原理第 11 章 NFL 的严格版
Kaggle 第 2 章正则化 对抗过拟合的工具箱
智能体第 6 章降级测试 没有免费午餐的工程实践

✅ 检查点

  1. 机器学习和普通编程的根本区别是什么?什么时候不该用机器学习?
  2. 机器学习三要素是什么?拿到新算法该问哪三个问题?
  3. 用三要素拆解一下 GPT。它和线性回归有本质区别吗?
  4. 训练误差和泛化误差的区别?为什么会有鸿沟?
  5. 为什么"数据越多越不容易过拟合"?
  6. 欠拟合和过拟合分别是什么原因?
  7. 「预训练=猜下一个词」属于哪类学习?为什么它是大模型的分水岭?
  8. 除了监督/无监督/自监督,还有哪两类?RLHF 属于哪类?
  9. 「没有免费的午餐」的实践含义是什么?为什么机器学习仍然有用?
  10. 新手和老手的时间分配有什么区别?为什么?
👀 答案
  1. 普通编程是你写规则,机器学习是你给例子让机器写规则。规则清晰能写出来时不该用("满 100 减 20"别上模型)。
  2. 模型(f 能长什么样/能力上限)、损失函数(往哪个方向努力)、优化方法(能不能真找到)。问:假设空间是什么?损失是什么?怎么优化?
  3. 假设空间=Transformer 能表达的函数,损失=交叉熵(猜下一个词),优化=AdamW+反向传播。没有本质区别——只是假设空间大了 10 亿倍、数据多了 10 亿倍。大模型是量变。
  4. 训练误差是在见过的数据上的表现(可测量),泛化误差是在没见过的数据上的(真正要的)。鸿沟来自训练数据只是真实世界的一个样本,含有噪声和巧合。
  5. 数据少时"蓝袜子"这种巧合很容易出现;数据多了巧合几乎必然被打破——噪声被平均掉,真规律留下。定量版是 PAC 的 m ≥ (1/ε)(ln|H|+ln(1/δ))。
  6. 欠拟合=模型能力太弱,连真规律都没学到(训练测试都差);过拟合=能力太强,把噪声和巧合也学进去了(训练好测试差)。
  7. 自监督——数据本身提供答案,不需要人工标注。分水岭在于:监督学习的天花板是"人能标多少",自监督的天花板是"世界上有多少数据",而且免费。
  8. 半监督(少量标注+大量无标注)和强化学习(只有奖励信号)。RLHF 属于强化学习。
  9. 不存在通用最优算法 → 先上简单基线、用数据证明复杂度必要。仍然有用是因为真实问题有结构,选对模型 = 选对和这个结构匹配的假设。
  10. 新手 80% 时间在换模型/调参,老手 80% 时间在问题定义/数据/特征。因为前者的天花板由后者决定。

🛑 可以停在这里

⚡ 走神救援

先记住这几件事

  • 机器学习从样本中拟合规律,再用没见过的数据检验能否泛化。
  • 特征是预测时可获得的输入,标签是希望预测的结果。
  • 训练误差低不等于预测可靠;划分、指标和简单基线都属于建模的一部分。

下一节 👉 03-线性模型.md

打卡记录保存在你的浏览器里,首页能看到总进度