文本分类学习 (七)支持向量机SVM 的前奏 结构风险最小化和VC维度理论

前言:

经历过文本的特征提取,使用LibSvm工具包进行了测试,Svm算法的效果还是很好的。于是开始逐一的去了解SVM的原理。

SVM 是在建立在结构风险最小化和VC维理论的基础上。所以这篇只介绍关于SVM的理论基础。

目录: 

1.泛化误差界

机器学习的能力和它的表现,有一个衡量的标准那就是统计学习中的泛化误差界。所谓泛化误差,就是指机器学习在除训练集之外的测试集上的预测误差。传统的机器学习追求在训练集上的预测误差最小化(经验风险,下面会具体说到),然后放到实际中去预测测试集的文本,却一败涂地。这就是泛化性能太差,而泛化误差界是指一个界限值,后面也会解释到。

机器学习实际是在预测一个模型以逼近真实的模型。这其中就必然存在与真实模型之间的误差(风险),这个风险当然是可以计算的。

假设我们有l个观察值,每个观察值由两个元素组成 一个属于Rn(n维空间)的向量:Xi  ∈  Rn (i = 1 , 2 , 3 , 4...l)  已经和这个向量相对应的映射值 Yi 在二分类文本中 Xi就表示第i个文本的特征向量,前面介绍过,那么Y= {+1,-1} 由两个类别组成。

接着我们假设有一个未知的分布 P(X,Y)  是X 到 Y 的映射,给定X都有一个固定的Yi 与之对应(可以当做实际测试数据集)与此同时我们使用机器学习得到了一个函数 f (x, α) 表示输入 x 会得出x的映射 y,这里的 α 是机器学习的某一个参数,比如具有固定的结果的神经网络,具有表示重量和偏见的  α 。 那么该机器学习算法的风险(误差)公式 :

             

(α) 术语叫做期望风险(expected risk),我们也可以称作为真实风险,因为它是衡量机器学习和实际测试数据集之间的误差。

而机器学习和训练数据集之间的误差也有个名字叫做经验风险 (empirical risk)用 Remp(α)  表示:

                                    

这里给定参数 α 和训练集  {xi,yi}  得到的 Remp(α) 是一个确定的数字,取一个 η  ( 0<= η<=1)用 1- η 机器学习出现误差的概率,(α) 有一个上界可以表示为(Vapnik, 1995 ):

                     

               

Φ(h/l) 叫做置信风险 (VC confidence), h 叫做VC维度 (Vapnik Chervonenkis (VC) dimension) l 就是样本数目  Φ(h/l) 的公式如下:

                   

    

以上公式可以看到,要使真实风险最小,统计学习就要使得(α) 的上界最小,也就是让 Φ(h/l) +  Remp(α) 变的最小,也就是结构风险最小,。可以说 Φ(h/l) +  Remp(α) 叫做结构风险,它是一个实际的边界值,是(α)  的上限,就是统计学中的泛化误差界限。那么怎么使得结构风险最小化呢?下面就要提到VC维度理论。(注:上面的公式我觉得就不用去推导了,都是paper里面的公式,知道意思即可)

2.VC维度

上面说到置信风险Φ(h/l) 中的h叫做VC 维度,那么VC维度是什么呢?举个例子:

假设我们有 l 个点,每个点我们都有个标记 Y= {+1,-1},把这 l 个点 分别进行标记+1或者-1 ,那么有2l 种方法。对于函数集 { f(x,α) } (f(x,α) 就是前面提到的机器学习得到的分类函数) 中的函数,2l中的每个方法都能从函数集中找到一个函数去成功的标记,那么就说这个函数集 { f(x,α) } 的VC维度为 l 。也就是函数集能够进行标记的数据点的最大个数(用行话叫做分散)。再实际一点:

这是在二维坐标平面上,3个点,将他们进行比较为2个类别,会有2的3次方,也就是8种方法,可以看到每种标记方法我们都可以找到一条直线把这3个点分散(就是根据类别分开)。但是4个点的时候,你却发现有几种情况你无法找到一条直线将他们按照类别分开在直线的两侧。这也就说明了在二维空间里,一个直线的集合的VC维度是3。

推广到n维空间Rn 中 超平面(Oriented Hyperplanes)的VC维度是n+1。证明的方法是根据一个定理:

在n维空间 R中有一个m个点的集合,选择任意一个点作为原点,如果剩下的m-1个点是线性可分的,那么这m个点就可以被一个超平面集合分散

推广一下,在n维空间 R中我们总是可以选取n+1个点,选取其中一个点作为原点,剩下的n个点在n维空间是一定线性可分的,因此n+1个点在n维空间中是可以被超平面集合分散的。

VC维度越高,表示函数集的复杂程度越高。一般的函数集的越复杂,VC维度越高,能够对训练集的每一个文本都可以精确分类,也就是把经验风险降到最低,但是前面说过,面对训练集之外的样本却一塌糊涂。就是因为VC维度太高了,为什么呢?因为忽视了置信风险:

                

                            

取 η = 0.05)  l =  10,000 可以得到

可以看到VC维度 h 越高,置信风险也越高,对于任意的l, 置信风险都是h的递增函数。

对于一般情况VC维度越高,机器学习的置信风险越高,泛化能力就会越差。然而也有相反的情况:

反例:

如果VC维度到达无限,比如K邻近算法,k=1 只有一个类,那么所有的样本都会被正确分类,他的VC维度是无限的,经验风险是0。他的泛化能力反而是无限强的。

