标签:style blog class code tar ext
学习理论——VC维的定义以及一些例子
本文主要介绍一些学习理论上的东西。首先,我们得明确,从训练集上学习出来的分类器的最终目标是用于预测未知的样本,那么我们在训练的时候该用多少的样本才能使产生的分类器的效果尽可能的好呢?这些就是VC-理论要解决的问题。在介绍这个理论之前,我们得先介绍一个比较抽象的概念——VC维。这个指标是用与衡量假设空间的复杂程度。为了能更好的理解VC维,本文还会举一些例子来加深理解。
(一)由一个例子引出的动机
为了更好的说明为什么我们要定义这个VC维,我们先来看一个例子。假设有一个数据库,这个数据库包含每个职员的年纪和工资,那么我们现在要查询35岁到45岁工资为60000~70000的职员数量?为了解决这个查询问题,我们将每个职员用一个二维的点来表示,坐标分别代表年龄和工资,那么这个查询问题就等价于:有多少个点落入一个与坐标轴平行的矩形里面。现在假设这个数据库的数据量非常大,我们不可能统计所有的点,所以我们一般在查询前先固定一个样本,然后统计这个样本里有多少个点落入矩形内,然后用这个样本估计出来的比例代替总体的比例。
为了达到上述目的,我们总是希望所估计出来的值跟真实的值尽可能的接近。而根据大数定理可知,样本点越多,那么估计的效果就越好。但我们更希望能找样本点大小跟估计的精度之间的关系,也就是说找到最少的样本可以保证:以
首先,
令
当然这是不可能的,但我们可以通过选择较大的样本使出现大误差的概率比较小,也就是说我们选择的样本必须使以下不等式成立:
接下去我们来计算需要多大的样本才能使式子
首先,样本
对于某个固定的
令
在另外一种更一般的情况,假设我们在平面上有概率分布
这里
(二)VC维的定义
定义:一个集合系统记为
比如上一节介绍的例子中,
定义:打散概念。一个子集
也就是说,对于
定义:VC维。一个集合系统
也就是说假设
(三)VC维的例子
1. 与坐标轴平行的矩形的VC维。
首先,至少存在四个点的子集可以被平行的矩形打散,比如以下的四个点
并且对任意五个点肯定不会被打散,任画五个点,用一个最小的矩形将这五个点包围起来,则最多只需要4个点即可确定这个矩形,现在如果我们把这四个点形成一个子集,那么不存在矩形仅仅只包含住这四个点。所以与坐标轴平行的矩形的VC维
2. 实数线上的区间。
很显然,实数线上的区间的VC维
3. 实数线上的一对区间。
很显然,从上图可知存在四个点可以被打散,对任意的五个点,我们只需要取1,3,5就无法用两个区间去包含住。
4. 凸多边形。
凸多边形的VC维是无限的。首先,我们在单位圆上选
5. d维半空间。
定义:半空间:
首先证明存在
第二种情况,
现在证明任何一个
定义凸壳(Convex
Hull):对于一个集合
直观上看,这个凸壳就是用一个最小的凸区域来包围集合
假如一个
定理(Radon):对任意集合S\in\mathbb{R}^d
证明:不失一般性我们只证明|S|=d+2 。
构造矩阵\mathbf{A}_{d\times(d+2)} ,\mathbf{A} 的每一列都是S 的一个点,在\mathbf{A} 的最后一行加上一个全1的行向量得到\mathbf{B}=\left(\begin{array}&\mathbf{A}\\\mathbf{1}^T\end{array}\right) ,由于\mathop{rank}(B)\leq d+1 ,所以\mathbf{B} 的列是线性相关的。所以方程\mathbf{B}x=0 存在非零解x=(x_1,x_2,\cdots,x_n)^T ,把x 重新排序,使x_1,\cdots,x_s\geq 0, x_{s+1},\cdots,x_{d+2}<0 。由于\mathbf{B} 的最后一行全1,故\sum_{i=1}^{d+2}x_i=0 。所以肯定同时存在正负分量。
将x 进行正则化,即将x 的每个分量都除以\sum_{i=1}^sx_i ,得一个新的x^\prime (x^\prime 同样是\mathbf{B}x=0 的解,并且为了方便我仍然记为x ),故有\sum_{i=1}^sx_i=1 。记b_i 为\mathbf{B} 的第i 列(相应\alpha_i 为\mathbf{A} 的第i 列)。
由\mathbf{B}x=(b_1,b_2,\cdots,b_s,b_{s+1},\cdots,b_{d+2})x=0 \Longrightarrow \sum_{i=1}^{d+2}b_ix_i=0 \Longrightarrow \sum_{i=1}^sb_ix_i+\sum_{i=s+1}^{d+2}b_ix_i=0 \Longrightarrow \sum_{i=1}^sb_i|x_i|=\sum_{i=s+1}^{d+2}b_i|x_i| \Longrightarrow \sum_{i=1}^s\left(\begin{array}&\alpha_i\\1\end{array}\right)|x_i|=\sum_{i=s+1}^{d+2}\left(\begin{array}&\alpha_i\\1\end{array}\right)|x_i| \Longrightarrow \left\{\begin{array}&\sum_{i=1}^s\alpha_i|x_i|=\sum_{i=s+1}^{d+2}\alpha_i|x_i|\\\sum_{i=1}^s|x_i|=\sum_{i=s+1}^{d+2}|x_i|\end{array}\right. 。由\sum_ix_i=0\Longrightarrow\sum_{i=1}^s|x_i|=\sum_{i=s+1}^{d+2}|x_i|=1 。记集合A=(\alpha_1,\cdots,\alpha_s) ,集合B=(\alpha_{s+1},\cdots,\alpha_{d+2}) ,则\mathop{convex}(A)=\sum_{i=1}^s\alpha_i|x_i|, \mathop{convex}(B)=\sum_{i=s+1}^{d+2}\alpha_i|x_i| 。所以,\mathop{convex}(A)\cap\mathop{convex}(B)\neq\varnothing 。注意,这里的\mathop{convex}(A)\neq\mathop{convex}(B) ,\sum_{i=1}^s\alpha_i|x_i|=\sum_{i=s+1}^{d+2}\alpha_i|x_i| 只表示存在一个系数使二者相等,并不是说对所有系数都相等。
6. d 维空间的球体。
一个d 维空间的球体:\{x||x-x_0|\leq r\} ,它的VC维是d+1 。首先,存在d+1 个点可以被半空间打散,那么也肯定存在d+1 个点可以被d 维球体打散。现在我们证明任意d+2 个点都不能被球体打散。
反证法:假设有一个d+2 个点的集合S 可以被球体打散,那么意味着对任何A_1\subseteqq S, A_2\subseteqq S, A_1\cap A_2=\varnothing, A_1\cup A_2=S ,存在着球体B_1,B_2 分别只包含A_1,A_2 ,即B_1\cap S=A_1,B_2\cap S=A_2 (尽管B_1\cap B_2 有可能不为空集,但相交的部分决不含有S 中的点)。那么可以肯定存在一个超平面,其一边只包含A_1 ,一边只包含A_2 ,即这d+2 个点可以被半空间打散,这与前面的结论矛盾。
(四)打散函数。
考虑一个集合系统(U,\mathcal{S}) ,它的VC维为d ,那么对于A\subseteqq U, |A|=n\leq d ,A 可以被打散成2^n 份,也就是说存在2^n 个A 的子集,可以用S\in\mathcal{S} 表示成A\cap S 。那么对于|A| = n >d ,A 可以被打散成多少份呢?这就是我们接下去要介绍的打散函数(shatter-function)
定义打散函数:一个集合系统(U,\mathcal{S}) 的打散函数\Pi_{\mathcal{S}}(n) 指的是大小为n 的集合A\in U 中能够用A\cap S,S\in\mathcal{S} 表示的子集个数。即\Pi_{\mathcal{S}}(n)=\max_{A\subseteqq U,|A|=n}|\{A\cap S|S\in \mathcal{S}\}| 。
很显然,当n\leq d 时,\Pi_{\mathcal{S}}(n)=2^n ,也就是说当n\leq d 时,打散函数以2^n 增长;当n>d 时,他的增长将变慢,事实上可以证明\Pi_{\mathcal{S}}(n) 以n 的多项式增长。如果VC维是无限的话,那么\Pi_{\mathcal{S}}(n) 将一直以指数级增长。
有了\Pi_{\mathcal{S}}(n) 的定义后,那么VC维也可以定义成dim(\mathcal{S})=\max\{n|\Pi_{\mathcal{S}}(n)=2^n\} 。在之前我们已经看到对于平行于坐标轴的矩形,最多只有\mathcal{O}(n^4) 个子集可以用矩形包围住,这里的指数4刚好是平行矩形系统的VC维。
(五)打散函数与VC维的关系。
首先来证明一个不等式\sum_{i=0}^d\binom{n}{i}=\binom{n}{0}+\cdots+\binom{n}{d}\leq2n^d 。
采用归纳法证明d<n 时成立。显然,当d=0,1 时等式成立;假设d=k 时\sum_{i=0}^k\binom{n}{i}\leq2n^k 成立,则
\sum_{i=0}^{k+1}\binom{n}{i}=\sum_{i=0}^k\binom{n}{i}+\binom{n}{k+1}\leq2n^k+\frac{n(n-1)\cdots
(n-k)}{(k+1)!}\leq2n^k+n^{k+1}\leq 2n^{k+1}
所以\sum_{i=0}^d\binom{n}{i}\leq2n^d 成立。
当d\geq n 时,\sum_{i=0}^d\binom{n}{i}=2^n\leq2n^d ,由\frac{2n^d}{2^n}=\frac{2n^nn^{d-n}}{2^n}\geq2(\frac{n}{2})^n\geq 1 而得到。
故,综上:\sum_{i=0}^d\binom{n}{i}\leq2n^d 。
利用上述不等式,我们可以证明如下的定理。
定理:对于一个VC维至多为d 的任意集合系统(U,\mathcal{S}) ,\Pi_{\mathcal{S}}(n)\leq \sum_{i=0}^d\binom{n}{i} 对所有n 都成立。
证明:以下我们分三种情况对上述定理进行证明:
1. 当n\leq d 时,\sum_{i=0}^d\binom{n}{i}=2^n 且\Pi_{\mathcal{S}}(n)=2^n ,所以定理上的不等式成立。
2. 当d=0 时,我们可以证得|\mathcal{S}|\leq 1 。因为若|\mathcal{S}|>1 ,则|\mathcal{S}| 中至少有两个集合S_1,S_2 ,并且存在x\in S_1 且x\notin S_2 ,于是我们可以令A=\{x\} ,则A 可以被\mathcal{S} 打散,即(U,\mathcal{S}) 的VC维大于等于1,这于d=0 产生矛盾,所以|\mathcal{S}|\leq 1 。
若|\mathcal{S}|= 1 ,则\Pi_{\mathcal{S}}(n)=1 对所有n 都成立,\Pi_{\mathcal{S}}(n)=1\leq\binom{n}{0}=1 。
若|\mathcal{S}|= 0 ,则\Pi_{\mathcal{S}}(n)=0 对所有n 都成立,\Pi_{\mathcal{S}}(n)=0\leq\binom{n}{0}=1 。
3. 当n>d 时,令A\in U, \Pi_{\mathcal{S}}(n) 表示可以表示成A\cap S, S\in\mathcal{S} 的A 的子集个数(注意这里的A 指所有满足|A|=n )。不失一般性,令U=A ,将S\in\mathcal{S} 用S\cap A 代替,并且移掉相同的集合(比如S_1\cap A=S_2\cap A ,则我们只保留其中的一个),这样处理后\Pi_{\mathcal{S}}(n)=|\mathcal{S}| ,所以要证\Pi_{\mathcal{S}}(n)\leq\sum_{i=0}^d\binom{n}{i} ,即证|\mathcal{S}|\leq\sum_{i=0}^d\binom{n}{i} 。
构造一个新的集合系统(A-\{u\},\{S-\{u\}|S\in\mathcal{S}\}) ,记为(A-\{u\},\mathcal{S}_1) 。我们来讨论集合S\subseteqq A-\{u\} 的情况。
(1) S 与S\cup\{u\} 只有一个在\mathcal{S} 中,则对\mathcal{S} 与\mathcal{S}_1 的贡献各一个;(2) S 与S\cup\{u\} 两个都在\mathcal{S} 中,则对\mathcal{S} 的贡献为两个,对\mathcal{S}_1 的贡献为一个。所以|\mathcal{S}| 比|\mathcal{S}_1| 大,并且多出的数量为出现(2)的情况。
构造一个新的集合系统(A-\{u\}, \{S|\text{both}\ S\ \text{and}\ S\cup\{u\}\ \text{are in}\ \mathcal{S}\}) ,记为(A-\{u\},\mathcal{S}_2) 。所以|\mathcal{S}|=|\mathcal{S}_1|+|\mathcal{S}_2|=\Pi_{\mathcal{S}_1}(n-1)+\Pi_{\mathcal{S}_2}(n-1)=\Pi_{\mathcal{S}}(n) 。现在来证明以下两个结论:
(1) \mathcal{S}_1 的VC维至多为d ;
(2) \mathcal{S}_2 的VC维至多为d-1 。
对于(1),假如\mathcal{S}_1 的VC维超过d ,那么\mathcal{S} 的VC维也肯定要超过d ;对于(2),假如有集合B\subseteqq A-\{u\}, |B|\geq d 被\mathcal{S}_2 打散,那么B\cup\{u\} 肯定也会被\mathcal{S} 打散。(这是因为B\cup\{u\} 的子集包括两种,一种是包含u 的,一种不包含u ,不包含u 的肯定可以表示成(B\cup\{u\})\cap S ,包含u 的子集记为B^\prime\cup\{u\} ,由于B^\prime=B\cap S, S\in\mathcal{S} ,故(B^\prime\cup \{u\})=(B\cup\{u\})\cap(S\cup\{u\}) ,其中S\cup\{u\}\in\mathcal{S} )所以\mathcal{S} 的VC维至多为d+1 ,与题意矛盾。
最后,由于n\leq d,d=0 时不等式成立,所以根据归纳法可知:若\Pi_{\mathcal{S}_1}(n-1)\leq\sum_{i=0}^d\binom{n-1}{i}, \Pi_{\mathcal{S}_2}(n-1)\leq\sum_{i=0}^{d-1}(n-1) 成立,则:
\begin{align*}\Pi_{\mathcal{S}}(n)
&=\Pi_{\mathcal{S}_1}(n-1)+\Pi_{\mathcal{S}_2}(n-1)\\&\leq\binom{n-1}{0}+\binom{n-1}{1}+\cdots+\binom{n-1}{d}+\binom{n-1}{0}+\binom{n-1}{1}+\cdots+\binom{n-1}{d-1}\\&\leq\binom{n-1}{0}+[\binom{n-1}{1}+\binom{n-1}{0}]+\cdots+[\binom{n-1}{d}+\binom{n-1}{d-1}]\\&\leq\binom{n}{0}+\binom{n}{1}+\cdots+\binom{n}{d}\end{align*}
其中\binom{n-1}{d-1}+\binom{n-1}{d}=\binom{n}{d} 。
(六)相交的集合系统。
令(U,\mathcal{S}_1) 和(U,\mathcal{S}_2) 为集合U 下的两个集合系统,定义相交系统(U,\mathcal{S}_1\cap\mathcal{S}_2) ,其中\mathcal{S}_1\cap\mathcal{S}_2=\{A\cap B|A\in\mathcal{S}_1,B\mathcal{S}_2\} ,注意这里的交不是将\mathcal{S}_1 和\mathcal{S}_2 取交运算,而是对\mathcal{S}_1 和\mathcal{S}_2 中的元素取交运算。所以根据定义有|\mathcal{S}_1\cap\mathcal{S}_2|\leq|\mathcal{S}_1| |\mathcal{S}_2| 。
定理:\Pi_{\mathcal{S}_1\cap\mathcal{S}_2}(n)\leq\Pi_{\mathcal{S}_1}(n)\Pi_{\mathcal{S}_2}(n) 。
证明:对于任何的A\subseteqq U ,以下不等式成立:
\begin{align*}&\left| \{A\cap (S_1\cap S_2)|
S_1\in\mathcal{S}_1, S_2\in\mathcal{S}_2\}\right|\\\leq&\left| \{A\cap
S_1| S_1\in\mathcal{S}_1\}\right|\cdot\left|\{A\cap
S_2|S_2\in\mathcal{S}_2\}\right|\end{align*}
即\Pi_{\mathcal{S}_1\cap\mathcal{S}_2}(n)\leq\Pi_{\mathcal{S}_1}(n)\Pi_{\mathcal{S}_2}(n) 。
PS: 本人只粗略的检查了一遍,若有任何错误,还望指出,谢谢!
Computer Science Theory for the Information Age-5: 学习理论——VC维的定义以及一些例子,布布扣,bubuko.com
Computer Science Theory for the Information Age-5: 学习理论——VC维的定义以及一些例子
标签:style blog class code tar ext
原文地址:http://www.cnblogs.com/boostable/p/iage_VC_dimension.html