原文地址:https://www.jianshu.com/p/f2f4d509060e

机器学习是设计算法\(A\),在假设集合\(H\)里,根据给定数据集\(D\),选出与实际模式\(f\)最为相近的假设\(g\)(\(g\)可能与\(f\)相同,也可能不同)。
那什么情况下学习是可行的?即保证\(g\)和\(f\)是相似的。

  1. 数据集内的表现\(g\)约等于\(f\);
  2. \(g\)在数据集外的表现约等于\(g\)在数据集内的表现。

结合1、2可保证,由算法在给定数据集上学习到的\(g\)(即数据集内的表现\(g\)约等于\(f\))在数据集外的表现也约等于\(f\),即\(g\)与\(f\)相似。

一、如何保证2?

数据集内表现相同的多个假设在数据集外的部分数据上表现相差极大,即学习效果极差。

霍夫丁不等式:有一个装有绿色小球和橘色小球的罐子(假设球数无限),从中进行\(N\)次有放回的取球实验,在这\(N\)次实验中取出橘色小球的频率为\(\nu\),只要\(N\)足够大,就可以用\(\nu\)来估计\(\mu\)即罐子中橘色小球的实际概率。


将霍夫丁不等式与学习相联系。当\(h\)选定时,只要\(D\)里样本数\(N\)足够大且样本点独立同分布,就能保证\(h\)在整个输入空间里的表现(异常点的概率)与数据集内的表现(\(D\)里异常点的频率)在一定的概率范围内近似相等。

注意,\(E_{out}(h)\)实际是面向整个输入空间的,即数据集\(D\)内和数据集\(D\)外。

二、如何保证1?

\(A\)根据\(D\)在\(H\)中选出使得\(E_{in}(h)\)小的\(h\)。

注意,2的保证是在给定\(h\)的情况下,即\(h\)的选择只有1个。
但是,1的保证需要在\(H\)中进行选择,如果\(H\)的\(size>1\),即\(h\)有很多个,可能有限也可能无限,那么2的保证是否会受到影响呢?
坏数据:对于一个\(h\),使得\(h\)在该数据内外表现差异很大的数据认为是坏数据。
可以理解为霍夫丁不等式的左式中概率衡量的事件:\(E_{in}(h)\)和\(E_{out}(h)\)的差异大于容忍度\(\epsilon\),即对于一个\(h\),存在坏数据的概率小于等于霍夫丁的右式。
对于一个输入空间\(X\),能够产生的用于训练的数据\(D\)有很多个,若对于一个\(h\),给定的数据刚好就是坏数据的概率是小于等于霍夫丁的右式的;若有\(M\)个\(h\),给定的数据是其中某个\(h\)的坏数据的概率是小于等于数据为\(h_1\)的坏数据的概率+数据为\(h_2\)的坏数据的概率+数据为\(h_3\)的坏数据的概率+......+数据为\(h_M\)的坏数据的概率。本质是求并集(小于等于的原因是有可能存在交集)。这里的\(M\)实际是\(|H|\),即\(H\)的\(size\)。


只要\(M\)是有限值、\(N\)足够大,不等式的右式就能足够小。
所以,
只要假设集大小有限、\(N\)足够大------保证\(E_{in}\)和\(E_{out}\)的差异在容忍度内,
\(A\)根据\(D\)在\(H\)中挑选出\(g\)------保证\(E_{in}\)小,
就能说学习是PAC可能的。

但是,如果输入空间\(X\)是无限的,那理论上对应的\(H\)的数量也是无限的,即当\(|H|\)无限大时,该怎么办呢?

