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

1.泛化误差界

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

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

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

接着我们假设有一个未知的分布 P(X,Y)  是X 到 Y 的映射,给定Xi 都有一个固定的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 个点,每个点我们都有个标记 Yi = {+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维空间 Rn 中有一个m个点的集合,选择任意一个点作为原点,如果剩下的m-1个点是线性可分的,那么这m个点就可以被一个超平面集合分散

推广一下,在n维空间 Rn 中我们总是可以选取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

结构风险最小化和VC维度理论相关推荐

  1. ESL第七章 模型评估及选择 【期望】测试误差、模型偏差估计偏差、【平均】乐观、AIC、参数有效数、BIC、最小描述长度、VC/结构风险最小化、一标准误差准则/广义交叉验证、【留一】自助/.632估计

    目录 7.2 偏差.方差和模型复杂度 7.3 偏差-方差分解 7.3.1 例子:方差-偏差权衡 7.4 训练误差率的"乐观optimism" 7.5 样本内预测误差的估计.Cp和A ...

  2. 损失函数-经验风险最小化-结构风险最小化

    1.损失函数 最简单的理解就是,给定一个实例,训练的模型对它的预测结果错了,就要受到惩罚, 因此需要定义一个量度量预测错误的程度,而损失函数就是用来衡量错误的程度.常见的损失函数有如下几类(用 来表示 ...

  3. 期望风险最小化、经验风险最小化、结构风险最小化

    本文为阅读<关于统计学习理论与支持向量机>论文笔记 水平有限,有错误请指出,谢谢 风险最小化 损失函数 期望风险最小化 经验风险最小化 结构化风险最小化 VC维 推广性的界 结构风险最小化 ...

  4. 结构风险最小化(Structural Risk Minimization, SRM)

    1.定义 统计学习理论提出了一种新的策略,即把函数集构造为一个函数子集序列,使各个子集按照VC维的大小排列;在每个子集中寻找最小经验风险,在子集间折衷考虑经验风险和置信范围,取得实际风险的最小.这种思 ...

  5. 经验风险最小化和结构风险最小化

    在假设空间.损失函数以及训练集确定的情况下,经验风险函数就可以确定.假设给定一个数据集: 模型f(x)关于训练数据集的平均损失成为经验风险或经验损失: 经验风险是模型关于训练样本集的平均损失. 经验风 ...

  6. 机器学习-算法背后的理论与优化(part5)--结构风险最小(下)

    学习笔记,仅供参考,有错必纠 参考自:机器学习-算法背后的理论和优化: 文章目录 结构风险最小(下) 回归的正则化 L 2 L_2 L

  7. 机器学习-算法背后的理论与优化(part4)--结构风险最小(上)

    学习笔记,仅供参考,有错必纠 文章目录 结构风险最小(上) 经验风险最小和过拟合 结构风险最小和正则化 结构风险最小(上) 经验风险没有考虑模型学习能力和数据的匹配度.在讨论泛化误差时,若模型学习能力 ...

  8. 机器学习理论 之 经验风险最小化(Empirical Risk Minimization)

    该理论探讨的是模型在training set上的error 与 generation error的关系. 训练模型时,需要多少个样本,达到什么精度,都是由理论依据的. 理论点: 偏差方差权衡(Bias ...

  9. 经验风险最小化(Empirical Risk Minization,ERM)

    一.偏差方差权衡 1. 偏差与方差 回顾之前在讨论线性回归问题时,通常存在以下三种情况: 图1,用一条直线拟合一个呈现二次结构的散点,无论训练样本怎样增多,一次函数都无法准确地表示出二次函数.我们认为 ...

最新文章

  1. javaScript使用三目运算进行判断
  2. Spark读取MySQL中的数据为DataFrame
  3. 用SpringBoot集成Netty开发一个基于WebSocket的聊天室
  4. 容器镜像相关项目 错误 分析步骤
  5. autojs控制台美化
  6. C++二维数组的定义及理解
  7. C语言麻将递归,一个简洁明了的递归函数——判断[麻将]的和牌
  8. Unity-日志工具
  9. 多人网络游戏服务器开发基础学习笔记 II: 帧同步 | 游戏客户端预测原理分析 | FPS 游戏状态同步
  10. 大学c语言基础 Turbo C2.0 (32位/64位通用)
  11. 大学计算机实验六文件管理与磁盘恢复,虚拟实验:文件管理与磁盘恢复.pdf
  12. LDO低压差线性稳压器
  13. 单位根检验、协整检验和格兰杰因果…
  14. 【Git】每天1分钟系列——Git本地与远程服务器介绍
  15. C语言数据类型占字节数
  16. 实验四: 子集和问题
  17. SWUST OJ 321: 函数的递归调用
  18. 【日常学习】【语法】STL之vector
  19. 驱动器使用 —— DS402状态切换(个人笔记)
  20. 苹果iPad 2通过3C认证 入华尚缺入网许可证

热门文章

  1. C语言十进制,八进制,十六进制输出分析
  2. 链路聚合的原理及其配置
  3. html setdate方法,JavaScript设置一个月的某一天的方法setDate()
  4. 康耐视Visionpro常见问题汇总1-视觉人机器视觉粉丝-千问之六十五解答
  5. python机器学习算法(赵志勇)学习笔记( Logistic Regression,LR模型)
  6. 微信小程序 解析XML中缺失函数的判断
  7. HTML5七夕情人节表白网页制作【浪漫的空中散落的花瓣3D相册】HTML+CSS+JavaScript 3D动态相册源码素材 html生日快乐祝福网页制作
  8. WireMock使用
  9. 自己搭建一套聊天系统Rocket.chat(可在Internet使用)
  10. 论文翻译(10)--CASME2: A Database for Spontaneous Macro-Expression and Micro-Expression Spotting and Rec