林轩田机器学习基石笔记4—Feasibility of Learning
上节课介绍了机器学习可以分为不同的类型。其中,监督式学习中的二元分类和回归分析是最常见的也是最重要的机器学习问题。本节课,我们将介绍机器学习的可行性,讨论问题是否可以使用机器学习来解决。
一、Learning is Impossible
首先,考虑这样一个例子,如下图所示,有3个label为-1的九宫格和3个label为+1的九宫格。根据这6个样本,提取相应label下的特征,预测右边九宫格是属于-1还是+1?结果是,如果依据对称性,我们会把它归为+1;如果依据九宫格左上角是否是黑色,我们会把它归为-1。除此之外,还有根据其它不同特征进行分类,得到不同结果的情况。而且,这些分类结果貌似都是正确合理的,因为对于6个训练样本来说,我们选择的模型都有很好的分类效果。
再来看一个比较数学化的二分类例子,输入特征x是二进制的、三维的,对应有8种输入,其中训练样本D有5个。那么,根据训练样本对应的输出y,假设有8个hypothesis,这8个hypothesis在D上,对5个训练样本的分类效果效果都完全正确。但是在另外3个测试数据上,不同的hypothesis表现有好有坏。在已知数据D上,g≈f;但是在D以外的未知数据上,g≈f不一定成立。而机器学习目的,恰恰是希望我们选择的模型能在未知数据上的预测与真实结果是一致的,而不是在已知的数据集D上寻求最佳效果。
这个例子告诉我们,我们想要在D以外的数据中更接近目标函数似乎是做不到的,只能保证对D有很好的分类结果。机器学习的这种特性被称为没有免费午餐(No Free Lunch)定理。NFL定理表明没有一个学习算法可以在任何领域总是产生最准确的学习器。平常所说的一个学习算法比另一个算法更“优越”,效果更好,只是针对特定的问题,特定的先验信息,数据的分布,训练样本的数目,代价或奖励函数等。从这个例子来看,NFL说明了无法保证一个机器学习算法在D以外的数据集上一定能分类或预测正确,除非加上一些假设条件,我们以后会介绍。
二、Probability to the Rescue
从上一节得出的结论是:在训练集D以外的样本上,机器学习的模型是很难,似乎做不到正确预测或分类的。那是否有一些工具或者方法能够对未知的目标函数f做一些推论,让我们的机器学习模型能够变得有用呢?
如果有一个装有很多(数量很大数不过来)橙色球和绿色球的罐子,我们能不能推断橙色球的比例u?统计学上的做法是,从罐子中随机取出N个球,作为样本,计算这N个球中橙色球的比例v,那么就估计出罐子中橙色球的比例约为v。
三、Connection to Learning
下面,我们将罐子的内容对应到机器学习的概念上来。机器学习中hypothesis与目标函数相等的可能性,罐子里的一颗颗弹珠类比于机器学习数据x;选择一个h,对于一个x,当f(x)==g(x)时,把该弹珠涂成绿色,否则为橙色;从罐子中抽取的N个球类比于机器学习的训练样本D,且这两种抽样的样本与总体样本之间都是独立同分布的。所以呢,如果样本N够大,且是独立同分布的,那么,从样本中h(x)=f(x)的概率就能推导在抽样样本外的所有样本中h(x)=f(x)的概率是多少。
映射中最关键的点是讲抽样中橙球的概率理解为样本数据集D上h(x)错误的概率,以此推算出在所有数据上h(x)错误的概率,这也是机器学习能够工作的本质,即我们为啥在采样数据上得到了一个假设,就可以推到全局呢?因为两者的错误率是PAC的,只要我们保证前者小,后者也就小了。
这里我们引入两个值Ein(h)和Eout(h)。Ein(h)表示在抽样样本中,h(x)与f(x)不相等的概率;Eout(h)表示实际所有样本中,h(x)与f(x)不相等的概率是多少。
四、Connection to Real Learning
如果有一个h在你的资料上与f完全一致,那么h一定是最好的?
答案是不一定,就想抛硬币时,连续5次正面的硬币一定比其他硬币要好吗?
也就是说,不同的数据集Dn,对于不同的hypothesis,有可能成为Bad Data。只要Dn在某个hypothesis上是Bad Data,那么Dn就是Bad Data。只有当Dn在所有的hypothesis上都是好的数据,才说明Dn不是Bad Data,可以自由选择演算法A进行建模。那么,根据Hoeffding’s inequality,Bad Data的上界可以表示为连级(union bound)的形式:
其中,M是hypothesis的个数,N是样本D的数量,ϵ是参数。该union bound表明,当M有限,且N足够大的时候,Bad Data出现的概率就更低了,即能保证D对于所有的h都有Ein≈Eout,满足PAC,演算法A的选择不受限制。那么满足这种union bound的情况,我们就可以和之前一样,选取一个合理的演算法(PLA/pocket),选择使Ein最小的hm作为矩g,一般能够保证g≈f,即有不错的泛化能力。
所以,如果hypothesis的个数M是有限的,N足够大,那么通过演算法A任意选择一个矩g,都有Ein≈Eout成立;同时,如果找到一个矩g,使Ein≈0,PAC就能保证Eout≈0。至此,就证明了机器学习是可行的。
但是,如上面的学习流程图右下角所示,如果M是无数个,例如之前介绍的PLA直线有无数条,是否这些推论就不成立了呢?是否机器就不能进行学习呢?这些内容和问题,我们下节课再介绍。
五、总结
本节课主要介绍了机器学习的可行性。首先引入NFL定理,说明机器学习无法找到一个矩g能够完全和目标函数f一样。接着介绍了可以采用一些统计上的假设,例如Hoeffding不等式,建立Ein和Eout的联系,证明对于某个h,当N足够大的时候,Ein和Eout是PAC的。最后,对于h个数很多的情况,只要有h个数M是有限的,且N足够大,就能保证Ein≈Eout,证明机器学习是可行的。
林轩田机器学习基石笔记4—Feasibility of Learning的更多相关文章
- 林轩田机器学习基石笔记3—Types of Learning
上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类.而对于线性不可分的情况,可以使用Pocket Algorithm来处理.本节课将主要 ...
- 林轩田机器学习基石笔记2—Learning to Answer Yes/No
机器学习的整个过程:根据模型H,使用演算法A,在训练样本D上进行训练,得到最好的h,其对应的g就是我们最后需要的机器学习的模型函数,一般g接近于目标函数f.本节课将继续深入探讨机器学习问题,介绍感知机 ...
- 林轩田机器学习基石笔记1—The Learning Problem
机器学习分为四步: When Can Machine Learn? Why Can Machine Learn? How Can Machine Learn? How Can Machine Lear ...
- (转载)林轩田机器学习基石课程学习笔记1 — The Learning Problem
(转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can M ...
- 【Feasibility of Learning】林轩田机器学习基石
这一节的核心内容在于如何由hoeffding不等式 关联到机器学习的可行性. 这个PAC很形象又准确,描述了“当前的可能性大概是正确的”,即某个概率的上届. hoeffding在机器学习上的关联就是: ...
- 林轩田机器学习基石课程学习笔记5 — Training versus Testing
上节课,我们主要介绍了机器学习的可行性.首先,由NFL定理可知,机器学习貌似是不可行的.但是,随后引入了统计学知识,如果样本数据足够大,且hypothesis个数有限,那么机器学习一般就是可行的.本节 ...
- 【The VC Dimension】林轩田机器学习基石
首先回顾上节课末尾引出来的VC Bound概念,对于机器学习来说,VC dimension理论到底有啥用. 三点: 1. 如果有Break Point证明是一个好的假设集合 2. 如果N足够大,那么E ...
- 【 Logistic Regression 】林轩田机器学习基石
这里提出Logistic Regression的角度是Soft Binary Classification.输出限定在0~1之间,用于表示可能发生positive的概率. 具体的做法是在Linear ...
- 【Linear Regression】林轩田机器学习基石
这一节开始讲基础的Linear Regression算法. (1)Linear Regression的假设空间变成了实数域 (2)Linear Regression的目标是找到使得残差更小的分割线(超 ...
随机推荐
- ZJNU 2345 - 小Y的方格纸
明显,总共有n*m格,已经涂了k格 所以剩下n*m-k格 如果n*m-k<=k,即k已经占用了大于等于一半的格子,显然答案为0 否则 剩下的格子中取k+1,k+2...n*m-k格均可 取组合数 ...
- 基于JSP+Servlet新闻发布系统 源码
开发环境: Windows操作系统开发工具: Eclipse+Jdk+Tomcat+MYSQL数据库 运行效果图:
- 吴裕雄--天生自然 PYTHON3开发学习:基础语法
#!/usr/bin/python3 # 第一个注释 print ("Hello, Python!") # 第二个注释 #!/usr/bin/python3 # 第一个注释 # 第 ...
- 寒假day03-python
今天完成了毕设登录注册.填报等功能的界面优化,同时总结了python网络课程的部分知识点 1.修改jupyter notebook默认路径:进入cmd:(1)cd /d F:\(2)jupyter n ...
- C++常用库函数 C函数库 cstdio
常用的C/C++函数库, cstdio(stdio.h) 标准输入输出库.C Standard Input and Output Library 1. 实例 #include <cstdio&g ...
- Codeforces 1294B - Collecting Packages
题目大意: 机器人从(0,0)开始,他只能往上'U'或者往右'R'走 坐标系中有着很多包裹,分别在一些点上 机器人需要走过去把这些包裹全部收集起来 问能不能做到 如果能,再输出移动方式,相同移动方式输 ...
- NOIpDairy
Day 0 水水比赛 Day 1 写写Dp Part1:Dp基础练习 [HNOI2002]公交车路线 秒切,点数这么少,N这么大,目测O(N)+暴力更新 5min写完 P3842 [TJOI2007] ...
- oauth2 Spring Security
oauth2四种授权方式小结 http://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.html 密码模式(resource owner pas ...
- Gym 101987K TV Show Game(2-SAT)
题目链接:https://vj.z180.cn/b4aacc08fc7aab6ce14e7baf13816c24?v=1571542994 题目要求n个灯(R,B),给出m组赋值方式,每一组中至少有两 ...
- [HNOI2019]JOJO(KMP自动机+主席树)
一道神仙题,考察选手对KMP的深入理解. 先考虑没有2操作的做法.设每一段为一个二元组(x,c),考虑一段前缀匹配后缀,除了第一段的字符,其他段的二元组(x,c)必须相等,所以可以将其视为特殊字符进行 ...