美文网首页
过拟合、欠拟合及其解决方案 2020-02-18

过拟合、欠拟合及其解决方案 2020-02-18

作者: allen成 | 来源:发表于2020-02-18 20:12 被阅读0次

    过拟合、欠拟合及其解决方案

    • 过拟合、欠拟合的概念
    • 权重衰减
    • 丢弃法

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

    训练误差和泛化误差

    在解释上述现象之前,我们需要区分训练误差(training error)和泛化误差(generalization error)。通俗来讲,前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似。计算训练误差和泛化误差可以使用之前介绍过的损失函数,例如线性回归用到的平方损失函数和softmax回归用到的交叉熵损失函数。

    机器学习模型应关注降低泛化误差。

    模型选择

    验证数据集

    从严格意义上讲,测试集只能在所有超参数和模型参数选定后使用一次。不可以使用测试数据选择模型,如调参。由于无法从训练误差估计泛化误差,因此也不应只依赖训练数据选择模型。鉴于此,我们可以预留一部分在训练数据集和测试数据集以外的数据来进行模型选择。这部分数据被称为验证数据集,简称验证集(validation set)。例如,我们可以从给定的训练集中随机选取一小部分作为验证集,而将剩余部分作为真正的训练集。

    K折交叉验证

    由于验证数据集不参与模型训练,当训练数据不够用时,预留大量的验证数据显得太奢侈。一种改善的方法是K折交叉验证(K-fold cross-validation)。在K折交叉验证中,我们把原始训练数据集分割成K个不重合的子数据集,然后我们做K次模型训练和验证。每一次,我们使用一个子数据集验证模型,并使用其他K-1个子数据集来训练模型。在这K次训练和验证中,每次用来验证模型的子数据集都不同。最后,我们对这K次训练误差和验证误差分别求平均。

    过拟合和欠拟合

    接下来,我们将探究模型训练中经常出现的两类典型问题:

    • 一类是模型无法得到较低的训练误差,我们将这一现象称作欠拟合(underfitting);
    • 另一类是模型的训练误差远小于它在测试数据集上的误差,我们称该现象为过拟合(overfitting)。 在实践中,我们要尽可能同时应对欠拟合和过拟合。虽然有很多因素可能导致这两种拟合问题,在这里我们重点讨论两个因素:模型复杂度和训练数据集大小。

    模型复杂度

    为了解释模型复杂度,我们以多项式函数拟合为例。给定一个由标量数据特征 x 和对应的标量标签 y 组成的训练数据集,多项式函数拟合的目标是找一个 K 阶多项式函数

    相关文章

      网友评论

          本文标题:过拟合、欠拟合及其解决方案 2020-02-18

          本文链接:https://www.haomeiwen.com/subject/misnfhtx.html