第1章:起点——机器如何"学习"
问题驱动:本书每一章都从一个具体问题出发。这一章的问题是:我们如何让计算机自动识别模式?
1956 年的达特茅斯会议上,一群科学家乐观地预言:只要给足够的资源,机器将在二十年内拥有人类级别的智能。
七十年后,这个梦想终于开始成真——但走的路,和当初设想的完全不同。
这一章是整本书的起点。我们将从最朴素的问题出发:机器是怎么"学习"的?在神经网络和 Transformer 出现之前,人们是如何解决智能问题的?他们遇到了什么困难?正是这些困难,一步步逼出了后来的所有技术突破。
1.1 传统机器学习的范式
问题:如何识别垃圾邮件?
假设你是 2000 年的一名工程师,老板要求你写一个垃圾邮件过滤器。
最直接的想法是写规则:
如果邮件包含"免费领取"或"中奖通知",则标记为垃圾邮件
如果发件人不在联系人列表中,则提高可疑度
如果全大写字母超过 30%,则标记为垃圾邮件
这些规则有效,但很快你就遇到了麻烦:垃圾邮件发送者会绕过规则(把"free"写成"fr ee"),而你的规则库越来越庞大,越来越难以维护。
机器学习给出了不同的答案:不写规则,让机器从数据中自己找规律。
特征工程:人类的知识,机器的输入
传统机器学习的核心流程是:
原始数据 → [人工提取特征] → 特征向量 → [机器学习模型] → 预测结果
以垃圾邮件为例,一封邮件的特征向量可能是:
| 特征名称 | 值 |
|---|---|
| 是否包含"免费" | 1 |
| 发件人是否在联系人中 | 0 |
| 大写字母比例 | 0.42 |
| 邮件长度(词数) | 87 |
| 感叹号数量 | 5 |
| ... | ... |
这个把原始信息转化为数字向量的过程,就叫做特征工程(Feature Engineering)。
有了特征向量,就可以喂给各种分类器:
- 逻辑回归:学习每个特征的权重,加权求和后过一个 sigmoid 函数得到概率
- 决策树:学习一系列"if-else"规则,构建树形判断结构
- 支持向量机(SVM):在高维空间中找到最优分类超平面,最大化两类数据之间的间隔
:::info 支持向量机为什么曾经那么流行?
SVM 在 2000 年代是机器学习的主流选择,原因是它有坚实的数学基础(最大化间隔等价于一个凸优化问题),并且在小数据集上泛化性能好。即使训练样本只有几千个,SVM 通常也能给出不错的结果。
这在当时很关键——那个年代,标注数据非常稀缺。
:::
核心局限:人类成了瓶颈
传统机器学习在很多任务上效果不错,但隐藏着一个根本性的限制:
特征工程依赖领域专家。
对于垃圾邮件,你大概知道提取哪些特征。但对于更复杂的任务呢?
试着回答:一张图片里有猫,应该提取哪些特征?
毛发的纹理?耳朵的形状?眼睛的比例?尾巴的曲线?这些特征如何量化?如何处理猫的角度变化、光照变化、遮挡?
这里暴露出传统机器学习的根本矛盾:
- 你需要用特征来描述世界
- 但最有价值的特征,往往是人类说不清楚的
图像识别、语音识别、自然语言理解——这些任务的难点,恰恰不是缺乏强大的分类器,而是我们不知道应该提取什么特征。
这个困境催生了一个大胆的问题:能不能让机器自己学习提取特征?
1.2 神经网络的早期尝试(1950s–1980s)
感知机:最简单的"神经元"(1957)
1957 年,心理学家弗兰克·罗森布拉特(Frank Rosenblatt)受到生物神经元的启发,提出了感知机(Perceptron)。
一个感知机就是一个计算单元:接收多个输入,对每个输入赋予权重,求加权和,然后判断是否超过阈值:
关键的突破是:权重 可以通过训练数据自动调整。这意味着,只要给定足够的样本,感知机能自己"学会"如何分类。
罗森布拉特当时激动地宣布,感知机将能学会识别图像、翻译语言……媒体争相报道,军方开始资助。这是第一次 AI 热潮。
现实的打击:线性不可分
1969 年,人工智能先驱马文·明斯基(Marvin Minsky)和西摩·派珀特(Seymour Papert)出版了《感知机》一书,用数学严格证明:
单层感知机无法解决线性不可分问题——连最简单的异或(XOR)函数都学不了。
| XOR | ||
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
在二维平面上,XOR 的四个点无论如何都不能用一条直线分开。单层感知机画的就是一条线,所以它做不到。
这个证明几乎终结了感知机的研究资助,神经网络进入了第一次寒冬。
多层感知机:解法是堆层
对于 XOR 问题,解决方案其实并不复杂:堆叠多层感知机(Multi-Layer Perceptron,MLP)。
输入层 → 隐藏层 1 → 隐藏层 2 → ... → 输出层
每层神经元的输出作为下一层的输入。通过非线性激活函数(比如 sigmoid ),多层网络可以逼近任意复杂的函数——这被称为万能近似定理(Universal Approximation Theorem)。
理论上,多层网络可以解决一切问题。但实践中,立刻遇到了一个致命问题:
怎么训练它?
如果只有一层,感知机学习规则很简单:预测错了,就朝正确方向调整权重。但多层网络中间有大量隐藏层,一个错误的输出,应该怪哪个隐藏层的哪个权重?
这就是信用分配问题(Credit Assignment Problem)。
反向传播:终于能训练多层网络(1986)
1986 年,大卫·鲁梅尔哈特(David Rumelhart)、杰弗里·辛顿(Geoffrey Hinton)和罗纳德·威廉姆斯(Ronald Williams)在《自然》杂志发表了一篇论文,提出了反向传播算法(Backpropagation)。
核心思想是链式法则(Chain Rule):
损失函数对某个权重的梯度,等于从输出到该权重路径上所有偏导数的乘积。由输出层开始,逐层向后传播误差,每层都能计算出自己应该如何调整权重。
反向传播让深层网络的训练在数学上变得可行。神经网络重新获得关注,研究者们开始尝试更多层的网络。
核心局限:三座大山
然而,兴奋很快被三个现实困难浇灭:
① 梯度消失(Vanishing Gradient)
反向传播依赖链式法则连乘。sigmoid 函数的导数最大值只有 0.25,当网络超过几层时,梯度在反向传播过程中会指数级缩小——到达前面几层时,梯度几乎为零,权重几乎不更新。
网络越深,越学不动。
② 算力不足
训练一个中等规模的神经网络,在 1990 年代的 CPU 上需要数周甚至数月。而 SVM 在同样的硬件上,只需要几分钟就能给出更好的结果。
理性的研究者选择了有效的方法。
③ 数据不足
神经网络是数据饥渴型的:参数量越多,需要的训练数据越多,否则会严重过拟合。但当时互联网还未普及,标注数据极度稀缺。
:::warning 第一次 AI 寒冬的教训
1990 年代,神经网络研究经费锐减,大量研究者转向 SVM 和其他方法。这段历史告诉我们:一个正确的想法,可能会因为时代条件不成熟而沉寂多年。
梯度消失问题、算力问题、数据问题——这三座大山不是神经网络本身的缺陷,而是工程条件的限制。二十年后,当 GPU、互联网大数据、以及新的训练技巧出现后,神经网络将以令人震惊的方式卷土重来。
:::
本章小结
| 阶段 | 核心思路 | 局限 |
|---|---|---|
| 传统机器学习 | 人工设计特征 + 统计分类器 | 特征工程依赖专家,复杂任务无从下手 |
| 单层感知机(1957) | 可学习的线性分类器 | 无法处理线性不可分问题 |
| 多层感知机 + 反向传播(1986) | 理论上可以学习任意函数 | 梯度消失、算力不足、数据不足 |
传统机器学习的失败揭示了一个深刻的洞见:
让机器理解世界,不能靠人类事先提炼好的特征。机器需要直接从原始数据中自己学习。
这个信念,在接下来二十年里几乎被遗忘。
然后,在 2012 年的一场图像识别竞赛上,一个叫 AlexNet 的神经网络以碾压性的优势拿下了冠军,错误率从 26% 骤降至 15%。深度学习时代正式到来。
下一章,我们将深入那段历史:视觉突破——卷积网络是如何攻克图像识别的。
延伸阅读
- Rosenblatt, F. (1958). The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review.
- Minsky, M., & Papert, S. (1969). Perceptrons: An Introduction to Computational Geometry. MIT Press.
- Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323, 533–536.