「机器学习速成」过拟合的风险和泛化

https://www.toutiao.com/a6702764208561340942/

 

大家好,今天我们学习【机器学习速成】之过拟合的风险和泛化。

 

泛化是指模型很好地拟合以前未见过的新数据的能力。

我们之前曾提到过, 仅仅拟合训练数据并不足以进行机器学习。 对于机器学习,其实我们感兴趣的是泛化。 我们来深入探讨一下这个主题。

我们马上学三点

  1. 直观理解过拟合。
  2. 确定某个模型是否出色。
  3. 将数据集划分为训练集和测试集

「机器学习速成」过拟合的风险和泛化

机器学习

直观理解过拟合

「机器学习速成」过拟合的风险和泛化

数据集

现在我们有一个数据集, 左边是一些垃圾邮件样本, 右边是一些非垃圾邮件样本。 我可以尝试拟合一个线性模型, 对垃圾邮件样本和非垃圾邮件样本进行某种程度的区分。

「机器学习速成」过拟合的风险和泛化

欠拟合

但这里我要尝试拟合的任何一种线性模型 最终都会出点错, 可能会将这个或那个样本误分类, 放在线的错误一侧。

我可能会决定尝试一种更聪明的方法, 以针对训练数据获得完全准确的结果, 具体方法是绘制一条更为复杂的线, 可能是像这样的一条线。

「机器学习速成」过拟合的风险和泛化

过拟合

我要确保我的模型超级聪明, 可以实现百分之百的准确率。 现在,我的所有训练样本都已完全正确分类。

这时候会有什么问题呢? 问题就是:如果加入新的样本,会怎么样? 我最终可能会遇到一些新样本, 对于这些样本,模型无法很好地进行预测。

从某种意义上讲, 这个模型最初可能过拟合了训练数据, 而无法很好地对之前未出现的新数据进行分类。

「机器学习速成」过拟合的风险和泛化

模型复杂苏曲线

我们已经看到, 如果模型过于复杂, 那么过拟合真的会成为问题。 过拟合模型在训练过程中产生的损失很低, 但在新数据测试集方面的表现却非常糟糕。

最好的模型:泛化能力最好, 也就是对应测试数据集准确率最高的模型;

如何才能确保在实践中模型不会过拟合呢? 让我们回过头来, 从整体上看看在机器学习中, 我们究竟在尝试做些什么。

在非常抽象的层面上, 我们可以想象有某种隐藏的流程在为我们提供数据。

这个隐藏的流程可能就像这样: 生成垃圾电子邮件或非垃圾电子邮件, 然后人们会根据自己的看法标记这些邮件。

或者是这样的流程: 生成小狗照片, 然后人们将这些照片标记为可爱或不可爱。 这个流程可以是任何为我们提供数据的流程, 而一般情况下,我们无法了解这个流程的完整详情。

我们唯一会了解的, 就是我们从这个流程中采集的具体样本。 也就是具体的电子邮件或垃圾邮件, 或者具体的小狗照片。 我们将这些样本称为数据样本。

机器学习的目标是对从真实概率分布中 抽取的新数据做出良好预测。 遗憾的是,模型无法查看整体情况; 模型只能从训练数据集中取样。

现在,在理想情况下 我们希望能够对数据样本进行训练, 然后这个模型对从未见过的样本做出良好预测。

我们如何得知自己的模型是否出色?

我们如何才能相信模型能做到这一点呢? 我们可以追溯到远至14世纪的奥卡姆的威廉, 使用他提出的一些很好的概念, 他是史上第一位机器学习理论家, 提出了“奥卡姆剃刀”这一概念, 大意是说模型应尽可能简单

围绕这一概念诞生了 一个称为“泛化理论”的完整领域。 这是个非常吸引人的领域, 但本课程不会过多涉猎。

因为我们不需要运用理论, 实际上我们利用的是经验。

我们可以使用的经验策略是, 从该分布另外取样, 然后看看模型效果如何。 这种方式称为使用测试集方法。

我们从该分布抽取一批数据, 对这些数据进行训练, 这就是训练集。

我们再从该分布另外抽取一批数据, 用于测试模型称之为测试集, 一般来说, 在测试集上表现是否良好 是衡量能否在新数据上表现良好的有用指标, 前提是:如果测试集足够大; 如果我们不反复使用相同的测试集来作假。

如果预测效果好, 即预测测试集和预测训练集的效果一样好, 那么我们就可以满意地确定, 我们的模型可以很好地泛化到之前未出现的新数据。

机器学习细则

这里有些注意事项, 也就是机器学习的一些细则。

第一,我们要以独立且一致的方式从该分布抽取样本。 样本之间不会互相影响。 我们不以任何方式主动产生偏差。

第二,分布是平稳的,不会随时间发生变化。 即分布在数据集内不会发生变化。

第三,我们始终从同一个分布提取样本, 不会突然开始从其他分布提取样本。

以上是非常关键的假设, 我们在监督式机器学习中 所做的许多工作都是以这些假设为基础。

但是在实践中,我们有时会违反这些假设。 想象有一个选择要展示的广告的模型。 如果该模型在某种程度上 根据用户以前看过的广告选择广告, 则会违背独立同分布假设。

想象有一个包含一年零售信息的数据集。 用户的购买行为会出现节假日或季节性变化, 这会违反平稳性假设。

如果人们突然认为, 其他品种的小狗就像他们之前看到小狗一样可爱, 这时从相同分布抽取样本的行为就可能会改变。

因此,我们必须知道这些假设, 密切关注各项指标, 这样在违反了这些假设时就能立即知晓。

总结:

泛化是指模型很好地拟合以前未见过的新数据的能力。 新数据必须从用于创建该模型的同一分布中抽取。

如果某个模型尝试紧密拟合训练数据, 但却不能很好地泛化到新数据, 就会发生过拟合。

如果不符合监督式机器学习的关键假设, 那么我们将失去 对新数据进行预测这项能力的重要理论保证。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值