本章的思路在于揭示VC Dimension的意义,简单来讲就是假设的自由度,或者假设包含的feature vector的个数(通常状况下),同时进一步说明了Dvc和,Eout,Ein以及Model Complexity Penalty的关系。算法
一回顾机器学习
由函数B(N,k)的定义,能够获得比较松的不等式mh(N)小于等于N^(k-1)(取第一项)。函数
这样就能够把不等式转化为仅仅只和VC Dimension和N相关了,从而得出以下结论:学习
1 mh(N)有break point k,那么其就是多项式级别的,咱们认为假设数量不算多,是个好的假设;spa
2 N 足够大,这样咱们便算有了好的抽样数据集(假设不含不少Noise);blog
=〉这两点由上述不等式能够推导这样的机器学习算法有好的泛化能力,其在全集上会有和在D上一致的表现;input
3 若是算法选择的是小的Ein it
=>最终咱们能够推断机器能够学习,由于其在全集数据集错误率会较低。io
二什么是VC Dimension model
下面给出了VC Dimension的定义,
一样,将Dvc替换k,获得mh(N)<=N^(Dvc)
三 VC Dimension 和 Feature 数量的关系,在PLA算法中
接下来回顾了PLA在2d状况下,因为其Dvc=3,因此按照算法咱们选小的Ein就可以保证机器学习算法的运行,可是这是2维的状况,对于多维呢?也就是说增长feature咋办?
这里又抛出了一个结论:Dvc = d+1, d为feature vector的维度。
要证实这个等式,能够将它分为两块证实,
1 证实 Dvc >= d+1;
2 证实 Dvc <= d+1;
首先证实等式1:
由于Dvc >= d+1, 那么咱们必然能够shatter 某一类的d+1的inputs,这个是VC Dimension的定义。这里用线性代数的方法表达了X矩阵的每一行是一个x向量的转置。这个有意构造的X便可以被shatter。首先,shatter的本质是H对X的每一个判断都是对的即等于y,因此有以下不等式:
X*W = Y,咱们注意到X是可逆的,因此W = X^(-1) * Y,因此咱们只要让feature vector等于X的逆矩阵乘以Y就能给彻底shatter X,言外之意,只要咱们构造的inputs其有逆矩阵就可以被shatter!
下面证实等式二,Dvc<=d+1,也就是说对于d+2的inputs,其必定不能被shatter,一样咱们构造一个X,此次是任意的,其包含d+2个inputs,咱们发现这个矩阵的列为d+1而行为d+2,由线性代数的知识,咱们知道这d+2个向量的某一个能够表示为另外d+1个向量的线性组合,假设这个向量为Xd+2,那么便有了以下等式:
w^Txd+2 = a1w^Tx1 + a2w^Tx2 + ... + ad+1w^Txd+1,
咱们只要构造这样这组w,保证每一项是正的,例如假设a1是负的,那么咱们构造w使得w^Tx1也是负的,这样就使得最终的值为正,从而咱们无法分类其为负的状况,由于其值始终是正的。换句话说,由于d+2是前d+1的线性组合,这样一个限制致使了最终的结果。因此对于d+2咱们没法彻底分类,也即便Dvc<=d+1。
四 VC Dimension的直观理解
那么VC Dimension本质上究竟是什么呢?
下图给了答案
自由度的概念,体如今咱们可以包含多少feature w,可以有多少假设H的数量,以及咱们最终的分类能力Dvc,也就是说Dvc本质上大致上是H的分类能力,一样能够理解为feature的个数,假设的个数,由于它们都是互相成正比的。
再次回到之前那个泛化不等式:
将它左右变形,求出Eout的的界限,咱们比较关注上限,可知咱们最终的机器学习算法其在总体的错误率和N,H,S的表达式(Model 复杂度的惩罚)有关。下图很直观的给出了它们之间的关系:
这个图说了:
1 Dvc越高 -> Ein降低(shatter能力变强)-> model complexity的penalty提升,致使Eout先降后升
2 Dvc越低 -> Ein升高 -> model complexity的penalty下降,Eout最终也是会上升
因此最好状况的Eout是咱们选取Dvc在中间的状况,这样Ein和penalty都不高,即最终的Eout也不会过高。这也就是为何,咱们不可以盲目增长feature也不能有太少feature的缘由。
五总结
本章主要描述了VC Dimension并给出了较为直观的解释,咱们不能盲目增长VC Dimension也不能过低,而应该去中间值,这样既保证Ein不高也保证model complexity的penalty不高。