跳到主要内容

0.1 什么是机器学习

先猜一个分数​

期末考试前,班主任想预测每个同学的成绩。她手里有全班的历史数据:每人每天学习几小时,以及上次考了多少分。

凭经验,她心里有杆秤:「学得越久,分数越高,大概每多学一小时能多拿几分。」

把这杆秤写成式子,就是一条直线:

分数≈w×学习时间+b\text{分数} \approx w \times \text{学习时间} + b

这里 ww 和 bb 是两个待定的数字:ww 是「每多学一小时值多少分」,bb 是「完全不学大概能考多少」。这条带着两个可调数字的直线,就是一个最简单的「模型」——数据进去,预测出来。

问题来了:ww 和 bb 到底取多少,这条线才「猜得最准」?

先别看答案,你亲手试试:

🎮 动手实验
拖点拟合:亲手当一次「模型」
蓝点是 12 名学生的(每天学习时间 → 考试分数)数据。拖动滑块调整直线,让平均偏差尽量小;也可以直接拖动蓝点改数据。
0204060801000246810每天学习时间(小时)考试分数
当前模型
分数 ≈ 1.5 × 时间 + 5.0
平均偏差(RMSE)
43.2 分
💡 要点:这条直线就是一个只有 2 个参数(w 和 b)的「模型」。你刚才手动调参数,而机器学习就是让程序自动完成这个调参过程。大模型的原理相同——只是参数从 2 个变成了几千亿个。

你刚才做的事,就是机器学习​

回顾一下你刚才的操作流程:

  1. 看着直线和数据点的偏差(红色虚线);
  2. 觉得偏差太大,就调整 ww 和 bb;
  3. 反复调,直到偏差尽可能小。

再点「🤖 让机器自动学」,机器做的是完全同一件事,只是不用人眼看、不用手拖——它用算法自动完成「衡量偏差 → 调整参数」的循环。

这就是机器学习的完整定义:

一句话定义

机器学习(Machine Learning)= 不靠人手写规则,而是让程序根据数据自动调整参数,使模型的预测偏差尽可能小。

三个词值得记住,后面每一章都会用到:

  • 模型:带可调参数的函数(这里是一条直线)。
  • 参数:那些可调的数字旋钮(这里是 ww 和 bb,一共 2 个)。
  • 训练:自动调参数、让偏差变小的过程(你点的那个按钮)。

从 2 个参数到 2000 亿个​

你可能会想:一条直线也太简单了,跟 ChatGPT 有什么关系?

关系是——原理一模一样,只是规模不同:

刚才的直线大语言模型(2025 年的旗舰级)
输入学习时间(1 个数字)上文(几万个词元)
输出预测分数(1 个数字)下一个词的概率(几万个数字)
参数量2 个数百亿 ~ 数万亿个
训练数据12 个点十几万亿词的文本
训练方式调 w,bw, b 减小偏差调所有参数减小偏差——完全同款

后面整本书要讲的,无非是三件事:

  1. 模型的「函数」长什么样?(第 2、3 章:神经网络、Transformer)
  2. 「偏差」怎么定义?(第 1、2 章:损失函数)
  3. 参数那么多,怎么自动调?(第 0.4、2 章:梯度下降、反向传播)
这个类比在哪里不准确?

「班主任的直线」是有监督回归:每条数据都带着标准答案(真实分数)。大模型的预训练其实不用人工标答案——它拿一句话的前半段当输入、后半段的下一个词当「答案」,答案就藏在文本自己身上(第 4 章细讲)。另外,直线只能表达「线性」规律,大模型用的函数要弯曲、复杂得多——这正是第 2 章神经网络要解决的问题。

小结​

本节要点
  • 模型是带可调参数的函数;训练是自动调参数让预测偏差变小的过程。
  • 偏差需要一个明确的量化标准(本例中是均方误差),机器才知道「调得好不好」。
  • 大模型与这条直线原理相同,差别只在参数量(2 个 → 数千亿个)和函数复杂度。
📝 动手自测0/3
1. 机器学习里的「学习」,最准确的说法是指什么?
2. 实验里的直线模型「分数 ≈ w × 时间 + b」有几个参数?
3. 为什么说 ChatGPT 和这条直线「原理相同」?

延伸阅读​