实用机器学习笔记二十:偏差和方差
前言:
本文是个人在 B 站自学李沐老师的实用机器学习课程【斯坦福 2021 秋季中文同步】的学习笔记,感觉沐神讲解的非常棒 yyds。
偏差和方差:
在统计学习里面,通常使用偏差和方差来衡量一个模型。下面先来通过几个图形来直观上感受一下二者。
直观上认识完偏差和方差之后,接下来我们再稍微解释一下二者。从上图示是如何得来的进行解释:
首先给定一个模型,包括模型的定义,优化方法等
有一批数据,每次这个模型都会使用数据训练出结果,上图中每一个红色的点就是训练好的模型。中间的十字是真实的最优模型。(上图是训练了 5 次,采样了 5 次数据,训练出了 5 个模型)
如果 5 个模型都落在了可容忍的区域之内,并且模型在真实解(真实模型)的附近----即模型与真实模型距离比较近。而且模型与模型之间的差距也不大,相距比较近。认为这是低偏差,低方差。所谓偏差就是模型离真实模型的距离。
所谓方差就是每次学习到的模型与其他模型之间的距离。高方差即是学习到的模型之间的差距很大,一会落到东边,一会落到西边,就像最后两幅图一样。
偏差方差定义推导分解:
从中抽样数据,其中为真实的函数,为噪音。
模型使用数据集训练并输出预测值,去拟合真实的函数。可以认为是一个回归问题,通过最小化 MSE 进行训练。并且对于从 D 中不同的抽样数据上,模型都可以拟合的很好,就是算期望。
上面这个式子就是加了一个,然后减了一个。
第一个式子变成了三个式子的和的平方,也就是三个式子的平方和加上交叉项(两两之间的乘积)。从第一个等式到第二个等式,可以认为交叉项被消掉了。因为:第一项不是随机变量,第二项是随机变量,第三项是随机变量,认为噪音与第三项(模型学习到的东西)是独立的,因此三个是互相独立的----->,已知:,在第三项中,先把最外层的 E 算进去----->第三项的期望等于 0。
也就是说,可以看做是模型的泛化误差,等于模型偏差的平方+模型的方差+噪音的方差。
偏差和方差解释泛化误差:
从下图可以看出:
绿色曲线:随着模型的复杂度提高,偏差的平方在降低。这是因为模型越来越复杂,可以更好地拟合数据特征与分布,使预测的结果和真实的值很相近。
黄色曲线:随着模型复杂度的提高,方差越来越大。这是因为起初模型比较简单,就可以比较好的拟合数据,但是模型越来越复杂,数据复杂度相对于就降低了,模型不仅可以拟合现有的数据,还可以拟合更加复杂的数据,可以从各方面来对数据进行解释(学习结果多样性),可能过度地关注到数据中的噪音等其他信息。
蓝色曲线:泛化误差=偏差的平方+方差+数据噪音。所以蓝色曲线就代表泛化误差。因此模型最好的位置就在蓝色点处。
降低偏差和方差降低泛化误差:
训练一个机器学习模型,需要降低模型的泛化误差,那如何降低这个指标呢?从上面的解释中,我们就可以得到启发,就是想办法降低偏差、方差、噪音。
降低偏差:
提高模型复杂度。比如:神经网络中就是增加层数和每一层的宽度
Boosting
Stacking
降低方差:
模型复杂度降低
正则化,比如:L1,L2 正则化,限制模型参数可学习的范围
Bagging
Stacking
降低噪音:
这部分是来自于数据集,可以精确采集数据,降低数据的噪音
集成学习:
Boosting,Stacking,Bagging 都是集成学习方法,其核心思想:使用多个模型来提升预测性能。
版权声明: 本文为 InfoQ 作者【打工人!】的原创文章。
原文链接:【http://xie.infoq.cn/article/82d11805d99ab89fa8796e632】。文章转载请联系作者。
评论