4 机器学习之归纳偏好

news2024/10/12 13:53:47

通过学习得到的模型对应了假设空间中的一个假设。于是,图1.2的西瓜版本空间给我们带来一个麻烦:现在有三个与训练集一致的假设,但与它们对应的模型在面临新样本的时候,却会产生不同的输出。例如,对(色泽=青绿;根蒂=蜷缩;敲声=沉闷)这个新收来的瓜,如果我们采用的是“好瓜。​(色泽=)∧(根蒂=蜷缩)∧(敲声=)​”​,那么将会把新瓜判断为好瓜,而如果采用了另外两个假设,则判断的结果将不是好瓜。那么,应该采用哪一个模型(或假设)呢?

尽可能特殊即“适用情形尽可能少”​;尽可能一般即“适用情形尽可能多”​。

对“根蒂”还是对“敲声”更重视,看起来和属性选择,亦称“特征选择”(featureselection)有关,但需注意的是,机器学习中的特征选择仍是基于对训练样本的分析进行的,而在此处我们并非基于特征选择做出对“根蒂”的重视;这里对“根蒂”的信赖可视为基于某种领域知识而产生的归纳偏好。关于特征选择方面的内容参见(第11章 特征选择与稀疏学习)​。

若仅有表1.1中的训练样本,则无法断定上述三个假设中哪一个“更好”​。然而,对于一个具体的学习算法而言,它必须要产生一个模型。这时,学习算法本身的“偏好”就会起到关键的作用。例如,若我们的算法喜欢“尽可能特殊”的模型,则它会 选择“好瓜。​(色泽=)∧(根蒂=蜷缩)∧(敲声=浊响)​”​;但若我们的算法喜欢“尽可能一般”的模型,并且由于某种原因它更“相信”根蒂,则它会选择“好瓜。​(色泽=)∧(根蒂=蜷缩)∧(敲声=*)​”​。机器学习算法在学习过程中对某种类型假设的偏好,称为“归纳偏好”(inductivebias),或简称为“偏好”​。

任何一个有效的机器学习算法必有其归纳偏好,否则它将被假设空间中看似在训练集上“等效”的假设所迷惑,而无法产生确定的学习结果。可以想象,如果没有偏好,我们的西瓜学习算法产生的模型每次在进行预测时随机抽选训练集上的等效假设,那么对这个新瓜“​(色泽=青绿;根蒂=蜷缩;敲声=沉闷)​”​,学得模型时而告诉我们它是好的、时而告诉我们它是不好的,这样的学习结果显然没有意义。

归纳偏好的作用在图1.3这个回归学习图示中可能更直观。这里的每个训练样本是图中的一个点(x,y),要学得一个与训练集一致的模型,相当于找到一条穿过所有训练样本点的曲线。显然,对有限个样本点组成的训练集,存在着很多条曲线与其一致。我们的学习算法必须有某种偏好,才能产出它认为“正确”的模型。例如,若认为相似的样本应有相似的输出(例如,在各种属性上都很相像的西瓜,成熟程度应该比较接近)​,则对应的学习算法可能偏好图1.3中比较“平滑”的曲线A而不是比较“崎岖”的曲线B。

图1.3 存在多条曲线与有限样本训练集一致
在这里插入图片描述

归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或“价值观”​。那么,有没有一般性的原则来引导算法确立“正确的”偏好呢?​“奥卡姆剃刀”(Occam’s razor)是一种常用的、自然科学研究中最基本的原则,即“若有多个假设与观察一致,则选最简单的那个”​。如果采用这个原则,并且假设我们认为“更平滑”意味着“更简单”​(例如曲线A更易于描述,其方程式是y=-x2+6x+1,而曲线B则要复杂得多)​,则在图1.3中我们会自然地偏好“平滑”的曲线A。

然而,奥卡姆剃刀并非唯一可行的原则。退一步说,即便假定我们是奥卡姆剃刀的铁杆拥趸,也需注意到,奥卡姆剃刀本身存在不同的诠释,使用奥卡姆剃刀原则并不平凡。例如对我们已经很熟悉的西瓜问题来说,​“假设1:好瓜。​(色泽=)∧(根蒂=蜷缩)∧(敲声=浊响)​”和假设2:​“好瓜。​(色泽=)∧(根蒂=蜷缩)∧(敲声=*)​”这两个假设,哪一个更“简单”呢?这个问题并不简单,需借助其他机制才能解决。

事实上,归纳偏好对应了学习算法本身所做出的关于“什么样的模型更好”的假设。在具体的现实问题中,这个假设是否成立,即算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能。

让我们再回头看看图1.3.假设学习算法a基于某种归纳偏好产生了对应于曲线A的模型,学习算法b基于另一种归纳偏好产生了对应于曲线B的模型。基于前面讨论的平滑曲线的某种“描述简单性”​,我们满怀信心地期待算法a比b更好。确实,图1.4(a)显示出,与B相比,A与训练集外的样本更一致;换言之,A的泛化能力比B强。

