专栏首页拇指笔记【动手学深度学习笔记】之模型选择、过拟合与欠拟合

【动手学深度学习笔记】之模型选择、过拟合与欠拟合

1. 模型选择

机器学习过程中,评估候选模型并从中选择模型的过程叫做模型选择。模型选择的对象不仅是不同的模型也可以是有着不同超参数的同一模型。

1.1 训练误差与泛化误差

训练误差与泛化误差都可以使用损失函数求得。训练误差是指模型在训练数据集上表现出的误差;泛化误差是指模型在测试数据集上表现出的误差。训练误差的期望小于或等于泛化误差(训练集训练出来的模型在训练集上的表现会优于或等于模型在测试集上的表现),因此一味降低训练误差并不一定会降低泛化误差,机器学习模型应主要关注泛化误差。

1.2 验证数据集

为了得到有效的模型,我们需要使用验证数据集(验证集)来对不同模型进行评估。验证数据集通常是预留在训练数据集和测试数据集以外的数据。

选取的方法:从给定的训练集中选取出一部分作为验证集,其余部分作为真正的训练集。在实践中,验证集与测试集的界限比较模糊

1.3 K折交叉验证

由于数据通常是有限的,在训练数据中预留大量不参与训练的验证集有些不切实际。因此引入一种改善的方法:折交叉验证。

折交叉验证:把原始训练集分割成个不重合的子数据集,然后对模型做次训练和验证。每一次我们都选其中一组子集作为验证集,其他子集作为训练集,最后对这次训练误差和验证误差求平均值。

2. 过拟合和欠拟合

在对模型进行训练的过程中,经常会出现两种常见的问题过拟合和欠拟合。过拟合是模型无法得到较低的训练误差;欠拟合是模型的训练误差远远小于它的泛化误差。造成这两种问题的原因主要是模型复杂度和训练数据集大小。

2.1 影响因素

2.1.1 模型复杂度

为了解释模型复杂度,我们以多项式函数拟合为例。

对于阶数越高(K值更大)的多项式,模型的参数更多,模型的选择空间也就越大,所以高阶多项式与低阶多项式相比更容易在相同训练集上获得更低的训练误差。

对于给定的训练集,模型复杂度与误差之间的关系如下图所示

如果模型的复杂度过低,则容易出现欠拟合;如果模型过于复杂,则容易出现过拟合。因此,应对模型过拟合与欠拟合问题的一个办法就是选取复杂度适宜的模型。

2.1.2 训练集大小

一般来说,训练数据集中样本过少(特别是比模型参数更少时)容易出现过拟合;但泛化误差不会随着训练集样本数增加而增加。因此训练数据集样本数多多益善。


本文分享自微信公众号 - 拇指笔记(shuzhi990),作者:拇指笔记

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【动手学深度学习笔记】之线性回归

    线性回归是单层神经网络,设计的概念和技术适用于大多数深度学习模型;因此,我们以线性回归为例,学习深度学习模型的基本要素和表示方法。

    树枝990
  • 【数学建模】之Matlab实现BP神经网络

    trainning:用来训练的数据。 validtion:测量网络泛化的数据(泛化停止改善时停止训练) testing:用来测试神经网络的数据。

    树枝990
  • 【动手学深度学习笔记】之实现softmax回归模型

    设置小批量数目为256。这一部分与之前的线性回归的读取数据大同小异,都是转换类型-->生成迭代器。

    树枝990
  • Andrew Ng机器学习课程笔记(五)之应用机器学习的建议

    http://www.cnblogs.com/fydeblog/p/7368472.html

    努力努力再努力F
  • 深度学习的训练

    今天来聊聊深度学习的训练方法和注意事项 数据集的拆分: 首先要准备好已经处理好的数据集(注意数据集要满足独立同分布),分为训练集、验证集、测试集。可按80%,1...

    linxinzhe
  • 深度学习模型训练全流程!

    本文从构建数据验证集、模型训练、模型加载和模型调参四个部分对深度学习中模型训练的全流程进行讲解。

    Datawhale
  • [文本纠错] pycorrector框架训练

    通过以上两种方法的任何一种完成安装都可以。如果不想安装,可以下载github源码包,安装下面依赖再使用。

    MachineLP
  • 可以估计不确定性的神经网络:SDE-Net

    来源丨https://zhuanlan.zhihu.com/p/234834189

    计算机视觉
  • 如何用TensorFlow预测时间序列:TFTS库详细教程

    用户1737318
  • 如何优雅地用TensorFlow预测时间序列:TFTS库详细教程

    作者 | 何之源 前言 如何用TensorFlow结合LSTM来做时间序列预测其实是一个很老的话题,然而却一直没有得到比较好的解决。如果在Github上搜索...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券