总结一下过拟合的现象以及常用的避免过拟合的方法:
过拟合的定义:
过拟合是指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测得很好,对未知数据预测得很差的现象,过拟合发生的本质原因,是由于监督学习问题的不适定:数据远远少于模型空间。因此过拟合现象的发生,可以分解成以下三点:
- 有限的训练数据不能完全反映出一个模型的好坏,然而我们却不得不在这有限的数据上挑选模型,因此我们完全有可能挑选到在训练数据上表现很好而在测试数据上表现很差的模型,因为我们完全无法知道模型在测试数据上的表现。
- 如果模型空间很大,也就是有很多很多模型以给我们挑选,那么挑到对的模型的机会就会很小。
- 与此同时,如果我们要在训练数据上表现良好,最为直接的方法就是要在足够大的模型空间中挑选模型,否则如果模型空间很小,就不存在能够拟合数据很好的模型。
由此可见,要拟合训练数据,就要足够大的模型空间;用了足够大的模型空间,挑选到测试性能好的模型的概率就会下降。因此,就会出现训练数据拟合越好,测试性能越差的过拟合现象。
常用的避免过拟合的方法:
-
正则化:
为了防止过拟合,可以为损失函数加上一个惩罚项对复杂的模型进行惩罚,即强制让模型的参数值尽可能小。加上正则化项的目标是让它的值尽可能小,即参数等于0或者接近于0。λ为惩罚项系数,是人工设定的大于0的参数。关于正则化具体可以看这篇:L1 L2正则作用原理 - 简书 (jianshu.com) -
剪枝:
剪枝是决策树类算法防止过拟合的方法。如果决策树的结构过于复杂,可能会导致过拟合问题,此时需要对树进行剪枝,消掉某些节点让它变得更简单。剪枝的关键问题是确定减掉哪些树节点以及减掉它们之后如何进行节点合并。决策树的剪枝算法可以分为两类,分别称为预剪枝和后剪枝。前者在树的训练过程中通过停止分裂对树的规模进行限制;后者先构造出一棵完整的树,然后通过某种规则消除掉部分节点,用叶子节点替代。 -
数据增广:
数据增广是解决过拟合中思想比较朴素的方法。训练集越多,过拟合的概率越小,数据增广是一个比较方便有效屡试不爽的方法,但各类领域的增广方法都不同。关于NLP中的数据增广具体可以看这篇:NLP中的数据增广方式 - 简书 (jianshu.com) -
Dropout
Dropout是神经网络中防止过拟合的方法。dropout的做法是在训练时随机的选择一部分神经元进行正向传播和反向传播,另外一些神经元的参数值保持不变,以减轻过拟合。dropout机制使得每个神经元在训练时只用了样本集中的部分样本,这相当于对样本集进行采样,即bagging的做法。最终得到的是多个神经网络的组合。关于Dropout具体可以看这篇:Dropout作用原理 - 简书 (jianshu.com) -
Early Stopping:
提前停止的策略是在验证集误差出现增大之后,提前结束训练;而不是一直等待验证集 误差达到最小。提前停止策略十分简单,执行效率高,但需要额外的空间备份参数。 -
集成学习:
集成学习算法也可以有效的减轻过拟合。Bagging通过平均多个模型的结果,来降低模型的方差。Boosting不仅能够减小偏差,还能减小方差。 -
batch normalization:
深度学习中对每一层的输入数据进行标准归一化操作,具体可以看这篇:batch normalization与 layer normalization - 简书 (jianshu.com)
方差与偏差:
模型的泛化误差来自于两部分,分别称为偏差和方差。
-
偏差(bias)模型本身导致是的误差,即错误的模型假设所导致的误差,它是模型的预测值的数学期望和真实值之间的差距,偏差越大,预测值越偏离真实数据,如下图第二行所示。
-
方差(variance)是由于对训练样本集的小波动敏感而导致的误差。它可以理解为模型预测值的变化范围,即模型预测值的波动程度,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散,如下图右列所示。
- 偏差、方差、错误率与模型复杂度的关系如下图所示。通常随着模型的复杂度增加,偏差会减小,但是方差会增大,模型容易出现过拟合。
模型的泛化误差=方差+偏差+噪声
- 偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力
- 方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响
- 噪声则表达了在当前任务上任何学习算法所能表达到的期望泛化误差的下界,即刻画了学习问题本身的难度
- 泛化性能是有学习算法的能力,数据的充分性,学习任务本身的难度所共同决定的,为了取得好的泛化性能,则需要偏差较小,即能够充分拟合数据,并且使方差较小,即是的数据扰动产生的影响小
- 在训练不足的时候,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率;随着训练程度加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学习到,方差逐渐主导了泛化错误率;在训练程度充足之后,学习器的拟合能力已非常强,训练数据发生的轻微扰动都会导致学习器发生显著变化,若训练数据自身的,非全局的特性被学习器学到了,则将发生过拟合。
网友评论