机器学习理论和定理

news2024/9/24 11:30:56

在机器学习中, 有一些非常有名的理论或定理, 对理解机器学习的内在特性非常有帮助. 

1. PAC学习理论

当使用机器学习方法来解决某个特定问题时, 通常靠经验或者多次试验来选择合适的模型、 训练样本数量以及学习算法收敛的速度等. 但是经验判断或多次试验往往成本比较高, 也不太可靠, 因此希望有一套理论能够分析问题难度、 计算模型能力, 为学习算法提供理论保证, 并指导机器学习模型和学习算法的设计. 这就是计算学习理论. 计算学习理论( Computational Learning Theory) 是机器学习的理论基础, 其中最基础的理论就是可能近似正确( Probably Approximately Correct, PAC) 学习理论.

机器学习中一个很关键的问题是期望错误和经验错误之间的差异, 称为泛化错误( Generalization Error).泛化错误可以衡量一个机器学习模型𝑓 是否可以很好地泛化到未知数据.

 

根据大数定律, 当训练集大小|𝒟|趋向于无穷大时, 泛化错误趋向于0, 即经验风险趋近于期望风险.

 

由于我们不知道真实的数据分布 𝑝(𝒙, 𝑦), 也不知道真实的目标函数 𝑔(𝒙),因此期望从有限的训练样本上学习到一个期望错误为0的函数𝑓(𝒙)是不切实际的. 因此, 需要降低对学习算法能力的期望, 只要求学习算法可以以一定的概率学习到一个近似正确的假设, 即PAC 学习( PAC Learning). 一个PAC 可学习( PAC-Learnable) 的算法是指该学习算法能够在多项式时间内从合理数量的训练数据中学习到一个近似正确的𝑓(𝒙).

PAC学习可以分为两部分:
(1) 近似正确( Approximately Correct): 一个假设𝑓 ∈ ℱ 是“近似正确”的, 是指其在泛化错误\mathcal{G}_{\mathcal{D}}小于一个界限\epsilon\epsilon一般为0到\frac{1}{2}之间的数,0 < \epsilon < \frac{1}{2}. 如果\mathcal{G}_{\mathcal{D}}比较大, 说明模型不能用来做正确的“预测”.
(2) 可能( Probably): 一个学习算法𝒜 有“可能”以1 − 𝛿 的概率学习到这
样一个“近似正确”的假设. 𝛿 一般为0到\frac{1}{2}之间的数,0 < \delta < \frac{1}{2}

PAC学习可以下面公式描述:

其中𝜖,𝛿是和样本数量𝑁以及假设空间ℱ相关的变量.如果固定𝜖,𝛿,可以反过来计算出需要的样本数量

其中|ℱ|为假设空间的大小. 从上面公式可以看出, 模型越复杂, 即假设空间ℱ 越大, 模型的泛化能力越差. 要达到相同的泛化能力, 越复杂的模型需要的样本数量越多. 为了提高模型的泛化能力, 通常需要正则化( Regularization) 来限制模型复杂度.
PAC学习理论也可以帮助分析一个机器学习方法在什么条件下可以学习到一个近似正确的分类器. 如果希望模型的假设空间越大,泛化错误越小, 其需要的样本数量越多

2. 没有免费午餐定理

没有免费午餐定理( No Free Lunch Theorem, NFL) 是由Wolpert和Macerday 在最优化理论中提出的. 没有免费午餐定理证明: 对于基于迭代的最优化算法, 不存在某种算法对所有问题( 有限的搜索空间内) 都有效. 如果一个算法对某些问题有效, 那么它一定在另外一些问题上比纯随机搜索算法更差. 也就是说, 不能脱离具体问题来谈论算法的优劣, 任何算法都有局限性. 必须要“具体问题具体分析”.
没有免费午餐定理对于机器学习算法也同样适用. 不存在一种机器学习算法适合于任何领域或任务. 如果有人宣称自己的模型在所有问题上都好于其他模型, 那么他肯定是在吹牛.

3. 奥卡姆剃刀原理

奥卡姆剃刀( Occam’s Razor) 原理是由14世纪逻辑学家William of Occam提出的一个解决问题的法则:“如无必要, 勿增实体”. 奥卡姆剃刀的思想和机器学习中的正则化思想十分类似: 简单的模型泛化能力更好. 如果有两个性能相近的模型, 我们应该选择更简单的模型. 因此, 在机器学习的学习准则上, 我们经常会引入参数正则化来限制模型能力, 避免过拟合.
奥卡姆剃刀的一种形式化是最小描述长度( Minimum Description Length,MDL) 原则, 即对一个数据集𝒟, 最好的模型𝑓 ∈ ℱ 会使得数据集的压缩效果最好, 即编码长度最小. 

