4.4. 模型选择、欠拟合和过拟合

要点

  • K 折交叉验证的目的是通过多次平均,相对准确的评估模型在当前超参数下的好坏

1. 训练误差与泛化误差

训练误差(training error)是指,模型在训练数据集上计算得到的误差。

泛化误差(generalization error)是指,模型应用在新数据(测试集)(同样从原始样本的分布中抽取的无限多数据样本时),模型误差的期望。

验证数据集:一个用来选超参数的数据集,评估模型好坏,看是否过拟合

注意

代码里常用 test set 表示验证数据集,虽然名字叫 test set,但实际上是 validation set

测试数据集:只用一次的数据集,报告模型性能

2. K 折交叉验证

通常我们没有很多数据来训练,所以分给评估模型好坏的数据也很少;同时由于很多学习算法的随机性、初始值设置的随机性,需要多次验证来求平均,从而相对准确的反应模型好坏。

算法过程:

  1. 将训练数据分为 K块
  2. For i = 1,..., K
    * 使用第 i 块当做验证集,其余当做训练集
    * 计算误差
  3. 计算 K 次误差平均值,即为验证误差
    一般来说 K = 5 或者 10,K 越大效果越好,但要训练 K 次,基于训练成本考量
注意

是拿同一个模型训练 K 次,计算这 K 次的平均误差,不是接着第一折训练数据,在第二折数据的基础上继续训练

3. 过拟合和欠拟合

4.4. 模型选择、欠拟合和过拟合.png|center|500 模型复杂度对欠拟合和过拟合的影响,中间是最优

注意

这里横轴是模型复杂度,比如神经网络的深度,而课程 Notebook 里横轴是一个模型多次训练的训练次数

深度学习一个核心思路就是模型足够复杂,再去调整模型复杂度达到最优

思考:如何估计模型的复杂度
  • 难以在不同的种类算法之间比较
    • 例如树模型和神经网络
  • 给定一个种类的模型,主要以下两个因素:
    • 参数的个数
    • 参数的选择范围
  • VC 维

2. VC 维

用来衡量模型的复杂度,定义为:对于一个分类模型,VC 维等于一个最大数据集的大小,不管数据集的 target 怎么标号,这个模型都能完美分类

4.4. 模型选择、欠拟合和过拟合-1.png|center|500 线性模型最多能完美划分 3 个点,四个点就不能完美划分了,所以 VC 维 = 3

参考文献



© 2023 yanghn. All rights reserved. Powered by Obsidian