但是,且慢!虽然我们希望并相信a比b更好,但会不会出现图1.4(b)的情况:与A相比,B与训练集外的样本更一致?
图1.4 没有免费的午餐(黑点:训练样本;白点:测试样本)
在这里插入图片描述
这里只用到一些非常基础的数学知识,只准备读第1章且有“数学恐惧”的读者可以跳过这个部分而不会影响理解,只需相信,上面这个看起来“匪夷所思”的结论确实是成立的。

很遗憾,这种情况完全可能出现。换言之,对于一个学习算法a,若它在某些问题上比学习算法b好,则必然存在另一些问题,在那里b比a好。有趣的是,这个结论对任何算法均成立,哪怕是把本书后面将要介绍的一些聪明算法作为a而将“随机胡猜”这样的笨拙算法作为b。惊讶吗?让我们看看下面这个简短的讨论:

为简单起见,假设样本空间和假设空间都是离散的。令P(h|X,a)代表算法a基于训练数据X产生假设h的概率,再令f代表我们希望学习的真实目标函数。a的“训练集外误差”​,即a在训练集之外的所有样本上的误差为
在这里插入图片描述

其中Ⅱ(·)是指示函数,若·为真则取值1,否则取值0。

若f均匀分布,则有一半的f对x的预测与h(x)不一致。

考虑二分类问题,且真实目标函数可以是任何函数↦{0,1},函数空间为{0,1}||。对所有可能的f按均匀分布对误差求和,有

在这里插入图片描述

在这里插入图片描述

式(1.2)显示出,总误差竟然与学习算法无关!对于任意两个学习算法a和b,
们都有
在这里插入图片描述

严格的NFL定理证明比这里的简化论述繁难得多

也就是说,无论学习算法a多聪明、学习算法b多笨拙,它们的期望性能竟然相同!这就是“没有免费的午餐”定理(No Free Lunch Theorem,简称NFL定理)​[Wolpert,1996;Wolpert and Macready,1995].

这下子,读者对机器学习的热情可能被一盆冷水浇透了:既然所有学习算法的期望性能都跟随机胡猜差不多,那还有什么好学的?

我们需注意到,NFL定理有一个重要前提:所有“问题”出现的机会相同、或所有问题同等重要。但实际情形并不是这样。很多时候,我们只关注自己正在试图解决的问题(例如某个具体应用任务)​,希望为它找到一个解决方案,至于这个解决方案在别的问题、甚至在相似的问题上是否为好方案,我们并不关心。例如,为了快速从A地到达B地,如果我们正在考虑的A地是南京鼓楼、B地是南京新街口,那么“骑自行车”是很好的解决方案;这个方案对A地是南京鼓楼、B地是北京新街口的情形显然很糟糕,但我们对此并不关心。

事实上,上面NFL定理的简短论述过程中假设了的均匀分布,而实际情形并非如此。例如,回到我们熟悉的西瓜问题,考虑{假设1:好瓜。​(色泽=)∧(根蒂=蜷缩)∧(敲声=浊响)}和{假设2:好瓜。​(色泽=)∧(根蒂=硬挺)∧(敲声=清脆)}。从NFL定理可知,这两个假设同样好。我们立即会想到符合条件的例子,对好瓜(色泽=青绿;根蒂=蜷缩;敲声=浊响)是假设1更好,而对好瓜(色泽=乌黑;根蒂=硬挺;敲声=清脆)则是假设2更好。看上去的确是这样。然而需注意到,​“​(根蒂=蜷缩;敲声=浊响)​”的好瓜很常见,而“​(根蒂=硬挺;敲声=清脆)​”的好瓜罕见,甚至不存在。

所以,NFL定理最重要的寓意,是让我们清楚地认识到,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有学习算法都一样好。要谈论算法的相对优劣,必须要针对具体的学习问题;在某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意,学习算法自身的归纳偏好与问题是否相配,往往会起到决定性的作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2208059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java算法oj(3)栈和队列

目录 1.前言 2.正文 2.1基础操作 2.2用栈实现队列 2.2.1题目 2.2.2示例 2.2.3代码 2.3用队列实现栈 2.3.1题目 2.3.2示例 2.3.3代码 2.4最小栈 2.4.1题目 2.4.2示例 2.4.3代码 3.小结 1.前言 哈喽大家好吖,今天来分享几道栈与队列的算法题&#…

三、AOP

文章目录 1. AOP(概念)2. AOP(底层原理)2.1 AOP 底层使用动态代理2.2 AOP(JDK动态代理) 3. AOP(术语)3.1 连接点3.2 切入点3.3 通知(增强)3.4 切面 4. AOP操作…

数据丢失不再怕!四款数磁盘数据恢复据恢复工具实测心得

在办公室行政的工作中,数据恢复工具是我们不可或缺的帮手。无论是不小心删除了重要文件,还是硬盘突然罢工,这些工具总能在关键时刻帮我们力挽狂澜。今天,我就来分享一下我使用福昕数据恢复、转转大师数据恢复、超级兔子数据恢复和…

MySQL 【数字】函数大全(二)

