深入理解机器学习中的误差

Where does the error come from?

以下资料来自于李宏毅老师《机器学习》2020春季-Basic Concept

标题名字也借用了李宏毅老师上课的题目,本文为自己整理的笔记。

背景复习

在对宝可梦的CP值进行回归的问题中,我们分别用1至5次方程组进行回归,发现在训练集上面的误差越来越小,但是在测试集上面的误差先减小后增大,为了探究其中的原因,我们需要对误差进行深入理解。

误差

对于误差,一般来自2个方面,分别是Bias(偏置)和Variance(方差)。


将寻找最合适的函数的过程比喻为打靶Bias表示你瞄准的地方距离靶心的距离,而Variance表示你射击距离自己瞄准的靶心的距离
如果你的Bias太大,说明你本身就没有瞄准,即使每次射击特别稳定,最终的结果也不会很好,也就是说,你的模型尽管方差很小,但是偏置太大,结果会不尽人意;如果你的Variance太大,说明你射击发挥很不稳定,虽然瞄得很准,但是最终的结果也不会很好,也就是说,尽管你的模型偏置小,但是在应用时,发挥不稳定,结果也会不尽人意。

具体的影响上图已经很形象的展示了。

误差评价

对于在背景复习中提到的问题,我们从线性拟合,到五次多项式拟合,在训练集和测试集上面的结果可以说明,模型越复杂,涵盖的范围越广(很容易理解,线性模型是二次多项式模型中二次项为零的特殊情况),所以更有可能找到真正的“模型”,即f-hat,所以增加模型复杂度是有意义的,在训练集误差的减小也可以说明这一点。但是在测试集误差的增加,就是反映了模型的不稳定。

为此,我们可以通过多次实验求期望的方法,对模型进行评估,在概率论与数理统计中学过偏置与方差的无偏估计,这里不赘述。即利用其期望来评价模型真正的优劣。

对模型进行5000次实验(红色),然后求其期望(蓝色),假设真正的f-hat(黑色)。线性模型与五次多项式模型的结果如下,可以看到简单模型与复杂模型的偏置以及方差:


于是,我们发现随着模型逐渐复杂,偏置与方差是一对不可调和的矛盾,我们需要在其中找到最合适的点,避免Underfitting(欠拟合,模型的范围还未涵盖真正的函数)或者Overfitting(过拟合,可能将某些非影响因素也算作重要因素;方差太大,不具有普遍性)。

在这个问题中,我们就需要找到两种误差总和的最小值。

解决方法

  1. More data。显然,由于数据不足,由少量数据生成的模型效果往往不好,这时候增大数据量往往有很好的效果。
  2. Regularization。这个在前几节课提到过,简单来讲就是希望模型的参数越小越好,这样,输入发生微小的变化时,输出并不会发生特别大的变化,类似于系统的稳定性。
  3. k折交叉验证。这个方法在西瓜书中也提到过,对数据集较小的情况,可以充分利用数据。

猜你喜欢

转载自blog.csdn.net/qq_45510888/article/details/113608564
今日推荐