过拟合

2021-05-04  本文已影响0人  三方斜阳

总结一下过拟合的现象以及常用的避免过拟合的方法:

过拟合的定义:

过拟合是指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测得很好,对未知数据预测得很差的现象,过拟合发生的本质原因,是由于监督学习问题的不适定:数据远远少于模型空间。因此过拟合现象的发生,可以分解成以下三点:

  • 有限的训练数据不能完全反映出一个模型的好坏,然而我们却不得不在这有限的数据上挑选模型,因此我们完全有可能挑选到在训练数据上表现很好而在测试数据上表现很差的模型,因为我们完全无法知道模型在测试数据上的表现。
  • 如果模型空间很大,也就是有很多很多模型以给我们挑选,那么挑到对的模型的机会就会很小。
  • 与此同时,如果我们要在训练数据上表现良好,最为直接的方法就是要在足够大的模型空间中挑选模型,否则如果模型空间很小,就不存在能够拟合数据很好的模型。
    由此可见,要拟合训练数据,就要足够大的模型空间;用了足够大的模型空间,挑选到测试性能好的模型的概率就会下降。因此,就会出现训练数据拟合越好,测试性能越差的过拟合现象。

常用的避免过拟合的方法:

  1. 正则化:
    为了防止过拟合,可以为损失函数加上一个惩罚项对复杂的模型进行惩罚,即强制让模型的参数值尽可能小。加上正则化项的目标是让它的值尽可能小,即参数等于0或者接近于0。λ为惩罚项系数,是人工设定的大于0的参数。关于正则化具体可以看这篇:L1 L2正则作用原理 - 简书 (jianshu.com)

  2. 剪枝:
    剪枝是决策树类算法防止过拟合的方法。如果决策树的结构过于复杂,可能会导致过拟合问题,此时需要对树进行剪枝,消掉某些节点让它变得更简单。剪枝的关键问题是确定减掉哪些树节点以及减掉它们之后如何进行节点合并。决策树的剪枝算法可以分为两类,分别称为预剪枝和后剪枝。前者在树的训练过程中通过停止分裂对树的规模进行限制;后者先构造出一棵完整的树,然后通过某种规则消除掉部分节点,用叶子节点替代。

  3. 数据增广:
    数据增广是解决过拟合中思想比较朴素的方法。训练集越多,过拟合的概率越小,数据增广是一个比较方便有效屡试不爽的方法,但各类领域的增广方法都不同。关于NLP中的数据增广具体可以看这篇:NLP中的数据增广方式 - 简书 (jianshu.com)

  4. Dropout
    Dropout是神经网络中防止过拟合的方法。dropout的做法是在训练时随机的选择一部分神经元进行正向传播和反向传播,另外一些神经元的参数值保持不变,以减轻过拟合。dropout机制使得每个神经元在训练时只用了样本集中的部分样本,这相当于对样本集进行采样,即bagging的做法。最终得到的是多个神经网络的组合。关于Dropout具体可以看这篇:Dropout作用原理 - 简书 (jianshu.com)

  5. Early Stopping:
    提前停止的策略是在验证集误差出现增大之后,提前结束训练;而不是一直等待验证集 误差达到最小。提前停止策略十分简单,执行效率高,但需要额外的空间备份参数。

  6. 集成学习:
    集成学习算法也可以有效的减轻过拟合。Bagging通过平均多个模型的结果,来降低模型的方差。Boosting不仅能够减小偏差,还能减小方差。

  7. batch normalization:
    深度学习中对每一层的输入数据进行标准归一化操作,具体可以看这篇:batch normalization与 layer normalization - 简书 (jianshu.com)

方差与偏差:

模型的泛化误差来自于两部分,分别称为偏差和方差。

模型的泛化误差=方差+偏差+噪声

上一篇 下一篇

猜你喜欢

热点阅读