Post

复习笔记 -机器学习 CH2模型评估

本文记录机器学习课程第二章复习笔记,主要内容包括机器学习的定义、任务类型、模型训练方法、模型评估核心概念(泛化、欠拟合、过拟合)以及模型选择方法(超参数、验证集、交叉验证)。通过线性回归的例子,详细介绍了损失函数、最小二乘法和梯度下降法,并讨论了回归评价指标(MSE 和 RMSE)。最后总结了本章的核心内容和必须掌握的知识点。

复习笔记 -机器学习 CH2模型评估

一、本章主线:机器学习到底在学什么?

机器学习可以用三个关键词概括:

任务 T + 经验 E + 性能 P

也就是说,机器学习不是让机器“凭空变聪明”,而是让机器通过数据或交互经验,提高它完成某类任务的能力。

核心概念含义例子
T:任务机器要完成什么分类、回归、图像分割
E:经验机器从哪里学习训练数据、环境反馈
P:性能怎么判断学得好不好准确率、错误率、MSE、RMSE

这一部分要记住一句话:

机器学习 = 利用经验 E,提高任务 T 上的性能 P。


二、机器学习的任务类型

这一章先介绍了机器学习能解决哪些问题。可以归成五类。

1. 分类

分类是从若干类别中选出一个类别。

例如:

  • 判断图片是猫还是狗;
  • 判断邮件是不是垃圾邮件;
  • 判断一个样本属于哪一类。

数学形式:

\[f: \mathbb{R}^n \rightarrow \{1,2,\dots,k\}\]

分类输出的是类别


2. 数据缺失下的分类

有时候输入数据不完整,模型仍然要判断类别。

例如,人脸被遮挡了一部分,但仍要识别身份。

这种情况可以利用联合概率分布来建模。

重点理解:

输入不完整时,模型要根据已有信息和概率关系推断结果。


3. 回归

回归预测的是一个连续实数。

例如:

  • 根据房屋面积预测房价;
  • 根据气象数据预测温度;
  • 根据学习时间预测考试成绩。

数学形式:

\[f: \mathbb{R}^n \rightarrow \mathbb{R}\]

分类和回归最重要的区别是:

任务输出
分类类别
回归实数

4. 序贯数据任务

序贯数据与时间顺序有关。

例如:

  • 语音识别;
  • 机器翻译;
  • 文本分析;
  • 时间序列预测。

这类任务中,当前输出不仅依赖当前输入,还可能依赖之前的信息。

例如:

“I am a student” 合理,
“I are an student” 不合理。

模型需要理解前后文关系。


5. 结构性输出

结构性输出不是输出一个简单类别或数字,而是输出一个复杂结构。

例如:

  • 图像边缘检测;
  • 图像分割;
  • 图像去噪;
  • 图像风格迁移。

这类任务的特点是:

输出本身也是一个向量、图像、序列或结构。


三、以线性回归为例:模型怎么训练?

这一章用线性回归说明机器学习模型如何训练。

1. 线性回归模型

线性回归的目标是根据输入 $x$ 预测实数 $y$。

模型形式:

\[h_\theta(x)=\theta^Tx\]

其中:

  • $x$:输入特征;
  • $y$:真实值;
  • $\hat{y}$:预测值;
  • $\theta$:模型参数,也叫权重。

2. 损失函数

训练模型时,需要衡量预测值和真实值之间的差距。

常用损失函数是均方误差:

\[J(\theta)=\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2\]

训练目标是:

\[\min_\theta J(\theta)\]

也就是找到一组参数,让预测误差尽可能小。


3. 最小二乘法

最小二乘法的思想是:

让所有样本预测误差的平方和最小。

它可以通过求导、令梯度为 0 得到参数解。

矩阵形式下的解析解是:

\[\theta = (X^TX)^{-1}X^Ty\]

这个方法适合理论推导,但在大规模数据中,直接求逆可能成本较高。


4. 梯度下降法

梯度下降法通过不断更新参数来降低损失函数。

更新公式:

\[\theta_j := \theta_j-\alpha \frac{\partial}{\partial \theta_j}J(\theta)\]

其中:

  • $\alpha$:学习率;
  • 梯度方向表示损失函数变化最快的方向;
  • 参数沿着负梯度方向更新,使损失逐渐减小。

学习率要适中:

学习率结果
太大可能震荡或不收敛
太小收敛很慢
合适稳定收敛

5. 回归评价指标

回归任务常用 MSE 和 RMSE。

MSE:均方误差

\[MSE=\frac{1}{m}\sum_{i=1}^{m}(y_i-\hat{y}_i)^2\]

RMSE:均方根误差

\[RMSE=\sqrt{\frac{1}{m}\sum_{i=1}^{m}(y_i-\hat{y}_i)^2}\]

二者都越小越好。

区别是:

指标特点
MSE对大误差更敏感
RMSE单位与原变量一致,更直观

四、模型评估的核心:泛化、欠拟合、过拟合

这一部分是本章最重要的内容。

1. 泛化

泛化是指:

模型在未知数据上的表现。

机器学习真正关心的不是训练集上表现多好,而是测试集、未来数据、未知数据上的表现。

所以本章核心问题是:

怎样让模型在没见过的数据上也表现好?


2. 优化和机器学习的区别

优化问题关注:

在已知训练数据上误差最小。

机器学习关注:

在未知数据上误差最小。

因此:

