概率统计与机器学习:机器学习常见名词解释(过拟合,偏差方差)

来源:互联网 发布:chart.js详细参数 编辑:程序博客网 时间:2024/06/05 09:41

过拟合,欠拟合

  • 过拟合和欠拟合
    仍旧以线性回归举例,f(x,w)=w1x1+w2x2...wnxn
    我们要在损失函数最小的情况下得到权值wE=Ni=1(yif(x,w))2
    但是阶数N也是需要考虑的,比如一阶就是一条线,特别大就是一条奇奇怪怪的曲线分别穿过数据点显然,前者根本就穿不完,后者是穿的太完美,都是非常危险的。引入一张PRML书里的图来解释形象的描述:

    我们正确的函数是正弦函数,现在想让模型学习这写点,阶数小的穿不过去,而阶数高的模型过于复杂导致如果出现别的正确点却无法在测试集上很好发挥的情况。对应的即是 过拟合和欠拟合。

  • 模型容量(复杂度)和模型泛化

    • 模型容量:以线性回归为例,模型如果太过简单,那么显然并不能很好的拟合数据;相反,如果模型复杂度特别大,在训练集上可能会非常好的“记住”了这些特征,但是到测试集上就会崩,就好比我们死记硬背了例题换个样子就不会做了。即:增大模型容量,训练误差和测试误差都会下降,但是过度增加仍然会导致测试误差上升
    • 模型泛化:泛化指的是我们将我们的模型可以应用于其他场景,有些看样子学习的很好,实际上根本就不科学,也就是不可学。普适逼近定理:只要给定足够多的神经元,单隐层全连接网络表达能力总是足够强的。话是这么说,但是讲表达能力是没意义的,表达了不代表学习到了,我们最终的目的是要有一个很好学习能力的模型而不是为了某个东西而表达出来,这和死记硬背例题没有什么区别。

偏差(Bias)与方差(Variance)

  • 在讲此处概念先引入一张很经典的图

    取自http://scott.fortmannroe.com/docs/BiasVariance.html
    分别阐述了:低偏差低方差,低偏差高方差,高偏差低方差,高偏差高方差
    我们以射击打靶为例:
  • 低偏差低方差:神枪手,打的准发挥稳定
  • 低偏差高方差:发挥很不稳定,有时候打的准有时候不准
  • 高偏差低方差:可能由于枪或者眼神的问题,发挥的稳定只是打的不准
  • 高偏差高方差:完全不会玩,乱打的那种

因此我们得出了偏差和方差的定义:

  • 偏差(Bias):反应的是观测数据和真实值之间的差距,偏差越大,越偏离真实数据
  • 方差(Variance):反应的是预测值的变化范围,也就是模型的离散程度,方差越大代表模型分布越分散

相关推导:

最小二乘回归中的偏差-方差分解:
在已知真实值Y 不是一个纯粹的正弦函数,而是在线附近抖动采样,假设这个抖动是符合高斯分布的
那么真实值:Y=f(x)+ϵϵN(0,σϵ)
f(x) ; f^(x)
由平方误差函数得Err(X)=E[(Yf^(x))2]
展开:Err(x)=E[Y22Yf^(x)+f^(x)2]=E[Y2]2E[Y]E[f^(x)]+E[f^(x)2]
= (E[f^(x)]f(x))2+E[((f^(x)E[f^(x)])2]+σ2ϵ
即:Err(x)=Bias2+Variance+IrreducibleError

偏差与方差的权衡:

我们假设有一个九阶多项式,它实际为了拟合一个正弦函数,并加入了正则化系数
那么如果正则化的约束使得模型复杂度越来越低,比如将正弦拟合成了一根线,该如何表现:
1.Bias2:首先偏差是反应了数据和观测值直接的距离,一开始约束肯定会缩短距离以此偏差肯定降低,但是当约束的太过分肯定拟合的很差劲,因此偏差提高
2.Variance:方差反应的是模型的离散程度,一开始因为多项式的曲线形式因此离散程度比较高,但是最后如果是一根直线那么明显就离散化很低,因此是降低的。
3.Bias2+Variance : 很显然一开始由于前两种情况模型被约束,这个值会下降,但是随后太过简单偏差的平方会特别大,比重会很高,因此整体升高
4.test error :对应的就是第三种情况,偏差方差反应的是原始模型的好坏,因此会影响到测试集的发挥,哪怕测试集原本效果很好,被约束的很过分也会导致在测试机上效果非常差。
附上一张图,摘自PRML

常见机器学习病症解决方案:

  • 增加训练集数量
  • 降低模型复杂度
  • 提升模型复杂度
  • 采用多模型设置
  • 采用Adaboost对多个弱模型进行提升
阅读全文
1 0