[关闭]
@Frankchen 2016-03-10T04:19:51.000000Z 字数 34852 阅读 3328

台大机器学习基石学习笔记

机器学习


Lecture 1: The Learning Problem

1.Course Introduction

主要是介绍课程的一些相关情况。

2.What is Machine Learning

如果一个系统能够通过执行某个进程改善它的性能,这就是学习。赫尔伯特·西蒙

Machine Learning
Improving some performance measure with experience computed from data.

何时适用ML:

  1. 存在某种可以被学习的规律
  2. 规律难以以编程实现
  3. 拥有和特征有关的数据可供学习

3.Applications of Machine Learning

机器学习的应用极广:已经出现在人们生活(衣食住行)的各个角落。

4.Components of Machine Learning

5.Machine Learning and Other Fields


Lecture 2: Learning to Answer Yes/No

1.Perceptron Hypothesis Set

2.Perceptron Learning Algorithm (PLA)

1.逐个遍历各个point(随机或者按序列),直到找到错误:

2.correct :

3.遍历完毕所有样本点,没有发现错误:
return last (called ) as

3.Guarantee of PLA

证明PLA在线性可分额样本里训练,更新过程一定收敛:
1.wf一定完美区分所有的点(所有的点的向量与之内积为正):


2.每次找到错误才更新:

3.什么是错误的点:

根据以上三个结论我们可以通过计算的夹角余弦以得到(更新次数)收敛的结论。

4.Non-Separable Data

对于样本有噪声,线性不可分的情况,若直接通过计算所有的取错误率最小的那个的方法是可以证明是非常困难的,所以对PLA算法进行加入比较步骤的口袋算法(贪心算法),即每次存储,对于下一次额更新,比较存储的和当前的,取错误更少的保存,继续迭代,直到无法再找到错误更少的,即作为


Lecture 3: Types of Learning

1.Learning with Different Output Space

按照不同的输出我们可以把ML分为以下几类:

2.Learning with Different Data Label

按照数据的不同的标签不同,可以把ML分为以下几类:

3.Learning with Different Protocol f (, )

按照数据的传输方式,可以把ML分为以下几类:

4.Learning with Different Input Space

按照输入空间的不同,可以把ML分为以下几类:


Lecture 4: Feasibility of Learning

1.Learning is Impossible?

机器学习的大多数情况下是让机器通过现有的训练集(D)的学习以获得预测未知数据的能力,即选择一个最佳的h做为学习结果,那么这种预测是可能的么?为什么在采样数据上得到的h可以认为适用于全局,也就是说其泛化性的本质是什么?通过两个简单的小题目引出这个问题。

2.Probability to the Rescue

课程首先引入一个情景:

如果有一个装有很多(数量很大以至于无法通过数数解决)橙色球和绿色球的罐子,我们能不能推断橙色球的比例?很明显的思路是利用统计中抽样的方法,既然我们无法穷尽数遍所有罐子中的球,不如随机取出几个球,算出其中两种颜色球的比例去近似得到我们要的答案,这样真的可以么?

我们都知道小概率事件也会发生,假如罐子里面大部分都是橙色球,而我们恰巧取出的都是绿色,这样我们就判断错了,那么到底通过抽样得出的比例能够说明什么呢?似乎两者不能直接划等号。

由此,课程中引入了一个非常重要的概念,PAC,要理解这个,先得理解一个超级重要的不等式:Hoeffding's inequality


这个不等书说明了对于未知的那个概率,我们的抽样概率可以根它足够接近只要抽样的样本够大或者容忍的限制变松,这个和我们的直觉是相符的。式子最后给出了probably approximately correct (PAC)的概念,即概率上几乎正确。所以,我们通过采用算出的橙球的概率和全局橙球的概率相等是PAC的。

3.Connection to Learning

这些和机器学习有什么关系?其实前文中提到的例子可以和机器学习问题一一对应。

