【原创】SVM小结

理论基础:

机器学习有三类基本的问题,即模式识别、函数逼近和概率密度估计.

 

SVM有着严格的理论基础,建立了一套较好的有限训练样本下机器学习的理论框架和通用方法。他与机器学习是密切相关的,很多理论甚至解决了机器学习领域的其他的问题,所以学习SVM和机器学习是相辅相成的,两者可以互相促进,有助于机器学习理论本质的理解。

 

维理论:对一个指示函数集,如果存在个样本能够被函数集中的函数按所有可能的种形式分开,则称函数集能够把个样本打散;函数集的维就是它能打散的最大样本数目。维反映了函数集的学习能力,维越太则学习机器越复杂(容量越太)。

 

期望风险:其公式为,其中为损失函数,为概率分布,期望风险的大小可以直观的理解为,当我们用进行预测时,“平均”的损失程度,或“平均”犯错误的程度。

 

经验风险最小化(ERM准则)归纳原则:但是,只有样本却无法计算期望风险,因此,传统的学习方法用样本定义经验风险作为对期望风险的估计,并设计学习算法使之最小化。即所谓的经验风险最小化(ERM准则)归纳原则。经验风险是用损失函数来计算的。对于模式识别问题的损失函数来说,经验风险就是训练样本错误率;对于函数逼近问题的损失函数来说,就是平方训练误差;而对于概率密度估计问题的损失函数来说,ERM准则就等价于最大似然法。但是,经验风险最小不一定意味着期望风险最小。其实,只有样本数目趋近于无穷大时,经验风险才有可能趋近于期望风险。但是很多问题中样本数目离无穷大很远,那么在有限样本下ERM准则就不一定能使真实风险较小。ERM准则不成功的一个例子就是神经网络和决策树的过学习问题(某些情况下,训练误差过小反而导致推广能力下降,或者说是训练误差过小导致了预测错误率的增加,即真实风险的增加)。

 

结构风险最小化理论(SRM):所以,在有限样本情况下,仅仅用ERM来近似期望风险是行不通的。统计学习理论给出了期望风险与经验风险之间关系:

 

其中 为置信区间,是VC的增函数,也是样本数的减函数。右端称为结构风险,它是期望风险的一个上界。经验风险的最小依赖较大的 F (样本数较多的函数集)中某个 f 的选择,但是 F 较大,则VC维较大,就导致置信区间变大,所以要想使期望风险最小,必须选择合适的和来使不等式右边的结构风险最小,这就是结构风险最小化归纳原则。

 

实现SRM的思路之一就是设计函数集的某种结构使每个子集中都能取得最小的经验风险(如使训练误差为0),然后只需选择适当的子集使置信范围最小,则这个子集中使经验风险最小的函数就是最优函数。SVM方法实际上就是这种思想的具体实现。

主要思想:

SVM方法是从线性可分情况下的最优分类面提出的,它是实现统计学习理论思想的方法。所谓最优分类面就是要求分类面不但能将两类无错误地分开,而且要使两类的分类间隔最大。前者是保证经验风险最小(如使训练误差为0),而使分类间隔最大实际上就是使推广性的界中的置信范围最小,从而使真实风险最小。

 

构造这个最优分类面的方法有2个:平分最近点法和最大间隔法。这两个方法求解得到的是同一个超平面,这个方法就称为线性可分支持向量分类机。其实,这个分类机是将最大间隔法求解最优分类面的最优化问题转化为其对偶问题,从而通过求解相对简单的对偶问题来求解原分类问题的算法。随后引入松弛变量和惩罚因子来解决非线性分类问题,并且允许一定的分类错误,最终得到非线性软间隔的标准的 C-支持向量机(C-SVC)。其中的巧妙之处就在于把一个复杂的最优化问题的求解简化为对原有样本数据的内积运算。我们要做的就是选择适当的核函数及其参数、惩罚因子就可以了。

 

对于线性不可分情况,则通过核函数,把输入映射到另一个空间中,在新的空间中使用线性支持向量机。

 

核函数:

 

