机器学习(Machine Learning)¶
机器学习是人工智能的核心分支,研究如何让计算机从数据中自动学习规律,并利用学到的规律对未知数据做出预测或决策。
!!! note "学习链接”
xiaoxiao
动手学机器学习
什么是机器学习?¶
Tom Mitchell 给出了一个经典的定义:
形式化定义
一个程序被认为能从经验 E 中学习,针对某类任务 T 和性能度量 P,如果它在任务 T 上的性能(以 P 来衡量)随着经验 E 的增加而提升。
用大白话说:你给机器一堆数据(经验),它自己找到数据里的规律(学习),然后能对新的数据做出正确判断(预测)。
比如:你给模型看了 1 万张猫和狗的照片(经验 E),它学会了区分猫和狗的特征(任务 T),在新照片上识别准确率达到 95%(性能 P)。
机器学习的分类¶
根据学习方式的不同,机器学习主要分为三大类:
graph LR
A[机器学习] --> B[监督学习]
A --> C[无监督学习]
A --> D[强化学习]
B --> B1[回归:预测连续值]
B --> B2[分类:预测离散类别]
C --> C1[聚类:发现数据分组]
C --> C2[降维:压缩数据维度]
D --> D1[智能体与环境交互]
| 类别 | 是否有标签 | 目标 | 典型场景 |
|---|---|---|---|
| 监督学习 | ✅ 有标签 | 学习输入→输出的映射 | 房价预测、垃圾邮件分类 |
| 无监督学习 | ❌ 无标签 | 发现数据的内在结构 | 用户分群、数据压缩 |
| 强化学习 | 🎮 有奖惩信号 | 最大化累计回报 | 游戏 AI、机器人控制 |
核心概念¶
1. 模型、策略与算法¶
机器学习的三要素:
- 模型(Model):假设空间,即你认为数据的规律可能是什么形式。比如 \(y = wx + b\)(线性模型)
- 策略(Strategy):如何衡量模型好坏的标准,即损失函数。比如均方误差 \(\text{MSE} = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2\)
- 算法(Algorithm):如何找到最优模型参数的方法。比如梯度下降法
2. 损失函数与风险¶
损失函数(Loss Function) 衡量模型预测值与真实值之间的差距。常见的损失函数:
| 损失函数 | 公式 | 适用场景 |
|---|---|---|
| 均方误差(MSE) | \(L = \frac{1}{n}\sum(y - \hat{y})^2\) | 回归问题 |
| 交叉熵(Cross Entropy) | \(L = -\sum y\log\hat{y}\) | 分类问题 |
| 0-1 损失 | \(L = I(y \neq \hat{y})\) | 理论分析 |
- 经验风险:模型在训练数据上的平均损失
- 结构风险:经验风险 + 正则化项(防止过拟合)
3. 过拟合与欠拟合¶
这是机器学习中最核心的矛盾:
过拟合(Overfitting)
模型把训练数据的噪声也学进去了,导致在训练集上表现很好,但在新数据上表现很差。
类比: 一个学生把所有例题的答案都背下来了,但换一道新题就不会做。
欠拟合(Underfitting)
模型太简单,连训练数据的基本规律都没学到。
类比: 一个学生连课本都没看完,考什么都不会。
解决过拟合的常见手段: 增加数据量、正则化(L1/L2)、Dropout、早停(Early Stopping)、交叉验证
解决欠拟合的常见手段: 增加模型复杂度、增加特征、减少正则化强度
4. 偏差-方差权衡(Bias-Variance Tradeoff)¶
模型的泛化误差可以分解为三部分:
- 偏差(Bias):模型的预测值与真实值的期望偏离程度 → 反映模型的拟合能力
- 方差(Variance):模型在不同训练集上预测结果的波动程度 → 反映模型的稳定性
- 噪声:数据本身的随机性,任何模型都无法消除
直觉理解
想象你在射击靶心:
🎯 低偏差 + 低方差 = 弹孔集中在靶心(理想状态)
🎯 低偏差 + 高方差 = 弹孔散布在靶心周围(过拟合)
🎯 高偏差 + 低方差 = 弹孔集中但偏离靶心(欠拟合)
🎯 高偏差 + 高方差 = 弹孔又散又偏(最糟糕)
5. 正则化(Regularization)¶
正则化是防止过拟合的核心武器,本质是在损失函数中加入一个惩罚项,限制模型参数不要太大:
其中 \(\lambda\) 控制正则化强度,\(R(\theta)\) 是正则化项:
- L1 正则化(Lasso):\(R(\theta) = \sum|\theta_i|\),倾向于产生稀疏解(部分参数变为 0),可用于特征选择
- L2 正则化(Ridge):\(R(\theta) = \sum\theta_i^2\),使参数整体变小但不为 0,防止任一特征权重过大
6. 梯度下降(Gradient Descent)¶
机器学习中最常用的优化算法。核心思想:沿着损失函数下降最快的方向(负梯度方向)更新参数。
其中 \(\eta\) 是学习率(Learning Rate),控制每一步走多远。
| 变体 | 每次用多少数据计算梯度 | 特点 |
|---|---|---|
| 批量梯度下降(BGD) | 全部训练数据 | 稳定但慢 |
| 随机梯度下降(SGD) | 1 个样本 | 快但震荡大 |
| 小批量梯度下降(Mini-batch) | 一小批样本(如 32/64) | 折中方案,最常用 |
7. 交叉验证(Cross-Validation)¶
为了可靠地评估模型性能,将数据多次划分为训练集和验证集:
K 折交叉验证:将数据分成 K 份,每次取 1 份做验证、K-1 份做训练,重复 K 次取平均。
第1折: [验证] [训练] [训练] [训练] [训练]
第2折: [训练] [验证] [训练] [训练] [训练]
第3折: [训练] [训练] [验证] [训练] [训练]
第4折: [训练] [训练] [训练] [验证] [训练]
第5折: [训练] [训练] [训练] [训练] [验证]
知识体系导航¶
以下是机器学习各专题的详细笔记:
| 专题 | 核心内容 | 关键词 |
|---|---|---|
| 监督学习 | 回归与分类算法详解 | 线性回归、逻辑回归、SVM、决策树、KNN |
| 无监督学习 | 聚类与降维方法 | K-Means、DBSCAN、PCA、t-SNE |
| 模型评估与选择 | 评估指标与调参策略 | 准确率、F1、AUC、交叉验证、网格搜索 |
| 特征工程 | 数据预处理与特征构造 | 标准化、编码、特征选择、降维 |
| 集成学习 | 组合多模型提升性能 | Bagging、Boosting、随机森林、XGBoost |
机器学习工作流程¶
一个典型的机器学习项目遵循以下流程:
graph TD
A[1. 问题定义] --> B[2. 数据收集]
B --> C[3. 数据预处理与特征工程]
C --> D[4. 模型选择与训练]
D --> E[5. 模型评估]
E -->|效果不好| C
E -->|效果满意| F[6. 模型部署与监控]
- 问题定义:明确是回归、分类还是聚类问题
- 数据收集:获取高质量的训练数据
- 特征工程:清洗数据、构造有效特征
- 模型训练:选择合适的算法,调整超参数
- 模型评估:用测试集验证泛化能力
- 部署监控:上线并持续监控模型效果