[深度学习-2.2] 方差和偏差的理解

方差(Variance)和偏差(Bias)是看似是很基本的概念,但是深入理解会发现其中也包含着很大的学问。理解好方差和偏差能帮助我们改进拟合过程,从而得到更好地模型。

  以下面这个简单的数据分类问题为例。我们希望将图中的两类样本点正确划分。

[深度学习-2.2] 方差和偏差的理解_第1张图片

  显然,中间图是一个很理想的分类,绝大部分的样本点都得到了正确的划分。而假如使用像逻辑回归这种简单的模型,我们可能得到左边图中那样一条直线,这个模型就对应高偏差,因为有较多的样本点被错误的划分,这种情况我们称模型“欠拟合”。如果我们使用的一个非常复杂的模型,像右图那样所有的样本点都得到了正确的划分,这是个好的模型吗?答案是否定的,这个模型存在高方差,因为如果我们加入一些新的样本点(例如下图中的a和b),模型将会很大概率将他们划分到错误的类别里,特别是位于分类边缘的一些样本,这种情况我们称为“过拟合”。

[深度学习-2.2] 方差和偏差的理解_第2张图片

  还有一种况,即高偏差高方差的情况,如下图所示,高偏差是因为模型对训练样本点不能很好的拟合,有较多的样本点被错误划分;高方差是因为对中间两个样本点过度拟合。因此这是一个比较糟糕的分类器。

[深度学习-2.2] 方差和偏差的理解_第3张图片
总结

  简单来说,可以理解为偏差体现了模型对于数据的拟合程度,方差体现了模型的泛化性能,即对于一些新的样本是不是能够正确分类。
  在训练一个深度网络模型的时候,我们可以通过其在训练集和验证集上的误差来分析模型的好坏,进而进行模型调整。可以通过下面这个简单规则来进行判断:

训练集误差 较高
验证集误差 较高 更高
结论 低偏差,低方差 高方差 高偏差 高方差,高偏差

在训练过程判断出模型存在的问题后,就可以针对不同的情况采取不同的措施改善模型性能。具体如下

  • 高偏差: 增加网络层数,增加隐藏层神经元数量,增加算法迭代次数,或者用更好的优化算法。
  • 高方差: 增加用来训练模型的样本数,或者使用正则化防止过拟合。

你可能感兴趣的:(深度学习入门)