核方法在数学中是个古老的命题.通过一个特征映射可以将输入空间(低维的)中的线性不可分数据映射成高维特征空间中(再生核Hilbert空间)中的线性可分数据.这样就可以在特征空间使用SVM方法了.因为使用svm方法得到的学习机器只涉及特征空间中的内积,而内积又可以通过某个核函数(所谓Mercer)来表示,因此我们可以利用核函数来表示最终的学习机器.这就是所谓的核方法.核函数本质上是对应于高维空间中的内积的,从而与生成高维空间的特征映射一一对应.核方法正是借用这一对应关系隐性的使用了非线性特征映射(当然也可以是线性的).这一方法即使得我们能够利用高维空间让数据变得易于处理----不可分的变成可分的,同时又回避了高维空间带来的维数灾难-----不用显式表达特征映射.

核技巧把高维空间中两个点的内积计算,用原来空间中的两个模式的简单函数即核函数的求值来代替。核技巧不仅应用于支持向量机,还可以应用于那些含有内积计算的非线性算法。例如函数逼近,主成分分析等等。

 

在支持向量机中使用的核函数主要有四类:

线性核函数:

多项式核函数:

RBF核函数:

Sigmoid核函数:

其中,和均为核参数。

究竟用哪一种核函数取决对数据处理的要求,不过建议一般都是使用RBF核函数。因为RBF核函数具有良好的性态,在实际问题中表现出了良好的性能。

软件工具:

支持向量机的软件工具主要有LIBSVM和SVMLight,其中我详细了解了LIBSVMLIBSVM 是一个开源的软件包,是台湾大学林智仁博士等开发的,可以解决上面所提到的三类机器学习基本问题,提供了线性、多项式、径向基和S形函数四种常用的核函数供选择。

 

LIBSVM 使用的一般步骤是:
1) 按照LIBSVM软件包所要求的格式准备数据集;
2) 对数据进行简单的缩放操作;
3) 考虑选用RBF 核函数;
4) 采用交叉验证选择最佳参数C与g ;
5) 采用最佳参数C与g 对整个训练集进行训练获取支持向量机模型;
6) 利用获取的模型进行测试与预测。

应用领域

SVM可以用于模式识别、函数逼近和概率密度估计.

 

总的来说,SVM能够较好的解决小样本,非线性,高维数识别和局部极小点等问题。

 

详细说来,可以应用于如下领域:人脸检测,故障诊断,分类,回归,聚类,时间序列预测,系统辨识,金融工程,生物医药信号处理,数据挖掘,生物信息,文本挖掘,自适应信号处理,剪接位点识别,基于支持向量机的数据库学习算法,手写体相似字识别,支持向量机函数拟合在分形插值中的应用,基于支持向量机的惯导初始对准系统,岩爆预测的支持向量机,缺陷识别,计算机键盘用户身份验证,视频字幕自动定位于提取,说话人的确认,等等。

 

研究方向:

虽然SVM 方法在理论上具有很突出的优势, 但与其理论研究相比,应用研究尚相对比较滞后, 所以现在的主要的研究方向就是SVM的应用。包括SVM在新领域的应用以及跟其他方法的结合。例如SVM决策树可以用于多层分类。

所以,归纳如下

核函数的构造和参数的选择;支持向量机从两类问题向多类问题的推广;更多的应用领域的推广;与目前其它机器学习方法的融合;与数据预处理(样本的重要度,属性的重要度,特征选择等)方面方法的结合,将数据中脱离领域知识的信息,即数据本身的性质融入支持向量机的算法中从而产生新的算法;支持向量机训练算法的探索。

阅读材料

1.数据挖掘中的新方法-支持向量机 邓乃扬 田英杰著

2.支持向量机导论

3. A practical guide to SVM classification.pdf

4. LibSVM-2.6 程序代码注释.pdf

5. 一种新的SVm决策树.pdf

6. 2000261-关于统计学习理论与向量机.pdf

7 支持向量机的研究现状与进展.pdf

8. 统计学习理论的本质

转载于:https://www.cnblogs.com/dskong/archive/2012/05/27/2520045.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React 18 带给我们的惊喜

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列这篇文…

建模心法(2)——迈出建模第一步

原文地址:http://www.cnblogs.com/1-2-3/archive/2008/08/04/model-method-part1.html 原文作者:景春雷 一错再错的这故事才精彩 ——朴树 《我爱你再见》摘要 即使读了再多的书、跟过再多的项目,…

