🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 7 -- The VC Dimension 前几节课着重介绍了机器能够学习的条件并做了详细的推导和解释。机器能够学习必须满足两个条件: * **假设空间H的Size M是有限的,即当N足够大的时候,那么对于假设空间中任意一个假设g,![](https://img.kancloud.cn/6f/c7/6fc7702fbf9cb862010777554e97d82d_74x14.jpg)**。 * **利用算法A从假设空间H中,挑选一个g,使![](https://img.kancloud.cn/2a/52/2a52bca567910bf4798b98fe89451c0b_75x18.jpg),则![](https://img.kancloud.cn/b5/5d/b55d5ca372ae52bf9eb7f9b2ea722cc5_59x15.jpg)**。 这两个条件,正好对应着test和trian两个过程。train的目的是使损失期望![](https://img.kancloud.cn/2a/52/2a52bca567910bf4798b98fe89451c0b_75x18.jpg);test的目的是使将算法用到新的样本时的损失期望也尽可能小,即![](https://img.kancloud.cn/b5/5d/b55d5ca372ae52bf9eb7f9b2ea722cc5_59x15.jpg)。 正因为如此,上次课引入了break point,并推导出只要break point存在,则M有上界,一定存在![](https://img.kancloud.cn/6f/c7/6fc7702fbf9cb862010777554e97d82d_74x14.jpg)。 本次笔记主要介绍VC Dimension的概念。同时也是总结VC Dimension与![](https://img.kancloud.cn/2a/52/2a52bca567910bf4798b98fe89451c0b_75x18.jpg),![](https://img.kancloud.cn/b5/5d/b55d5ca372ae52bf9eb7f9b2ea722cc5_59x15.jpg),Model Complexity Penalty(下面会讲到)的关系。 ### **一、Definition of VC Dimension** 首先,我们知道如果一个假设空间H有break point k,那么它的成长函数是有界的,它的上界称为Bound function。根据数学归纳法,Bound function也是有界的,且上界为![](https://img.kancloud.cn/04/17/0417697c19243c90db65bf43fcf83ba3_35x14.jpg)。从下面的表格可以看出,![](https://img.kancloud.cn/b6/ad/b6ad57c08daa830a956af3f1f88ba6a6_64x18.jpg)比B(N,k)松弛很多。 ![这里写图片描述](https://img.kancloud.cn/af/53/af5361f15c0c0acede9e5b3db15a98f8_566x367.jpg) 则根据上一节课的推导,VC bound就可以转换为: ![这里写图片描述](https://img.kancloud.cn/b9/8d/b98df90d1b006cbc1646ef61a0858515_566x201.jpg) 这样,不等式只与k和N相关了,一般情况下样本N足够大,所以我们只考虑k值。有如下结论: * **若假设空间H有break point k,且N足够大,则根据VC bound理论,算法有良好的泛化能力** * **在假设空间中选择一个矩g,使![](https://img.kancloud.cn/c9/38/c938ce5f2a3f7dfb47848be0e1a75bfc_54x15.jpg),则其在全集数据中的错误率会较低** ![这里写图片描述](https://img.kancloud.cn/cc/e7/cce71828ea8d92819c1f378792decf08_463x160.jpg) 下面介绍一个新的名词:VC Dimension。VC Dimension就是某假设集H能够shatter的最多inputs的个数,即最大完全正确的分类能力。(注意,只要存在一种分布的inputs能够正确分类也满足)。 shatter的英文意思是“粉碎”,也就是说对于inputs的所有情况都能列举出来。例如对N个输入,如果能够将![](https://img.kancloud.cn/5a/f8/5af8688894f120bdcab8768507fdff02_19x14.jpg)种情况都列出来,则称该N个输入能够被假设集H shatter。 根据之前break point的定义:假设集不能被shatter任何分布类型的inputs的最少个数。则VC Dimension等于break point的个数减一。 ![这里写图片描述](https://img.kancloud.cn/a4/44/a444a6249aadee137d37d252918b612e_566x158.jpg) 现在,我们回顾一下之前介绍的四种例子,它们对应的VC Dimension是多少: ![这里写图片描述](https://img.kancloud.cn/fa/3e/fa3e8b3229dfe2c5c399185a83037f2a_566x283.jpg) 用![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)代替k,那么VC bound的问题也就转换为与![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)和N相关了。同时,如果一个假设集H的![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)确定了,则就能满足机器能够学习的第一个条件![](https://img.kancloud.cn/6f/c7/6fc7702fbf9cb862010777554e97d82d_74x14.jpg),与算法、样本数据分布和目标函数都没有关系。 ![这里写图片描述](https://img.kancloud.cn/28/09/280941f25127675742e8ebddfb9e97de_566x371.jpg) ### **二、VC Dimension of Perceptrons** 回顾一下我们之前介绍的2D下的PLA算法,已知Perceptrons的k=4,即![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)。根据VC Bound理论,当N足够大的时候,![](https://img.kancloud.cn/50/e2/50e2bb0d06a95c58783b164099430e42_116x18.jpg)。如果找到一个g,使![](https://img.kancloud.cn/2a/52/2a52bca567910bf4798b98fe89451c0b_75x18.jpg),那么就能证明PLA是可以学习的。 ![这里写图片描述](https://img.kancloud.cn/df/98/df98132c30b0e472fd26e80205911cb6_566x266.jpg) 这是在2D情况下,那如果是多维的Perceptron,它对应的![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)又等于多少呢? 已知在1D Perceptron,![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg),在2D Perceptrons,![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg),那么我们有如下假设:![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg),其中d为维数。 要证明的话,只需分两步证明: * ![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg) * ![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg) ![这里写图片描述](https://img.kancloud.cn/19/7f/197f69c54dcc451c1532a364feaf4f8c_566x167.jpg) 首先证明第一个不等式:![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)。 在d维里,我们只要找到某一类的d+1个inputs可以被shatter的话,那么必然得到![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)。所以,我们有意构造一个d维的矩阵![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg)能够被shatter就行。![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg)是d维的,有d+1个inputs,每个inputs加上第零个维度的常数项1,得到![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg)的矩阵: ![这里写图片描述](https://img.kancloud.cn/ee/34/ee3465d8665b213e106fee86e4cb3d26_468x145.jpg) 矩阵中,每一行代表一个inputs,每个inputs是d+1维的,共有d+1个inputs。这里构造的![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg)很明显是可逆的。shatter的本质是假设空间H对![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg)的所有情况的判断都是对的,即总能找到权重W,满足![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg),![](https://img.kancloud.cn/5d/ab/5dabc86a86bc0afd53543923f0e843bc_93x17.jpg)。由于这里我们构造的矩阵![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg)的逆矩阵存在,那么d维的所有inputs都能被shatter,也就证明了第一个不等式。 ![这里写图片描述](https://img.kancloud.cn/72/a5/72a5ac54ac09d8b0143372f6a699f719_566x302.jpg) 然后证明第二个不等式:![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)。 在d维里,如果对于任何的d+2个inputs,一定不能被shatter,则不等式成立。我们构造一个任意的矩阵![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg),其包含d+2个inputs,该矩阵有d+1列,d+2行。这d+2个向量的某一列一定可以被另外d+1个向量线性表示,例如对于向量![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg),可表示为: 其中,假设![](https://img.kancloud.cn/93/ee/93ee6e7f66efc2a4d3276654ccd881b6_45x16.jpg),![](https://img.kancloud.cn/e3/f5/e3f570aed227454a626c531f1e0f3ae5_99x15.jpg). 那么如果![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg)是正类,![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg)均为负类,则存在![](https://img.kancloud.cn/6c/33/6c3386bfed4a0e9bb0cbf3c66b17e360_18x11.jpg),得到如下表达式: ![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg)<font color="#0000ff">![](https://img.kancloud.cn/2a/23/2a2347e92679cbbf5b897a826b3bda0c_84x15.jpg)</font>+<font color="#ff0000">![](https://img.kancloud.cn/9b/5a/9b5a7106d19546d5171ad65a6fbb1af3_84x14.jpg)</font>+![](https://img.kancloud.cn/6b/f4/6bf4ff6e9d6d768b53448e2dbb3052d7_18x2.jpg)+<font color="#ff0000">![](https://img.kancloud.cn/5d/e3/5de355165e7b77de68a628cf852d2a7a_85x14.jpg)</font>![](https://img.kancloud.cn/e7/02/e702e9265a102524811ca04f38a974e3_24x12.jpg) 因为其中蓝色项大于0,代表正类;红色项小于0,代表负类。所有对于这种情况,![](https://img.kancloud.cn/05/c5/05c53b7e8ec04c22aa581501549a824c_14x11.jpg)一定是正类,无法得到负类的情况。也就是说,d+2个inputs无法被shatter。证明完毕! ![这里写图片描述](https://img.kancloud.cn/6f/34/6f343dca66652421b308bcd44198c861_566x322.jpg) 综上证明可得![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)。 ### **三、Physical Intuition VC Dimension** ![这里写图片描述](https://img.kancloud.cn/3c/6e/3c6e9c31e47c616be3ecba2551d25990_566x414.jpg) 上节公式中![](https://img.kancloud.cn/6c/33/6c3386bfed4a0e9bb0cbf3c66b17e360_18x11.jpg)又名features,即自由度。自由度是可以任意调节的,如同上图中的旋钮一样,可以调节。VC Dimension代表了假设空间的分类能力,即反映了H的自由度,产生dichotomy的数量,也就等于features的个数,但也不是绝对的。 ![这里写图片描述](https://img.kancloud.cn/73/15/7315f5e1bb5b6d59e0195afcd5a41d37_566x95.jpg) 例如,对2D Perceptrons,线性分类,![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg),则![](https://img.kancloud.cn/6c/33/6c3386bfed4a0e9bb0cbf3c66b17e360_18x11.jpg),也就是说只要3个features就可以进行学习,自由度为3。 介绍到这,我们发现M与![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)是成正比的,从而得到如下结论: ![这里写图片描述](https://img.kancloud.cn/b6/91/b6911806b7d87580b52253215ad36bec_566x363.jpg) ### **四、Interpreting VC Dimension** 下面,我们将更深入地探讨VC Dimension的意义。首先,把VC Bound重新写到这里: ![这里写图片描述](https://img.kancloud.cn/7e/c8/7ec8379d5bf346388dd07a7276b59ff1_566x113.jpg) 根据之前的泛化不等式,如果![](https://img.kancloud.cn/56/25/5625b9fcd4d5ea19e62211aa15147269_111x17.jpg),即出现bad坏的情况的概率最大不超过![](https://img.kancloud.cn/91/2b/912be982bb55f94f143f9c67b9652fcb_8x11.jpg)。那么反过来,对于good好的情况发生的概率最小为![](https://img.kancloud.cn/04/3b/043ba9ce4e371d94aa40db0784f36fdf_35x13.jpg),则对上述不等式进行重新推导: ![这里写图片描述](https://img.kancloud.cn/7e/85/7e85ef6072ceccda33db8160b024e200_566x234.jpg) ![](https://img.kancloud.cn/7b/0c/7b0cf84156a1f54329998fc4b798125b_7x7.jpg)表现了假设空间H的泛化能力,![](https://img.kancloud.cn/7b/0c/7b0cf84156a1f54329998fc4b798125b_7x7.jpg)越小,泛化能力越大。 ![这里写图片描述](https://img.kancloud.cn/9f/e6/9fe69a15e82fbee47015a6ee1d76692a_566x370.jpg) 至此,已经推导出泛化误差![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的边界,因为我们更关心其上界(![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)可能的最大值),即: ![这里写图片描述](https://img.kancloud.cn/18/cc/18ccf7147d6d57edaaf207d2d1a43bf4_566x116.jpg) 上述不等式的右边第二项称为模型复杂度,其模型复杂度与样本数量N、假设空间H(![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg))、![](https://img.kancloud.cn/7b/0c/7b0cf84156a1f54329998fc4b798125b_7x7.jpg)有关。![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)由![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)共同决定。下面绘出![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)、model complexity、![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)随![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)变化的关系: ![这里写图片描述](https://img.kancloud.cn/20/3b/203b59ebcfb561df194e14b619a0569f_566x240.jpg) 通过该图可以得出如下结论: * **![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)越大,![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)越小,![](https://img.kancloud.cn/b1/34/b134b0391e5f0b33dbc4456fe5c2dacb_11x11.jpg)越大(复杂)**。 * **![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)越小,![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)越大,![](https://img.kancloud.cn/b1/34/b134b0391e5f0b33dbc4456fe5c2dacb_11x11.jpg)越小(简单)**。 * **随着![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)增大,![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)会先减小再增大**。 所以,为了得到最小的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg),不能一味地增大![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)以减小![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg),因为![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)太小的时候,模型复杂度会增加,造成![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)变大。也就是说,选择合适的![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg),选择的features个数要合适。 下面介绍一个概念:样本复杂度(Sample Complexity)。如果选定![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg),样本数据D选择多少合适呢?通过下面一个例子可以帮助我们理解: ![这里写图片描述](https://img.kancloud.cn/20/46/204663f79d68fe16d2fa214da893345d_566x148.jpg) 通过计算得到N=29300,刚好满足![](https://img.kancloud.cn/91/2b/912be982bb55f94f143f9c67b9652fcb_8x11.jpg)的条件。N大约是![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)的10000倍。这个数值太大了,实际中往往不需要这么多的样本数量,大概只需要![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)的10倍就够了。N的理论值之所以这么大是因为VC Bound 过于宽松了,我们得到的是一个比实际大得多的上界。 ![这里写图片描述](https://img.kancloud.cn/47/a3/47a3cc0704e5c1e4e0faf1ea8d4201ec_566x316.jpg) 值得一提的是,VC Bound是比较宽松的,而如何收紧它却不是那么容易,这也是机器学习的一大难题。但是,令人欣慰的一点是,VC Bound基本上对所有模型的宽松程度是基本一致的,所以,不同模型之间还是可以横向比较。从而,VC Bound宽松对机器学习的可行性还是没有太大影响。 ### **五、总结** 本节课主要介绍了VC Dimension的概念就是最大的non-break point。然后,我们得到了Perceptrons在d维度下的VC Dimension是d+1。接着,我们在物理意义上,将![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)与自由度联系起来。最终得出结论![](https://img.kancloud.cn/41/9b/419b70437d3439ec7d5302bf12e03e34_21x14.jpg)不能过大也不能过小。选取合适的值,才能让![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)足够小,使假设空间H具有良好的泛化能力。 **_注明:_** 文章中所有的图片均来自台湾大学林轩田《机器学习基石》课程