如果VC维度到达无限,那么上面的说的泛化误差界限就没有实际的用处了,所以VC维度高到无限对性能的影响也不一定是差的。

3.SRM 结构风险最小化

在第1节中已经提到了让  Φ(h/l) +  Remp(α) 最小化 ,就是结构风险最小化,也即SRM( Structural Risk Minimization )

具体的思想是:

通过将函数集划分为多个子集。 对于每个子集按照VC维度排列,在每个子集中寻找最小经验风险,然后在子集之间折衷考虑经验风险和置信风险之和最小,得到的泛化误差界最小。

而SVM 则是将结构风险最小化较好实现的算法。具体在哪里体现了,还是在以后遇到的时候再提吧。

原文地址:https://www.cnblogs.com/dacc123/p/9015829.html

时间: 2024-11-07 19:40:59

文本分类学习 (七)支持向量机SVM 的前奏 结构风险最小化和VC维度理论的相关文章

svm、经验风险最小化、vc维

原文:http://blog.csdn.net/keith0812/article/details/8901113 “支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上” 结构化风险 结构化风险 = 经验风险 + 置信风险 经验风险 =  分类器在给定样本上的误差 置信风险 = 分类器在未知文本上分类的结果的误差 置信风险因素: 样本数量,给定的样本数量越大,学习结果越有可能正确,此时置信风险越小: 分类函数的VC维,显然VC维越大,推广能力越差,置信风险会变大. 提高样本

文本分类学习(三) 特征权重(TF/IDF)和特征提取

上一篇中,主要说的就是词袋模型.回顾一下,在进行文本分类之前,我们需要把待分类文本先用词袋模型进行文本表示.首先是将训练集中的所有单词经过去停用词之后组合成一个词袋,或者叫做字典,实际上一个维度很大的向量.这样每个文本在分词之后,就可以根据我们之前得到的词袋,构造成一个向量,词袋中有多少个词,那这个向量就是多少维度的了.然后就把这些向量交给计算机去计算,而不再需要文本啦.而向量中的数字表示的是每个词所代表的权重.代表这个词对文本类型的影响程度. 在这个过程中我们需要解决两个问题:1.如何计算出适

模式识别之svm()---支持向量机svm 简介1995

转自:http://www.blogjava.net/zhenandaci/archive/2009/02/13/254519.html 作者:Jasper 出自:http://www.blogjava.net/zhenandaci/ (一)SVM的八股简介 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10].支持向量机方法是

文本分类,数据挖掘和机器学习

转自:http://blog.chinaunix.net/uid-446337-id-94440.html 分类: 机器学习的有概率分类器(probabilistic) ,贝叶斯推理网络(bayesian inference networks) , 决策树分类器(decision tree) ,决策规则分类器(decision rule) ,基于回归的线性最小二乘llsf(regression based on linearleast squares fit ) , 符号规则归纳法( symbo

SVM分类(一)SVM的八股简介

支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10].    支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力[14](或称泛化能力). 以

第八篇:支持向量机 (SVM)

前言 本文讲解如何使用R语言中e1071包中的SVM函数进行分类操作,并以一个关于鸢尾花分类的实例演示具体分类步骤. 分析总体流程 1. 载入并了解数据集:2. 对数据集进行训练并生成模型:3. 在此模型之上调用测试数据集进行分类测试:4. 查看分类结果:5. 进行各种参数的调试并重复2-4直至分类的结果让人满意为止. 参数调整策略 综合来说,主要有以下四个方面需要调整: 1. 选择合适的核函数:2. 调整误分点容忍度参数cost:3. 调整各核函数的参数:4. 调整各样本的权重. 其中,对于特

dnn文本分类

简介 文本分类任务根据给定一条文本的内容,判断该文本所属的类别,是自然语言处理领域的一项重要的基础任务.具体的,本任务是对文本quey进行分类,任务流程如下: 收集用户query数据. 清洗,标记. 模型设计. 模型学习效果评估. 运行 训练: sh +x train.sh 预测: python infer.py 输入/输出 输入样本: label text(分词后) 0 龙脉温泉 住宿 1 龙马 机场 飞机 2 龙里 旅游 其中,label 0,1和2分别代表:酒店,票务和住宿. 预估样本:

支持向量机SVM进阶

本文适合于对SVM基本概念有一点了解的童鞋. SVM基本概念: 最大边缘平面--基本原理:结构风险最小化 分类器的泛化误差 支持向量 问题描述: 请对一下数据,利用svm对其进行分类. 最终任务: 找到最优超平面   图1 看到这张图之后,发现这是一个线性可分的二分类问题. 数据是这样的:   y=1 类别1   y=-1 类别2   x1 x2   x1 x2 x1 0 0 x4 3 3 x2 1 0 x5 3 0 x3 0 1 x6 0 3 好,老师的题目已经出完了,在动手解题之前,我们首先

机器学习 之 SVM VC维度、样本数目与经验风险最小化的关系

VC维在有限的训练样本情况下,当样本数 n 固定时.此时学习机器的 VC 维越高学习机器的复杂性越高. VC 维反映了函数集的学习能力,VC 维越大则学习机器越复杂(容量越大). 所谓的结构风险最小化就是在保证分类精度(经验风险)的同一时候,减少学习机器的 VC 维,能够使学习机器在整个样本集上的期望风险得到控制. 经验风险和实际风险之间的关系,注意引入这个原因是什么? 由于训练误差再小也就是在这个训练集合上,实际的推广能力不行就会引起过拟合问题. 所以说要引入置信范围也就是经验误差和实际期望误