Web:你知道我这十几年是怎么过来的吗?!

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列1989 …

设计师更高效_如何丢掉我的工作使我成为一名更好的设计师

设计师更高效I lost my job a few times early on in my design career. In the process of getting back up after a job loss, it has made me a better designer not only in terms of hard skills but the soft skills required to be more resilient and empathetic, whic…

【ASP.NET】登陆成功后如何跳转到上一个页面

当用户浏览网页的时候会在某个地方需要用户登陆才能继续浏览,用户登陆之后会自动跳转到刚刚浏览的页面。这个步骤是怎么实现的呢?net小伙在查阅相关资料实践之后终于明白了,其实很简单,先分享给大家吧。 当用户在浏览一个页面的时…

4月,诚邀你参加源码共读,学会看源码,打开新世界!开阔视野

大家好,我是若川。很多关注我的新朋友可能不知道我组织了源码共读活动~也有很多人不知道我是谁。有人以为我是80后。有人以为我是全职自媒体等等。若川的 2021 年度总结,弹指之间 这篇文章写了我是16年毕业的,或许有些启发。源码共读按照从易…

bt709和srgb_选择用于多用途视频编辑和色彩校正的显示器— sRGB,DCI-P3,REC 709

bt709和srgb**Note from the author: if you enjoy this article, please follow me or this publication for more video production and marketing related content.****作者注:如果您喜欢本文,请关注我或此出版物以获取更多与视频制作和营销相关的内容…

超4000人参加源码共读,喊你来一起学习成长~打开新世界

大家好,我是若川。很多关注我的新朋友可能不知道我组织了源码共读活动~也有很多人不知道我是谁。有人以为我是80后。有人以为我是全职自媒体等等。若川的 2021 年度总结,弹指之间 这篇文章写了我是16年毕业的,或许有些启发。源码共读按照从易…

figma设计_如何在Figma中构建设计入门套件(第二部分)

figma设计Figma教程 (Figma Tutorial) With this short, but informative Tutorial Series I aim to show you how to build the solid foundations of a powerful, and versatile Design Starter Kit, enabling you to start your next project in Figma faster than ever bef…

Hibernate 简介(百度)

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在…

GitHub 最受欢迎的Top 20 JavaScript 项目

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列今天来…

java反编译,eclipse支持插件

http://java.decompiler.free.fr/?qjdeclipse 按照说明 在eclipse更新插件就可以。 这样 在一些 闭源的jar文件,你也可以看到 大致的源码。(公司 知道如何 加密混淆 java代码或class文件,居然无法使用jd-gui浏览源码) 而&#xf…

unity vr 交互_基于手动的VR / MR交互,用于删除实体

unity vr 交互Deleting an entity or closing an application is one of the most ubiquitous operations performed in any application. It is necessary for the organization of the data. On the computer, there are multiple ways to delete a file like cmd delete, d…

手把手带你走进Babel的编译世界

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列前言谈…

iPhone/Mac Objective-C内存管理教程和原理剖析(二)口诀与范式转

版权声明 此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com,且必须包含此版权声明的完整内容。 版本 1.1 发表于2010-03-08 二 口诀与范式 1 口诀。 1.1 …

同态加密应用_重新设计具有同态性的银行应用

同态加密应用Catering user preference is undoubtedly a never-ending task. End of the day, it takes all sorts to make a world. For that reason, it is deemed important to design with the accent of communicating core business value, and resolving user needs wi…

(字节/华为/美团)前端面经记录冷冷清清的金三银四

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列从毕业…

PHP连接PGSQL

function conn($hostName,$Login,$Password,$dbName,$Port) //建立目标数据库连接 {$conn &ADONewConnection(postgres8);$conn->debug false; //true时adodb将在页面显示debug信息$conn->LogSQL(false); //true时adodb将建立adodb_sqllog表记录每次sql操作$conn-&…

netflix_Netflix播放按钮剖析

netflixWe will develop a play pause button similar to the one the Netflix video player has.我们将开发一个类似于Netflix视频播放器的播放暂停按钮。 Since Swift has replaced Objective-C as the default development language for iOS, the same will apply to Swift…

TypeScript 终极初学者指南

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列在过去…