机器学习基石笔记:04 Feasibility of Learning的更多相关文章

  1. 林轩田机器学习基石笔记4—Feasibility of Learning

    上节课介绍了机器学习可以分为不同的类型.其中,监督式学习中的二元分类和回归分析是最常见的也是最重要的机器学习问题.本节课,我们将介绍机器学习的可行性,讨论问题是否可以使用机器学习来解决. 一.Lear ...

  2. 机器学习基石笔记:01 The Learning Problem

    原文地址:https://www.jianshu.com/p/bd7cb6c78e5e 什么时候适合用机器学习算法? 存在某种规则/模式,能够使性能提升,比如准确率: 这种规则难以程序化定义,人难以给 ...

  3. 林轩田机器学习基石笔记3—Types of Learning

    上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类.而对于线性不可分的情况,可以使用Pocket Algorithm来处理.本节课将主要 ...

  4. 机器学习基石笔记:16 Three Learning Principles

    三个理论上界: 三个线性模型: 三个关键工具: 三条学习规则: 1.奥卡姆剃刀定律 先从简单模型开始, 训练后出现欠拟合, 再尝试复杂点模型. 2.采样误差 训练.验证.测试数据尽量同分布. 3.数据 ...

  5. 机器学习基石第一讲:the learning problem

    博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) Andrew Ng的Machine Learning比較简单,已经看完.林田轩的机器 ...

  6. 林轩田机器学习基石笔记2—Learning to Answer Yes/No

    机器学习的整个过程:根据模型H,使用演算法A,在训练样本D上进行训练,得到最好的h,其对应的g就是我们最后需要的机器学习的模型函数,一般g接近于目标函数f.本节课将继续深入探讨机器学习问题,介绍感知机 ...

  7. 林轩田机器学习基石笔记1—The Learning Problem

    机器学习分为四步: When Can Machine Learn? Why Can Machine Learn? How Can Machine Learn? How Can Machine Lear ...

  8. 机器学习基石笔记:02 Learning to Answer Yes/No、PLA、PA

    原文地址:https://www.jianshu.com/p/ed0aee74523f 一.Perceptron Learning Algorithm (一)算法原理 PLA本质是二元线性分类算法,即 ...

  9. 机器学习基石笔记:03 Types of Learning

    原文地址:https://www.jianshu.com/p/86b2a9cef742 一.学习的分类 根据输出空间\(Y\):分类(二分类.多分类).回归.结构化(监督学习+输出空间有结构): 根据 ...

随机推荐

  1. maven问题解决:提示maven依赖包缺失,但是去文件夹下找确实有这个包

    出现问题:提示maven依赖包缺失,但是去文件夹下找确实有这个包. (我的操作就是:删除文件夹中的jar.重新update,) 搞了好多遍,工具总是提示错误信息,没办法,请求大神 操作大概过程: 1  ...

  2. 在服务器上实现SSH(Single Stage Headless)

    服务器上ssh实现 写在前面:这只是我在服务器上的环境实现的,仅供参考.要根据自己系统的环境做出修改. ==github源码(https://github.com/mahyarnajibi/SSH)= ...

  3. Topologies on product spaces of $\mathbb{R}$ and their relationships

    In this post, I will summarise several topologies established on the product spaces of \(\mathbb{R}\ ...

  4. 记一次完整的asp.net-mvc页面优化过程

    最近在重构一个以前团队开发留下的MVC项目,项目结构堪称混乱,问题多多,但今天说的是页面打开速度的问题.项目中包括web后台系统,几乎随便点一个页面都要盯着白屏等待2-5秒之久,体验很差.通过对页面性 ...

  5. Android进阶:七、Retrofit2.0原理解析之最简流程【上】

    retrofit 已经流行很久了,它是Square开源的一款优秀的网络框架,这个框架对okhttp进行了封装,让我们使用okhttp做网路请求更加简单.但是光学会使用只是让我们多了一个技能,学习其源码 ...

  6. 《团队作业》五小福团队作业--UNO-- LandingDay--降落

    <团队作业>五小福团队作业--UNO-- LandingDay--降落 写在前面 几周的飞行之后,降落之日也如期而至了.在2018年12月19日我们顺利地完成了项目的总结汇报.但是,短暂的 ...

  7. SetParameter错误:java.time.Instant cannot be resolved

    SetParameter Hibernate使用SetParameter错误 List<Customer> list = session.createQuery(hql).setParam ...

  8. AutoCAD下载

    AutoCAD 2019 64位破解版 附注册机和安装教程  1.71G AutoCAD 2019 64位精简优化版 珊瑚の海简体中文版691.08M

  9. 1.3 正则表达式和Python语言-1.3.5使用 search()在一个字符串中查找模式(搜索与匹配 的对比)

    1.3.5 使用 search()在一个字符串中查找模式(搜索与匹配的对比) 其实,想要搜索的模式出现在一个字符串中间部分的概率,远大于出现在字符串起始部分的概率.这也就是 search()派上用场的 ...

  10. VS2017下使用Git遇到的问题

    我在使用最新版的VS2017时,想获取服务器上最新代码,Fetch到了最新修改,但是在拉取代码的时候出现了问题 user@user-PC MINGW64 /d/demo/myrepos (dev-cs ...