林轩田《机器学习基石》(六)—— Theory of generalization
之前我们假设了M为有限个的时候,机器学习可以进行。上一节课我们讨论了M是无限个的时候,我们定义了一个成长函数,即dichotomy的最大个数。可以看到,当是多项式,那么不等式会表现好,如果是指数则表现不一定会好。又提到,如果存在一个break point时,可能会越来越远离2^N,而这就是我们所希望的。
一、回顾
我们首先回顾一下上一次讲的内容,即四种成长函数与break point的关系:
相当于对一维数轴的N个点进行分类,
如图,只有阈值的正方向被分类为正。
所以,它没法分‘x o’这样的数据,所以在break point 在2.
————————————————————————————————————————————————
相当于h是一个区间,这个区间内含着的点被分类为正。
所以,它没法分‘o x o’这样的数据,所以在break point 在3.
————————————————————————————————————————————————
相当于h是一个凸集,当在凸集内时,点被分类为正。
由于成长函数是dichotomy的最大个数。所以我们看如何分布数据才有可能找到dichotomy的最大个数,为了使得点两两间不受影响,所以我们使得数据集D按照如下的凸分布,即所有的数据点围成一个圆圈,
可以看到只要我们把所有的正点连起来,就可以正确分类,显然没有没办法分的情况,所有情况都可以分,即。这种情况下,N个点所有可能的分类情况都能够被hypotheses set覆盖,我们把这种情形称为shattered。通俗来讲shattered就是:。
————————————————————————————————————————————————
2D感知是指用一条直线分割两类的点。直线的一面被分类为正,另一面被分类为负,可以看到在左下角这种情况时候,不能仅用一条直线就完美分类,所以break point在4。
————————————————————————————————————————————————
二、B(N, K):成长函数的上限
如果我们已知break point,那我们能否知道他的成长函数是多少或者最大可能是多少呢?
我们来看一个例子,如果我们已知break point在2,即k=2,
那么我们肯定可以知道
N=1,,
N=2,最大是3(意味着不会shatter 任意两个点)
那么N=3时会怎么样呢?
先看如果h只有一种时候的情况,就是仅把他们都分类为正。那么此时不会shatter 任意两个点。
我们增加h的种类,使得它不会使得点全分类为正,还有别的分类‘’o o x。此时也不会shatter 任意两个点。
继续增加h的种类,新增分类‘’o x o。此时也不会shatter 任意两个点。
继续增加h的种类,新增分类‘’o x x。此时x2和x3被shattered。
所以上面的那种分类不能算,我们看其他新增的,新增分类‘x o o’,此时不会shatter 任意两个点
继续增加h的种类,新增分类‘’x o x。此时x1和x3被shattered。
继续这样试下去....
可以发现,当N=3时,最大是4,4远小于2^3。可以看到,只要出现一个break point,那么对未来的成长函数会产生一个限制。
我们的一个想法是:
我们想知道在break point之后的点的的上限是多少,我们定义一个上限函数B(N, K),而且,当我们知道break point K=?可以推出,从而可以知道B(N, K),一个麻烦的方法是穷举法。
我们先说说找到B(N, K)的好处:在将来,我们只需要看break point在多少就行了,而不用看具体的h是多少,通俗一点的解释是,例如2D感知和正区间的break point都在3,但现在我们不管h究竟是什么函数,是2D感知还是正区间,只需要明白break point一样,我们按一种类型进行研究。
那么究竟如何确定B(N, K)呢?
我们先看一些已知的情况。
比如刚才提到的B(2, 2)=3,B(3, 2)=4,以及显然的B(N, 1)=1.
值得注意的是B(N, K)只是一个上限,实际的可能会小。
三、B(N, K)的上限:成长函数上限的上限是多少?
以B(4,3)为例,首先想着能否构建B(4,3)与B(3,x)之间的关系。
我们先用穷举法看一下,B(4,3)=11
首先关注x4,它有两种样子:
橙色:成双成对,即其他三个点一样的情况下,‘o’,‘x’都有,记为个
紫色:只有单个的,记为个
,我们再看下面这张图,由于我们知道k=3,所以任意三个点,比如现在的x1,x2,x3不会shatter,所以得到
我们拿出橙色的部分,可以看到x4已经都成双成对了,所以如果x1,x2,x3中某两个点shatter,即两个点也是成双成对,那么这两个点和x4的组合就会成为3个点的shatter(与已知矛盾,所以x1,x2,x3中不会有两个点shatter)。
因此橙色的个数。
可以得到:
以及进一步
可以看到B(N,k)的上界是N^(k-1)。所以会被B(N,k) bound住,B(N,k)会被一个N的多项式poly(N)bound住。其实这里就是给了一个B(N, K)上限的上限,上述的小于等于号可以被证明为等号。(视频没有详细解答)
四、理论部分
由上面可能知道,不等式中的成长函数可能是多项式一样的,那么我们能否直接将带入到原不等式呢?就像下面这样:
但我们实际上的结果不是上述那样的,是一个差不多的版本:
课程不具体讲述他的每一步数学细节,而是大概提供一个思路。
主要有三个步骤:
1.用代替
在原来的式子中,因为样本的个数是有限的,所以可以h的所有种类,是有限个的,但是在空间中样本无限,而且直线稍微变一下角度就是不同的h,所以有无限个。
那么如何让有限呢?除非点有限,所以我们可以拿不同于原资料D的新资料D‘(D‘中也是有N个点),来计算去估计。也就是说使用D‘估计出的值。
我们可以得到一个结论:如果今天有BAD发生(和很远),那么大概率和也会很远(一种新BAD)。所以我们可以将原来的BAD换成新的一种BAD。
所以我们可以获得:
左边这个1/2是因为:上述事情是“大概率”的,所以肯定大于1/2。而且右边更严格了,因为我们希望和更严格一点。
2.按类别分解H
我们这边在乎的是BAD,如果我hypothesis set在D和D'上作出一样的dichotomy,那么今天他的和都会长得一样,所以我们只要知道:
用下图直观的解释一下我们所做的事情:
图一是所有dataset,红色表示发生错误的概率只有红色部分,但是图二是使用union bound(这会使得放缩太大)发现发生BAD的几率占据了整个平面,但现在其实我们知道他是有交集的,实际情况是图三那样的。以下是我个人的理解:所以现在我们不用在全平面找BAD了,可以用D和D‘中的2N个点来固定hypothesis set了。
3.固定hypothesis set
这是我们使用抽样D'时候的情况,我们现在要看抽样一次和抽样所有取平均有什么差别。比如抽D'和抽D+D'(2N个)的平均:
因此我们引入成长函数,得到了一个新的不等式,称为Vapnik-Chervonenkis(VC) bound:
可以看到这个 bound用了很多近似,既然不是那么准,为什么大量时间研究呢?(以后会讲)
总结
林轩田《机器学习基石》(六)—— Theory of generalization相关推荐
- 台大林轩田·机器学习基石记要
台大林轩田·机器学习基石记要 昨天开始看林轩田的机器学习基石,从今天起开始去粗取精 第一讲比较基础,一些概念自己早已经理解了,所以不再做笔记,有点印象的是讲到了ML.DL.AI的一些联系与区别,ML主 ...
- 台湾大学林轩田机器学习基石课程学习笔记13 -- Hazard of Overfitting
红色石头的个人网站:redstonewill.com 上节课我们主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行分类,分析了非线性变换可能会使计算复杂度 ...
- 林轩田机器学习基石(Machine Learning Foundations)笔记(一)
要求两周之内看完林轩田机器学习基石和技法,速度是要的,但是感觉看得太快我会不久就会忘记.因此记录一下梗概,顺便写写看视频时解决的不懂的地方(有种思想就是把知识传播给更多人,有时候就是靠大佬们善意的一句 ...
- 台湾大学林轩田机器学习基石课程学习 笔记资料汇总
笔记: 红色石头的专栏(写得非常好) 课后练习: 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总 https://download.csdn. ...
- 机器学习系列笔记:林轩田机器学习基石——机器学习的可行性
机器学习系列笔记:林轩田机器学习基石--机器学习的可行性
- 台湾大学林轩田机器学习基石课程学习笔记6 -- Theory of Generalization
红色石头的个人网站:redstonewill.com 上一节课,我们主要探讨了当M的数值大小对机器学习的影响.如果M很大,那么就不能保证机器学习有很好的泛化能力,所以问题转换为验证M有限,即最好是按照 ...
- 台湾大学林轩田机器学习基石课程学习笔记14 -- Regularization
红色石头的个人网站:redstonewill.com 上节课我们介绍了过拟合发生的原因:excessive power, stochastic/deterministic noise 和limited ...
- 台湾大学林轩田机器学习基石课程学习笔记11 -- Linear Models for Classification
红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Logistic Regression问题,建立cross-entropy error,并提出使用梯度下降算法gradient ...
- 台湾大学林轩田机器学习基石课程学习笔记1 -- The Learning Problem
红色石头的个人网站:redstonewill.com 最近在看NTU林轩田的<机器学习基石>课程,个人感觉讲的非常好.整个基石课程分成四个部分: When Can Machine Lear ...
- 台湾大学林轩田机器学习基石课程学习笔记15 -- Validation
红色石头的个人网站:redstonewill.com 上节课我们主要讲了为了避免overfitting,可以使用regularization方法来解决.在之前的EinEinE_{in}上加上一个reg ...
最新文章
- 在Mac上通过VMware Fushion 15.1配置静态IP虚拟机实录
- 人工智能算法的可解释性方法研究
- for in在python中什么意思_python for in中的in
- HTTP-GET, HTTP-POST and SOAP的比较
- python os模块 常用命令
- python提示对话框自动关闭_Python - tkinter:打开和关闭对话框窗口
- java存放的位置_java数据类型的种类以及存放的位置
- pta 习题集 5-2 找出不是两个数组共有的元素 (5分)
- 怎么彻底移除虚拟机_Parallels Desktop虚拟机怎么完全卸载? PD虚拟机完全卸载方法...
- 走进JavaWeb技术世界4:Servlet 工作原理详解
- 什么是根目录,网站根目录是哪个?
- 弗吉尼亚理工大学计算机科学,美国弗吉尼亚理工大学计算机科学本科.pdf
- Ubuntu的安装、更新、下载软件命令
- Redis - Redis分布式算法原理——Hash一致性理解 Hash倾斜性解决方案
- For 循环优化,提升效率
- 小米手机安装推特后频繁闪退
- 《终结拖延症》读书笔记
- Android SDK安装及配置模拟器
- Tensorflow LMST预测股票
- GOM传奇引擎登录器商业版与免费版的区别