zoukankan      html  css  js  c++  java
  • 【7】偏差、方差;过拟合、欠拟合

    Bias(偏差)

    模型在样本上的输出与真实值之间的误差,即模型本身的精准度,反应出算法的拟合能力。

    Variance(方差)

    模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性,反应出预测的波动情况。

    偏差与方差的关系

    偏差与方差之间按照高低,可以组合成四种关系,如下图所示

     
     

     左图为欠拟合,偏差较高。中间的方差和偏差都较为合理。右图的偏差较小,但方差很高,是过度拟合。

    偏差与方差关系

    1、低偏差低方差

    表示模型既准确又稳定,效果最好,但是现实中这种情形很少遇见。

    2、低偏差高方差

    表示模型准确但是稳定性差,对验证数据&测试数据的拟合能力差,即是模型的泛化能力差,产生了过拟合(Overfitting)。

    3、高偏差低方差

    表示模型的准确度差,对数据的拟合能力弱,产生了欠拟合(Underfitting)。

    4、高偏差高方差

    表示模型既不准确又不稳定。

    过拟合与欠拟合

    由上面的分析可知,高方差往往预示着过拟合,高偏差则是欠拟合。

    避免欠拟合(拟合太差)

    1、增加训练样本数据

    2、设计更复杂的神经网络模型

    3、增加迭代次数

    4、更好的优化函数

    5、调整超参数值

    避免过拟合(拟合过度,泛化太差)

    1、设计更简单的神经网络模型

    2、增加训练样本数据

    3、正则化。在损失函数后面添加上L2正则项

    4、使用dropout。随机性使得网络中的部分神经元失效,效果上类似将模型变得更简单。

    5、调整超参数值
    6、尝试其他模型

    7、提前结束训练(early stopping)。即是提前结束优化损失函数。

    简单小结

    在实际工程中,通常可以按下面的来操作

    贝叶斯(最优)误差-理论上的最小误差值(通常比人类误差小)

    可避免偏差-训练误差 与 贝叶斯误差 之间的差值

    方差-验证集误差 与 训练误差 的差值

    当 可避免偏差 大于 方差 时,发生 欠拟合。

    当 方差 大于 可避免偏差 时,发生 过拟合。

    在训练模型时对照以上描述,有助于定位问题,更快找到最适合的模型。

    通常神经网络规模越大,模型与训练数据拟合的程度越大,拟合程度越大,偏差就越小。理想的神经网络模型是偏差和方差都很小。当训练集的偏差较小,但方差很大的时候,需要做的是增加训练集的数据,但有时无法获得更多的数据,那么就需要用到正则化的方法。如果怎么都无法使偏差很小,那么就需要改变神经网络,此时增加训练数据没什么用。

  • 相关阅读:
    Spring MVC多动作控制器
    Spring MVC简单URL处理程序映射
    Spring MVC控制器类名称处理映射
    Spring MVC文件上传处理
    再探Tomcat
    Git教程之工作区和暂存区
    linux系统启动级别
    浅析JAVA_HOME,CLASSPATH和PATH的作用
    *Linux之rm命令
    @CentOS环境下Java开发环境的搭建
  • 原文地址:https://www.cnblogs.com/lau1997/p/12361217.html
Copyright © 2011-2022 走看看