机器学习基石 4 Feasibility of Learning

Learning is Impossible?

机器学习:通过现有的训练集 \(D\) 学习,得到预测函数 \(h(x)\) 使得它接近于目标函数 \(f(x)\)。

问题:这种预测是可能的么?其泛化性的本质是什么?是什么保证了 \(h(x) \approx f(x)\) ?

Probability to the Rescue

情景:有一个装有很多很多珠子的罐子,珠子的颜色是橙色和绿色,那么我们可以通过抽样的方法来估计橙色珠子的比例。

Hoeffding's inequality:

采样次数 \(N\) 足够大时,\(v\) 和 \(\mu\) 有如下关系:



于是可以说 \(v\) 和 \(\mu\) 大概近似相等(probably approximately correct,PAC)。

因此,选择合适的 \(N\) 以及 \(\epsilon\),就可以通过 \(v\) 预测 \(\mu\)。

Connection to Learning

可以将以上的情景与机器学习问题对应起来,如下图所示:

  • 橙色:\(h(x) \neq f(x)\)
  • 绿色:\(h(x) = f(x)\)
  • 橙色珠子概率 \(\mu\):\(h(x) \neq f(x)\) 的概率
  • 抽到橙色珠子:在某个样本点 \(x_n\) 上,\(h(x_n) \neq f(x_n) = y_n\)
  • 抽到绿色珠子:在某个样本点 \(x_n\) 上,\(h(x_n) = f(x_n) = y_n\)
  • 抽样动作:判断 \(h(x_n)\) 与 \(f(x_n)=y_n\) 是否相等

于是在一定条件下,我们可以通过测试 \(h(x_n) \neq y_n\) 的比例来推断 \(h(x) \neq f(x)\) 的概率。

这里需要注意的是,\(x_n\) 需要是独立同分布的,但是我们并不需要知道具体的分布函数。

完善学习流程图:

公式如下:

上面的公式保证了在一定条件下,\(E_{in}(h)\) 与 \(E_{out}(h)\) 不会相差太远,那么只要我们能选择合适的 \(h\) 使得 \(E_{in}(h)\) 比较小,那么 \(E_{out}(h)\) 也会比较小,我们就完成了学习。

算法的目的:在假设集 \(H\) 中选择合适的 \(h\),并且通过验证,判断 \(E_{in}(h)\) 是否真的合适。

验证的过程:

同理,需要保证测试样本与训练样本是独立同分布的,但是不需要知道具体的分布函数。

Connection to Real Learning

以上的分析是对于一个 \(h\) 来说的,下面考虑多个 \(h\) 的情况。

引入一个 BAD Data 的概念,对于一个 \(h\) 这种情况,BAD Data 指的是在这个数据集下,\(E_{in}(h)\) 与 \(E_{out}(h)\) 相差很大;对于一个 \(h\) 这种情况,BAD Data 指的是在这个数据集下,存在某个 \(h\),\(E_{in}(h)\) 与 \(E_{out}(h)\) 相差很大。

如果数据集是 BAD Data,那么即使我们通过机器学习,得到一个 \(h(x)\),并且 \(E_{in}(h)\) 很小,我们也无法保证说(PAC) \(E_{out}(h)\) 很小,于是学习失败了,因此我们希望 BAD data 出现的概率越小越好。

对于一个 \(h\) 这种情况,BAD data 出现的概率(前面已经说过了):



对于多个 \(h\) 这种情况,BAD data 出现的概率(Union Bound):



其中 \(M\) 表示的是假设集中 \(h\) 的个数。

如果 \(M\) 的值是有限的,那么 \(N\) 足够大的情况下,BAD data 出现的概率很小,即无论哪个 \(h\),都有 \(E_{in}(h) \approx E_{out}(h)\) (PAC),那么我们通过合适的算法选择一个 \(E_{in}\) 小的 \(h\),就能保证 \(E_{out}\) 小(PAC),于是学习成功了。

完善学习流程图:

