【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.2)
1.2 偏差/方差
假设图中的ooxx代表数据集,现用一条直线去拟合左图的数据,可能会得到一个逻辑回归拟合,但是可以看到这条直线并不能很好的拟合数据,这种就属于高偏差情况,通常称为欠拟合。
而对于一个非常复杂的分类器,比如深度神经网络或者含有隐藏单元的神经网络,就适用于右边的数据集,但也不是一个合适的拟合方式,这种属于分类器高方差情况,称为过拟合。
中间的图就是分类器复杂程度适中,数据拟合适度,称为适度拟合。
上图例子是只有两个特征的二维数据集,可以直观的看到方差和偏差是怎么一回事,对于高维空间,可以用一些指标来判断。
用猫狗识别这个例子来说明。首先理解方差和偏差的两个关键数据是训练集误差和验证集误差,为了论证方差和偏差与训练集误差和验证集误差相关,假定我们的肉眼可以很准确的识别出图中对象是猫咪。现假定训练集的错误率是1%,而验证集错误率设置成11%,这种情况就是把训练集错误率设置的很好,而验证集设置的相对较差,我们就可能过度拟合了训练集,因此,在某种程度上,验证集就没有发挥它交叉验证的作用。这就可以称之为高方差。进而论证了,通过看训练集和验证集的误差来判断某个算法是否存在高偏差。
于是,我们可以通过衡量这个指标然后得到不同的结论。假设训练集误差是15%,验证集误差是16%(在这个例子中假定识别图片的错误率是0)。可以看到算法在训练集没有得到很好的训练,故数据拟合度不高,这就是前面提到的欠拟合,就可以说这种算法偏差较高。16%的验证集误差的结果在这是合理的,它与训练集误差相差只有1%,故属于高偏差情况,这与上面左图一样。
再假设,把训练集误差设为15%,验证集误差设为30%,可以看到验证评估没有达到很好的效果,这种情况属于高偏差,高方差。
最后一种情况就是把它两分别设置成0.5%和1%,这种就是低偏差,低方差,这会是人们想看到的结果。但是在此例中,因为假定了人眼识别的错误率是0%,所以这个要被考虑的因素暂时丢弃了。通常情况下,最优误差称之为贝叶斯误差,而最优误差理应要达到0%。但如果最优误差或者贝叶斯误差达到15%,那么第二个例子15%的训练集误差和16%的验证集误差,它们就属于低偏差低方差了。
假如猫狗图片不适用于所有的分类器,即图片很模糊,就是说人眼或者任何系统都无法很好的识别出猫咪,这就属于最优误差很高的情况了。
再来看下高偏差和高方差在刚才图中是什么样子的:
可以看到,线性分类器数据拟合度低,属于高偏差情况;紫色线画出来的过度拟合了部分数据,这就属于高偏差高方差的分类器。
故线性分类器偏差很高,而采用曲线函数或二次元函数,会产生高方差,因为曲线灵活性太高,会拟合错误的样本。