跳转至

机器学习(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)

模型的泛化误差可以分解为三部分:

\[ \text{总误差} = \text{偏差}^2 + \text{方差} + \text{不可约噪声} \]
  • 偏差(Bias):模型的预测值与真实值的期望偏离程度 → 反映模型的拟合能力
  • 方差(Variance):模型在不同训练集上预测结果的波动程度 → 反映模型的稳定性
  • 噪声:数据本身的随机性,任何模型都无法消除

直觉理解

想象你在射击靶心:
🎯 低偏差 + 低方差 = 弹孔集中在靶心(理想状态)
🎯 低偏差 + 高方差 = 弹孔散布在靶心周围(过拟合)
🎯 高偏差 + 低方差 = 弹孔集中但偏离靶心(欠拟合)
🎯 高偏差 + 高方差 = 弹孔又散又偏(最糟糕)

5. 正则化(Regularization)

正则化是防止过拟合的核心武器,本质是在损失函数中加入一个惩罚项,限制模型参数不要太大:

\[ J(\theta) = L(\theta) + \lambda \cdot R(\theta) \]

其中 \(\lambda\) 控制正则化强度,\(R(\theta)\) 是正则化项:

  • L1 正则化(Lasso)\(R(\theta) = \sum|\theta_i|\),倾向于产生稀疏解(部分参数变为 0),可用于特征选择
  • L2 正则化(Ridge)\(R(\theta) = \sum\theta_i^2\),使参数整体变小但不为 0,防止任一特征权重过大

6. 梯度下降(Gradient Descent)

机器学习中最常用的优化算法。核心思想:沿着损失函数下降最快的方向(负梯度方向)更新参数

\[ \theta_{t+1} = \theta_t - \eta \cdot \nabla_\theta J(\theta_t) \]

其中 \(\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. 模型部署与监控]
  1. 问题定义:明确是回归、分类还是聚类问题
  2. 数据收集:获取高质量的训练数据
  3. 特征工程:清洗数据、构造有效特征
  4. 模型训练:选择合适的算法,调整超参数
  5. 模型评估:用测试集验证泛化能力
  6. 部署监控:上线并持续监控模型效果