优化是机器学习的工具,但机器学习不等于优化。

如果只追求训练误差最低,可能会导致过拟合。


3. 欠拟合

欠拟合是指模型太简单,连训练数据都学不好。

表现:

  • 训练误差大;
  • 测试误差也大;
  • 模型复杂度不足。

解决方法:

  • 增加模型复杂度;
  • 选择更合适的模型;
  • 增加有效特征;
  • 训练更充分。

4. 过拟合

过拟合是指模型在训练集上表现很好,但在测试集上表现差。

表现:

  • 训练误差小;
  • 测试误差大;
  • 模型过于贴合训练数据;
  • 把噪声也学进去了。

解决方法主要有三类:

方法一:增加训练数据

数据越多,模型越不容易只记住个别样本。

方法二:正则化

在损失函数中加入正则项:

\[J(w)=MSE_{train}+\lambda w^Tw\]

其中:

  • $MSE_{train}$:训练误差;
  • $w^Tw$:惩罚权重过大;
  • $\lambda$:正则化强度。

正则化的作用是限制模型复杂度,提高泛化能力。

方法三:选择合适的假设空间

模型不能太简单,也不能太复杂。

例如:

模型可能情况
一阶拟合可能欠拟合
三阶拟合可能比较合适
十阶拟合可能过拟合

5. U 型曲线

随着模型复杂度增加:

  1. 一开始模型太简单,训练误差和测试误差都高;
  2. 模型复杂度适中时,测试误差最低;
  3. 模型太复杂时,训练误差继续下降,但测试误差上升。

所以要记住:

最好的模型不是训练误差最低的模型,而是泛化误差最低的模型。


五、如何选择模型:超参数、验证集、交叉验证

1. 参数与超参数

参数是模型自己学习出来的。

超参数是人为设置,用来控制模型训练和性能的。

类型含义例子
参数训练中学出来权重 $w$、$\theta$
超参数人为调控学习率、正则化系数 $\lambda$、模型阶数

一句话记忆:

参数是学出来的,超参数是调出来的。


2. 训练集、验证集、测试集

数据一般分成三部分:

数据集作用
训练集训练模型参数
验证集调整超参数、选择模型
测试集最终评估泛化能力

重点:

测试集不能用来调超参数,否则相当于作弊。

因为如果反复用测试集调参,模型就间接“看过”测试集了,最终测试结果会失真。


3. 交叉验证

当数据量有限时,可以使用 k 折交叉验证。

步骤:

  1. 把数据分成 $k$ 份;
  2. 每次拿 1 份做测试,其余做训练;
  3. 重复 $k$ 次;
  4. 把结果取平均。

作用:

  • 更充分利用数据;
  • 评估结果更稳定;
  • 减少一次划分带来的偶然性。

六、估计器、偏差、方差与维度灾难

1. 点估计器

点估计器是用样本数据估计某个参数。

例如:

  • 用样本均值估计总体均值;
  • 用线性回归学到的权重估计真实权重。

形式上:

\[\hat{\theta}_m = g(x^{(1)},x^{(2)},\dots,x^{(m)})\]

也就是说,估计器是样本数据的函数。


2. 估计偏差

估计偏差表示估计器的期望与真实参数之间的差距。

\[bias(\hat{\theta}_m)=E(\hat{\theta}_m)-\theta\]

如果:

\[bias(\hat{\theta}_m)=0\]

就叫无偏估计。

如果:

\[\lim_{m\to\infty}bias(\hat{\theta}_m)=0\]

就叫渐进无偏。


3. 方差与标准差

方差表示估计器的波动程度:

\[Var(\hat{\theta})=E[\hat{\theta}^2]-E[\hat{\theta}]^2\]

标准差是方差的平方根:

\[SE(\hat{\theta})=\sqrt{Var(\hat{\theta})}\]

简单理解:

概念含义
偏差平均估得准不准
方差每次估计稳不稳

4. 伯努利分布中的无偏估计

如果样本服从伯努利分布:

\[x^{(i)} \in \{0,1\}\]

用样本均值估计参数:

\[\hat{\theta}_m=\frac{1}{m}\sum_{i=1}^{m}x^{(i)}\]

这是无偏估计,因为:

\[E[\hat{\theta}_m]=\theta\]

它的方差是:

\[Var(\hat{\theta}_m)=\frac{1}{m}\theta(1-\theta)\]

这说明:

样本数越多,估计越稳定。


5. 维度灾难

维度灾难是指:

随着特征维度增加,数据空间迅速变大,样本变得稀疏,学习难度急剧增加。

影响包括:

  • 需要更多训练样本;
  • 模型更容易过拟合;
  • 距离度量变得不可靠;
  • 计算复杂度增加。

应对方法:

  • 降维;
  • 特征选择;
  • 正则化;
  • 增加数据;
  • 使用合适模型。

七、本章总表

模块核心问题必须掌握
机器学习内涵机器学习是什么?T、E、P
任务类型机器学习能做什么?分类、回归、序贯、结构输出
线性回归模型怎么训练?损失函数、最小二乘、梯度下降、MSE/RMSE
泛化问题模型为什么不能只看训练误差?泛化、欠拟合、过拟合、正则化
模型选择怎么选模型和超参数?验证集、测试集、交叉验证
统计基础如何理解估计误差?点估计、偏差、方差、维度灾难

This post is licensed under CC BY 4.0 by the author.