美文网首页
避免过拟合

避免过拟合

作者: xieyan0811 | 来源:发表于2020-06-14 19:01 被阅读0次

欠拟合和过拟合

欠拟合是指在训练集和测试集(或验证集)上模型效果都不好,一般由于模型能力不足导致;过拟合是指模型在训练集上表现好,而在测试集上表现不好,一般由于模型过度拟合了训练集中的噪声导致。本文主要讨论解决过拟合问题的方法。

L2正则化

无论机器学习还是深度学习,L2正则化项都用于限制参数W过大,它被累加在代价函数之中。

代价函数J除了计算每个实例的误差L,还加入网络中每层参数W的2范数的平方,并用λ作为参数,当λ较大时,就需要W接近0,才能得到较小的代价函数,这样一些无关紧要的参数就变成了0,从而减少了模型的复杂度,以及压缩后模型的规模。另外,较小的W也使层之间传递的数据变小,这样在使用sigmoid和tanh激活函数时,数据刚好集中在中间类似线性变换的一段,使非线性变换的结果类似线性变换。由于多个线性组合叠加相当于单个线性层,因此也倾向于简化模型。

如果使用L1正则化,参数矩阵将变得稀疏,根据经验,一般L2效果更好。L2正则化方法可用于简化决策,但不适用于需要复杂决策的问题。使用该方法时,需要尝试多个λ值。

Dropout方法

Dropout方法是扔掉网络中的一些连接, 使结果不依赖于某个特定结点,从而构成更健壮的网络。

具体方法是将层中一定比例的参数置为0,反向传播时也不调节这些参数。需要注意的是,在调试和预测阶段一般不使用Dropout。如果在调试时也随机去掉连接,则不能保证每次实验结果一致,导致无法比较模型修改前后的效果,预测时则需要尽可能地使用网络功能,因此也不能去掉连接。

另外,如果手工实现Dropout功能还需要考虑补偿系数,例如在某层将20%的参数置0,导致训练时该层的输出与预测时的分布不一致,则需要在训练时将该层输出除以0.8。

归一化层

归一化层,也能在一定程度上缓解过拟合,它的原理与Dropout类似,都是引入噪声。比如Batch-Norm针对每个mini-batch计算均值和方差,而非对全体数据计算,相当于在训练集中加入了一些噪声,使得后面的层不过于依赖前层的某一单元。需要注意的是batch size越大,引入的噪声越小,正则效果也越差。

其它方法

还有一些方法也能缓解过拟合问题,如:

  • 增加训练数据,在数据不足时,加入变形后的数据(旋转、裁剪、水平翻转)。
  • Early stopping:当模型在验证集上不再下降时,停止迭代。
  • 修改模型结构:训练样本过小,模型参数过多也是造成过拟合的原因,可尝试修改模型结构。

相关文章

  • 避免过拟合

    欠拟合和过拟合 欠拟合是指在训练集和测试集(或验证集)上模型效果都不好,一般由于模型能力不足导致;过拟合是指模型在...

  • 过拟合

    总结一下过拟合的现象以及常用的避免过拟合的方法: 过拟合的定义: 过拟合是指学习时选择的模型所包含的参数过多,以至...

  • 正则化总结

    正则化的作用 正则化的作用就是用来避免或者减少过拟合现象。关于什么是过拟合什么是欠拟合就不再花费过多篇幅了。 过拟...

  • 什么是过拟合?如何避免过拟合问题?

    过拟合:所选模型的复杂度比真模型更高;学习时选择的模型所包含的参数过多,对已经数据预测得很好,但是对未知数据预测得...

  • 技巧 - 面试考点

    基础知识:1、什么是有监督/无监督算法?2、什么是过拟合/欠拟合,如何避免过拟合?3、什么是交叉验证,什么是bag...

  • SVM如何防止过拟合

    SVM如何避免过拟合 过拟合(Overfitting)表现为在训练数据上模型的预测很准,在未知数据上预测很差。过拟...

  • 模型评估之偏差-方差分解

      为了避免过拟合,我们经常会在模型的拟合能力和复杂度之间进行权衡。拟合能力强的模型一般复杂度会比较高,容易导致过...

  • 欠拟合

    欠拟合:模型不能在训练集上获得足够低的误差 欠拟合一般特点:低方差,高偏差; 导致过拟合原因:模型太简单 如何避免...

  • 什么是过拟合,如何避免?

    过拟合:训练集上表现很好,但是在测试集上表现很差,泛化性能差。 降低过拟合的方法:(1)试着寻找最简单的假设(2)...

  • 5. 过拟合及其避免

    Fundamental concepts:generalization(泛化、普遍化、一般化);fitting (...

网友评论

      本文标题:避免过拟合

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