最小描述长度也可以通过贝叶斯学习的观点来解释 [MacKay, 2003]. 模型𝑓 在数据集𝒟 上的对数后验概率为 

 

其中 −log 𝑝(𝑓) 和 − log 𝑝(𝒟|𝑓) 可以分别看作模型 𝑓 的编码长度和在该模型下数据集 𝒟 的编码长度.也就是说, 我们不但要使得模型 𝑓 可以编码数据集 𝒟, 也要使得模型𝑓 尽可能简单. 

4. 丑小鸭定理

丑小鸭定理( Ugly Duckling Theorem) 是1969年由渡边慧提出的[Watan abe, 1969]。“丑小鸭与白天鹅之间的区别和两只白天鹅之间的区别一样大”. 这个定理初看好像不符合常识, 但是仔细思考后是非常有道理的. 因为世界上不存在相似性的客观标准, 一切相似性的标准都是主观的. 如果从体型大小或外貌的角度来看, 丑小鸭和白天鹅的区别大于两只白天鹅的区别; 但是如果从基因的角度来看, 丑小鸭与它父母的差别要小于它父母和其他白天鹅之间的差别.

5. 归纳偏置

在机器学习中, 很多学习算法经常会对学习的问题做一些假设, 这些假设就称为归纳偏置( Inductive Bias) [Mitchell, 1997]. 比如在最近邻分类器中, 我们会假设在特征空间中, 一个小的局部区域中的大部分样本同属一类. 在朴素贝叶斯分类器中, 我们会假设每个特征的条件概率是互相独立的.归纳偏置在贝叶斯学习中也经常称为先验( Prior)

参考文献

神经网络与深度学习

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

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

相关文章

【MyBatis】如何使用“注解”来获取参数,以及其他方式?(底层原理解释)

目录 一、获取参数办法 1.1、多个参数时&#xff0c;直接传参&#xff0c;通过arg0...或param1...实现 1.2、通过传入map实现 1.3、实体化类对象传参 二、使用注解获取参数&#xff08;最实用&#xff01;建议经常使用&#xff09; 三、建议&#xff01;&#xff01;&…

算法设计与分析复习01:主方法求递归算法时间复杂度

算法设计与分析复习01&#xff1a;主方法求递归算法时间复杂度 文章目录算法设计与分析复习01&#xff1a;主方法求递归算法时间复杂度复习重点算法复杂度分析——主方法例题1&#xff1a;例题2&#xff1a;例题3&#xff1a;复习重点 算法复杂度分析——主方法 T(n)aT(nb)f(n)…

【Kotlin 协程】协程中的多路复用技术 ② ( select 函数原型 | SelectClauseN 事件 | 查看挂起函数是否支持 select )

