转载:机器学习模型设计准则:“无免费午餐”定理和“奥卡姆剃刀”原则

好好看看,你会有观念上的收获的(*^▽^*)

上学时你一定过学习新知识的经历:首先要结合老师的讲解进行消化理解,接着要做些练习题找到问题并加强巩固,最后通过考试来检验学习的最终效果。机器学习需要根据问题特点和已有数据确定具有最强解释性或预测力的模型,其过程也可以划分为类似于“学习 - 练习 - 考试”这样的三个阶段,每个阶段的目标和使用的资源可以归纳如下:

  • 模型拟合(model fitting):利用训练数据集(training set)对模型的普通参数进行拟合;
  • 模型选择(model selection):利用验证数据集(validation set)对模型的超参数进行调整,筛选出性能最好的模型;
  • 模型评价(model assessment):利用测试数据集(test set)来估计筛选出的模型在未知数据上的真实性能。

接下来的文章将分别围绕模型处理这三个阶段展开论述,首先将从模型拟合开始。

虽然模型拟合的任务是计算未知的参数,但它还要解决一个更重要的问题,就是在拟合参数前确定模型的形式,或者说到底要拟合哪些参数。模型拟合本身只是简单的数学问题,交给计算机就可以万事大吉,可模型设计却颇有门道,涉及到更多的思考:一方面,模型的合理性很大程度上取决于待解决问题本身的特征;另一方面,模型的复杂度也要和问题的复杂度相匹配。在机器学习中,对这两个基本准则的理解催生了两个基本的规律,分别是无免费午餐定理和奥卡姆剃刀原则。

“天下没有免费的午餐”是人尽皆知的俗语,这朴素的道理在机器学习中同样适用。通俗地说,无免费午餐(No Free Lunch, NFL)定理证明了任何模型在所有问题上的性能都是相同的,其总误差和模型本身是没有关系的。

这样的结论好像有些反直觉:既然大家谁都不比谁好,那关于机器学习算法和模型不计其数的研究又有什么意义呢?其实这种想法误解了 NFL 定理的一个核心前提,也就是每种问题出现的概率是均等的,每个模型用于解决所有问题时,其平均意义上的性能是一样的。

所有模型在等概率出现的问题上都有同样的性能,这件事可以从两个角度来理解:一是从模型的角度来看,如果单独拿出一个特定的模型来观察的话,这个模型必然会在解决某些问题时误差较小,而在解决另一些问题时误差较大;二是从问题的角度来看,如果单独拿出一个特定的问题来观察的话,必然有某些模型在解决这些问题时具有较高的精度,而另一些模型的精度就没那么理想了。

如果把不同模型看成一个班级里的不同学生,不同问题看成考试时的不同科目,NFL 定理说的就是在这个班里,所有学生期末考试的总成绩都是一样的,既然总成绩一样,每一科的平均分自然也是一样的。这一方面说明了每个学生都有偏科,数学好的语文差,语文好的数学差,如果数学语文都好,那么英语肯定更差;另一方面也说明了每个科目的试题都有明显的区分度,数学有高分也有低分,语文有高分也有低分,不会出现哪一科上大家都是 90 分或者大家都是 30 分的情形。

NFL 定理最重要的指导意义在于先验知识的使用,也就是具体问题具体分析。机器学习的目标不是放之四海而皆准的通用模型,而是关于特定问题有针对性的解决方案。因此在模型的学习过程中,一定要关注问题本身的特点,也就是关于问题的先验知识。这就像学习数学有学习数学的方法,这套方法用来学习语文未必会有良好的效果,但它只要能够解决数学的问题就已经很有价值了。脱离问题的实际情况谈论模型优劣是没有意义的,只有让模型的特点和问题的特征相匹配,模型才能发挥最大的作用。

