写点什么

实用机器学习笔记二十:偏差和方差

作者:打工人!
  • 2021 年 12 月 21 日
  • 本文字数:1509 字

    阅读完需:约 5 分钟

实用机器学习笔记二十:偏差和方差

前言:

本文是个人在 B 站自学李沐老师的实用机器学习课程【斯坦福 2021 秋季中文同步】的学习笔记,感觉沐神讲解的非常棒 yyds。

偏差和方差:


在统计学习里面,通常使用偏差和方差来衡量一个模型。下面先来通过几个图形来直观上感受一下二者。


偏差与方差


直观上认识完偏差和方差之后,接下来我们再稍微解释一下二者。从上图示是如何得来的进行解释:


  • 首先给定一个模型,包括模型的定义,优化方法等


  • 有一批数据,每次这个模型都会使用数据训练出结果,上图中每一个红色的点就是训练好的模型。中间的十字是真实的最优模型。(上图是训练了 5 次,采样了 5 次数据,训练出了 5 个模型


  • 如果 5 个模型都落在了可容忍的区域之内,并且模型在真实解(真实模型)的附近----即模型与真实模型距离比较近。而且模型与模型之间的差距也不大,相距比较近。认为这是低偏差,低方差。所谓偏差就是模型离真实模型的距离。


  • 所谓方差就是每次学习到的模型与其他模型之间的距离。高方差即是学习到的模型之间的差距很大,一会落到东边,一会落到西边,就像最后两幅图一样。

偏差方差定义推导分解:


  • 中抽样数据,其中为真实的函数,为噪音。


  • 模型使用数据集训练并输出预测值,去拟合真实的函数。可以认为是一个回归问题,通过最小化 MSE 进行训练。并且对于从 D 中不同的抽样数据上,模型都可以拟合的很好,就是算期望。



上面这个式子就是加了一个,然后减了一个

第一个式子变成了三个式子的和的平方,也就是三个式子的平方和加上交叉项(两两之间的乘积)。从第一个等式到第二个等式,可以认为交叉项被消掉了。因为:第一项不是随机变量,第二项是随机变量,第三项是随机变量,认为噪音与第三项(模型学习到的东西)是独立的,因此三个是互相独立的----->,已知:,在第三项中,先把最外层的 E 算进去----->第三项的期望等于 0。

也就是说,可以看做是模型的泛化误差,等于模型偏差的平方+模型的方差+噪音的方差。

偏差和方差解释泛化误差:


从下图可以看出:


  • 绿色曲线:随着模型的复杂度提高,偏差的平方在降低。这是因为模型越来越复杂,可以更好地拟合数据特征与分布,使预测的结果和真实的值很相近。


  • 黄色曲线:随着模型复杂度的提高,方差越来越大。这是因为起初模型比较简单,就可以比较好的拟合数据,但是模型越来越复杂,数据复杂度相对于就降低了,模型不仅可以拟合现有的数据,还可以拟合更加复杂的数据,可以从各方面来对数据进行解释(学习结果多样性),可能过度地关注到数据中的噪音等其他信息。


  • 蓝色曲线:泛化误差=偏差的平方+方差+数据噪音所以蓝色曲线就代表泛化误差。因此模型最好的位置就在蓝色点处。


偏差和方差的平衡

降低偏差和方差降低泛化误差:


训练一个机器学习模型,需要降低模型的泛化误差那如何降低这个指标呢?从上面的解释中,我们就可以得到启发,就是想办法降低偏差、方差、噪音。


  • 降低偏差:

  • 提高模型复杂度。比如:神经网络中就是增加层数和每一层的宽度

  • Boosting

  • Stacking


  • 降低方差:

  • 模型复杂度降低

  • 正则化,比如:L1,L2 正则化,限制模型参数可学习的范围

  • Bagging

  • Stacking


  • 降低噪音:

  • 这部分是来自于数据集,可以精确采集数据,降低数据的噪音

集成学习:


Boosting,Stacking,Bagging 都是集成学习方法,其核心思想:使用多个模型来提升预测性能。

发布于: 2 小时前阅读数: 6
用户头像

打工人!

关注

打工人! 2019.11.10 加入

2021年InfoQ年度最佳内容获得者。 InfoQ签约作者 自动化和控制专业入坑人士,目前在研究深度强化学习(DRL)技术。学了Java,本来要入坑互联网,现在要入坑车联网了。喜欢了解科技前沿技术,喜欢手机摄影。

评论

发布
暂无评论
实用机器学习笔记二十:偏差和方差