映射中最关键的点是讲抽样中橙球的概率理解为样本数据集D上h(x)错误的概率,以此推算出在所有数据上h(x)错误的概率,这也是机器学习能够工作的本质,即我们为什么在采样数据上得到了一个假设,就可以推到全局呢?因为两者的错误率是PAC的,只要我们保证前者小,后者也就小了。

4.Connection to Real Learning

请注意,以上都是对某个特定的假设,其在全局的表现可以和其在DataSet的表现PAC,保证DataSet表现好,就能够推断其能泛化。可是我们往往有很多假设,我们实际上是从很多假设中挑一个表现最好(Ein最小)的作为最终的假设,那么这样挑的过程中,最小的Ein其泛化能力一定是最好么?肯定不是。

继续用抛硬币的例子说明,很形象,每一个罐子都是一个假设集合,我们默认是挑表现最好的,也就是全绿色(错误率为0)的那个假设。

但是当从众多假设选择时,得到全对的概率也在增加,就像丢硬币一样,当有个150个童鞋同时丢硬币5次,那么这些人中出现5面同时朝上的概率为99%,所以表现好的有可能是小概率事件发生(毕竟对于每个假设其泛化能力是PAC),其不一定就有好的泛化能力(Ein和Eout相同),我们称这次数据是坏数据(可以理解为选到了泛化能力差的假设),在坏数据上,Ein和Eout的表现是差别很大的,这就是那个小概率事件。

Hoeffding's inequality告诉我们,每个h在采样数据上Ein和Eout差别很大的概率很低(坏数据):


由于有这个bound,那么我们每次选取Ein最小的h就是合理的,因为如果M小N大,出现表现好的坏数据的假设几率降低了,我们选择表现后就有信心认为其有良好的泛化能力。


Lecture 5: Training versus Testing

1.Recap and Preview

复习一下我们机器学习的流程图,我们有两个问题
1.
2. 是否足够小
而M(hypothesis的数目)在其中这两个问题中扮演的角色有:

2.Effective Number of Lines


上式展示了总体上坏事情发生的概率,我们可以观察到,这个概率以一个作为上限,但是当M是一个发散的值(PLA算法)的时候,这个不等式并没有意义。

事实上M往往是over estimated的(各个hypothesis有重叠,union没那么大)。那么怎么解决这个问题呢?

我们以二元分类来阐述怎么解决(当然最后是可以推广到其他学习问题的):

对于一个training example{ x1 }。虽然看起来我们的hypothesis set有无数条线。但实际上这些hypothesis只有两类罢了----把x1分为叉叉的一类和把x1分为圈圈的一类。

这样问题便转化为:


也就是把无数的线划分成等价类。我们可以发现,线的划分同时也取决于点的个数。一个二维点有两种类型的线(也就有两种类型的hypothesis),二个二维的点就有四种类型的线了(也就有四种类型的hypothesis)。

3.Effective Number of Hypotheses

Dichotomy
Mini-hypotheses,可产生的有效的分类
growth function

于是我们用dichotomy的的bound取代了的无限bound。但是仍然是一个较大的值,我们继续希望用一个更小的bound取代它。

显然,如果growth function是一个关于N的多形式函数,那么利用之前的hoeffding不等式,我们会得到一个不错的结果。

下面是几个实际的例子:

Positive Rays:
易得其
Positive Intervals:
易得其
Convex Sets:
虽不好直接考虑,但是可以想象一种极端的情况:所有的点都排列在圆的周长上,其

4.Break Point

引入shatter的概念:
shatter
对于N个点,能用线把2^N种点的情况,也就是2元分类下N个点可能出现的所有情况都作出正确的分割。

对于K个输入(K个点),我们知道break point是不能作出shatter的那个最小的K。一旦K是break point,那么大于K的输入也无法shatter(这是显然的,我只要把多出点重叠,就可以reduce到K个点情况了)。

