机器学习和数据挖掘(7):VC维

来源:互联网 发布:天天特价淘宝商城 编辑:程序博客网 时间:2024/05/21 19:32

VC维

回顾与说明

如果一个假设空间存在突破点,则一定存在成长函数mH(N)被某个上限函数B(N,k)所约束,而上限函数等于一个组合的求和形式k1i=0CiN,易知该形式的最高次项是Nk1。图左和右分别是以上限函数为上限的情况和以为Nk1上限的情况。

可以看得出来:

mH(N)B(N,k)=i=0k1CiNNk1

再结合之前的霍夫丁不等式可得:

P[|Ein(g)Eout(g)|>ϵ]4mH(2N)exp(18ϵ2N)if k exists4Nk1exp(18ϵ2N)

该公式的意义是在输入样本N很大时,VC限制一定成立,同时等式的左边也一定会在k3的情况下被Nk1所约束(注意这里的条件没有了,原因很简单,VC限制是样本N很大的情况下产生的,因此一定满足的条件),而在k<3的情况下有其他的限制可以满足(比如前几章提到的如正射线之类的分类不需要多项式形式的限制也可以约束住成长函数)。

至此得知,满足以下几个条件,机器便可以学习:

  1. 假设空间的成长函数有一个突破点k;
  2. 输入数据样本N足够的大;

同时也通过VC限制得出了结论

  1. EinEout
  2. 通过算法可以找到一个假设使得Ein0

VC维的定义

VC维(VC dimension)的定义是:最大的一个不是突破点的数,或者说,最大的一个数使得存在小于等于这些数的采样可以找到完全二分类的。

VC维是假设空间的一个性质,数据样本可以被完全二分的最大值。用dvc作为VC维的数学符号,假如突破点存在的话,即最小的突破点减去1就是V维;如果不存在突破点的话,则VC维为无限大。

若输入数据量N小于VC维,则有可能输入数据D会被完全的二分类(这里不是一定,VC维只能保证存在)。

如果输入数据量N(或者用k表示)大于VC维,则有k一定是假设空间H的突破点。

使用VC维dvc对公式(1)进行重写,在N2dvc2时,可得:

mH(N)i=0dvcCiNNdvc

对第五章中提到的几种分类,使用VC维取代突破点,表示VC维与成长函数的关系,如下表所示。

正射线

一维空间的感知器

间隔为正的分类

凸图形分类

二维平面的感知器

对上述可学习条件1中假设空间可以重新定义,即,假设空间需要具备有限的VC维。

一个有限的VC维总是能够保证寻找到的近似假设g是泛化的,即近似假设g满足Ein(g)Eout(g)。我们没有必要知道具体的VC维的值,我们只需要知道它是有限的就可以得出这一结论。

同时这一结论与下述部分没有关系:

  1. 使用的算法,即使使用某种算法使得Ein(g)很大,也依然能满足上述的性质;
  2. 输入数据的分布P
  3. 未知的目标函数f

即VC维可应对任意的假设空间,任意的数据分布情况,任意的目标函数。

满足这一性质可以得到如图所示的流程图,其中灰色的部分表示上述几个不会影响Ein(g)Eout(g)这一结果的部分:

  1. 对于假设集合,这是一个由人工产生的集合,而VC维会告诉我们哪一个可以泛化,而哪一些不行。
  2. 对于数据集,VC维只能用一种概率性的说法解释,它只能告诉你在高概率下可以泛化;而如果你恰好用了一个非常不好的数据集,你就没有必要去对其进行泛化。

感知器的VC维

以下两个条件保证了2维线性可分的数据是可以学习的。

  1. 线性可分的数据通过PLA算法运行足够长的时间(T步骤足够大),则会找出一条可以正确分类的直线,使得样本中没有产生分错类的情况,即Ein(g)=0
  2. 在训练样本和整个数据集都服从同一分布P的前提下,有VC限制保证了,在dvc=3且训练样本N足够大时,Eout(g)Ein(g)

以上两个条件共同得出Eout(g)0的结论。

这一节讨论的是PLA能否处理维数大于二维的数据。

从上一节的内容得知:只要求出dvc是一个有限数,则可以使用VC限制来保证Eout(g)Ein(g)。于是问题变成了在维数大于二维时,感知器的dvc能否表示成一个有限数。

我们已知,1维感知器的VC维:dvc=2;2维感知器的VC维:dvc=3

所以我们猜想,d维感知器的VC维:dvc=d+1