机器学习基石 4 Feasibility of Learning的更多相关文章

  1. 机器学习基石 3 Types of Learning

    机器学习基石 3 Types of Learning Learning with Different Output Space Learning with Different Data Label L ...

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

    什么时候适合用机器学习算法? 1.存在某种规则/模式,能够使性能提升,比如准确率: 2.这种规则难以程序化定义,人难以给出准确定义: 3.存在能够反映这种规则的资料. 所以,机器学习就是设计算法A,从 ...

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

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

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

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

  5. 机器学习基石:16 Three Learning Principles

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

  6. 机器学习基石 2 Learning to Answer Yes/No

    机器学习基石 2 Learning to Answer Yes/No Perceptron Hypothesis Set 对于一个线性可分的二分类问题,我们可以采用感知器 (Perceptron)这种 ...

  7. 机器学习基石 1 The Learning Problem

    机器学习基石 1 The Learning Problem Introduction 什么是机器学习 机器学习是计算机通过数据和计算获得一定技巧的过程. 为什么需要机器学习 1 人无法获取数据或者数据 ...

  8. 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总

    大家好,我是Mac Jiang,非常高兴您能在百忙之中阅读我的博客!这个专题我主要讲的是Coursera-台湾大学-機器學習基石(Machine Learning Foundations)的课后习题解 ...

  9. 机器学习基石(台湾大学 林轩田),Lecture 1: The Learning Problem

    课程的讲授从logo出发,logo由四个图案拼接而成,两个大的和两个小的.比较小的两个下一次课程就可能会解释到它们的意思,两个大的可能到课程后期才会解释到它们的意思(提示:红色代表使用机器学习危险,蓝 ...

随机推荐

  1. gunicorn 简介

      gunicorn是一个python Wsgi http server,只支持在Unix系统上运行,来源于Ruby的unicorn项目.Gunicorn使用prefork master-worker ...

  2. C++ 头文件系列(vector)

    简介 vector头文件包含vector的类模版以及该模版的显示特化版本vector< bool >. vector是C++容器库中非常通用的一种容器,如果你不知道该决定使用哪一种容器,或 ...

  3. Java: 分解List<HashMap<String, String>>

    分解List<HashMap<String, String>> 的方法: List<HashMap<String, String>> mapList; ...

  4. 字符集编码与Python(一)编码历史

    编码历史 ASCII ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于 ...

  5. HUST 1541 Student’s question

    1541 - Student’s question 时间限制:1秒 内存限制:128兆 696 次提交 134 次通过 题目描述 YYis a student. He is tired of calc ...

  6. Easy单例模式

    在学习单例模式前,不妨问自己几个问题:单例模式是怎么来的,单例模式怎么去用? 单例模式是怎么来的? 这就从设计模式起源开始,他是在实际实践中遇到类似情况可以通用经验所得到的总结,一般在其他模块或者方法 ...

  7. 谷歌YSlow准则

    谷歌YSlow准则 YSlow可以对网站的页面进行分析,并告诉你为了提高网站性能,如何基于某些规则而进行优化. 测试个人站点 通过测试个人站点可以获得下面的数据 23条准则 Make fewer HT ...

  8. Swift3.0 中 Strings/Characters 闲聊

    前言 本篇文章主要浅析字符串\字符在 Swift 和 Objective-C 之间的区别及其简单用法.如有不妥的地方还望大家及时帮忙纠正. 字符串判空 在 swift 语言中空字符串初始化方式常用的有 ...

  9. BZOJ ac100题存档

    不知不觉AC100题了,放眼望去好像都是水题.在这里就做一个存档吧(特别感谢各位大神尤其是云神http://hi.baidu.com/greencloud和丽洁姐http://wjmzbmr.com/ ...

  10. [故障公告] 13:52-14:03,访问量突增,博客web服务器CPU 100%

    13:52-14:03,由于访问量突增,博客web服务器全线CPU 100%,造成博客站点不正常访问,由此给您带来麻烦,请您谅解. 为了迎接访问量的增长给web服务器CPU带来的巨大压力,上周我们已经 ...