博雯 发自 凹非寺
量子位 报道 | 公众号 QbitAI

机器学习日常:不是在建模,就是在建模的路上。

而在建模过程中,又能听到炼丹爱好者时而念念有词“怎么又过拟合了?”,时而自我安慰“找到偏差和方差的平衡点是成功的诀窍”。

所以为了能让非专业者也能愉快地玩(zhuang)耍(bi),今天就来科普一下机器学习的几个常见概念。

泛化

如何判别一个每天都刷题的高中班级的成绩怎么样呢?

拉去考一场。

那怎么判断一个机器学习领域的新算法到底棒不棒呢?

去新数据里溜一圈。

这种对于训练集以外的数据也能进行良好的判别,或得到合适输出的能力,就称为机器学习模型的泛化(generalization)能力。

并且,说一个模型泛化能力弱,那也是有很多种弱法的。

过拟合与欠拟合

有些模型,直接死在提取数据特征这一步。

训练集上就没有完全拟合数据,实际样本中的表现同样误差很大。

类似一个高中生每天都拿着五三刷,但是始终找不到做题规律,模拟题做得拉跨,考试就更不用说。

这种在训练集和测试集(实际样本)中都表现不好的情况,就叫做欠拟合(Underfitting)。

这通常是因为模型复杂度低引起的(就是菜得很实在)。

而有些模型在训练时表现良好:

但一到实战就扑街。

这种在训练集上表现良好,但在测试集上表现很差的情况,就叫做过拟合(Overfitting)。

训练集质量不高就可能导致过拟合,比如样本不足,或者训练数据中的噪声(干扰数据)过多。

也有可能因为模型复杂度高于实际问题,只是死记硬背下了训练数据的信息,但完全无法推广到没见过的新数据上。

不管菜到底有几种方式,对于一个机器模型来说,总归是在实际应用里表现不好,发生了泛化误差(Generalization Error)。

而这种误差,可以再次细化为两个方面:

误差(Error) = 偏差(Bias) + 方差(Variance)

偏差与方差

在机器学习领域,偏差(bias)是指模型的预测值相对于真实结果的偏离程度

其中f(x)为预测函数,y为样本数据真实值

而方差(variance)与真实值没有关系,只描述通过模型得到的预测值之间的分布情况

对于一个模型来说,偏差反映模型本身的精确度,而方差则衡量模型的稳定性。

如果模型过于简单且参数很少,那么它可能具有高偏差和低方差的特征,也就会造成欠拟合。

而如果模型复杂而具有大量参数,那么它将具有高方差和低偏差的特征,造成过拟合。

看上去,一个好的机器模型就是要同时追求更低的偏差和方差。

但在实际应用中,偏差和方差往往不可兼得。

偏差与方差的权衡

先来看这两个模型:

右边的模型明显比左边要复杂很多,也因此它的偏差更低,方差更高,与左边的模型相反。

这种偏差与方差之间的冲突就是偏差-方差窘境(Bias- Variance dilemma):

在改进算法时,要减少偏差就会增大方差,反之亦然。

因此,我们需要找到一个合适的平衡点,既不会因为高偏差而造成欠拟合,也不会因为高方差而造成过拟合。

这种偏差与方差之间的权衡(bias and variance trade-off),实际上也就是模型复杂度的权衡。

为什么要提出这些概念?

简单来说,为了让计算机也学会人类的概括能力。

比如,如果我们要通过某地房屋面积与房价之间的关系,进而帮助房屋售卖者选取更合适的售价,那么下面哪个函数最好呢?

红色为事先给定的样本数据

第一个明显欠拟合。都没有从给定的数据中找到一般规律,更不用说让函数去预测新房价面积可能对应的售价了。

第三个就是过拟合,函数参数过多,想要抓住所变化,反而导致模型的通用性下降,预测效果大打折扣。

而第二个函数基本拟合了样本数据,形成了一般规律,也保证了对新数据的预测能力。

能从海量数据中找到一般规律,这就是一个模型的泛化能力。

模型的泛化能力越高,通用性也就越强,这样能完成的任务范围也就越广。

但就算是ANN(人工神经网络)这样优秀的机器学习模型,目前也还是受限于偏差与方差的权衡。

算法工程师们提出了各种方法,如正则化(Regularization)、套袋法(Bagging)、贝叶斯法(Bayesian),使模型能够更好地概括旧数据,预测新数据。

并期望着最终能构建一个机器学习模型,使其能力无限逼近目前最强的通用模型——人类大脑。

参考链接:
[1]https://towardsdatascience.com/the-relationship-between-bias-variance-overfitting-generalisation-in-machine-learning-models-fb78614a3f1e

