标签:
[此笔记源于台湾大学林轩田老师《机器学习基石》《机器学习技法》]
机器学习真的可以起作用吗?答案是肯定的。
那为什么这个问题还要拿出来讲一讲呢?
考虑一个问题:
现在知道了5个数据,预测其余3个xn的输出,有如下可能:
我们根本没法预测!
这个问题formally的表示是:对于一个整体,我们随机抽取一个数据集D,那么inside D内,g≈f,但是outsideD(即整体),g与f的关系是什么?
我们用符号Ein(h)来表示h在inside D上犯的错误,用Eout(h)来表示h在outside D上所犯的错误。
Step 1:Validation
根据概率论,如果D足够大的话,那么h在inside D上的表现跟outside D上的表现很相似。这一关系用数学语言描述则为
如果N足够大,那么Ein(h) ≈ Eout(h)。
也就是说,对于我们要预测的整体,从中抽取一个数据集D,如果我们有一个hypothesis h,且在D上Ein(h)很小,那么Eout(h)也很小,我们可以说:在整体上,h犯的错误会非常小。
这一论述的适用范围是验证(Validation):当我们有一个h时,我们可以用这一方法来验证h是不是表现很好。但是,并没有涉及到learning Algorithm A。我们更加关心如何通过learning Algorithm A到得到这样的h。
一个合理的假设是:原则1:learning Algorithm A可以在hypothesis set H上寻找在training dataset上Ein(h)非常小的h,来用作f的估计。
step2:training
上述用来设计learning Algorithm A的原则是不是合理的呢?答案是不合理。
这里的orange颜色表示h预测错误,green表示预测正确。假设罐子里的代表整体。那么从图中看,Eout(h2)最小,但是Ein(hM)=0,我们应该选择hM么?它在整体上表现是如此的不好。
这里反应的一个问题是:是training Dataset是否具有代表性的问题。
对于Step1中的validation过程,我们考虑的问题是:traning dataset D是否能够代表整体。(譬如高斯分布中选择一个点,有99%的可能在置信区间之内,我们就说,选取的点有很大可能代表整体。)如果D能代表整体,而h在D上表现良好,那么h在整体上表现良好。
对于A算法选择h过程则不然。我们要考虑的问题是:h在D上的表现能不能代表h在整体上的表现。假设hypothesis set H无限多,那么总有瞎猫碰上死耗子的可能性:有一个h在D上表现完美,而在整体上表现很差。也即问题是:h1,…,h5在D上的表现可以代表在整体上的表现,而h6在D上的表现不能代表其在整体上的表现。但是A选择了h6,那么结果就与我们的预期大相径庭了。
learning Algorithm A可以在hypothesis set H上寻找在training dataset上Ein(h)非常小的h,来用作f的估计。这一原则的使用条件是:对于hypothesis set中的所有的h,h在D上的表现都能代表h在整体上的表现。
用“BAD D”来表示对于h,Ein(h) 与 Eout(h)相差很多的D;“GOOD D”来表示对于h,Ein(h) ≈ Eout(h)的D。下面是具体的论证过程。
上面这么多D是什么意思呢?就是如果我们从整体中抽取一个D,那么有无穷多种可能,可能能代表(GOOD D),可能不能代表(BAD D),这是对D是否能够代表整体的具体化描述。根据Step1中的描述,我们知道这一概率就是Hoffding 不等式。
上面的这一个表示对h在D上的表现能不能代表h在整体上的表现的具体化描述。譬如D1,对于h2是GOOD D,对于h1却是BAD D。我们希望找到一个对于所有h都是GOOD的D,这一可能性大吗?如果很大。我们我们就可以使用我们上面说的原则1来设计算法A了。
这一概率代表的是对所有的h,D都是GOOD的概率。看的出来,当M小,N大的时候,我们就可以放心大胆地使用原则1来设计算法啦。
小结
根据我们上面的两个步骤,我们可以对机器学习算法做一个小的总结:
只要做好这两步就好。
我们可以看出,M在这两个问题中起了很重要的作用:
当M比较小的时候,我们根据我们上面的推导,Ein(h) ≈ Eout(h)很容易做到。但是因为M太少,我们可供选择的h就太少,可能很难得到使得Ein(h) ≈ 0 的h。反之,则是M比较大的时候的问题。我们可以看出:在机器学习算法中。M是一个非常重要的因素。
标签:
原文地址:http://www.cnblogs.com/wangyanphp/p/5438128.html