Bias(偏差)、Variance(方差)及过拟合、欠拟合产生原因

  • Post author:
  • Post category:其他




关于Bias和Variance



Bias

关于偏差的介绍我主要参考了李宏毅老师的机器学习视频,(这里强烈推荐李宏毅老师的b站视频,讲的非常好)。

这里我们将神经网络类似于寻找一个可以很好拟合训练数据的model的过程,如下图所示,假如有两个model,分别是图像中所列出的两个y,很明显,这两个model的复杂程度不是很一致,左侧的model是个二维的,而右侧的则是个多维的model。

这里拟合程度类比成我们选择的model,在输入x后,是否可以很好的拟合训练数据,也就是是否可以很好的打在靶心。

在上面两个图中,可以很清楚看到在简单的model中,在多训练数据中,所拟合的函数比较集中,但他们平均函数和GT(ground truth)相差比较大,也就是我们model打的位置比较集中,但是呢,都距离靶心比较远,这就是bias的含义!返回来思考为什么呢,原来是因为我们的model只是个二维,他允许打靶的范围就那么大,有可能最大的范围都不包括靶心,也就是最正确的model。这就是bias产生的原因

在这里插入图片描述



Variance

理解了bias,那么varience就很好理解了,与简单的model相比,当我们选择复杂的model时,我们确实可能训练出最正确的model,但因为空间范围很大,所以,model多打在靶心走位,这样平均下来可能处在靶心,也就bias很小,但因为分散,所以varience很大。

下图是在不同维度的model下,产生损失的来源:

在这里插入图片描述

可以看出model维度大时,很容易出现variance,因为其所提供model的选取的空间很大,所以其在训练时拟合的很好,但在测试中很容易出现Error很大的情况,也就是产生过拟合!

而当model维度小时,因为他连最适合model都不包含,所以他连训练数据都拟合不是很好,也就是出现欠拟合!



解决办法



解决Variance

因为这个误差主要来源于model分散的比较开,散布在靶心周围,所以解决办法有:

1 more data

2 正则化(regularization)

正则化主要是使拟合的model更加平滑,用来减少输入数据的影响。正则化的公式如下图所示:

在这里插入图片描述

在采取上述两个方法后,model拟合程度如下:

在这里插入图片描述

可以看出,model更加集中,减少Variance。



解决bias

对于bias,你需要重新设计你的model:

1 可以增加更多的feature作为输入

2 可以选择一个更加复杂的model



版权声明:本文为weixin_51025273原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。