VC维的直观定义
- 对一个指示函数集,如果存在h个样本能够被函数集中的函数按所有可能的2^h种形式分开,则称函数集能够把h个样本打散。
- 函数集的VC维就是它能打散的最大样本数目h。
- 若对任意数目的样本都有函数能将它们打散,则函数集的VC维是无穷大。
VC维是一个评判模型复杂程度的工具。 VC维越大则模型的复杂度越高。
线性函数的VC维
VC维:将N个点进行分类,如分成两类,那么可以有2^N种分法,即可以理解成有2^N个学习问题。若存在一个假设H,能准确无误地将2^N种问题进行分类。那么这些点的数量N,就是H的VC维。一个实例就平面上3个点的线性划分的VC维是3。而平面上 VC维不是4,是因为不存在4个样本点,能被划分成2^4 = 16种划分法,因为对角的两对点不能被线性划分为两类。更一般地,在r 维空间中,线性决策面的VC维为r+1。
结论:d维空间超平面的VC维是d+1
VC维与SVM的关系
准备来说应该是VC维与机器学习算法的关系。
支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上。
SVM是结构风险最小化。(结构风险:置信风险 + 经验风险)
置信风险的影响因素有:训练样本数目和分类函数的VC维。训练样本数目,即样本越多,置信风险就可以比较小;VC维越大,问题的解的种类就越多,推广能力就越差,置信风险也就越大。因此,增加样本数,降低VC维,才能降低置信风险。而一般的分类函数,需要提高VC维,即样本的特征数据量,来降低经验风险,如多项式分类函数。如此就会导致置信风险变高,结构风险也相应变高。过度学习即overfit,就是置信风险变高的缘故。
结构风险最小化SRM(structured risk minimize)就是同时考虑经验风险与结构风险。在小样本情况下,取得比较好的分类效果。保证分类精度(经验风险)的同时,降低学习机器的 VC 维,可以使学习机器在整个样本集上的期望风险得到控制,这应该就是SRM的原则。
当训练样本给定时,分类间隔越大,则对应的分类超平面集合的 VC 维就越小。(分类间隔的要求,对VC维的影响)
根据结构风险最小化原则,前者是保证经验风险(经验风险和期望风险依赖于学习机器函数族的选择)最小,而后者使分类间隔最大,导致 VC 维最小,实际上就是使推广性的界中的置信范围最小,从而达到使真实风险最小。
训练样本在线性可分的情况下,全部样本能被正确地分类(咦这个不就是传说中的yi*(w*xi+b))>=1的条件吗),即经验风险Remp 为 0 的前提下,通过对分类间隔最大化(咦,这个就是Φ(w)=(1/2)*w*w嘛),使分类器获得最好的推广性能。
对于线性不可分的状况,可以允许错分。即对于离群点降低分类间隔。将距离原来的分类面越远,离群就越严重,这个距离,可以用一个值--松弛变量来表示,只有离群点才有松弛变量。当然,要对这个值加以限制,即在最小化函数里,加入一个惩罚项,里面还有一个可以人为设定的惩罚项C。当C无限的大,那么就退化为硬间隔问题,不允许有离群点,问题可能无解。若C=0,无视离群点。有时C值需要多次尝试,获取一个较好的值。
机器学习算法学习的过程:
可学习的两个核心条件是:
总结:
VC维反映了函数集的学习能力,VC维越大,能学到的模型越复杂。根据前面的推导,我们知道VC维的大小与学习算法无关,与数据集的具体分布无关,与我们求解的目标函数也无关,只与模型和假设空间有关。另外,实践中有这样一个规律:一般情况下,假设空间的VC维约等于假设自由变量的数目。
VC维越大越容易过拟合。?
参考:
上课的ppt