现在的位置: 首页 > 综合 > 正文

VC维 和经验风险,结构风险 结构风险最小和VC维理论的解释

2017年11月03日 ⁄ 综合 ⁄ 共 4833字 ⁄ 字号 评论关闭

2.2 VC维

2009-06-21 12:37 范明/昝红英/牛常勇译 机械工业出版社 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

《机器学习导论》第2章监督学习,本章从最简单的情况开始讨论监督学习,首先从正例和负例集合中学习类别,继而推广并讨论多类的情况,然后再讨论输出为连续值的回归。本节为大家介绍VC维。

AD: 2013大数据全球技术峰会课程PPT下载

2.2 VC维

假定我们有一个数据集,包含N个点。这N个点可以用 
种方法标记为正例和负例。因此,N个数据点可以定义种不同的学习问题。如果对于这些问题中的任何一个,我们都能够找到一个假设h∈将正例和负例分开,那么我们就称散列(shatter)N个点。也就是说,可以用N个点定义的任何的学习问题都能够用一个从中抽取的假设无误差地学习。可以被散列的点的最大数量称为的VC维(VapnikChervonenkisdimension),记为VC(),它度量假设类的学习能力(capacity)。

在图25中,我们可以看到,轴平行的矩形能够散列二维空间的4个点。因此,当为二维空间中轴平行的矩形的假设类时,VC()等于4。在计算VC维时,能找到4个被散列的点就够了;没有必要去散列二维空间中任意4个点。例如,位于同一直线上的4个点不能被矩形散列。然而,我们无法在二维空间的任何位置设置5个点,使得对于所有可能的标记,一个矩形能够分开正例和负例。

 
(点击查看大图)图2-5 轴平行的矩形能够散

列4个点,其中只显示了覆盖两个点的矩形

也许VC维看起来比较悲观,它告诉我们使用矩形作为假设类, 我们只能学习包括4个点的数据集。能够学习含有4个点的数据集的学习算法不是很有用。然而, 这是因为VC维独立于数据实例的概率分布。在实际生活中,世界是平滑变化的, 在大多数时间相近的实例具有相同的标记,我们并不需要担心所有可能的标记。有很多包含远不止4个点的数据集都可以通过我们的假设类来学习(参见图2-1)。因此, 即便是具有较小VC维的假设类也是有应用价值的,并且比那些较大的VC维(例如, 具有无穷VC维的查找表)更可取。

VC维  

2010-05-17 17:43:33|  分类: 学习历程|字号 订阅

     今天开始看《支持向量机导论》,前面三章讲的还是通俗易懂的。但是第四章看了一节之后,就让人坠入云里雾里了。其中VC维数讲了长长的一大段,看了几遍都是不知所云。于是我只能BAIDU下了。果然,网上很多人对这个问题相当关心的,也有些很经典的解释。我摘录如下:

VC维被认为是数学和计算机科学中非常重要的定量化概念,它可用来刻画分类系统的性能.

   模式识别中VC维的直观定义是:对一个指示函数集,如果存在h个样本能够被函数集中的函数按所有可能的2h种形式分开,则称函数集能够把h个样本打散,函数集的VC维就是它能打散的最大样本数目h,若对任意数目的样本都有函数能将它们打散.则函数集的VC维是无穷大。有界实函数的VC维可以通过用一定的阈值将它转化成指示函数来定义。VC维反映了函数集的学习能力,VC维越大则学习机器越复杂,所以VC维又是学习机器复杂程度的一种衡量。

    换一个角度来理解,如果用函数类{f(z,a)}代表一个学习机,a 确定后就确定了一个判别函数了EF,而VC维为该学习机能学习的可以由其分类函数正确给出的所有可能二值标识的最大训练样本数。


VC维的直观定义是:对一个指标函数集,如果存在h 个样本能够被函数集中的函数按所有可能的2h种形式分开,则称函数集能够把h个样本打散;函数集的VC维就是它能打散的最大样本数目h。若对任意数目的样本都有函数能将它们打散,则函数集的VC维是无穷大,有界实函数的VC维可以通过用一定的阀值将它转化成指示函数来定义。

