凸二次规划和核函数是实现svm的两种方法吗

工具类服务
编辑部专用服务
作者专用服务
支持向量分类机的核函数研究
支持向量机是二十世纪九十年代发展起来的统计学习理论的核心内容,它是借助于最优化方法解决机器学习问题的新工具,集成了最优超平面、Mercer核函数、凸二次规划、稀疏解和松弛变量等多项技术,具有全局最优、结构简单、推广能力强等优点,在模式分类、回归分析和概率密度估计等若干方面获得非常好的应用效果。核函数是支持向量机的重要组成部分,它巧妙地解决了高维空间的问题,通过使用不同的核函数,可实现不同的支持向量机算法。经验表明在众多核函数中,高斯核函数由于其特殊的性质和广泛的应用得到广大研究者的重视。由于核函数的好坏直接影响着支持向量机的性能,因此有关核函数的研究就成为大家关注的焦点,成为支持向量机研究中需要解决的核心问题之一。  
论文针对支持向量机核函数的参数选择和核函数的修正问题进行了研究,主要内容为:  
首先,对支持向量机分类模型的核参数进行分析,考察目前常用的几种核参数优化方法,包括交叉验证法、网格搜索算法、遗传算法和粒子群算法,总结了它们的优缺点。基于粒子群算法收敛速度快而遗传算法不易陷入局部最优的优点,提出一种新的核参数优化方法,该方法是两种算法交替进行,应用迭代控制器进行控制,每隔数代进行最优粒子交互,从而克服了粒子群算法陷入局部最优而导致的收敛精确度低或不收敛的问题,支持向量机分类精度也提高了。  
其次,为了更好地适应实际情况,利用实验数据从黎曼几何角度来增大支持向量机的分类精度。针对之前的修正核函数受到支持向量数目和分布的影响这一缺陷,基于黎曼几何信息和Amair的几何修改方法提出一种新的修正核函数。该方法利用原始核函数训练SVM得到的分类边界与样本值所在平面的距离来代替样本点到支持向量的距离,通过改变拟共形变换来修正高斯核,旨在放大高斯核函数的体积元,从而提高SVM分类的效果。新的修正核函数,克服了以前修正核函数受支持向量数目的影响,并在很大程度上提高了SVM的泛化能力。  
最后,将论文的方法用于UCI数据库中Mushroom的分类中,实验说明用基于遗传算法-粒子群算法的核参数选择方法较遗传算法和粒子群算法取得了更好的分类准确率,具有良好的推广能力。新的修正核函数用于上述优化参数后的高斯核函数,再重复训练SVM,实验数据表明较原来的核函数有更好的分类性能。
学科专业:
授予学位:
学位授予单位:
导师姓名:
学位年度:
在线出版日期:
本文读者也读过
相关检索词
万方数据知识服务平台--国家科技支撑计划资助项目(编号:2006BAH03B01)(C)北京万方数据股份有限公司
万方数据电子出版社系统辨识中支持向量机核函数及其参数的研究_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
系统辨识中支持向量机核函数及其参数的研究
上传于|0|0|文档简介
&&具有不同核函数和参数的支持向量机(SVM)的性能存在很大差异,核函数及其参数的选择是SVM 应用和理论研究中的一个重要问题。在简要介绍非线性系统辨识的支持向量机方法后,重点对常用的核函数及其参数的选择进行了研究,并采用具有不同核函数的SVM 进行非线性系统辨识。
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢[转载]R中实现SVM的方法
已有 1526 次阅读
|个人分类:|系统分类:|文章来源:转载
1. 线性SVM  假设有分布在Rd空间中的数据,我们希望能够在该空间上找出一个超平面(Hyper-pan),将这一数据分成两类。属于这一类的数据均在超平面的同侧,而属于另一类的数据均在超平面的另一侧。如下图。 & & & & & & & & & & & & & & & & & & & & & & & & & & & & && & & 比较上图,我们可以发现左图所找出的超平面(虚线),其两平行且与两类数据相切的超平面(实线)之间的距离较近,而右图则具有较大的间隔。而由于我们希望可以找出将两类数据分得较开的超平面,因此右图所找出的是比较好的超平面。可以将问题简述如下:设训练的样本输入为xi,i=1,…,l,对应的期望输出为yi∈{+1,-1},其中+1和-1分别代表两类的类别标识,假定分类面方程为ω﹒x+b=0。为使分类面对所有样本正确分类并且具备分类间隔,就要求它满足以下约束条件:                                  (1)可以计算出,分类间隔为                                           (2) & & 在约束式的条件下最大化分类间隔2/||ω||这可以通过最小化||ω||2的方法来实现。那么,求解最优平面问题可以表示成如下的约束优化:即在条件式(1)的约束下,最小化函数                                          (3) & & 为了解决约束最优化问题,引入式(3)的拉格朗日函数                                   (4) & &其中,αi&0为拉格朗日系数,现在的问题就是关于ω和b求L的最小值。 & &把式(4)分别对ω和b求偏微分并令其等于0,就可以把上述问题转化为一个较简单的&对偶&形式:                                              (5a) & &                                              (5b)将得到的关系式:                                                (6)代入到原始拉格朗日函数,得到:                                         (7)如果αi*为最优解,那么                                                  (8)即最优超平面的权系数向量是训练样本向量的线性组合。 & &由于上述优化问题是一个Convex Problem,求解上述的SVM问题,须满足KKT条件,这个优化问题的解必须满足                                        (9)因此,对多数样本ai将为0,取值不为零的ai对应于式(1)中等号成立的样本即支持向量。求解上述问题后得到的最优分类函数是                                             (10)由于非支持向量对应的ai均为0,因此上式的求和实际上只对支持向量进行。最终的优化问题为                                  (11)2. 非线性SVM & & & & & & & & & & & & & & & & & & & & & & & & 然而有的问题并不是线性可分的。但是可以通过一个适当的非线性函数φ,将数据由原始特征空间映射到一个新的特征空间,然后在新空间中寻求最优判定超平面。
& &所以问题(11)可以改写为                                  (12) & & 如果直接在高维空间计算φ(x),将会带来维数灾难。为了解决这一问题,引入核函数                                                 (13) & &这样问题(12)就变成                                                   (14) & &常用的核函数有多项式核高斯径向基核Sigmoid核 & &实际问题很少线性可分,虽然理论上可通过非线性映射得到线性可分的数据,但如何获得这样的映射,且避免过拟合,仍存在问题。所以更实际的策略是允许一定误差。通常引入松弛变量ε,放松约束。这时问题描述改为下面的形式                                              (15) & &这样的分类器称为线性软间隔支持向量分类机。转化为拉格朗日乘子待定问题                                  (16)& & &其KKT条件为                                             (17) & &得到                                                 (18) & &只要确定a,便可解出w,b. & &将上述条件代入L中,得到新的优化问题:                                              (19) & &同样地引入核函数,把这个软间隔SVM的训练表示为一个高维空间上的二次规划问题                                      (20)3. 求解SVM & &非线性SVM可用经典的二次规划方法求解,但同时求解n个拉格朗日乘子涉及很多次迭代,计算开销太大。所以一般采用Sequential Minimal Optimization(SMO)算法。其基本思路是每次只更新两个乘子,迭代获得最终解。计算流程可表示如下 & & &For i=1:iter根据预先设定的规则,从所有样本中选出两个保持其它拉格朗日乘子不变,更新所选样本对应的拉格朗日乘子    End & &SMO算法的优点在于,只有两个变量的二次规划问题存在解析解。 & &关键的技术细节在于,一是在每次迭代中,怎样更新乘子;二是怎样选择每次迭代需要更新的乘子。 & &假定在某次迭代中,需要更新样本x1,x2对应的拉格朗日乘子a1,a2.这个小规模的二次规划问题可以写成                                   (21)&进一步简化为                                   (22)&步骤1 计算上下界L和H&步骤2 计算Ls的二阶导数步骤3 更新a2步骤4 计算中间变量步骤5 更新a1选择需要更新的乘子需要满足两点。任何乘子必须满足KKT条件对一个满足KKT条件的乘子进行更新,应能最大限度增大目标函数的值(类似于梯度下降)SMO算法的优点,在于(1)可保证解的全局最优性,不存在陷入局部极小解的问题。(2)分类器复杂度由支撑向量的个数,而非特征空间的维数决定,因此较少因维数灾难发生过拟合现象。缺点是需要求解二次规划问题,其规模与训练量成正比,因此计算复杂度高,且存储开销大, 不适用于需进行在线学习的大规模分类问题。4.LS-SVM & &Suykens和Vandewalle1999年提出                                 (23) & &与SVM的关键不同是约束条件由不等式变为了等式,对应的优化问题                              (24) & &不等式变为等式后,拉格朗日乘子可以通过解线性系统得到                                            (25)解线性系统远易于解二次规划问题。但相应地,绝大部分拉格朗日乘子都将不为零。也就是说,LS-SVM分类器的测试时间将长于SVM分类器。5.SVM最后概述 & &机器学习问题是在已知n个独立同分布的观测样本,在同一组预测函数中求一个最优的函数对依赖关系进行估计,使期望风险R[f]最小。期望风险的大小直观上可以理解为,当我们用f(x)进行预测时,&平均&的损失程度,或&平均&犯错误的程度。损失函数是评价预测准确程度的一种度量,它与预测函数f(x)密切相关。而f(x)的期望风险依赖于概率分布和损失函数,前者是客观存在的,后者是根据具体问题选定的,带有(主观的)人为的或偏好色彩。但是,只有样本却无法计算期望风险,因此,传统的学习方法用样本定义经验风险Remp[f]作为对期望风险的估计,并设计学习算法使之最小化。即所谓的经验风险最小化(Empirical Risk Minimization, ERM)归纳原则。经验风险是用损失函数来计算的。对于模式识别问题的损失函数来说,经验风险就是训练样本错误率;对于函数逼近问题的损失函数来说,就是平方训练误差;而对于概率密度估计问题的损失函数来 说,ERM准则就等价于最大似然法。事实上,用ERM准则代替期望风险最小化并没有经过充分的理论论证,只是直观上合理的想当然做法。也就是说,经验风险最小不一定意味着期望风险最小。其实,只有样本数目趋近于无穷大时,经验风险才有可能趋近于期望风险。但是很多问题中样本数目离无穷大很远,那么在有限样本下ERM准则就不一定能使真实风险较小。ERM准则不成功的一个例子就是神经网络的过学习问题(某些情况下,训练误差过小反而导致推广能力下降,或者说是训练误差过小导致了预测错误率的增加,即真实风险的增加)。 & &因此,在有限样本情况下,仅仅用ERM来近似期望风险是行不通的。统计学习理论给出了期望风险R[f]与经验风险Remp[f]之间关系:R[f] &= ( Remp[f] + e )。其中 e = g(h/n) 为置信区间,e 是VC维 h 的增函数,也是样本数n的减函数。右端称为结构风险,它是期望风险 R[f] 的一个上界。经验风险的最小依赖较大的F(样本数较多的函数集)中某个 f 的选择,但是 F 较大,则VC维较大,就导致置信区间 e 变大,所以要想使期望风险 R[f] 最小,必须选择合适的h和n来使不等式右边的结构风险最小,这就是结构风险最小化(Structural Risk Minimization, SRM)归纳原则。实现SRM的思路之一就是设计函数集的某种结构使每个子集中都能取得最小的经验风险(如使训练误差为0),然后只需选择适当的子集使置信范围最小,则这个子集中使经验风险最小的函数就是最优函数。SVM方法实际上就是这种思想的具体实现。 & &SVM是一种基于统计的学习方法,它是对SRM的近似。概括地说,SVM就是首先通过用内积函数定义的非线性变换将输入空间变换到一个高维空间,然后再在这个空间中求(广义)最优分类面的分类方法。转自:/zgw21cn/archive//1410978.html
转载本文请联系原作者获取授权,同时请注明本文来自王磊科学网博客。链接地址:
上一篇:下一篇:
当前推荐数:0
评论 ( 个评论)
扫一扫,分享此博文
作者的其他最新博文
热门博文导读
Powered by
Copyright &

我要回帖

更多关于 svm python 代码实现 的文章

 

随机推荐