机器学习6

来源:互联网 发布:制作动漫人物的软件 编辑:程序博客网 时间:2024/06/05 16:03

机器学习第七章


VC dimension of H
指的是第一个break point 的前面一个点
当资料量N ≤ Dvc的时候,那么存在可能被shatter掉,当然也不是绝对。
当资料量N > Dvc的时候,那么一定不能被shatter掉
所以其实就是当数据量N足够大,Dvc足够大的时候,就可以说明Eout和Ein足够接近,而且这个和算法以及分布没有关系


对于1维的传感器我们可以知道dvc = 2,对于2维的传感器我们知道dvc = 3
所以我们现在猜想对于d维传感器的dvc = d + 1

那我们如何证明这个猜想呢?

利用以前的数学知识,我们可以想到如果我们可以证明dvc ≥ d+1 && dvc ≤ d+1 ,我们就可以说明dvc = d+1了

如果,我们能找到一个d+1被shatter,那么我们就说明dvc  ≥ d+1

那么我们取这样一个矩阵d+1 × d+1 大小的,第一行10000...000,第二行11000.00000,第三行10100000...00

从第二行,第二列开始是个d × 的单位矩阵,接着在第一列全部填1,第一行除了第一个全部填0 

由于可以shatter,所以输出向量y可以是一种组合,w便是我们的传感器参数,所以sign(Xw) = y,在y任意组合下都要满足。

如果Xw = y,那么显然上面sign(Xw) = y 也成立。

因为X是可以取反矩阵的,所以,只要w = X的反矩阵乘上y就能满足上述式子。

所以证明了这个X是可以被shatter的,所以dvc  ≥ d+1

那接下来,我们需要证明dvc ≤ d+1,怎么样才能说明这个是正确的呢?只需要说明对于任意的d+2都不能被shatter就能够说dvc ≤ d+1

作者是用向量的线性相关来证明的,比如我现在的资料是d+1维的,然后我们有d+2个资料,所以是d+2行,d+1列,作者没有说明为什么这d+2个向量是线性相关的,目前数学太渣,也没有证明的思路,所以就直接用结论吧===真心觉得自己应该恶补一下线性代数===

那么设Xd+2 = a1Xd+1 + a2Xd+2 + ... + ad+1Xd+1==

同时乘上w

wXd+2 = a1wXd+1 + aw2Xd+2 + ... + awd+1Xd+1

那么右边的值限制了左边的取值,所以不能,作者说得很简单,说如果wXn是负的,那么an是负的,不然都是正的,所以右边肯定大于0,所以左边大于0,并没有很严格证明===,不过不是数学课,大概明白就好,估计太向下抓数学,作者觉得没有必要。

但是总而言之就是得到了dvc ≤ d+1

所以综上得到了dvc = d+1.


接着作者科普了一下dvc的物理含义,其实就是一个事物的自由度,即可以从几个维度去调节他,比如1d -positive,dvc =1 ,想象一下,它确实只有一个分解点可以调节,而interval显然有两个调节点。。。

所以可以这样理解===感觉好吊===

下面部分数学公式有一点点多,我就截图了


这是我们得到的公式,

那么变形


得到这样的部分。

再用δ把ε表示出来,带入


然后我们比较关注的后面这个不等式。

所以继续


随着dvc增大,dvc越大,那说明在h的选择也就越多,既然h选择越多,那么我们更容易找到Ein小的h,所以Ein肯定是在下降的,但是随着dvx的增多,显然复杂性在增大,就是后面那一堆根号。所以对于Eout来说,它的ERROR是个山谷型的曲线。

对于机器学习算法来说,我们不仅仅要考虑到算法的Ein要小,同时还要考虑到复杂度,并不是算法的Ein越小越好。

现在有公式,我们完全可以带人数字去计算我们的bound,在理论上我们计算出来N≈10000dvc,而实际上我们只需要10倍,效果就还不错了。

所以说这个中间真的还是很宽松的

主要原因是

1.hoeffding‘s inequality

2.成长函数的使用,成长函数是这个资料数量能达到的高度,

3.我们使用的是成长函数上限(边界函数)的上限(那个多项式复杂度)

4.union bound


对于不同的模型,vc bound 的宽松程度差不多




0 0