🔄 从专家系统到机器学习
1980年代末到1990年代初,AI研究经历了一个重要的范式转移: 从手工编码知识(专家系统)转向从数据中学习(机器学习)。
为什么会发生这种转移?
- 专家系统的局限:知识获取瓶颈、维护困难、无法处理新知识
- 数据可用性增加:1990年代,数字数据开始爆炸式增长
- 计算能力提升:摩尔定律使得更复杂的算法成为可能
- 统计学的复兴:统计学家(如Vladimir Vapnik)将统计学习理论引入AI
💡 核心思想转变:
专家系统:"教"机器知识(知识驱动)
机器学习:"让"机器从数据中学习(数据驱动)
这种转变,类似于从"填鸭式教育"转向"探究式学习"。
📚 机器学习的三种范式
1. 监督学习(Supervised Learning)
📋 定义
输入:带标签的训练数据(输入-输出对)
目标:学习一个函数 f(x) ≈ y,使得对新输入x,能够预测正确的y
类比:就像学生做练习题,每道题都有标准答案,通过大量练习掌握解题方法
典型任务:
- 分类(Classification):预测离散标签(如"是猫" vs "是狗")
- 回归(Regression):预测连续值(如房价、温度)
经典算法:
- 线性回归(Linear Regression):最简单的回归算法
- 逻辑回归(Logistic Regression):用于二分类
- 支持向量机(SVM):1990年代最流行的分类算法
- 决策树(Decision Tree):可解释性强
- 随机森林(Random Forest):集成学习,提升性能
- 神经网络:2000年代后重新崛起
应用示例:
- 垃圾邮件过滤:根据邮件内容,判断是否为垃圾邮件
- 手写数字识别:根据像素,识别数字(0-9)
- 信用评分:根据用户信息,预测违约风险
2. 无监督学习(Unsupervised Learning)
📋 定义
输入:无标签的数据
目标:发现数据中的结构、模式或关系
类比:就像学生拿到一堆没有答案的试卷,需要自己找出题目之间的规律
典型任务:
- 聚类(Clustering):将数据分组(如K-means)
- 降维(Dimensionality Reduction):减少特征数量(如PCA、t-SNE)
- 异常检测(Anomaly Detection):找出"不正常"的数据点
经典算法:
- K-means:最流行的聚类算法
- 层次聚类(Hierarchical Clustering):构建聚类树
- 主成分分析(PCA):降维,保留最大方差方向
- 独立成分分析(ICA):盲源分离(如"鸡尾酒会问题")
应用示例:
- 客户分群:根据购买行为,将客户分为不同群体
- 基因表达分析:根据基因表达数据,发现疾病亚型
- 数据可视化:将高维数据降到2D/3D,便于观察
3. 强化学习(Reinforcement Learning,RL)
📋 定义
输入:智能体(Agent)通过与环境交互,获得奖励或惩罚
目标:学习一个策略(Policy),使得累积奖励最大化
类比:就像训练宠物:做对了给零食(奖励),做错了不给(惩罚)
核心概念:
- 状态(State):环境的当前情况
- 动作(Action):智能体可以做的事情
- 奖励(Reward):做动作后获得的反馈
- 策略(Policy):从状态到动作的映射
- 价值函数(Value Function):评估状态或状态-动作对的好坏
经典算法:
- Q-Learning(1989):无模型(Model-free)的强化学习算法
- Policy Gradient(1992):直接优化策略
- Deep Q-Network(DQN,2015):结合深度学习和Q-Learning
应用示例:
- 游戏AI:AlphaGo、AlphaZero
- 机器人控制:学习行走、抓取
- 推荐系统:根据用户反馈调整推荐策略
💡 记忆口诀:
监督学习 = 有答案的练习题
无监督学习 = 没有答案的试卷,自己找规律
强化学习 = 试错学习,做对了给奖励
🎯 支持向量机(SVM)详解
支持向量机(Support Vector Machine,SVM)是1990年代到2000年代初 最流行的机器学习算法之一。它在文本分类、图像识别、生物信息学等领域取得了巨大成功。
SVM的核心思想
📐 线性可分情况
问题:给定两类数据点,找到一条最优的分隔线(或超平面)
SVM的答案:选择能够最大化间隔(Margin)的分隔线
间隔(Margin):分隔线到最近数据点的距离
支持向量(Support Vectors):那些距离分隔线最近的数据点(它们"支撑"着分隔线)
为什么最大化间隔?
- 间隔越大,分类器的泛化能力越强(对新数据更鲁棒)
- 理论基础:统计学习理论(Vapnik,1970s)
数学表示:
分隔超平面:w·x + b = 0
间隔:2 / ||w||
优化目标:min (1/2) ||w||² (等价于最大化间隔)
约束条件:y_i(w·x_i + b) ≥ 1 (所有数据点都被正确分类)
核技巧(Kernel Trick)
现实世界的数据往往是非线性可分的(无法用直线分隔)。 SVM通过核技巧(Kernel Trick)来解决这个问题。
🔧 核技巧的基本思想
思路:将原始数据映射到一个更高维的空间,
使得在高位空间中线性可分。
示例:
原始空间:1维(x)
映射:φ(x) = (x, x²) → 2维
原来在1维中无法用点分隔的数据,在2维中可能可以用线分隔。
核函数(Kernel Function):
不需要显式计算φ(x),只需要计算 K(x_i, x_j) = φ(x_i)·φ(x_j)
这大大降低了计算复杂度。
常用核函数:
- 线性核:K(x_i, x_j) = x_i·x_j
- 多项式核:K(x_i, x_j) = (x_i·x_j + c)^d
- 高斯核(RBF):K(x_i, x_j) = exp(-||x_i - x_j||² / 2σ²)
💡 直观理解:核技巧就像"升维攻击"。 在二维中无法用直线分隔的数据,在三维中可能可以用平面分隔。 SVM通过核函数,巧妙地实现了这种"升维",而无需显式计算高位特征。
SVM的优缺点
优点:
- 理论基础扎实:有统计学习理论保证
- 高维数据有效:即使特征数 > 样本数,也能工作
- 泛化能力强:最大化间隔,避免过拟合
- 仅需支持向量:预测时只需存储支持向量,内存效率高
缺点:
- 训练慢:复杂度 O(n²) 到 O(n³),不适合大规模数据
- 对参数敏感:需要仔细调参(如C、γ)
- 难以解释:尤其是使用非线性核时
- 不直接输出概率:需要额外处理(如Platt scaling)
SVM的历史地位
SVM在1990年代到2000年代初,是机器学习的主导算法。 它推动了整个领域从"神经网络"转向"统计学习"。
转折点:2012年,AlexNet(深度神经网络)在ImageNet竞赛中 大幅超越SVM,标志着深度学习时代的到来。但SVM仍然是机器学习课程中的必修内容, 也是许多实际问题的首选算法(尤其是中小规模数据)。