机器学习李宏毅第五讲 误差来源讨论

估计子的bias和variance

上一讲阐述了较为重要的是测试集的误差,该误差来源包括了bias和variance,并且更加复杂的模型并不一定会带来更低的误差。
对于实际的情况,存在一个最佳的预测函数,记为 f^ f ^ ,此为理想情况;实际情况中,我们根据training data,可以得到一个预测函数,记为 f f ∗ ,此时我们可以称 f f ∗ f^ f ^ 的一个估计子(estimator),此时可以引入bias和variance的概念,即统计里面的概念,例如无偏估计量(unbias estamator)、方差等等 。
对于一系列的数据,可以通过数据 {x1,x2,...,xN} { x 1 , x 2 , . . . , x N } 来估测均值和方差。对于均值,可以采用下列方式进行估算,此时对于该估测值求均值,发现估算的均值与均值的期望相同,则此为无偏估计量。

m=1Nnxn(1) (1) m = 1 N ∑ n x n

E[m]=E[1Nnxn]=1NnE[xn]=μ(2) (2) E [ m ] = E [ 1 N ∑ n x n ] = 1 N ∑ n E [ x n ] = μ

如果估测的均值与均值期望相等,则为unbias;同样通过估测的方差与实际方差比较,可以得到数据的variance情况。
同样的,我们对于 f f ∗ 求期望,得到 f¯ f ¯ ,比较 f^ f ^ f¯ f ¯ ,可以得到bias情况。另外,通过求取 f f ∗ 的方差,可以得到variance的情况。

模型的bias和variance

实际情况是,我们通过训练得到了一个函数;针对于多个训练集合,我们可以获得不同的函数,对于这些函数求期望,则可以得到 f¯ f ¯ 。如下图所示,选取了100个训练集合。可以发现简单的模型,其variance较小;而较为复杂的模型,其variance较大。而对于bias,较为复杂的model有着较小的bias,如下图所示。

机器学习李宏毅第五讲 误差来源讨论_第1张图片

机器学习李宏毅第五讲 误差来源讨论_第2张图片

总结来看,对于不同的Model,其复杂度和Bias及variance的关系如下图,因此存在一个平衡。当模型复杂度较大的情况,则会造成overfitting;如果模型的误差来自于bias,则会造成underfitting。即,如果Model无法很好fit训练数据,则bias较大,因此需要添加更多的feature,或者使用更复杂的模型。如果model能够很好符合训练数据,但是测试数据误差较小,则variance较大,需要更多的数据(甚至可以制造数据),或者使用regularization。一般我们需要在bias和variance的平衡。

机器学习李宏毅第五讲 误差来源讨论_第3张图片

如何选择合适的模型

通过training set训练多个模型,然后使用public testing set进行评估,评估完成后会发现针对于实际情况(private tesing set),在public testing set里面误差小的不一定表现最好。
这里提供一种实际交叉验证的方法,如下图所示,将training set分为training set和validation set,根据新的training set进行数据训练,然后在validation set进行误差计算。此时,将最小的Model进行public test,这时public test的情况可以反映private test的情况,更好的反映实际的模型效果。这里实际上说明了,对于testing set,如果以testing set的效果作为model选择依据,则往往会导致testing set成为public的情况,不能反映真实的模型效果。 这里可以参考一篇经验文章cross validation说明。

机器学习李宏毅第五讲 误差来源讨论_第4张图片

可参考资料和网址

  1. cross validation说明

你可能感兴趣的:(机器学习)