现在假设break point为2,再我们假设4个输入点,显然4个输入点里任意两个点无法被shatter(也就是无法做出一条线使任意的两个点能被分为oo,xx,ox,xo这四种情况)。这样我们这四个点可能出现的组合就被break point大大的限制住了。

Lecture 6: Theory of Generalization

1.Restriction of Break Point

总结归纳之前结论:

  1. Positive Rays的: break point at 2;
  2. Positive Intervals的: break point at 3;
  3. Convex Sets的always: no break point;
  4. 2D preceptrons的: break point at 4

2.Bounding Function: Basic Cases

于是我们引入函数bounding function :
maximum possible when break point = k

接下来根据已知的和显而易见的关系来画Table of Bounding Function:

3.Bounding Function: Inductive Cases

接下来如何呢?我们分析可能会与上表之中的它的上一排有关,所以用计算机计算出了的所有的11种可能情况,再把这十一种情况按照的是否成对出现分为两组一共有个,因为表示的是4个点中不能出现任何三个点shatter的情况,故只考虑的情况下,把(2重复出现只算一半)单独留下来,必然也不会shatter三个点故有


而单独考虑组的情况,必然其不会shatter2个点(因为组中的每个点都对应的两种情况,组如果shatter2个点,加上必然shatter3个点),于是有:


于是:


推广到其他:

用数学归纳法可以证明:


当k=1时不等式恒成立,因此只要讨论k≥2的情形。N=1时,不等式成立,假设N≤No时对于所有的k不等式都成立,则我们需要证明当N=No+1时,不等式也成立。根据前面得到的结论,有:

因此当时,不等式也成立。

4.A Pictorial Proof

成长函数的上界都被bound住了,那我们的成长函数同样也可以被这个bound住,因此对于存在break point k的成长函数而言,有:

而右手边(RHS)实际上是一个最高次项为k-1次的多项式。以2D Perceptrons为例,它的break point k=4,则它的成长函数会被B(N,4)给bound住

故利用有限的来替换无限的大,得到遇到Bad Sample的概率上界:


  
其中中所有有效的方程(Effective Hypotheses)遇到Bad Sample的联合概率,即中存在一个方程遇上bad sample,则说遇上bad sample。用更加精准的数学符号来表示上面的不等式:

  注: - 中存在()满足()…的
  但事实上上面的不等式是不严谨的,为什么呢?描述的是作用于数据量为的资料,有效的方程数,因此当中每一个作用于都能算出一个来,一共能有个不同的,是一个有限的数。但在out of sample的世界里(总体),往往存在无限多个点,平面中任意一条直线,随便转一转动一动,就能产生一个不同的来。的可能取值是有限个的,而的可能取值是无限的,无法直接套用union bound,我们得先把上面那个无限多种可能的换掉。那么如何把变成有限个呢?
  假设我们能从总体当中再获得一份笔的验证资料(verification set),对于任何一个我们可以算出它作用于上的,由于也是总体的一个样本,因此如果离很远,有非常大的可能也会离得比较远。

  事实上当N很大的时候,可以看做服从以为中心的近似正态分布(Gaussian),如上图。这个事件取决于,如果,则如果我们从总体中再抽一份出来,有50%左右的可能性会发生,还有大约50%的可能
  因此,我们可以得到的一个大概的上界可以是,以此为启发去寻找二者之间的关系。
  引理:

  上面的不等式是从何而来的呢?我们先从RHS出发:

上式第二行的不等号可以由得到,第三、四行则是贝叶斯公式,联合概率等于先验概率与条件概率之积。
下面来看看不等式的最后一项:

