机器学习基石(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和成长函数的成长速度有关系:
总结: