【啃书吧:深度学习与MindSpore实践】第二章 2.4 过拟合与欠拟合

初读:2020年12月14日至2020年12月17日

啃书进度会在目录中标出来。本次目标是完成第二章2.4节过拟合与欠拟合(P22-P24)。

进度005.png

在机器学习中过拟合(Overfitting)与欠拟合(Underfitting)都是指模型选择不能够很好地拟合数据本身,即模型过于复杂或过于简单。一个过拟合的模型往往有着比数据本身特性更多的参数,为了拟合尽可能多的数据,甚至包括一些错误的样本,这些参数会因为过度拟合数据而产生一些噪声。而欠拟合与之相反,其原因是选择的参数或模型不够复杂,例如用线性模型去拟合非线性结构,显然是欠拟合的。

书中图2.7表示了在分类问题中出现的过拟合与欠拟合问题。对于这样的非线性模型,如果采用图2.7(a)的线性模型,显然无法去拟合非性的分界线,这种情况称为欠拟合,模型将无法得到很好的预测效果,而为了拟合尽可能多的数据,可以选择2.7(c)中的曲线所示的复杂模型,尽管这样的模型将数据100%的区分开了,但并没有很好地拟合数据特征,对于一个新来的测试点,这个过拟合的模型很可能出现区分错误,这样的模型叫做过拟合,而图2.7(b)中的曲线则为一个更好的模型,具有很好的的泛化能力。

书中2.8解释了回归问题的过拟合。如果用浅色的多项式曲线去拟合,尽管可以完美的你和所有的数据点,但失去了数据本身的特性,并且无法很好地得到泛化,例如左侧第一和第二个点之间任意的一个未知数据典预测值将会非常大,导致很大的偏差,相反,深色的线性模型反映了数据本身的变化趋势,在预测新的数据点时,可以达到更高的准确度,在上述问题中,从图形的角度理解了过拟合和欠拟合的概念,下面将从数据的角度解释这两个概念。

在一个机器学习问题中,数据包含训练数据(Training Data)和测试数据(Testing Data),模型需要在训练数据上选择与训练,而测试数据对于模型是不可见的,对于一个欠拟合的模型,在训练数据上表现就会很差,这个很容易鉴别,那怎么知道模型是否过拟合呢?采用的做法是在训练数据中抽出一部分样本,构成一个验证数据(Validation Data),假设验证数据的分布和训练数据测试数据相似,可以通过验证数据上的表现来判定模型是否过拟合。

书中图2.9的横坐标称为模型复杂度,纵坐标称为误差值,下方曲线表示训练数据上的误差,而上方曲线表示验证数据上的误差。可以清楚的观察到,当模型复杂度增加时,训练数据上的误差逐渐减少,因为复杂的模型更容易拟合数据,然而,验证数据上的误差先降后升,这是因为模型从欠拟合逐渐过渡到到过拟合阶段。验证数据的作用就是帮助选择虚线处的模型,它可以更好地拟合数据本身,从而期望达到更好的泛化效果——算法对新鲜样本(测试数据)有更好的适应能力。

通过代码和一组数据来实际看看图2.8和图2.9的效果。借用《Pattern Recognition and Machine Learning》1.1 Example: Polynomial Curve Fitting的例子,在y=2*Pi*x函数加上随机噪声y就构造一组数据,再从中等间隔选取10个样本作为回归算法的输入变量。可以看出,随着多项式次数不断增加,回归曲线跟样本点的距离越来越近,最终可以精确穿过所有样本点,这时在样本点处计算损失函数值就会非常小。但是随着多项式次数增加,回归曲线也越来越曲折,回归曲线与函数曲线差别也越来越大,因此样本点以外其他的数据点计算损失值,就会非常大。

0501-多项式回归.png

再来体验一下模型复杂度与损失函数的关系。下图横坐标为回归函数系数的个数(代表了模型的复杂度),纵坐标是损失函数值。可以看出当系数增加到一定程度之后,随着模型变得越来越复杂,训练误差不断减小,但在测试数据上的损失值大幅波动,模型行为非常难以预测。

代码见附件。

0502-过拟合.png

第四章将介绍增强模型泛化能力来防止过拟合的一些方法,控制模型复杂度,可以缓解过拟合,学习到隐藏在数据背后的规律。

写在最后

到今天终于把第二章啃完了。整体感觉跟传统机器学习书中讲的理论相差不多。不过毕竟这是一本面向实战的书,几个关键问题虽然都点到了,但对于像我这样的近乎0基础的小白来说,完全理解是比较困难的,需要借鉴其他资源。而且我发现用代码可以帮助我理解概念。

在学习这一章的过程中,我也产生了一些怀疑。比如机器学习过拟合的原因是参数过多,可最近听了智源一个讲座说,深度学习的一个现象是参数比数据特征多得多,为什么不会过拟合?目前理论上还没有很好的解释。那么深度学习跟传统机器学习是否有本质上的不同?他们的边界、各自的擅长是什么?希望在后续章节的学习当中我能够理解这些问题。

参考书:Bishop M. Pattern Recognition and Machine Learning. Springer, 2006

转自文章链接:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=95289

感谢作者的努力与分享,侵权立删!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值