这些概念都不懂,别说你会机器学习相关推荐

  1. 理解五个基本概念,让你更像机器学习专家

    理解五个基本概念,让你更像机器学习专家 https://www.jianshu.com/p/ca37ea88a757 摘要: 这篇文章主要讲述了机器学习的相关内容,阐述了机器学习的主要意义和形成过程. ...

  2. SAP License:老板都不懂ERP,怎么会用得好ERP呢?

    老板困惑了,很多人都说ERP很有价值,我们公司用了10多年的ERP,怎么就没有感觉到它很有用? 最近走访了很多的中小企业,很多的都已经有用了ERP管理系统,但是发现一个问题,很多的老板都自己都不用系统 ...

  3. 马斯克都不懂的 GraphQL,API 网关又能对其如何理解?

    作者,罗泽轩 上个月马斯克评论 Twitter App 滥用 RPC 后,与一些 Twitter 的技术主管发生了矛盾 -- 直言马斯克不懂技术.那这个马斯克都不懂的 GraphQL 到底是什么? 什 ...

  4. 据说80%的人都不懂,你会控制你的债务吗?

    我们每个人都会有债务,大一点不就是房贷,车贷,或者消费贷款.小一点的比如花呗,信用卡啥的.其实理财的修炼之道里面,不光是要学会赚钱,还要会合理的控制你的债务,债务也是非常重要的一环.开源节流,这个节流 ...

  5. access 战地1不加入ea_炒牛肉时,想要牛肉嫩滑又不老,只需加入1样东西,很多人都不懂...

    炒牛肉时,想要牛肉嫩滑又不老,只需加入1样东西,很多人都不懂 冬季滋补怎么能少得了牛肉,牛肉中含有非常丰富的营养成分,其中蛋白质的含量尤为丰富还有大量的氨基酸,能够提高身体的抗病能力,特别适合手术后或 ...

  6. 这几道 Redis 面试题都不懂,怎么拿 Offer?

    转载自  这几道 Redis 面试题都不懂,怎么拿 Offer? 缓存雪崩 缓存穿透 缓存与数据库双写一致 最后 随着系统访问量的提高,复杂度的提升,响应性能成为一个重点的关注点.而缓存的使用成为一个 ...

  7. 闪灯什么意思_开夜车被对方闪了一下是什么意思?老司机:灯语都不懂,晚上别开车...

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注. 注:本文转载自网络,不代表 ...

  8. 一个啥都不懂但还不知天高地厚的我

    大名:鲁佳昕 小名:鲁宝宝(更喜欢人叫我这个) 我嘞,一个大大咧咧,毛毛躁躁的女孩子,应该说是女汉子的吧.我活波开朗,但总是活泼过头,我很想做一个有香气的女子,可奈何就是淑女不起来,所以就放弃了.虽然 ...

  9. 好想学python怎么猜人_好想学英语哦,可是我连那些根本的都不懂.怎么办

    题目: 好想学英语哦,可是我连那些根本的都不懂.怎么办 解答: 很简单.我们学语文的老b师教我们古文时说这就是半门外语,也就是说,学习外语词汇很重要,下面,我给你具体讲讲我.的一些心得.1:在网络上, ...

最新文章

  1. MVC Razor模板引擎
  2. 2020人工神经网络第一次作业-参考答案第八部分
  3. 低功耗蓝牙BLE对应Gatt的UUID
  4. html5--3.2 input元素(1)
  5. (二叉树DFS)天平UVa 839
  6. 八、spring生命周期之BeanPostProcessor
  7. poj 2392 Space Elevator 二进制拆包多重背包
  8. RJ45口线序的理解
  9. 基于java企业人事管理系统mysql
  10. 计算机磁盘修复工具,chkdsk磁盘修复工具
  11. 同比日期的获取(公历与农历)
  12. 如何卸载重装Adobe Acrobat
  13. 特征缩放feature scaling(吴恩达版详解)
  14. 个子矮s弯如何看点打方向图解_s弯如何看点打方向盘
  15. 国科大学习资料--模式识别与机器学习(黄庆明)--第二次作业答案
  16. 监控视频压缩2—Block-Composed Background Reference for High Efficiency Video Coding
  17. 打工人,打工魂,打工都是人上人!愿你悄悄打工,然后惊艳所有人!
  18. 游图邦YOTUBANG的格局与文化
  19. 大阪第47天——老徐也出字体了
  20. SylixOS中的动态内存分配【14】--- cache API中的非缓存内存分配接口实现原理

热门文章

  1. AngularJS与Django-模板标签冲突
  2. 列出本地git仓库中的文件?
  3. 使Git与代理服务器一起使用-因“请求超时”而失败
  4. 谷歌希望通过 Adiantum 为更多人提供加密功能
  5. 使sqoop能够启用压缩的一些配置
  6. Android使用XUtils框架上传照片(一张或多张)和文本,server接收照片和文字(无乱码)...
  7. MyBatis -- Spring -- SqlSessionFactoryBean
  8. vue.js快速入门
  9. atitit. 浏览器插件 控件 applet 的部署,签名总结 浏览器 插件 控件 的签名安全机制o9o...
  10. Tair的桶分布策略介绍及新的机器级位置安全优先策略实现