文章目录一、select 函数原型二、Select clause 事件1、SelectClause0 事件代码示例2、SelectClause2 事件代码示例三、查看挂起函数是否支持 select一、select 函数原型 在上一篇博客 【Kotlin 协程】协程中的多路复用技术 ① ( 多路复用技术 | await 协程多路复用 | Channel …

Qt之线程运行指定函数(含源码+注释,优化速率)

一、线程示例图 下图包含三种不同方式启动线程的示例图和各自运行速率的对比&#xff1b;C线程的启动方式包括阻塞运行和异步运行&#xff0c;可以从C线程启动按钮看出两者区别&#xff0c;异步启动时按钮文本立即更新&#xff0c;当阻塞启动时按钮文本在线程运行完成后更新&a…

mybatis处理返回结果集

结果处理 1 简单类型输出映射 返回简单基本类型 //查询管理员总数 int adminCount(); <select id"adminCount" resultType"int">select count(*) from admin </select> 返回结果需要定义后才能使用简称 eg&#xff1a;resultType"Adm…

个人信息保护合规建设桔皮书

声明 本文是学习个人信息保护合规建设桔皮书. 下载地址而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 个人信息保护建设思考 识别监管要求聚焦安全保护重点 1. 个人信息处理原则合规 《个人信息保护法》总则中规定了个人信息处理的合法、正当、必要…

应用torchinfo计算网络的参数量

1 问题定义好一个VGG11网络模型后&#xff0c;我们需要验证一下我们的模型是否按需求准确无误的写出&#xff0c;这时可以用torchinfo库中的summary来打印一下模型各层的参数状况。这时发现表中有一个param以及在经过两个卷积后参数量&#xff08;param&#xff09;没变&#x…

从socket开始讲解网络模式(epoll)

从socket开始讲解网络模式 windows采用IOCP网络模型&#xff0c;而linux采用epoll网络模型&#xff08;Linux得以实现高并发&#xff0c;并被作为服务器首选的重要原因&#xff09;&#xff0c;接下来讲下epoll模型对网络编程高并发的作用 简单的socket连接 socket连接交互的…

Python学习笔记-PyQt6之MVC项目结构初试

MVC结构是之model-view-controller三层架构的开发框架&#xff0c;用以将项目界面和逻辑进行解耦分析&#xff0c;便于维护。与WPF的MVVM相似。 项目开发做了一个秒表试手&#xff1a; 1.项目架构如下 controller&#xff1a;用于放置界面的控制逻辑model&#xff1a;用于放置…

回顾这十年,感悟

十年前&#xff0c;我35岁了&#xff0c;在体制内工作&#xff0c;到了很多人眼里的躺平的年龄。我眼里的世界&#xff0c;也就那么大&#xff0c;没有想过更进一步&#xff0c;有点中年油腻了&#xff0c;体质也差了。……终于有一天&#xff0c;醒悟了&#xff0c;不想过这样…

高并发系统设计 -- 秒杀系统

高并发秒杀 秒杀问题相信大家都知道的&#xff0c;虽然是一个烂大街的项目&#xff0c;但是秒杀问题背后的知识是很值得学习的&#xff0c;很多高并发系统设计都可以参照秒杀系统来进行实现。而且顺着这个问题&#xff0c;我会教给大家如何进行高并发的系统设计。 我们先来看…

Android集成三方浏览器之Crosswalk

上一篇讲解了腾讯 X5 内核的集成&#xff0c;这一篇是讲解 Crosswalk 的集成 Crosswalk 也是采用了Chromenium 内核&#xff0c;是一款开源的 web 引擎&#xff0c;开发者可以直接把 Crosswalk 嵌入到应用之中&#xff0c;当然也支持共享模式&#xff08;系统中没有对应的 Cros…

费解的开关(BFS+哈希表+二进制枚举)

费解的开关&#xff08;BFS哈希表二进制枚举&#xff09;一、题目二、思路分析1、算法标签2、思路梳理方法1&#xff1a;BFS哈希表方法2&#xff1a;二进制枚举DFS一、题目 二、思路分析 1、算法标签 这道题考察的是BFS哈希表,DFS二进制枚举 2、思路梳理 方法1&#xff1a;…

Cohen–Sutherland 算法介绍(简单易懂)

目录 一、算法介绍 二、算法描述 三、算法总结 一、算法介绍 Cohen–Sutherland 算法用于直线段裁剪&#xff0c;通过判断直线与窗口之间的关系&#xff0c;来决定直线段部分的保留与舍弃。 二、算法描述 ① 首先&#xff0c;我们把屏幕分割成 9 个区域块&#xff0c;最中间区…

音乐相册如何制作?一步一步教会你

很多小伙伴会在旅行时&#xff0c;拍摄各种好看的照片&#xff0c;一趟旅途下来能留下好多照片呢&#xff0c;有些人会习惯将这些照片归类到一个相册里。其实我们也可以使用一些免费的软件将这些照片制作成有纪念意义的音乐相册&#xff0c;那大家知道免费制作音乐相册怎么做吗…

npm install 报警告npm WARN

npm install 报警告npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents1.2.0 (node_modules\fsevents npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN fsevents1.2.0 had bundled packages that do not match the requi…

Crack:Inobitec DICOM Viewer Pro 2.9 多语言版本

Inobitec DICOM Viewer Pro 的使命是扩大医生可见和可能的范围。通过为医学提供高质量的创新 IT 解决方案&#xff0c;Ω578867473为改善全世界人民的健康做出了贡献。感受到自己工作的价值&#xff0c;意识到 21 世纪医学面临的挑战的重要性&#xff0c;以及解决这些挑战的乐趣…

WordPress使用二级域名存储图片等静态资源达到网站加速的详细配置

最近发现源站压力较大&#xff08;水管太小&#xff09;于是想着把WordPress博客的图片等静态资源分离到二级域名中&#xff0c;二级域名再使用一次云盾免费加速CDN&#xff0c;达到动静分离的效果&#xff0c;在这个过程中遇到一些坑&#xff0c;特此记录一下&#xff0c;方便…

NumpyPandas 数据处理与挖掘

笔记来源B站&#xff1a;https://www.bilibili.com/video/BV1xt411v7z9?p21 python学习笔记1 Numpy1.1 Numpy优势1.1.1 Numpy介绍1.1.2 ndarray介绍1.1.3 ndarray与Python原生list效率对比1.1.4 ndarray优势1.2 认识N维数组-ndarray属性1.2.1 ndarray的属性1.2.2 ndarray的形状…

11.1、基于Django4的可重用、用户注册和登录系统搭建

文章目录系统的功能思路分析搭建项目环境创建项目&#xff08;虚拟环境&#xff09;创建子应用修改语言、时区创建数据库表启动项目git提交项目代码到本地仓库git initi 初始化&#xff0c;创建本地git仓库pycharm安装 .ignore插件&#xff0c;来设置git的忽略文件提交代码修改…