MODPIPOWPOWERRANDROUNDSIGNSQRTTRUNCATE 1、MOD MOD(number1, number2) :返回一个数字除以另一个数字的余数。 语法: 1、MOD(number1, number2) 2、number1 MOD number2 3、number1 % number2 number1:被除数。 number2:除数。…

Qt学习系列之设计模式的小记录

Qt学习系列之设计模式的小记录 前言Qt中的设计模式使用情况数据模型视图组建代理 小tips虚函数:基类的不同具体使用界面设计后台显示 报错解决 总结 前言 在软件设计师中的设计模式有提到设计模式有三种类型: 创建型:工厂方法模式、抽象工厂…

上海AI实验室CVT-Occ时间融合利用视差搜索刷新occ3DWaymo SOTA

上海AI实验室提出CVT-Occ:通过时间融合利用视差搜索刷新occ3D-Waymo SOTA Abstract 基于视觉的3D占据预测由于单目视觉在深度估计上的固有局限性而面临显著挑战。本文介绍了CVT-Occ,一种新颖的方法,通过时间上的体素几何对应进行时间融合&a…

华为OD机试 - 最快到达医院的方法(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

欧洲气象局开源数据如何通过大模型预测未来天气

气象预测依赖于全球各地的观测数据、复杂的数学模型和高性能计算资源。欧洲气象局(ECMWF,European Centre for Medium-Range Weather Forecasts)作为世界领先的气象预报机构,不仅提供精确的天气预报服务,还向公众和科研…

获取鸿蒙设备Udid遇到的问题

参考官方文档:注册调试设备-调试应用(HarmonyOS)-AppGallery Connect帮助中心 - 华为HarmonyOS开发者 (huawei.com) 坑一:The sdk hdc.exe version is too low, please upgrade to the latest version. 升级dev工具和sdk配置为api…

google域名邮箱:如何创建并管理邮箱账户?

google域名邮箱设置教程?如何开通Google域名邮箱? Google域名邮箱提供了一个专业且功能强大的平台,允许用户使用自定义域名创建和管理邮箱账户。烽火将详细介绍如何创建并管理Google域名邮箱账户,帮助您充分利用这一强大的工具。…

Java Mail腾讯企业邮箱或其他邮箱发送邮件失败bug记录

问题出现情况 邮件发送时debug用F8逐步运行可以成功发送邮件,但是用F9或者直接运行程序却发送失败未开启mail的debug模式的报错日志是下面这个:org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is java…

基于RPA+AI的网页自动填写机器人 | OPENAIGC开发者大赛高校组优秀作品

在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者,希望能带给…

TXS0104 LSF0102 原理理解

具体参数请查看数据手册,在此不必赘述了。TXS0104 数据手册 现主要对TXS0104 结构原理进行解析: 电平转换电路结构可参考如下电路: 对于gate bias 部分电路具体细节有兴趣的可以了解下。 对于LSF0102 系列的电平转换芯片 LSF0102 数据手…

【人工智能学习之PaddleOCR训练教程】

具体的训练教程: 准备数据集 OCR数据集 (以下文字转载官方文档ocr_datasets) 1. 文本检测 1.1 PaddleOCR 文字检测数据格式1.2 公开数据集 1.2.1 ICDAR 2015 2. 文本识别 2.1 PaddleOCR 文字识别数据格式2.2 公开数据集 2.1 ICDAR 2015 …

使用Spring Security实现用户-角色-资源的权限控制

文章目录 一、基于角色的请求控制二、加载用户角色信息三、角色与资源的关联四、测试角色权限控制1. 未登录用户访问受保护资源2. 登录用户访问受保护资源3. 角色不足的用户访问受保护资源(把前面改成.roles("USER")) 五、自定义异常处理1. 自…

CANoe的数据回放功能

文章目录 CANoe简介1.Offline回放功能2.Replay Block回放模块3.两者的异同 CANoe简介 CANoe(CAN open environment): 用于汽车ECU网络仿真、数据分析、测试和诊断,还可以进行数据回放、程序刷写等。具有实时报文跟踪、数据解析及…

Android开发启动页跳过倒计时效果

Android开发启动页跳过倒计时效果 app启动页都会放些广告图,然后倒计时跳过。 一、思路: 不是很难,就用用个倒计时控制mHandler.sendEmptyMessageDelayed(WHAT_COUNT_DOWN, 100); 二、效果图: 三、关键代码: publ…

消息队列面试题——第二篇

1. rocketmq、rabbitmq、kafka的区别 架构设计和消息模型 特性rocketmqrabbitmqkafka消息模型基于主题和消费组,支持发布/订阅和点对点两种模型基于队列模型,支持发布/订阅和点对点两种模型基于分区的主题模型,主要用于日志流式处理和高吞吐…

基于SSM创城志愿者管理系统JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档(1万字以上)开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统:Window操作系统 2、开发工具:IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

RNN心脏病预测

本文为为🔗365天深度学习训练营内部文章 原作者:K同学啊 一 前期准备 1.数据导入 import pandas as pd from keras.optimizers import Adam from matplotlib import pyplot as plt from sklearn.model_selection import train_test_split from sklearn.p…