VC维和Natarajan维
引入
对于大多数学习问题而言,学习算法所考虑的假设空间并非是有限的,因此无法直接使用假设的数目来刻画空间的复杂度。我们需要引入一种用于刻画无限假设空间的复杂度的方法——即VC维,Natarajan维以及Rademacher复杂度。
限制的定义
从定义上看,限制可以理解为多个映射构成的集合,每个映射对于同一个数据集D都会得到不同的向量值。
为方便理解,不妨设假设空间H有两个映射f1和f2,数据集D:x1,x2
f1:将x1和x2映射为了(1,-1)
f2:将x1和x2映射为了(-1,1)
则我们将f1与f2构成的集合称为假设空间H到数据集D上的限制
增长函数的定义
从定义上看,增长函数表示假设空间H到大小为m的数据集D上的限制的最大映射数目
可能有点抽象,下面我直白一点解释
即从X空间选出多个可能的集合D,其中每个集合中变量的数目都为m、
我们想要找出哪个数据集合D,假设空间H在D上限制数最多,即映射的数目最多
因此有了上面的解释,下面这句话也好理解了
介绍完上面的概念之后,我们该如何将无限个假设的问题转化为有限个假设的问题呢?
下面这张图给出了解释
即我们从样本的角度去考虑问题,由于样本是有限个,不妨设为m
则m个样本,每个样本都可能被映射为1或者-1,故每个样本都会有两种可能
因此m个样本就有2^m中可能的标记结果,也就是说我们的映射的数目也是有上限的
这不就将无穷转换为有穷了嘛
VC维
对分的定义
直白点说,对分就是假设空间H的某一个映射对于数据D产生的结果
如假设空间的映射f1,对于数据x1,x2产生的一个结果(1,-1)就可以称为一种对分
打散的定义(二分类问题)
若假设空间能够实现数据集上所有的对分,这意味着,这个数据集能被映射的所有可能的情况都在假设空间里。
可能还是过于抽象,还是举个例子吧。
不妨设m=2,假设空间H能够实现D={x1,x2}上所有的对分,包含了以下4种情况
即将(x1,x2)->(1,1)(1,-1)(-1,1)(-1,-1)
故说明假设空间总共有4种映射,即2的2次方
我们从另一个角度理解“打散”,即将数据集每个变量取值都给它弄出来,就类似于把一个鸡蛋“打散”了,蛋黄蛋清都出来了
那若数据能被打散,自然而然就说明其对应的增长函数就为2^m
举个例子
当我们取a=x1+1时,此时ha=+1,然而取a=x1-1时,此时ha=-1
即我使用了两个不同的假设函数,能够将D中的变量的所有结果都表达出来,即+1和-1,这说明能够打散D
但是不能打散D'
我们可以发现,如果将x1映射为-1,那么x2也会被映射为-1,因此可以知道 不可能出现同时将x1映射为-1,且x2映射为+1的映射,因此D'不能被打散,因为有个结果是无法得到的
VC维的定义
Natarajan维
VC维是针对二分类问题的,对于多分类问题我们就使用Natarajan维进行刻画
打散的定义(多分类问题)
即假设空间H存在两个个假设f0,f1,能够将D分成两个部分
Natarajan维的定义
Rademacher复杂度和Gaussian复杂度
前面若提及到的VC维和Natarajan维均未考虑数据自身的分布,但在实际中,同一模型在不同的数据上的表现不同,这里引入Rademacher复杂度用于刻画与数据分布相关的假设空间复杂度。
这里解释一下上面这张图
由于此时σ以0.5概率取1,0.5概率取-1
且此处由σ的任意性,即无论σ怎么取值都能使得第二个式子等于1,那就说明存在一个假设函数h,它的取值在每一个点都等于σ,这样式子才能等于1
那么我们可以从上面的分析得到一些信息,即:
我能在假设空间找到一个假设函数h,使得数据集中的每个变量xi,都能有可能被映射到+1或者-1
这就是打散的定义
Rademacher复杂度
下面给出经验Rademacher复杂度的定义
我们令其服从高斯分布,即可得到高斯复杂度