偏差-方差分解(bias-variance decomposition):在理论上解释算法的泛化性能


我们可以直接做实验,拿到一个具体的精度,以及训练过程的变化曲线,观察出模型的泛化性能。

但是这样做,明显是很模糊主观的,而且也完全不知为何会表现出这样的泛化性能。

本文所说的这个分解方法就是要在理论上去分析一下,到底泛化误差由什么组成,由哪些因素影响。我个人觉得这个理论分析法的贡献是非常非常大的。

先说结论:泛化误差可分解为偏差,方差与噪声之和

在这里插入图片描述

在这里插入图片描述

即:分类器的泛化性能是由学习算法的能力,数据的充分性,以及学习任务本身的难度共同决定的。

再说推导:以回归任务为例

推导过程是很简单的,并不难,但是在在推导中,用回归会很方便,所以以回归任务为例子
在这里插入图片描述
y D y_D yD是数据集中的采样值,回归任务中,比如是1.2,但是也许其真实值y是1.25,这个是由于数据集采集过程中引入的无法避免的误差,即我们数据集中数据和真实状态的区别,这个差距越大,我们的学习算法性能再好也无法完美分类,所以这个差异刻画的是问题本身的难度,我们称之为噪声,是非常形象的。

比如,很多用传感器采集的数据,在采集过程中,不可避免地会引入噪声,使得数据集中的数据和真实数据有一定差异,这个差异就是噪声,比如采集脑电波信号EEG时,电极和电信号之间隔着一层头皮,不可避免的引入了头皮以及头皮和大脑皮层中间液体的电信号噪声。
但是后续的分类或者回归任务只能使用数据集中有噪声的数据,训练出来的模型却要用于真实数据的分类,所以当然会性能较差。

在这里插入图片描述
虽然这里多次用了期望和方差,但是真的很简单。
在这里插入图片描述
两个红框计算结果为0:

红框1= E [ f ( x ; D ) . f ˉ ( x ) − y D . f ( x ; D ) − ( f ˉ ( x ) ) 2 + f ˉ ( x ) . y D ] = E[f(x;D).\bar f(x)-y_D.f(x;D)-(\bar f(x))^2 + \bar f(x).y_D]= E[f(x;D).fˉ(x)yD.f(x;D)(fˉ(x))2+fˉ(x).yD]=
f ˉ ( x ) . f ˉ ( x ) − f ˉ ( x ) . y D − ( f ˉ ( x ) ) 2 + f ˉ ( x ) . y D = 0 \bar f(x).\bar f(x)-\bar f(x).y_D-(\bar f(x))^2 + \bar f(x).y_D=0 fˉ(x).fˉ(x)fˉ(x).yD(fˉ(x))2+fˉ(x).yD=0

红框2= E [ f ˉ ( x ) . y − f ˉ ( x ) . y D − y 2 + y . y D ] = E[\bar f(x).y-\bar f(x).y_D-y^2+ y.y_D]= E[fˉ(x).yfˉ(x).yDy2+y.yD]=

f ˉ ( x ) . E [ y − y D ] − E [ y . ( y − y D ) ] = 0 \bar f(x).E[y-y_D]-E[y.(y-y_D)]=0 fˉ(x).E[yyD]E[y.(yyD)]=0
因为 E [ y − y D ] E[y-y_D] E[yyD]是噪声的期望,是0.

偏差:刻画的是学习算法本身的拟合能力

算法的期望预测和真实结果的偏离程度

方差 : 刻画的是数据扰动所造成的影响

度量的是同样大小的训练集的波动导致的学习性能的变化

噪声:刻画的是学习问题本身的难度

表示在当前任务上任何学习算法能够达到的期望泛化误差的下界

这三项中,只有偏差和方差是我们可以左右的,我们能做的就是:最小化偏差和方差。

偏差-方差窘境(bias-variance dilemma)

但是偏差和方差又是冲突的。。。这就是偏差-方差窘境。(bias-variance dilemma)

  • 在训练不足时,即欠拟合,学习器(分类器/回归器)的拟合能力还不够强,这时候偏差主导了泛化误差。
  • 随着训练程度加深,学习器的拟合能力足够强了,偏差不大了。但是训练数据的扰动会显著影响学习器,即训练数据发生轻微扰动,学习器都会显著变化,这就是我们常说的过拟合,即学习器学到了训练数据中自身的非全局的特性。这时候泛化误差由方差主导

如图:
在这里插入图片描述
这个图简直太真实太常见太形象了。。以前一直莫名其妙,怎么会这样,泛化误差怎么到后面还增大了,现在终于明白了,原理是因为方差越来越大!因为学习器越来越过拟合,过拟合的越来越严重!

而数据量非常大的场合,一般不会出现上图这种走势的训练图,而是

偏差大时,说明学习器不行,应该增大学习器的复杂度比如增加NN层数或者增加训练次数,这时候靠增大数据量是于事无补的。

下图是一个高偏差示例,数据其实是二次函数走向,但是偏要用一次函数去拟合,那么偏差就很大。就算增大数据量,拟合出来的还是一次函数直线,泛化误差还是很大。所以偏差表示学习器本身的学习能力,这里一次函数无论如何也不可能学到二次曲线的特性的。
在这里插入图片描述

而方差大时,则说明学习器没问题,是数据太少了,这种情况下,增加数据量可以显著解决问题。

示例:
在这里插入图片描述

我们就是要在泛化误差停止减小,转而增大的那一点停下来,停止训练,这时候的模型就是最佳的,偏差和方差之和达到了最小。
即:我们要找一个最佳的bias-variance trade-off.
在这里插入图片描述

之前常画的是loss曲线和精度曲线。而误差曲线一般是指上面几张图这样,增大训练集的规模,观察训练和测试误差的变化,从而判断模型的学习状况,是高偏差还是高方差,从而针对性解决。

正则化:适度增加偏差以减少方差

一个有效的正则化是有利的 ‘‘交易’’,也就是能显著减少方差而不过度增加偏差。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值