AI 发展史(二):统计机器学习 —— AI 第一次学会"从数据里学"
阶段跨度:1986 – 2010 | 关键词:反向传播、SVM、决策树、scikit-learn
一句话总结:AI 不再靠人写规则,而是从海量数据里自己总结规律——今天所有 AI 的"学习方法",都是这个时代奠定的。
1. 发生了什么
转机出现在 1986 年:Rumelhart、Hinton 等人发表**反向传播(Backpropagation)**算法——让多层神经网络可以训练了。之前"感知机学不会异或"的死结被解开,神经网络重新活了下来。
但真正成为主流的是一帮统计学味道更浓的方法,因为它们更实用、更可控:
- 1995 年,SVM(支持向量机):小数据时代的王者,数学优雅,一度是"最好的分类器"
- 2001 年,随机森林:把很多棵决策树绑在一起投票,简单粗暴但效果稳定
- 同期贝叶斯方法、逻辑回归、梯度提升树(GBDT)陆续成熟
这个时代最重要的思想转变:AI 的问题被重新定义为——
不再问"怎么给机器写规则",而是问"怎么让机器从样本中归纳规则"。
垃圾邮件过滤、信用评分、推荐系统、搜索引擎排序……你身边最早一批"智能"产品,全是这套方法造的。
2. 这个时代的工具
| 工具 | 年代 | 地位 |
|---|---|---|
| WEKA | 1993 | 老牌 Java 机器学习工具,教学常青树 |
| libsvm | 2000 | SVM 事实标准库,无数论文用它跑实验 |
| scikit-learn | 2007 | 至今仍是机器学习入门第一库,Python 生态核心 |
| NLTK | 2001 | 自然语言处理启蒙库 |
scikit-learn 是这个时代留给普通开发者最大的礼物:统一的 API、几行代码一个模型,把机器学习从论文拉进了工程师的日常。
3. 怎么用:5 行代码训练你的第一个 AI
装好 Python 后 pip install scikit-learn,下面这段代码跑的就是经典的鸢尾花分类——机器学习界的 "Hello World":
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# 1. 加载数据(150 朵花,4 个特征:花瓣长宽、花萼长宽)
X, y = load_iris(return_X_y=True)
# 2. 切分:70% 训练,30% 考试
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
# 3. 训练模型 —— 注意,"学习"就发生在这一行
model = RandomForestClassifier()
model.fit(X_train, y_train)
# 4. 考试
print("准确率:", model.score(X_test, y_test)) # 通常 0.95 左右
核心流程就这四步:数据 → 切分 → fit → 评估。 后来深度学习、大模型时代换的只是"模型"和"数据规模",流程骨架一模一样。
4. 这个时代的天花板
统计机器学习很能干,但有个迈不过去的坎:喂给它的特征得靠人手工设计。想识别猫,你得先告诉它"猫有尖耳朵、有胡须"——这些特征还是人在写规则,只是换了个地方写。
图片、语音这种原始数据,人工根本设计不出足够好的特征。
下一篇预告:2012 年,AlexNet 用 GPU 训练深层网络横扫 ImageNet,证明了一件大事——不用人设计特征,让网络自己学。深度学习革命开始了。