首页 > 代码库 > 机器为什么可以学习(3)----vc维

机器为什么可以学习(3)----vc维

1、主要内容

  上节课讲述了vc bound,表明了在去break point为最小的break point时,mH(N)的上限是vc bound是一个多项式级别的上限;

  技术分享

  vc维定义为当输入数据为N个点时,有一个假设空间H可以准确无误的将这N个点所有的分类情况都覆盖,那么假设空间的H的vc维就是N,当一个假设空间H维有限(霍夫丁不等式的上限的参数mH(N)为有限的,因此bad的概率就会变得很小)时,当数据输入量够大(即霍夫丁不等式中的参数N,当N越大时,霍夫丁的上限就越小)时,学习就是可能的。

 

2、vc 维的定义

  当成长函数mH(N)存在break point时,其上限会被一个bound function所限制,同时这个bound function是一个多项式:

  技术分享

  因此,在成长函数存在break point同时输入数据规模N很大时,Ein ≈ Eout在很大的概率上都是正确的,保证了经训练数据训练得出的模型可以使用在测试数据上。

  经过两组数据可知:

  技术分享

  在N很大的情况下B(N,k) << Nk-1,因此有:

  技术分享

  当vc bound存在时,对于hypothesis set中的任意一个hypothesis来说,霍夫丁不等式都是成立的也就是:

  技术分享

  如果将成长函数mH(N)换成vc bound的上限,那么上述不等式可以写成:

  技术分享

  因此,根据某演算法从hypothesis set中选择的函数 g 必然也满足上式:

  技术分享

  上式成立的前提条件为:

  (1) 成长函数存在break point

  (2) 训练数据量够大

  技术分享

  如果存在一个好的算法可以从hypothesis set中挑选出一个Ein最小的函数 g 那么学习的确是可行的。

  技术分享

  到目前,学习可行性的有了一定的理论支撑,此时的情况都是理想的情况,包括理想的hypothesis set(成长函数存在break point),理想的数据规模(够大), 理想的演算法,实际情况以上都不能决定保证,只是大概率的情况下可以保证,因此可以说大概做到学习。

  那么vc 维什么定义?vc 维与break point紧密联系:

  技术分享

  也就是说,vc维表示的hypothesis set 可以覆盖到数据规模中每一个特征的取值的情况的最大值,也就是break point的前面一个:

  技术分享

  当输入数据规模小于vc 维时,表示hypothesis set 可以全部覆盖到某些数据集,此时考虑的时不同的数据集整体的关系。

  当数据输入规模大于vc 维时,表示此时的输入数据的规模N就是一个break point,因为vc 维决定了可以shatter的最大值,大于vc维的都是break point;

  技术分享

  因此上节课中成长函数的vc bound 可以写作:

  技术分享

  dvc = k - 1;

  几种vc 维:

  技术分享

  因此一个好的hypothesis set就是其vc 维有限;

  vc维对于学习来说有什么好处?两者有什么联系?

  vc 维有限可以保证Ein和Eout 在训练数据和测试数据上很接近,同时:

  (1)不考虑算法的影响,无论演算法选择的hypothesis 是好还是坏,vc维有限都可以保证Ein和Eout很接近;

  (2)之前的讨论中只是说输入数据是符合同一分布的,但是并不指定特定的分布,

  (3)不用考虑target 函数f,

  在以上的条件下一个完整的学习流程如下:

  技术分享

  3 感知机模型的vc维

  感知机模型的学习操作流程:

  技术分享

  (1)、线性可分的数据集的情况下

  (2)、PLA算法可以收敛,可以选择出一个函数使得Ein很小或者为0

  (3)、经过多次迭代选择后,可以找到目标函数。

  感知机模型操作流程对应的理论流程:

  技术分享

  (1)、数据来源于同一分布,且目标函数存在

  (2)、由于二维感知机模型的vc维为3,因此霍夫丁不等式成立,学习可行;

  (3)、如果数据量够大,可以得出Ein ≈ Eout

  以上是二维感知机模型的学习流程,那么对于3维或者更高维的感知机模型,是否有同样的理论?

  主要就是求解多维的感知机模型的vc维的值,已知的如下:

  技术分享

  经证明d维感知机模型的vc维的计算公式为 dvc = d + 1。

   4、 vc维的物理意义

  前面分析了d维感知机模型的vc维的计算公式:dvc = d + 1,那么具体来说vc维的物理含义是什么?表示hypothesis set 参数w的自由度;

  5、vc维结合霍夫丁不等式的使用

  (1)、估算需要的数据量

  (2)、计算模型的复杂度

  技术分享

 

  

 

  

 

 

  

 

 

  

 

 

 

  

 

机器为什么可以学习(3)----vc维