机器学习基石第七讲:the vc dimension

来源:互联网 发布:美工兼职 编辑:程序博客网 时间:2024/05/21 10:57

博客已经迁移至Marcovaldo’s blog (http://marcovaldong.github.io/)

机器学习基石第七讲主要介绍了VC dimension,笔记整理在下面。

Definition of VC Dimension

上一讲我们找到了B(N,k)的上限,拿它和Nk1做一个比较,发现当N够大时,前者比后者小得多。

7_1

上一讲我们提到了VC bound:在dataset上,H中任意一个hypothesis发生坏事情的概率不超过一个很小很小的定值。

7_2

这时可以说机器学习算法选择的g,其EinEout相差很大的几率很小。

下面开始介绍VC Dimension,其是最大的non-break point的那个点,所以有dvc=minimum1。那么当Ndvc时,存在某个数据集可能会被某个hypothesis给shatter掉,当然不是一定;当N>dvc时,数据集一定不会被H中的任一个hypothesis给shatter。

7_3

下面是四个例子的vc dimension。

7_4

前面我们说当break point露出一线曙光的时候有好的hypothesis,现在则变成了是有好的vc dimension的时候。

本小节测试:

7_5

VC Dimension of Perceptrons

现在回到课程开始时介绍的2D PLA算法。一方面,假设训练数据集线性可分,PLA算法就可以收敛,经过T次(足够大)迭代后就能够得到一个g有Ein=0。另一方面,数据集服从某一未知的分布P,存在一未知的目标f,此时的dvc=3,那么当N足够大时,就有Eout(g)Ein(g)。将这两条线融合在一起,我们就有了Eout(g)0,从而说明了学习是可行。

7_6

现在我们尝试解决多维度的问题。前面知道了1D perceptron的dvc=2,2D perceptrons的dvc=3,我们猜测d-D perceptrons的dvc=?d+1。要证明它只需要两步:第一步,证明dvcd+1;第二步,证明dvcd+1

证明之前先来一个小测试:

7_7

先来证明dvcd+1,我们只需证明存在d+1组输入数据能被某一个hypothesis给shatter掉。首先我们找到d+1组输入数据,存在矩阵X中,矩阵的每一行是一组数据。另外,矩阵X是可逆的。shatter的意思是说,对于任意y=(y1,y2,...,yd+1)T都能找到一个w使得sign(Xw)=y
如何做到这一点呢,看下面:

(Xw=y)sign(Xw)=yw=X1y

所以说这一组特殊的数据集可以被shatter,从而证明了dvcd+1

7_8

小测试:

7_9

现在来证明dvcd+1。举一个二维的例子,选择下图中的一组数据集,注意其中x4可由x1x2x3线性组合而来。前面我们说过下图中的那个问号不可能被标记为叉叉,同样x4不可能被标记为叉叉,原因看下图的公式。

7_10

数据点之间的这种线性依赖关系限制了dichotomy的产生,这是一种特殊情况,但我们要证明的是所有的情况都不能被shatter。现在我们用一组d维的一般例子来解释。下图中的矩阵X包含d+2组数据,这d+2组数据肯定是线性相关的,然后重复前一张图的计算公式,我们同样也可以证明不能被shatter。这样我们就完成了对一般情况的证明。

7_11

最后是小测试:

7_12

Physical Intuition of VC Dimension

7_13

VC dimension的物理意义就是我的hypothesis在做二元分类的时候大概有多少的自由度,也告诉我们这个hypothesis能最多产生多少dichotomy。不同的VC dimension对应的好坏处见下图:

7_14

这时,选择合适的VC dimension就变得很重要,而不同的VC dimension对应着不同的模型,所以选择模型是一件很重要的事。

本小节测试:

7_15

Interpreting VC Dimension

前面我们用一个不等式表示坏事情发生的概率,通过对该不等式的处理,我们得到了一个不等式来表示好事情发生的概率。

7_16

7_17

这里我们用Ω(N,H,δ)来表示上图中不等式的右侧,它表示在一个很高的几率内,EoutEin的值会小于Ω(N,H,δ)(当然,如果差值为负更好,说明g在未知数据上的犯错率比在训练集上还低)。

观察下图中的图像,可以看到随着dvc的不断增大,Ein不断降低,Eout先降低后增加,模型复杂度不断增大。最合适的dvc往往是在中间的。未来会利用这个图来设计更好的机器学习算法。

7_18

另外,VC bound还可以说明样本的复杂度。假设已经给定了ϵδdvc,问我们需要多大的训练集才可以得到这样的精度,请看下图。总结起来,理论上可能需要N10,000dvc才能有一个好的精度,而实际上当N10dvc时就已经足够了。

7_19

这也说明这个VC bound实际上是很宽松的,宽松的原因是在整个推理过程中多次放大标准(要求太严),具体看下面四点。

7_20

到这里,VC bound背后的一些数学意义和哲学意义就算介绍完了,虽然在以后的课程中涉及不太多,但大大加深了我们对机器学习的理解。

本节小测试:

7_21

1 0