学习资料
本课思路
主要解释了训练过程中为什么会产生误差,如何找原因,以及该如何处理
一、什么会引起误差
误差(error)可能来自于偏差(bias)和方差(variance)
二、什么是偏差和方差
参考资料
机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?
Error反映的是整个模型的准确度,Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。
举一个例子,一次打靶实验,目标是为了打到10环,但是实际上只打到了7环,那么这里面的Error就是3。具体分析打到7环的原因,可能有两方面:一是瞄准出了问题,比如实际上射击瞄准的是9环而不是10环;二是枪本身的稳定性有问题,虽然瞄准的是9环,但是只打到了7环。那么在上面一次射击实验中,Bias就是1,反应的是模型期望与真实目标的差距,而在这次试验中,由于Variance所带来的误差就是2,即虽然瞄准的是9环,但由于本身模型缺乏稳定性,造成了实际结果与模型期望之间的差距。
三、偏差和方差的关系
在一个实际系统中,Bias与Variance往往是不能兼得的。如果要降低模型的Bias,就一定程度上会提高模型的Variance,反之亦然。
造成这种现象的根本原因是,我们总是希望试图用有限训练样本去估计无限的真实数据。当我们更加相信这些数据的真实性,而忽视对模型的先验知识,就会尽量保证模型在训练样本上的准确度,这样可以减少模型的Bias。但是,这样学习到的模型,很可能会失去一定的泛化能力,从而造成过拟合,降低模型在真实数据上的表现,增加模型的不确定性。相反,如果更加相信我们对于模型的先验知识,在学习模型的过程中对模型增加更多的限制,就可以降低模型的variance,提高模型的稳定性,但也会使模型的Bias增大。
- 欠拟合:模型越简单,偏差越大,方差越小
- 过拟合:模型越复杂,偏差越小,方差越大
四、偏差大怎么办
- 增加模型输入特征
- 增加模型复杂度
五、方差大怎么办
- 收集(或创造)更多数据
- 正则化处理
六、交叉验证(Cross Validation)
之前提到我们有训练数据和测试数据,值得注意的是,真实情况为我们可以获得的训练数据总是有限的,同样我们能获得的测试数据也是有限的。所以训练出来的模型,无论在训练还是测试数据上产生的误差值,总是会大于应用真实数据而产生的误差值。
例如世界上最大的图像识别数据库ImageNet的排行榜,模型在训练数据上的最好成绩,误差是3%,实际应用中远大于该值
每次训练选取的数据样本会影响模型的训练结果,所以可采用交叉验证来减少因为数据样本选取的不同造成的影响。
具体做法为
- 将训练数据分成N份,每次选择其中1份作为验证数据,剩下N-1份作为训练数据
- 准备不同复杂度的模型,比如Model1, Model2, Model3
- 用训练数据计算得到各模型的𝑓*,然后用验证数据来计算L(𝑓*)的误差
- 重复第3步N次,计算每个模型的平均误差,获取最小误差的模型
Next Lecture
下堂课学习更多关于Gradient Descent的知识
网友评论