故有这样的结论,平面内只能找到3个点能被直线打散而不找到第4个。

对于这个结论我是如下理解的:

(1)平面内只能找到3个点能被直线打散:直线只能把一堆点分成两堆,对于3个点,要分成两堆加上顺序就有23种。其中A、B、C表示3个点,+1,-1表示堆的类别, {A→-1,BC→+1}表示A分在标号为-1的那堆,B和C分在标号为+1的那堆。这就是一种分发。以此类推。则有如下8种分法:

{A→-1,BC→+1},{A→+1,BC→-1}

{B→-1,AC→+1},{B→+1,BC→-1}

{C→-1,AB→+1},{C→+1,BC→-1}

{ABC→-1},{ABC→+1}

(2)找不到4个点。假设有,则应该有24=16分法,但是把四个点分成两堆有:一堆一个点另一对三个点(1,3);两两均分(2,2);一堆四个另一堆没有(0,4)三种情况。对于第一种情况,4个点可分别做一次一个一堆的,加上顺序就有8种:

{A→-1,BCD→+1},{A→+1,BCD→-1}

{B→-1,ACD→+1},{B→+1,ACD→-1}

{C→-1,ABD→+1},{C→+1,ABD→-1}

{D→-1,ABC→+1},{D→+1,ABC→-1};

对于第二种情况有4种:

{AB→-1,CD→+1},{AB→+1,CD→-1}

{AC→-1,BD→+1},{AC→+1,BD→-1}

没有一条直线能使AD在一堆,BC在一堆,因为A、D处在对角线位置,B、C处在对角线位置。(这是我直观在图上找出来的)

对于第三种情况有2种;

{ABCD→-1}

{ABCD→+1}

所以总共加起来只有8+4+2=14种分法,不满足24=16分法,所以平面找不到4个点能被直线打散。

       -------------总而言之,不能太迷信书

 

结构风险最小和VC维理论的解释

分类: 1.自然语言处理/机器学习 3377人阅读 评论(3) 收藏 举报

基于libsvm的中文文本分类原型 ,虽然做了原型,但是概念还不是很清晰。

“支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上”

结构化风险

结构化风险 = 经验风险 + 置信风险

经验风险 =  分类器在给定样本上的误差

置信风险 = 分类器在未知文本上分类的结果的误差

置信风险因素:

  • 样本数量,给定的样本数量越大,学习结果越有可能正确,此时置信风险越小;
  • 分类函数的VC维,显然VC维越大,推广能力越差,置信风险会变大。

提高样本数量,降低VC维,降低置信风险。

以前机器学习的目标是降低经验风险,要降低经验风险,就要提高分类函数的复杂度,导致VC维很高,VC维高,置信风险就高,所以,结构风险也高。---- 这是SVM比其他机器学习具有优势的地方。下面就说说VC维是怎么回事。

VC维

 

机器学习导论 的解释 :假定我们有一个数据集,包含N个点。这N个点可以用 种方法标记为正例和负例(属于和不属于某个类)。因此,N个数据点可以定义 种不同的学习问题。假如(,)逗号前的是属于,逗号都的是不属于。比如1个点,可以分为(
a , )( , a );2个点可以分为( ab , )( , ab )  ( a , b ) ( b , a )四种;依次类推...如果对于这些问题中的任何一个,我们都能够找到一个假设h∈ 将正例和负例分开,那么我们就称 散列(shatter )N个点。也就是说,可以用N个点定义的任何的学习问题都能够用一个从中抽取的假设无误差地学习。可以被散列的点的最大数量称为 的VC 维(Vapnik 和Cortes ),记为VC( ),它度量假设类 的学习能力(capactiy )。

具体参考:2.2 VC维