。对于一个固定的data set 来说,我们任选一个使得,注意到这个只依赖于而不依赖于噢,对于来说可以认为这个 is forced to pick out。
  由于是对于来说满足的任意一个hypothesis,因此可以把式子中的上确界(sup)先去掉。

  这里就要稍微出动一下前人的智慧了:

  为了直观一点就不写了。经过各种去掉绝对值符号又加上绝对值符号的运算,可以发现LHS的两个不等式是RHS那个不等式的充分非必要条件。而LHS第二个不等式是已知的,对于必成立的。因此我们拿LHS这个充分非必要条件去替换RHS这个不等式,继续前面的不等式:

  最后一个不等号动用了Hoeffding Inequality:

  之前说过对于来说, is forced to pick out,因此。接着把替换为,就成了。则我们可以得到引理中的不等式。
  对于,一个比较合理的要求是,譬如我们有400笔资料,想要相差不超过0.1。注意到这只是一个bound,只要要求不太过分,也不能太宽松即可,适当的宽松一点是OK的。当然这里也是想跟之前所说的 “的一个大概的上界可以是” 当中的2倍有所结合。
  所以就有

。带回引理,可得:

  这样一来我们就把无限多种的换成了有限多种的,因为的大小相等,都为,因此我们手中一共有笔数据,这样作用于最多能产生种dichotomies。此时我们针对上面的不等式,就又可以使用union bound了。

  前面的动作相当于先从总体中抽出笔数据,把这笔数据当成一个比较小的bin,然后在这个bin中抽取笔作为,剩下的笔作为之间是没有交集的。在我们想象出来的这个small bin当中,整个bin的错误率为,又因为:


  所以用RHS替换LHS之后,前面不等式就又可以使用Hoeffding inequality了:

  这上面千辛万苦得出来的这个bound就叫做Vapnik-Chervonenkis (VC) bound:

Lecture 7: The VC Dimension

1.Definition of VC Dimension

上节课讲到了VC Dimension以及VC Bound。VC Bound所描述的是在给定数据量N以及给定的Hypothesis Set的条件下,遇到坏事情的概率的上界,即差很远的概率,最多是多少。VC Bound用公式表示就是:


  其中为Hypothesis Set的成长函数,有:

  因为寻找所有Hypothesis Set的成长函数是困难的,因此我们再利用来bound住所有VC Dimension为的Hypothesis Set的成长函数。所以对于任意一个从中的来说,有:

  因此说想让机器真正学到东西,并且学得好,有三个条件:

  1. 是有限的,这样VC Bound才存在。(good )
  2. 足够大(对于特定的),这样才能保证上面不等式的bound不会太大。(good )
  3. 算法有办法在中顺利地挑选一个使得最小的方程。(good )

  为什么要费那么大的力气来讲这个VC Bound和VC Dimension呢?因为对于初学者来说,最常犯的错误就是只考虑到了第3点,而忽略掉了前两点,往往能在training set上得到极好的表现,但是在test set中表现却很烂。关于算法的部分会在后续的笔记当中整理,目前我们只关心前面两点。

2.VC Dimension of Perceptrons

  对于以下几个,由于之前我们已经知道了他们的成长函数(见机器学习笔记-VC Dimension, Part I),因此可以根据,直接得到他们的VC Dimension:

  由于convex sets的,不满足上面所说的第1个条件,因此不能用convex sets这个来学习。

  但这里要回归本意,通过成长函数来求得没有太大的意义,引入很大的一部分原因是,我们想要得到某个Hypothesis Set的成长函数是困难的,希望用来bound住对应的。对于陌生的,如何求解它的呢?

3. Physical Intuition of VC Dimension

  对于较小的,可以从它最多能够shatter的点的数量,得到,但对于一些较为复杂的模型,寻找能够shatter掉的点的数量,就不太容易了。此时我们可以通过模型的自由度,来近似的得到模型的

  维基百科上有不止一个关于自由度的定义,每种定义站在的角度不同。在这里,我们定义自由度是,模型当中可以自由变动的参数的个数,即我们的机器需要通过学习来决定模型参数的个数。

  譬如:

  我们不能偷看资料,或者说不能拿测试资料当成验证资料,因为这样做毫无意义,这样得到 的hypothesis 拿去预测的话就达不到好的效果。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注