机器学习中的方差、偏差和噪声

机器学习算法一般都会有训练和测试的过程,而且算法在不同训练集(训练集来自同一个分布)上学得的模型,测试的结果也很可能不同。

一般来说,算法的方差衡量了训练集的变动导致的模型性能的变化,即多次训练的模型之间的性能差异性。偏差则是度量算法的期望输出与真实标记的区别,表达了学习算法对数据的拟合能力。而噪声则表示数据的真实标记与数据在数据集上标记的区别,表明算法在当前任务上能达到的测试误差的下界。

假设数据集用 D D D表示,测试样本 x x x y y y表示 x x x在数据集上的标记, y ~ \tilde{y} y~表示 x x x的真实标记, f ( x ; D ) f(x;D) f(x;D)表示从训练集 D D D上学得的模型 f f f的预测输出。

f ( x ) ‾ \overline{f(x)} f(x)表示从不同训练集上学得模型的期望输出,则
f ( x ) ‾ = E D [ f ( x ; D ) ] \overline{f(x)} = E_D[f(x;D)] f(x)=ED[f(x;D)]

则可以定义方差、偏差和噪声的表达,

方差为:
v a r ( x ) = E D [ ( f ( x ; D ) − f ( x ) ‾ ) 2 ] var(x) = E_D[(f(x;D) - \overline{f(x)})^2] var(x)=ED[(f(x;D)f(x))2]

偏差为:

b i a s 2 ( x ) = [ f ( x ) ‾ − y ~ ] 2 bias^2(x) = [\overline{f(x)} - \tilde{y}]^2 bias2(x)=[f(x)y~]2

噪声为:

ϵ 2 = E D [ ( y ~ − y ) 2 ] \epsilon^2 = E_D[(\tilde{y} - y)^2] ϵ2=ED[(y~y)2]

如果对期望泛化误差进行分解,可以得到

E ( f ; D ) = b i a s 2 ( x ) + v a r ( x ) + ϵ 2 E(f;D) = bias^2(x) + var(x) + \epsilon^2 E(f;D)=bias2(x)+var(x)+ϵ2

即算法的期望泛化误差可以分解为偏差、方差和噪声之和。

另外,一般来说,如果泛化误差的下界为0%,则高方差和高偏差对应如下几种情况。

train error1%15%15%
test error15%16%30%
方差、偏差高方差高偏差高偏差&高方差

  在机器学习中,针对高方差和高偏差的情况,处理机制也是完全不一样的。首先要确保算法有足够的拟合能力,能够很好地处理该任务,即降低偏差,而这通常需要更换算法或者调优算法。在达到低偏差后,如果存在高方差,则需要通过获取更多的训练数据或正则化或dropout等机制减少方差。

  另外,在集成学习中,bagging一般可以用来减少方差,而boosting则有利于减小偏差。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值