引言
1990 年代初,"人工智能"这个词在学术界几乎成了一个禁忌。经历了两次寒冬之后,申请基金时写上"AI"几乎等同于自寻死路——评审委员会会立刻把你的提案扔进废纸篓。研究者们纷纷给自己的工作换上各种新标签:统计学习、数据挖掘、模式识别、信息检索……但骨子里,他们做的都是同一件事——让机器从数据中学习。
这是一场静悄悄的革命。没有轰轰烈烈的宣言,没有"AI 将改变世界"的口号。研究者们低调地发表论文,悄悄地推进技术。讽刺的是,恰恰是这种"去 AI 化"的策略拯救了这个领域——因为不再背负"通用人工智能"的沉重承诺,研究者们可以务实地解决一个个具体问题。
1997 年,卡内基梅隆大学的 Tom Mitchell 为这场革命给出了一个精确的定义:
这个定义看似简单,实则深刻。它把"学习"从一个模糊的哲学概念变成了一 个可操作、可检验的工程标准:你不需要争论机器是否真的"理解"了什么——你只需要测量,随着经验增加,性能是否在提升。
从规则到数据
范式对比
想想专家系统时代的困境:工程师们耗尽心血,把专家的知识一条条写成 IF-THEN 规则,结果呢?MYCIN 系统有 600 条规则,XCON 系统有 2500 条规则……每增加一个新场景,就要找新的专家、写新的规则、调试新的冲突。这不是在建造智能系统,这是在手工编织一张永远编不完的网。
机器学习的范式完全不同——不再试图编码知识,而是让机器从数据中自动发现规律。
传统编程: 机器学习:
规则 + 数据 → 答案 数据 + 答案 → 规则
(人类编写规则) (算法自动发现规则)
专家系统: 机器学习:
专家知识 → IF-THEN 规则 → 推理 数据 → 统计模型 → 预测为什么这个转变重要?
| 维度 | 专家系统 | 机器学习 |
|---|---|---|
| 知识来源 | 人类专家 | 数据 |
| 可扩展性 | 每个领域都需要新专家 | 同一算法适应不同数据 |
| 维护成本 | 高(规则更新) | 低(重新训练) |
| 处理不确定性 | 困难(需要确定性因子) | 天然支持(概率输出) |
三大学习范式
1. 监督学习(Supervised Learning)
监督学习就像一个学生在老师的指导下学习:每道题都有标准答案,学生通过大量练习来掌握规律。
训练数据:{(x₁,y₁), (x₂,y₂), ..., (xₙ,yₙ)}
输入-标签对
目标:学习一个函数 f: x → y
例子:
输入:邮件内容 标签:垃圾/正常 → 垃圾邮件分类器
输入:房屋特征 标签:价格 → 房价预测模型
输入:图片像素 标签:猫/狗 → 图像分类器监督学习是最常用的范式,分为两大类:
| 类型 | 输出 | 例子 |
|---|---|---|
| 分类(Classification) | 离散类别 | 垃圾邮件检测、疾病诊断 |
| 回归(Regression) | 连续数值 | 房价预测、温度预测 |
2. 无监督学习(Unsupervised Learning)
无监督学习更像探索未知——没有老师告诉你答案,你需要自己发现数据中的结构和模式。
训练数据:{x₁, x₂, ..., xₙ}
只有输入,没有标签
目标:发现数据中的结构和模式
例子:
聚类:将客户自动分组
降维:将高维数据可视化
异常检测:发现异常交易| 方法 | 目标 | 例子 |
|---|---|---|
| 聚类(Clustering) | 将相似数据分组 | K-Means、DBSCAN |
| 降维(Dimensionality Reduction) | 压缩数据表示 | PCA、t-SNE |
| 关联规则 | 发现共现模式 | Apriori |
3. 强化学习(Reinforcement Learning)
强化学习的灵感来自行为主义心理学:agent 通过与环境的交互,在试错中学习哪些动作能获得更多奖励。
环境 ←─── agent ────→ 环境
│ │ │ │
│ │ │ │
状态 ←──┘ └──→ 动作
│
└──→ 奖励信号
目标:学习一个策略 π,使得累计奖励最大化| 概念 | 说明 |
|---|---|
| Agent | 做决策的智能体 |
| 环境 | Agent 所处的世界 |
| 状态 | 环境的当前情况 |
| 动作 | Agent 可以执行的操作 |
| 奖励 | 环境对动作的反馈 |
| 策略 | 从状态到动作的映射 |
例子:下棋(AlphaGo)、游戏(Atari)、机器人控制
三大范式对比
| 维度 | 监督学习 | 无监督学习 | 强化学习 |
|---|---|---|---|
| 数据 | 带标签 | 无标签 | 交互反馈 |
| 目标 | 预测标签 | 发现结构 | 最大化奖励 |
| 反馈 | 直接(正确答案) | 无 | 延迟(奖励可能很远) |
| 典型应用 | 分类、回归 | 聚类、降维 | 游戏、控制 |
机器学习的工作流程
机器学习项目并非简单地"喂数据、跑模型"——它是一个反复迭代的工程过程。
1. 定义问题
│ 我们要预测什么?有什么数据?
▼
2. 收集数据
│ 数据量、质量、多样性
▼
3. 数据预处理
│ 清洗、归一化、处理缺失值
▼
4. 特征工程
│ 选择和构造有用的特征
▼
5. 选择模型
│ 根据问题类型选择算法
▼
6. 训练模型
│ 用训练数据拟合模型参数
▼
7. 评估模型
│ 用测试数据评估性能
▼
8. 部署与监控
在真实环境中使用,持续监控过拟合与泛化
机器学习最核心的挑战之一——模型的目标不是在训练数据上表现好,而是在从未见过的新数据上表现好。这种能力叫做泛化。
过拟合(Overfitting):
模型在训练数据上表现极好,但在新数据上表现很差
→ 模型「死记硬背」了训练数据,没有学到真正的规律
欠拟合(Underfitting):
模型在训练数据和新数据上都表现不好
→ 模型太简单,连训练数据中的规律都没学到
理想:
模型在训练数据和新数据上都表现良好
→ 模型学到了数据中真正的规律(泛化能力)偏差-方差权衡
模型复杂度
│
│ 高偏差(欠拟合) 最佳区间 高方差(过拟合)
│ ─────────────┼───────────────
│ 太简单 刚好 太复杂
│
└────────────────────────────────────| 概念 | 含义 | 过高时 |
|---|---|---|
| 偏差(Bias) | 模型对数据的假设有多强 | 欠拟合 |
| 方差(Variance) | 模型对不同训练数据的敏感度 | 过拟合 |
本节小结
| 概念 | 要点 |
|---|---|
| 机器学习定义 | 从数据中自动学习规律并改进性能 |
| 范式转变 | 从手工编码规则到从数据中学习 |
| 三大范式 | 监督学习(带标签)、无监督学习(无标签)、强化学习(交互反馈) |
| 核心挑战 | 过拟合与泛化——在新数据上表现好才是关键 |
思考题
- 给定一个邮件服务,如何将「垃圾邮件过滤」分别用监督学习、无监督学习和强化学习来建模?
- 为什么说「数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限」?
- 大语言模型(如 GPT)的训练过程中,分别用到了哪些学习范式?