24小时热门版块排行榜    

查看: 5423  |  回复: 21
当前主题已经存档。

当我孤单

[交流] 【原创】支持向量机,最近很火,来看看吧!

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


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,其中我详细了解了LIBSVM。LIBSVM 是一个开源的软件包,是台湾大学林智仁博士等开发的,可以解决上面所提到的三类机器学习基本问题,提供了线性、多项式、径向基和S形函数四种常用的核函数供选择。


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

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


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


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


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

所以,归纳如下

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

[ Last edited by bslt on 2009-5-11 at 11:13 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

wcwyf

银虫 (小有名气)

★ ★ ★
bslt(金币+2,VIP+0):感谢交流,欢迎常来! 9-11 18:11
ljl1205(金币+1,VIP+0):欢迎交流 9-25 20:32
首先,SVM已经不那么热了。更确切的说是没有那么多人迷信svm了。当然它仍然是一种更好的工具。
其次,如果你想做一些出色的工作,建议找个active的group,踏踏实实,做一些领域内有相当难度的题目。这些领域不是特别容个易出工作,但是一旦出了工作,就会很有影响力。如果盲目追一些所谓的热点,很可能只能出一些二流的工作,上不上,下不下,很不好过。
10楼2009-04-29 07:45:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

当我孤单

希望大家多加交流,前段时间听了周志华的学术报告,挺好的,也讨论了几个问题
我主要对机器学习,数据挖掘方面做点东西!
2楼2008-10-24 10:04:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

benzlion

金虫 (小有名气)

★ ★
2007骑猪逛街(金币+1,VIP+0):欢迎交流 4-21 16:54
ljl1205(金币+1,VIP+0):欢迎交流 9-27 09:28
火?个人认为应用有局限性,理论上虽说比较完备,但限制条件不少。应用上就很难普及,比如,一般哪有多少小样本问题啊,给大量的样本还不一定学习的好呢。还有,灵活性也不太好,比如在ANN中可调整的权值。。。。。。唉,总感觉智能还处于混沌状态,没一个完整的体系,各有各的说法,说好是百花齐放,说歹是乱七八糟,国外提出国内改进。。。。。智能所的史忠植好像有本智能科学有点集大成的意思,可惜在各领域联系勉强中不免牵强。。。
3楼2008-10-25 09:22:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

调皮刀

银虫 (正式写手)

我也想用它,但我不是研究数据挖掘的,我想把SVM用到自己的识别上
4楼2008-11-28 15:43:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lxpzju

铁虫 (初入文坛)

问题还是很多的,典型的就是药学领域,获取一个参数特别费时
5楼2008-12-02 17:40:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qiaoyusun

铁虫 (小有名气)

★ ★
2007骑猪逛街(金币+1,VIP+0):欢迎交流 4-21 16:54
ljl1205(金币+1,VIP+0):欢迎交流 9-25 20:32
我只是很粗略地了解SVM的原理,也知道要通过最优化来解决问题,可是不知道如果用到具体的问题上应该怎么用程序来实现(我用VC)。下了一个SVM的C++的程序,看不懂!大家不要见笑。
6楼2009-04-21 16:45:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ygm868

木虫 (正式写手)

数据挖掘领域SVM已经不火了。
7楼2009-04-24 21:36:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

想飞的猪

木虫 (正式写手)

没时间看!先顶一个!
8楼2009-04-27 00:03:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

whuts

铁杆木虫 (正式写手)

收藏了,慢慢看
9楼2009-04-27 12:31:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 当我孤单 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见