机器学习基石(5)--Training VS. Testing

我们需要在train集上表现的好的同时,还要在test集上也表现的好。那么备选hypothesis的数量M在这中间是起的什么作用呢?

M的两种可能性:

M很小的时候,坏事情发生的概率很小;但是hypothesis得选择就很小了,不见得能找到很小的Ein

M很大的时候,选择就多了,我们能保证Ein很小,但是坏事情发生的概率增加了。

所以M得选择是一个trade-off的问题。

在解决无限大的M问题可不可行的时候,我们可以选择一个有限的mΗ来替代M(暂且认为可以替代):

只要发生一件BAD的事情,就记录一个概率,那么总的BAD的事情发生的概率应该是or的关系,也就是把单个事件发生的概率加起来,但是又没有他们的总和来的大。也就是说BAD事件发生一次的概率的上限就是每一个BAD事情发生的概率的总和。

而此时,当M是无限大的时候,这个概率好像是变得无限大了。但是,如果有两个很接近的hypothesis,他们发生BAD事件的概率也应该很接近,所以,上述的推导没有考虑这种很接近的情况,也就是说,有很大一部分的BAD事件的概率是被重复计算了的。

所以我们得找出那些重叠的部分。

以PLA为例,平面上有无限多条线,从一个data的视角来看这些线,只有两种(二元分类的情况下),一种是把它说成是圈圈的线,另一种是把它说成是叉叉的线。

从两个data的视角出发,有4种线:

而从三个data的视角看的话,有不到8种线:(因为会出现三个data在一条直线上的情况,在这种情况下,一条线无论如何也分不开)

而在4个data的视角来看:

Effective Number of Lines: maximum kinds of lines with repect to N inputs x1, x2,...,xN

在N变大的时候,effective number of lines的数量其实是有上限的:

所以无限的M可以用effective(N)来替换掉:

而effective(N)≤2N,所以,无限大的M其实是有一个上限的,使得机器学习会无视M的大小而成为可能。

在二分类的情况下,hypothesis set的数量为:

hypothesis set的数量对输入的数据x有依赖,设mH(N)为二元分类最大的hypothesis set数量,叫做growth function。

而这个成长函数(growth function)的一个特性就是它是是有限的,如何解呢?

把情况简化成一维时,试着求解成长函数:输入的data都是一维的实数,hypothesis是h(x)=sign(x–threshold)

假设4种x:

所以归纳得出结论:在二元分类时,得出的y的情况的数量最多就是N+1种,而这个N+1远远小于2N

如果我们换一种hypothesis set,让函数得出在某一个区间内(interval)是+1,其他都是–1:

还是以4种x为例:

得出结论如下,同样的,这个hypothesis set的数量也是远远小于2N

如果把hypothesis放在平面中:

我们可以把所有的输入x都放在一个圆内,把输出y放在圆的边上,把所有的y链接起来的面积都是所有可能的hypothesis set的样子。所以,我们的hypothesis set的数量就等于2N

总结一下;我们刚刚举例了4种成长函数的样子:

如果我们想要用mH来取代M时,ploynomial时效果好,exponential时效果不好。

break point:第一个开始变小的点。在2D的PLA中, break point是4。

剩下的例子的break point在:

break point和成长函数的成长速度有关系:

总结:

posted @ 2016-09-27 11:31  cyoutetsu  阅读(628)  评论(0编辑  收藏  举报