课程主页

课程视频和PPT

上节课,我们主要介绍了机器学习的可行性。首先,由NFL定理可知,机器学习貌似是不可行的。但是,随后引入了统计学知识,如果样本数据足够大(D足够大),且hypothesis个数有限,那么机器学习一般就是可行的。本节课将讨论机器学习的核心问题,严格证明为什么机器可以学习。从上节课最后的问题出发,即当hypothesis的个数是无限多的时候,机器学习的可行性是否仍然成立?

目录

1. Recap and Preview

2. Effective Number of Line

3. Effective Number of Hypothesis

4. Break Point

5. 总结


1. Recap and Preview

我们先来看一下基于统计学的机器学习流程图:

该流程图中,训练样本D和最终测试时使用的样本都是来自同一个数据分布,这是机器能够学习的前提。另外,训练样本D应该足够大,且hypothesis set的个数是有限的,这样根据霍夫丁不等式,才不会出现Bad Data,保证,即有很好的泛化能力。同时,通过训练,得到使得最小的h,作为模型最终的假设函数g,g接近于目标函数f。

这里,我们总结一下前四节课的主要内容:第一节课,我们介绍了机器学习的定义,目标是找出最好的g(),使得,保证;第二节课,我们介绍了如何让,可以使用PLA、pocket等演算法来实现;第三节课,我们介绍了机器学习的分类,我们的训练样本是批量数据(batch),处理监督式(supervised)二元分类(binary classification)问题;第四节课,我们介绍了机器学习的可行性,通过统计学知识,把联系起来,证明了在一些前提或条件假设下成立。

这四节课总结下来,我们把机器学习的主要目标分成两个核心的问题:

  • 足够小

上节课介绍的机器学习可行的一个条件是hypothesis set的个数M是有限的,那M跟上面这两个核心问题有什么联系呢?

我们先来看一下,当M很小的时候,由上节课介绍的霍夫丁不等式,可以得到,即能保证第一个核心问题成立。但M很小时,演算法A可以选择的hypothesis有限,不一定能找到使足够小的假设函数,即不能保证第二个核心问题成立。当M很大的时候,同样由霍夫丁不等式,的差距可能比较大,第一个核心问题可能不成立。而M很大,使的演算法A的可以选择的hypothesis就很多,很有可能找到一个hypothesis,使得足够小,,第二个核心问题可能成立。

从上面的分析来看,M的选择直接影响机器学习两个核心问题是否满足,M不能太大也不能太小。那么如果M无限大的时候,是否机器就不可以学习了呢?例如PLA算法中直线是无数条的,但是PLA能够很好地进行机器学习,这又是为什么呢?如果我们能将无限大的M限定在一个有限的内,问题似乎就解决了。

2. Effective Number of Line

我们先看一下上节课推导的霍夫丁不等式:

其中,M表示hypothesis的个数。每个hypothesis下的BAD events 出现概率的级联形式满足下列不等式:

时,上面不等式右边值将会很大,似乎说明BAD events出现的概率很大,即也并不接近。但是上面的BAD events 的级联形式实际上扩大了上界,union bound过大。这种做法假设各个hypothesis之间没有任何交集,这是最坏的情况,可是实际上往往不是如此,很多情况下,都是有交集的,也就是说M(虽然有无限个假设,但是很多假设之间非常接近,可以理解为M可以划分为有限个组)实际上没那么大,如下图所示:

也就是说union bound被估计过高了(over-estimating)。所以,我们的目的是找出不同BAD events之间的重叠部分,也就是将无数个hypothesis分成有限个类别。

如何将无数个hypothesis分成有限类呢?我们先来看这样一个例子,假如平面上用直线将点分开,也就跟PLA一样。如果平面上只有一个点x1,那么直线的种类有两种:一种将x1划为+1,一种将x1划为-1:

如果平面上有两个点x1、x2,那么直线的种类共4种:x1、x2都为+1,x1、x2都为-1,x1为+1且x2为-1,x1为-1且x2为+1:

如果平面上有三个点x1、x2、x3,那么直线的种类共8种(下图这种三角形排列):

但是,在三个点的情况下,也会出现不能用一条直线划分的情况(比如三点共线):

也就是说,对于平面上三个点,不能保证所有的8个类别情况都能被一条直线划分,可能小于8种。那如果是四个点x1、x2、x3、x4,我们发现,平面上找不到一条直线能将四个点组成的16个类别情况完全分开,最多只能分开其中的14类,即直线最多只有14种(下图只考虑了一半,可以通过对称性补充另外一半):

