机器学习和数据挖掘(7):VC维
VC维
回顾与说明
如果一个假设空间存在突破点,则一定存在成长函数
可以看得出来:
再结合之前的霍夫丁不等式可得:
该公式的意义是在输入样本N很大时,VC限制一定成立,同时等式的左边也一定会在
至此得知,满足以下几个条件,机器便可以学习:
- 假设空间的成长函数有一个突破点k;
- 输入数据样本N足够的大;
同时也通过VC限制得出了结论
-
Ein≈Eout - 通过算法可以找到一个假设使得
Ein≈0
VC维的定义
VC维(VC dimension)的定义是:最大的一个不是突破点的数,或者说,最大的一个数使得存在小于等于这些数的采样可以找到完全二分类的。
VC维是假设空间的一个性质,数据样本可以被完全二分的最大值。用
若输入数据量
如果输入数据量N(或者用k表示)大于VC维,则有k一定是假设空间
使用VC维
对第五章中提到的几种分类,使用VC维取代突破点,表示VC维与成长函数的关系,如下表所示。
正射线 |
|
|
一维空间的感知器 |
|
|
间隔为正的分类 |
|
|
凸图形分类 |
|
|
二维平面的感知器 |
|
|
对上述可学习条件1中假设空间可以重新定义,即,假设空间需要具备有限的VC维。
一个有限的VC维总是能够保证寻找到的近似假设
同时这一结论与下述部分没有关系:
- 使用的算法,即使使用某种算法使得
Ein(g) 很大,也依然能满足上述的性质; - 输入数据的分布
P ; - 未知的目标函数
f 。
即VC维可应对任意的假设空间,任意的数据分布情况,任意的目标函数。
满足这一性质可以得到如图所示的流程图,其中灰色的部分表示上述几个不会影响
- 对于假设集合,这是一个由人工产生的集合,而VC维会告诉我们哪一个可以泛化,而哪一些不行。
- 对于数据集,VC维只能用一种概率性的说法解释,它只能告诉你在高概率下可以泛化;而如果你恰好用了一个非常不好的数据集,你就没有必要去对其进行泛化。
感知器的VC维
以下两个条件保证了2维线性可分的数据是可以学习的。
- 线性可分的数据通过PLA算法运行足够长的时间(T步骤足够大),则会找出一条可以正确分类的直线,使得样本中没有产生分错类的情况,即
Ein(g)=0 ; - 在训练样本和整个数据集都服从同一分布P的前提下,有VC限制保证了,在
dvc=3 且训练样本N足够大时,Eout(g)≈Ein(g) 。
以上两个条件共同得出
这一节讨论的是PLA能否处理维数大于二维的数据。
从上一节的内容得知:只要求出
我们已知,1维感知器的VC维:
所以我们猜想,
上述只是一种猜想,接下来是对此猜想进行证明,证明的思路也很传统,证明等于号的成立分为两步:证明
-
证明大于等于的思路:证明存在
d+1 数量的某一数据集可以完全二分。因此我们只需要构造出一种可行的数据集即可。我们取出
N=d+1 个在Rd 的样本点,得到了如下的可逆矩阵(满秩矩阵):对于任意的
y=⎡⎣⎢⎢⎢⎢⎢y1y2⋮yd+1⎤⎦⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢±1±1⋮±1⎤⎦⎥⎥⎥⎥ ,我们需要找到一个向量w⃗ ,且w⃗ 满足sign(Xw⃗ )=y 。因为
y 向量可以是任意一种形式的二分类,如果我们能够对任意一个y 向量都能找到对应的w⃗ ,那么我们就可以得到所有的二分类,即实现完全二分类。那么我们直接让
Xw⃗ =y 。同时因为
X 是可逆的,我们得到w⃗ =X−1y ,因此我们可以解得w⃗ 的值。因此我们证明了
dvc≥d+1 。 -
证明小于等于的思路:证明任何
d+2 数量的数据集都不可以完全二分。对于任意
d+2 个样本点,X1,X2,…,Xd+1,Xd+2 的维度均为d+1 。那么当维度大于点的个数的时候,我们可以知道他们一定线性相关,即
Xj=∑i≠jaiXi ,其中不是所有的ai 都为0(因为任意xj 的第一维都是1,所以权重a_iai 不可能全是0)。让我们关注于非零的a_i
ai ,我们构造一组y_i=sign(a_i)yi=sign(ai) ,且对于X_jXj ,我们让y_j=-1yj=−1 ,其余权重为零的X_iXi 对应的yi 可以任意取值。Xj=∑i≠jaiXi⇒W⃗ Txj=∑i≠jaiW⃗ TXi 我们让
yi=sign(W⃗ TXi) ,那么对于每一个非零的ai ,我们可以得到W⃗ TXi 和(ai) 的符号是相同的,即,aiW⃗ TXi>0 。因此
∑i≠jaiW⃗ TXi>0 (因为ai=0 时,累加无效),同时可得W⃗ TXi>0 。则可以得到
yj=sign(W⃗ TXi)=+1 假设不成立,因此在任何d+2个输入数据集中必然都存在不能满足的二分类,即
dvcd+1 。
至此,证明了
理解VC维
自由度
我们构建了一个模型,并产生了一些假设,这些假设是你根据假设集调整一个又一个参数而来。所以这些参数组决定你的假设集自由度。
如果从假设空间的数量
通过之前学习过的两个列子来更具体的看待VC维和假设空间参数之间的关系:
当
当
我们可以看得出
我们尝试将一个1D的感知器输出连接到下一个1D感知器的输入,如下图所示,这样我们就得到了8个参数,然而它的自由度并没有增加。根据
VC维对样本数的影响
可视化趋势
使用VC维限制的霍夫丁不等式
如果我们有了确认的
我们可以对
我们让该函数变得比较小,可以得到
因此我们可以看到在横线所在位置,
重新测定
我们将用
我们可以知道,好的事情发生的概率大于等于
因为实际上
而
在我整理机器学习与数据挖掘(2):学习的可能性中的误差理论时,我们提到了增大训练集有会在泛化的时候表现得比较差,那是因为虽然训练集增大使得
而我们恰好并不知道