相比于 1995 年提出的 NFL 定理,奥卡姆剃刀可谓历史悠久,它诞生于公元 14 世纪圣方济各会修士奥卡姆的威廉笔下。在机器学习的场景下,奥卡姆剃刀(Occam's Razor)可以理解为如果有多种模型都能够同等程度地符合同一个问题的观测结果,那就应该选择其中使用假设最少的,也就是最简单的模型。尽管越复杂的模型通常能得到越精确的结果,但是在结果大致相同的情况下,模型就越简单越好。

奥卡姆剃刀是人类思维的一种直观的体现,你我在不经意间都会用到它:当看到 1,2,4,8 这几个数时,对下一个出现的数字,你的第一反应一定是 16,因为这一系列数字里蕴含的最简单的规律是等比数列关系,而不是什么包含十几二十个参数的高阶多项式,这个复杂的结果直接被头脑中的那把剃刀无意识地砍掉了。

在科学方法中,奥卡姆剃刀对简单性的偏好并非逻辑上不可辩驳的金科玉律,它更多的是基于可证伪性的标准。一个问题存在多个可接受的模型,其中的每一个都可以演化出无数个更为复杂的变体,其原因在于可以把任何解释中的错误归结于某种特例的出现,将这个特例纳入模型就可以避免原来错误的发生。更多特例的引入无疑会降低模型的通用性和可解释性,把薄薄的教材变成厚重的词典,这就是奥卡姆剃刀偏爱简单模型的原因。

本质上说,奥卡姆剃刀的关注点是模型复杂度。机器学习学到的模型应该能够识别出数据背后的模式,也就是数据特征和数据类别之间的关系。当模型本身过于复杂时,特征和类别之间的关系中所有的细枝末节都被捕捉,主要的趋势反而在乱花渐欲迷人眼中没有得到应有的重视,这就会导致过拟合(overfitting)的发生。反过来,如果模型过于简单,它不仅没有能力捕捉细微的相关性,甚至连主要趋势本身都没办法抓住,这样的现象就是欠拟合(underfitting)。

过拟合也好,欠拟合也罢,都是想避免却又无法避免的问题。在来自真实世界的数据中,特征与类别之间鲜有丁是丁卯是卯的明确关系,存在的只是在诸多特征织成的罗网背后若即若离、若隐若现的相关性。用较为简单的模型来模拟复杂的数据生成机制,欠拟合的发生其实是不可避免的。可欠拟合本身还不是更糟糕的,更糟糕的是模型虽然没有找到真正的相关性,却自己脑补出一组关系,并把自己的错误的想象当做真实情况加以推广和应用,得到和事实大相径庭的结果——其实就是过拟合。

模型复杂度与拟合精度之间的关系可以这么来理解:过于简单的模型就像给三五百人一起上大课,不管听课的学生水平如何参差不齐,上课的内容都固定不变,或者变化很小。这种教学的效果一定不好:水平高的学生不用听也会,水平差的学生听了也不会,就像欠拟合的模型在训练集上都没有良好的表现,更遑论泛化性能了。

相比之下,过于复杂的模型则是一对一的闭门辅导,针对每个学生不同的问题做出不同的解答,数学不好的补数学,语文不好的补语文。这样因材施教的教学效果固然优良,却因为它的针对性而没法推广,就像过拟合的模型能够在训练集上表现优异,却因为针对性过强,同样不具备良好的泛化性能。

模型的复杂度也可以从误差组成的角度一窥端倪。在“人工智能基础课”的第一季中曾介绍过,模型的误差包括三个部分:偏差(bias),方差(variance)和噪声(noise)。

三者中的噪声也叫作不可约误差(irreducible error),体现的是待学习问题本身的难度,并不能通过模型的训练加以改善。噪声来源于数据自身的不确定性,如果按照 $y = x + epsilon, epsilon ~ N(0, sigma)$ 生成数据,并对生成的数据进行线性拟合的话,高斯噪声的方差 $sigma ^ 2$ 就属于不可约误差。噪声的方差 $sigma ^ 2$ 越大,线性拟合的难度也就越高。

除了噪声之外,偏差和方差都与模型本身有关,两者对误差的影响可以用误差的偏差 - 方差分解(bias-variance decomposition)来表示。偏差的含义是模型预测值的期望和真实结果之间的区别,如果偏差为 0,模型给出的估计的就是无偏估计。但这个概念是统计意义上的概念,它并不意味着每个预测值都与真实值吻合。方差的含义则是模型预测值的方差,也就是预测值本身的波动程度,方差越小意味着模型越有效。抛开噪声不论,模型的误差就等于偏差的平方与方差之和。

偏差和方差之间的折中与模型自身的特性息息相关。偏差来源于模型中的错误假设,偏差过高就意味着模型所代表的特征和分类结果之间的关系是错误的,对应着欠拟合现象;方差则来源于模型对训练数据波动的过度敏感,方差过高意味着模型对数据中的随机噪声也进行了建模,将本不属于特征 - 分类关系中的随机特性也纳入到模型之中,对应着过拟合现象。

根据上面的理解,就不难得到结论:理想的模型应该是低偏差低方差的双低模型,就像一个神箭手每次都能将箭射进代表 10 环的红心之内;应该避免的模型则是高偏差高方差的双高模型,这样的箭手能射得箭靶上到处窟窿,却没有一个哪怕落在最外层的圆圈里。更加实际的情形是偏差和方差既不会同时较低,也不会同时较高,而是在跷跷板的两端此起彼伏,一个升高另一个就降低。

一般说来,模型的复杂度越低,其偏差也就越高;模型的复杂度越高,其方差也就越高。比较简单的模型像是个斜眼的箭手,射出的箭都在远离靶心的 7 环的某一点附近;比较复杂的模型则是个心理不稳定的箭手,本来是 9 环水平却一下射出 10 环一下射出 8 环。对模型复杂度的调整就是在偏差 - 方差的折中中找到最优解,使得两者之和所表示的总误差达到最小值。这样的模型既能提取出特征和分类结果之间的关系,又不至于放大噪声和干扰的影响。

今天我和你分享了在设计机器学习的模型时,需要考虑的一些共性问题,其要点如下:

  • 无免费午餐定理说明模型的选取要以问题的特点为根据;
  • 奥卡姆剃刀说明在性能相同的情况下,应该选取更加简单的模型;
  • 过于简单的模型会导致欠拟合,过于复杂的模型会导致过拟合;
  • 从误差分解的角度看,欠拟合模型的偏差较大,过拟合模型的方差较大。

机器学习模型设计准则:“无免费午餐”定理和“奥卡姆剃刀”原则相关推荐

  1. 机器学习学习记录2:归纳偏好(奥卡姆剃刀原则和NFL定理)

    定义 对于相同的训练样本,不同学习算法会产生不同的模型,决定其产生模型的,是学习算法本身的"偏好".此处,书中引入"归纳偏好"的概念: 机器学习算法在学习过程中 ...

  2. 极简主义的思想内核-奥卡姆剃刀原则

    在去年的跨年演讲里,罗胖曾讲过一个"奥卡姆剃刀"原则,当时只觉得新奇,倒没有去仔细研究,直到昨天在一篇文章里又看到这个名词,说的神乎其神,比如下面这段描述: "这把剃刀出 ...

  3. 机器学习强基计划0-4:通俗理解奥卡姆剃刀与没有免费午餐定理

    目录 0 写在前面 1 奥卡姆剃刀原则 2 天下没有免费的午餐 3 丑小鸭定理 0 写在前面 机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用."深"在详细推导算法模 ...

  4. 罗素的理发师和奥卡姆剃刀

    点击上方"数据与智能","星标或置顶公众号" 第一时间获取好内容 正文 科学界有两位"剃头师傅"声名远播: 一位是著名的罗素爵士虚构出来的理 ...

  5. 什么是,泛化能力,过拟合,欠拟合,不收敛,奥卡姆剃刀?

    我们在这里介绍几个机器学习中经常可以听到的几个名词,他们就是泛化能力,欠拟合,过拟合,不收敛和奥卡姆剃刀原则. 泛化能力(generalization ability)是指一个机器学习算法对于没有见过 ...

  6. 区块链的奥卡姆剃刀在哪里?(1)

    原创: BM BlockMania 根据奥卡姆剃刀原则,最好的解决方案应该是最简单的方案. 而对于区块链行业来说,原本就复杂的技术组合(混杂着密码学.分布式数据库.共识机制.图算法等或是在某个领域过于 ...

  7. 奥卡姆剃刀是什么?机器学习实践中那些学习模型或者那些评估指标践行了这一理论?

    奥卡姆剃刀是什么?机器学习实践中那些学习模型或者那些评估指标践行了这一理论? 奥卡姆剃刀:无无必要,勿增实体. 奥卡姆剃刀原理应用于模型选择时变为以下想法:在所有可能选择的模型中,能够很好地解释已知数 ...

  8. 墨菲定律、二八法则、马太效应、手表定理、“不值得”定律、彼得原理、零和游戏、华盛顿合作规律、酒与污水定律、水桶定律、蘑菇管理原理、钱的问题、奥卡姆剃刀等13条是左右人生的金科玉律。

    一.墨菲定律 1949年,一位名叫墨菲的空军上尉工程师,认为他的某位同事是个倒霉蛋,不经意间开了句玩笑:"如果一件事情有可能被弄糟,让他去做就一定会弄糟." 这句话迅速流传,并 ...

  9. 墨菲定律、二八法则、马太效应、手表定理、“不值得”定律、彼得原理、零和游戏、华盛顿合作规律、酒与污水定律、水桶定律、蘑菇管理原理、钱的问题、奥卡姆剃刀等13条是左右人生的金科玉律

    转载地址:http://blog.csdn.net/byxdaz/article/details/3981125 墨菲定律.二八法则.马太效应.手表定理."不值得"定律.彼得原理. ...

最新文章

  1. Linux下安装Weblogic10.3.6并创建简单集群测试
  2. Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
  3. linux图片添加滤镜,PhotoFlare开源图像和照片编辑器,附在Ubuntu 18.04下的安装方法...
  4. 前端学习(2926):vue改变样式2
  5. java中如何生成可执行的jar文件
  6. 算法:由0-5随机数设计0-8随机数
  7. Appium-关于appium的原生控件的 xpath 定位问题及常用方法
  8. 全Delphi代码实现安卓扫码程序
  9. c#使用webbrowser时,设定IE版本
  10. python小学生教程-python 小学生教程|怎么让一个小学生学会Python?
  11. 4.3.5 导频插入
  12. 跟我学折纸计算机教案,折纸活动教案
  13. 两人互殴打架派出所如何处理
  14. 微信图片去除马赛克_3个实用的图片去马赛克方法
  15. gif制作动图超简单,手把手教会用图片做gif动图
  16. 要重复多少次变成潜意识_一种行为,多次重复后就能进入人的潜意识
  17. Mybatis的代码
  18. 用C语言打印一个金字塔
  19. Java之HashTab基本用法
  20. Paddle Quantum 量桨入门手册

热门文章

  1. 关系型数据库和非关系型数据
  2. 大疆社招测开面经(一年经验,已通过)
  3. 【软件应用】word数学公式插件TeXsword安装
  4. what is denoise
  5. 飞机专家调查发现坐飞机 机首、机翼和机尾最安全
  6. 【TVM 巡礼】How to optimize cpu(x86) gemm串讲
  7. 项目启动失败解决方法
  8. [TravelNotes] WC 2017 THUWC 2017 游记
  9. 全新第 13 代英特尔酷睿处理器发布,多线程性能提升 41%
  10. 微信朋友圈得内容可以爬取吗?看完这篇你心里就有底了