不积跬步,无以至千里;不积小流,无以成江海。——荀子

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

假设下面的是数据集

  对于上图左边,如果给这个数据集拟合一条直线,可能得到一个逻辑回归拟合,但是这条直线并不能很好的拟合数据,这就是偏差高(high bias)的情况,我们称之为欠拟合;相反,如果我们拟合一个非常复杂的分类器,比如深度神经网络或者含有隐藏单元的神经网络,可能就非常适用于这个数据集,但是这看起来也不是一种很好的拟合方式,分类器方差较高,数据过度拟合;在这两者之间,可能还有一些像图中这样的复杂度适中,数据拟合适度的分类器,我们称之为适度拟合,是介于过拟合和欠拟合中间的一类。

 

 

  在这样一个只有x1和x2两个特征的二维数据集中,我们可以绘制数据,将偏差和方差可视化,在多维空间数据中,绘制数据和可视化分割边界无法实现,但我们可以通过几个指标,来研究偏差和方差。

 

 

理解偏差和方差的两个关键数据是训练集误差验证集误差

比如一个猫狗分类任务。

  假设训练集错误率是1%,验证集错误率是11%,则可以看出,训练集训练的非常好,而验证集上表现相对较差,我们可能过度拟合了训练集,某种程度上,验证集并没有充分利用交叉验证集的作用,这种情况称之为“高方差”。通过查看训练集误差和验证集误差,我们便可以诊断算法是否具有高方差;也就是说,衡量训练集和验证集误差,得出不同结论,

 

  假设训练集错误率是15%,验证集错误率是16%,假设实际上存在一个好的模型的错误率几乎为0%,算法并没有在训练集中得到很好训练,如果训练数据的拟合度不高,那么就是数据欠拟合,这种算法偏差比较高。相反,它对于验证集产生的结果却是合理的,验证集中的错误率只比训练集的多了1%,所以这种算法偏差高,因为它甚至不能拟合训练集

 

  假设训练集错误率是15%,验证集的错误率是30%,这种情况下,可以认为算法偏差高,因为它在训练集上结果不理想,方差也很高,这是方差偏差都很糟糕的情况。

 

  假设训练集错误率是0.5%,验证集错误率是1%,此时偏差和方差都很低,

 

 

  以上分析都是基于假设预测的,假设实际上存在一个好的模型(比如说人眼观察)的错误率接近0%,假设训练集和验证集数据来自相同分布。一般来说,最优误差也被称为贝叶斯误差,所以最优误差接近0%。如果最优误差或贝叶斯误差非常高,即实际上存在的最好的模型的错误率也只能达到15%,那么对于上面训练集15%错误率,验证集16%错误率的情况,该模型就是一个好的模型,偏差不高,方差也比较低

 

 

  对于偏差和方差都高的情况

 

  下图紫色的分类器,它会过度拟合部分数据,即用紫色线画出的分类器具有高偏差和高方差。偏差高是因为它几乎是一条线性分类器,并未拟合数据;这条曲线中间部分灵活性非常高,却过度拟合了两个样本,这个分类器偏差很高。

 

 

  当所有分类器都不适用时,如何分析偏差和方差呢?比如图片很模糊,即使是人眼,也很难准确无误地识别图片,这种情况下,最优误差会很高,那么分析过程就要做改变了

 

总结:

上面讲述了如何通过分析训练集训练算法产生的误差,和验证集算法产生的误差,来诊断算法是否存在高偏差或者高方差。根据算法偏差和方差的具体情况,决定了接下来你要做的工作

 

 

 

内容主要来自与:

Andrew Ng的改善深层神经网络课程

 

posted on 2018-04-06 11:04  hejunlin  阅读(968)  评论(0编辑  收藏  举报