机器学习基石笔记-Lecture 5-7 VC dimension

为了引出VC维做了很长的铺垫。。VC维:用来描述假设空间的表达能力。

 

第四节讲到对有限的假设空间,只要N足够大,不管A如何选g,训练数据如何选取,g的训练错误率和真实的错误率都很接近。

现在先解决无限假设空间的问题。

希望找到一个 m_H 来替代无限大的M。

系数M的来源是因为对bad data的概率值进行了累加。

但是其实一些h在同一个data上是重叠的,union bound将概率放大了。这样就希望对h进行一些划分,找出在data上表现类似的h,归为一类。

 

这里举出了二维感知机分类的例子,来说明平面上只存在有限个h类。

 

然后引出 成长函数和 break point的概念。

dichotomy: 二分

 假设空间对N个有限的样本的各种划分产生相应的分割平面的个数,有上界2^N。

 

成长函数:

几种成长函数

如果想用成长函数替代M,希望m_H(N)不要随N增长的太快。

shatter:

数据集D被假设空间H打散(shatter),当且仅当对D的每个划分,存在H中的某假设与此划分一致。即当D的每种可能划分可由H中的某个假设来表达时,称H打散D。

如果一个数据集合没有被假设空间打散,那么必然存在某种划分可被定义在数据集中,但不能由假设空间表示。

H的这种打散数据集合的能力是其在这些数据上定义目标函数的表示能力的度量。可以说被打散的X的子集越大,H的表示能力越强。

break point:

对二维感知机来说,当N=4时,无法被shatter,break point = 4.

 

bounding function 上界函数

当break point 为k时,成长函数能不能被一个多项式上界限制住?

一堆证明后…… B(N,k) = O(N^(k-1))

 成长函数mH(N)<= 上限函数B(N,k) <= 多项式函数poly(N),只要成长函数有Break Point存在,那么该成长函数就是一个多项式。

然后推导出了VC bound。。。

如果假设空间存在有限的break point,那么m_H(2N)会被最高幂次为k–1的多项式上界给约束住。随着N的逐渐增大,指数式的下降会比多项式的增长更快,所以此时VC Bound是有限的。更深的意义在于,N足够大时,对H中的任意一个假设h,Ein(h)都将接近于Eout(h),这表示学习可行的第一个条件是有可能成立的。

至此,如要问题是可学习的,那么需要:

  1. 好的假设空间,即存在break point
  2. 好的数据,使Ein与Eout接近
  3. 好的算法,找到一个Ein很小的g

 

VC dimension:

d_vc 定义为 比 break point 小一的数。是能够被H shatter的最大的样本空间的样本数量。 由vc bound可知 VC维有限的假设是好假设。

如果我们将假设集合的数量|H|比作假设集合的自由度,那么VC维就是假设集合在做【二元分类】的有效的自由度,即这个假设空间能够产生多少Dichotomies的能力(VC维说的是,到什么时候,假设集合还能shatter,还能产生最多的Dichotomies)。

vc维可以近似地认为等于假设空间的参数个数。

如果要做一个好的预测,那么需要解决下面两个问题。

从vc维的角度来描述,如果它比较小,那么发生预测偏差很大的坏事情的可能性也就很小,那这有利于Ein接近Eout;但是,这是我们的假设空间的表达能力受到了限制,这样Ein可能就没有办法做到很小。

如果它比较大,那么假设空间的表的能力很强,Ein可以很小,但是发生坏的预测的可能性就很大。

 

模型复杂度:

图示说明,d_vc超过某一值后,模型的复杂度越高,它的泛化能力越差,即在out of sample上表现更差。对应的是过拟合。

 

样本复杂度:

描述在假设模型给定下,需要多少数据才能保证这个假设在大概率下是好的。

 

总结:如果假设空间的VC维是有限的,并且有足够多的数据,我们的算法又可以找到一个假设使得训练错误率很低的话,我们就可以学习到有效的模型或知识。

posted @ 2017-06-20 15:45  Akane  阅读(440)  评论(0编辑  收藏  举报