经过分析,我们得到平面上线的种类是有限的,1个点最多有2种线,2个点最多有4种线,3个点最多有8种线,4个点最多有14()种线等等。我们发现,有效直线的数量总是满足,其中N是数据点的个数。所以,如果我们可以用effective(N)代替M,霍夫丁不等式可以写成:

已知,如果能保证,即不等式右侧接近于0,那么即使M无限大,直线的种类也很有限,机器学习也是可能的(出现bad event的概率非常小,即)。

3. Effective Number of Hypothesis

接下来先介绍一个新名词:二分类(dichotomy)。dichotomy就是将空间中的点(例如二维平面)用一条直线分成正类(蓝色o)和负类(红色x)。令H是将平面上的点用直线分开的所有hypothesis h的集合,dichotomy H与hypotheses H的关系是:hypotheses H是平面上所有直线的集合,个数是无限个,而dichotomy H是平面上能将点完全用直线分开的直线种类,他的上界是.接下来,我们要做的就是尝试用dichotomy代替M。

再介绍一个新的名词:成长函数(growth function),记为.成长函数的定义是:对于由N个点组成的不同集合中,某集合对应的dichotomy最大,那么这个dichotomy值就是 ,他的上界是

成长函数其实就是我们之前讲的effective lines的数量最大值。 根据成长函数的定义,二维平面上,随N的变化关系是:

接下来,我们讨论如何计算成长函数。先看一个简单情况,一维的Positive Rays(右边是正类(圈圈),左边是负类(叉叉)):

若有N个点,则整个区域可分为N+1段,很容易得到其成长函数.注意当N很大时,,这是我们希望看到的。

另一种情况是一维的Positive Intervals(中间是正类(圈圈),两边为负类(叉叉)):

它的成长函数可以由下面推导得出:

这种情况下,,在N很大的时候,仍然是满足的。

再来看这个例子,假设在二维空间里,如果hypothesis是凸多边形或类圆构成的封闭曲线,如下图所示,左边是convex的,右边不是convex的。那么,它的成长函数是多少呢?

当数据集D按照如下的凸分布时(凸集内部为正类,外面是负类,数据点可以排列为下面的这个圆圈),我们很容易计算得到它的成长函数.这种情况下,N个点所有可能的分类情况都能够被hypotheses set覆盖,我们把这种情形称为shattered。也就是说,如果能够找到一个数据分布集,hypotheses set对N个输入所有的分类情况都做得到,那么它的成长函数就是.

4. Break Point

上一小节,我们介绍了四种不同的成长函数,分别是:

其中,positive rays和positive intervals的成长函数都是polynomial的,如果用代替M的话,这两种情况是比较好的。而convex sets的成长函数是exponential的,即等于M,并不能保证机器学习的可行性。那么,对于2D perceptrons,它的成长函数究竟是polynomial的还是exponential的呢?

对于2D perceptrons,我们之前分析了3个点,可以做出8种所有的dichotomy(在某些情况下),而4个点,就无法做出所有16个点的dichotomy了。所以,我们就把4称为2D perceptrons的break point(最小的间断点,5,6,7等也是间断点)。令有k个点,如果k大于等于break point时,它的成长函数一定小于2的k次方。

根据break point的定义,我们知道满足的k的最小值就是break point。对于我们之前介绍的四种成长函数,他们的break point分别是:

通过观察,我们猜测成长函数可能与break point存在某种关系:对于convex sets,没有break point,它的成长函数是2的N次方;对于positive rays,break point k=2,它的成长函数是O(N);对于positive intervals,break point k=3,它的成长函数是.则根据这种推论,我们猜测2D perceptrons,它的成长函数.如果成立,那么就可以用代替M,就满足了机器能够学习的条件。关于上述猜测的证明,我们下节课再详细介绍。

5. 总结

本节课,我们更深入地探讨了机器学习的可行性。我们把机器学习拆分为两个核心问题:.对于第一个问题,我们探讨了M个hypothesis到底可以划分为多少种,也就是成长函数.并引入了break point的概念,给出了break point的计算方法。下节课,我们将详细论证对于2D perceptrons,它的成长函数与break point是否存在多项式的关系,如果是这样,那么机器学习就是可行的。

机器学习 | 台大林轩田机器学习基石课程笔记5 --- Training versus Testing相关推荐

  1. 机器学习 | 台大林轩田机器学习基石课程笔记12 --- Nonlinear Transformation

    课程主页 课程视频和PPT 上一节课,我们介绍了分类问题的三种线性模型,可以用来解决binary classification和multiclass classification问题.本节课主要介绍非 ...

  2. 机器学习 | 台大林轩田机器学习基石课程笔记3 --- Types of Learning

    课程主页 课程视频和PPT 上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类(前提数据是线性可分的,在高维空间中,可以用一个超平面完全 ...

  3. 台大林轩田·机器学习基石记要

    台大林轩田·机器学习基石记要 昨天开始看林轩田的机器学习基石,从今天起开始去粗取精 第一讲比较基础,一些概念自己早已经理解了,所以不再做笔记,有点印象的是讲到了ML.DL.AI的一些联系与区别,ML主 ...

  4. 台大林轩田·机器学习技法记要

    台大林轩田·机器学习技法 记要 6/1/2016 7:42:34 PM 第一讲 线性SVM 广义的SVM,其实就是二次规划问题 把SVM问题对应到二次规划的系数 这就是线性SVM,如果想变成非线性,只 ...

  5. 台大·林轩田·机器学习基石·第二讲

    第二讲···感知机学习算法 2-1 Perceptron hypothesis set 对于银行是否决定要给申请者信用卡问题,对于输入数据(例如申请者的个人信息,年龄,性别,收入,工作情况等)可用一组 ...

  6. 台大林轩田机器学习基石学习笔记(一):The Learning Problem

    这里写自定义目录标题 写在前面 一.What is Machine Learning 二.Applications of Machine Learning 三.Components of Machin ...

  7. 台大林轩田机器学习技法完全解读

    支持向量机(SVM)完全解读 集成学习完全解读 神经网络深度学习完全解读 感谢林轩田老师!

  8. [机器学习基础][台大林轩田]机器学习概念

    什么是机器学习 什么是"学习"?学习就是人类通过观察.积累经验,掌握某项技能或能力.就好像我 们从小学习识别字母.认识汉字,就是学习的过程.而机器学习(Machine Learni ...

  9. 【本站原创】台大林轩田《机器学习基石》系列课程教材的习题解答和实现

    台湾大学林轩田老师的<机器学习基石>.<机器学习技法>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.本站实现了课程教材的绝大 ...

  10. 台大林轩田《机器学习基石》系列课程教材的习题更新完毕了

    台湾大学林轩田老师的<机器学习基石>.<机器学习技法>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和进阶资料非常适合.本站实现了课程教材的绝大 ...

最新文章

  1. Spring Mock单元测试
  2. SAP S4HANA如何取到采购订单ITEM里的'条件'选项卡里的条件类型值?
  3. 表 合并字段_多工作表动态合并,其实很简单
  4. 如何在 CentOS 上启用 软件集 Software Collections(SCL)
  5. python语法基础及if、while、for等语句介绍
  6. Raspberry Pi 4B 安装 PyTorch
  7. 教程 | 以太坊智能合约编程之菜鸟教程
  8. koa2 mysql增删改查_koa2对mongodb的增删改查
  9. HBase中HLog详解
  10. 巨人退场!索尼前CEO平井一夫正式退休 结束35年索尼生涯
  11. 火速拿来用!对比近 10,000 个 Python 开源项目发现最实用的 TOP34!
  12. 下载faceScrub人脸数据库(单线程版本)
  13. (2)公众号开发-基础框架搭建
  14. 布朗运动 2 | 布朗运动的推广
  15. 动态规划——(很特别的一个动态规划入门教程)#觉得原作者写的很有意思
  16. python编写游戏测试机器人客户端(四)
  17. 余数大法写了个手机虚拟号
  18. VMware虚拟机提示“锁定文件失败 打不开磁盘”解决方法
  19. 富士康服务器主板X58维修,富士康X58 Blood Rage主板BIOS预览
  20. Java 实习面试经历(一)

热门文章

  1. 编写python爬虫基础_0基础如何快速写python爬虫
  2. 如何重设或更改Verizon FIOS路由器的密码
  3. party_bid_core三种数据结构分析
  4. linux:挂载、rpm、yum、scp、ssh、crontab、时钟同步
  5. 上海交大ACM班俞勇团队出新书了!
  6. 为什么我的背景图片加载不出来
  7. 网络操作系统 Linux配置与管理,网络操作系统—Linux配置与管理
  8. 游戏统计中一些常用的专业 术语和计算公式
  9. 解决:The APR based Apache Tomcat Native library which allows optimal performance in production......
  10. 【第十六篇】Flowable事件之结束事件