网友解释 :模式识别中VC 维的直观定义是:对一个指示函数集,如果存在N 个样本能够被函数集中的函数按所有可能的 种形式分开,则称函数集能够把N 个样本打
散,函数集的VC 维就是它能打散的最大样本数目N ,若对任意数目的样本都有函数能将它们打散. 则函数集的VC 维是无穷大。有界实函数的VC 维可以通过用一 定的阈值将它转化成指示函数来定义。VC 维反映了函数集的学习能力,VC 维越大则学习机器越复杂,所以VC 维又是学习机器复杂程度的一种衡量。换一个角度来理解,如果用函数类{f(z,a)} 代表一个学习机,a 确定后就确定了一个判别函数了EF ,而VC 维为该学习机能学习的可以由其分类函数正确给出的所有可能二值标识的最大训练样本数。

具体参考:http://xyxy100.blog.163.com/blog/static/115572596201041754333345/

为什么直线函数的VC维是3呢不是4呢。因为对角线上的AD分不到一起,BC分不到一起。

A  B

C  D

 

总之:分类函数简单,VC维低,分类函数复杂,VC维高。

 

正则化:regularization

归一化:normalization


李航博士在其统计学习方法中写道统计学习的三要素由模型、策略和算法组成。在监督学习中模型即是要学习的概率分布函数或决策函数,因此模型的假设空间便包括所有可能的概率分布或决策函数。

模型的假设空间有了之后,下面的问题就是如何选择最优的模型,选择的准则又是什么。这就引入了损失函数和风险函数的概念。

损失函数度量一次预测的好坏。

风险函数度量平均意义下模型的好好。

在监督学习中我们从假设空间中选择f作为我们的决策函数,那么给一个输入X,我们会产生一个输出f(X)[分类回归均可],模型f产生的输出f(X)和实际输出y会有一定的差距。我们用损失函数(loss
function)或代价函数(cost function)来衡量预测错误的程度。损失函数有很多种,例如平方损失函数(例如回归问题用的),绝对损失函数,对数损失函数(例如logistic regression用的),统一记为:L(Y,f(X))。

可见损失函数值越小,模型预测的就越好。模型的输入输出(X,Y)遵循联合概率分布P(X,Y),因此模型的期望损失为:

 

Rexp(f)=Ep[L(Y,f(X))]=XxYL(y,f(x))P(x,y)dxdy

当然现实世界中我们并不知道输入输出的概率分布是啥,不然也用不着我们去预测了。我们只拥有的是一些训练数据用做训练集,在这个训练集上,模型得到的平均损失称为经验风险(empirical
risk)或经验损失(empirical loss)。记为:

Remp(f)=1Ni=1NL(yi,f(xi))

 
 
如果样本的数量足够大,根据大数定理,经验风险应该接近期望风险。因此我们可以用经验风险来估计期望风险。因此经验风险最小化(empirical
risk minimization,ERM)的的原则就是说使经验风险最小的模型就是最优的模型。为了使经验风险最小,可以说无所不用其极,这样就有可能导致训练出的模型经验风险小,但模型复杂,导致模型泛化能力差,即在新数据上表型性能差,奥,对,专业名词叫过拟合(overfitting)。避免过拟合的问题可以用减少features的方法,也可以用结构风险最小化(structural risk minimization, SRM)。结构风险最小化等价于正则化(regularization),即在经验风险的后面加上与模型复杂度相符的正则化项(regularizer)或惩罚项(penalty
term),即:

Rsrm(f)=1Ni=1NL(yi,f(xi))?+λJ(f)

 
lambda表示对模型复杂的惩罚。值越大,惩罚越大。在实际操作中需要权衡。
例如在logistic
regression中,后面的正则化项为:

λ2mj=1mθj2

 
 
lambda=0,即不进行正则化,出现过拟合,以机器学习公开课logistic
regression的图为例
 
 
 

让lambda=1,对模型复杂度进行惩罚,分类效果与泛化能力还不错:
 
 
 
 
 惩罚过火的话,比如lambda=100,出现欠拟合(underfitting)的问题:
 

 

抱歉!评论已关闭.