上述只是一种猜想,接下来是对此猜想进行证明,证明的思路也很传统,证明等于号的成立分为两步:证明dvcd+1以及dvcd+1

  1. 证明大于等于的思路:证明存在d+1数量的某一数据集可以完全二分。因此我们只需要构造出一种可行的数据集即可。

    我们取出N=d+1个在Rd的样本点,得到了如下的可逆矩阵(满秩矩阵):

    图1

    对于任意的y=y1y2yd+1=±1±1±1,我们需要找到一个向量w⃗ ,且w⃗ 满足sign(Xw⃗ )=y

    因为y向量可以是任意一种形式的二分类,如果我们能够对任意一个y向量都能找到对应的w⃗ ,那么我们就可以得到所有的二分类,即实现完全二分类。

    那么我们直接让Xw⃗ =y

    同时因为X是可逆的,我们得到w⃗ =X1y,因此我们可以解得w⃗ 的值。

    因此我们证明了dvcd+1

  2. 证明小于等于的思路:证明任何d+2数量的数据集都不可以完全二分。

    对于任意d+2个样本点,X1,X2,,Xd+1,Xd+2的维度均为d+1

    那么当维度大于点的个数的时候,我们可以知道他们一定线性相关,即Xj=ijaiXi,其中不是所有的ai都为0(因为任意xj的第一维都是1,所以权重a_iai不可能全是0)。

    让我们关注于非零的a_iai,我们构造一组y_i=sign(a_i)yi=sign(ai),且对于X_jXj,我们让y_j=-1yj=1,其余权重为零的X_iXi对应的yi可以任意取值。

    Xj=ijaiXiW⃗ Txj=ijaiW⃗ TXi

    我们让yi=sign(W⃗ TXi),那么对于每一个非零的ai,我们可以得到W⃗ TXi(ai)的符号是相同的,即,aiW⃗ TXi>0

    因此ijaiW⃗ TXi>0(因为ai=0时,累加无效),同时可得W⃗ TXi>0

    则可以得到

    yj=sign(W⃗ TXi)=+1

    假设不成立,因此在任何d+2个输入数据集中必然都存在不能满足的二分类,即dvcd+1

至此,证明了dvc=d+1

理解VC维

自由度

我们构建了一个模型,并产生了一些假设,这些假设是你根据假设集调整一个又一个参数而来。所以这些参数组决定你的假设集自由度。

如果从假设空间的数量|H|角度上描述,则自由度是无限大的;但是从感知器在二元分类上这一限制条件入手,则可以使用VC维作为自由度的衡量。

通过之前学习过的两个列子来更具体的看待VC维和假设空间参数之间的关系:

dvc=1时,假设空间有1个参数,即阈值。

dvc=2时,假设空间有2个参数,即左右边界点。因此在大部分情况下,dvc大致等于假设空间参数的个数。

我们可以看得出dvc与自由度的关系。那参数与自由度的关系呢?

我们尝试将一个1D的感知器输出连接到下一个1D感知器的输入,如下图所示,这样我们就得到了8个参数,然而它的自由度并没有增加。根据dvc,我们甚至可以得出只需要一个感知器就足够的结论。

图1

VC维对样本数的影响

可视化趋势

使用VC维限制的霍夫丁不等式

P[|Ein(g)Eout(g)|>ϵ]4mH(2N)exp(18ϵ2N)δ

如果我们有了确认的ϵδ,那么dvcN的关系是什么呢?

我们可以对δ进行简化,得到NdvceN并将之画出图像来观察其变化趋势

图2

我们让该函数变得比较小,可以得到

图3

因此我们可以看到在横线所在位置,N的增加和dvc几乎是一种线性的关系,经过工业界足够的现象表明,我们通常只要使得N10dvc就足够了。

重新测定

我们将用δ来表示与一下ϵ

δ=4mH(2N)exp(18ϵ2N)ϵ=8Nln4mH(2N)δΩ

我们可以知道,好的事情发生的概率大于等于1δ

|EoutEin|Ω(N,H,δ)

因为实际上Ein大部分情况总是小于等于Eout的,所以我们可以再次简化而得到泛化边界的上限:

EoutEinΩEoutΩ+Ein

Ein正是我们想要减少的,而Ω则与我们的选择的假设集有关,他们给出了Eout的信息。

在我整理机器学习与数据挖掘(2):学习的可能性中的误差理论时,我们提到了增大训练集有会在泛化的时候表现得比较差,那是因为虽然训练集增大使得Ein减小,但是这样也使得Ω增大。

而我们恰好并不知道EinΩ哪一个更好,如果处于一种平衡状态,于是我们使用了新的技术————正则化。

原创粉丝点击