支持向量机及支持向量回归简介
- 格式:doc
- 大小:518.50 KB
- 文档页数:12
支持向量机(SVM )原理及应用一、SVM 的产生与发展自1995年Vapnik(瓦普尼克)在统计学习理论的基础上提出SVM 作为模式识别的新方法之后,SVM 一直倍受关注。
同年,Vapnik 和Cortes 提出软间隔(soft margin)SVM ,通过引进松弛变量i ξ度量数据i x 的误分类(分类出现错误时i ξ大于0),同时在目标函数中增加一个分量用来惩罚非零松弛变量(即代价函数),SVM 的寻优过程即是大的分隔间距和小的误差补偿之间的平衡过程;1996年,Vapnik 等人又提出支持向量回归 (Support Vector Regression ,SVR)的方法用于解决拟合问题。
SVR 同SVM 的出发点都是寻找最优超平面(注:一维空间为点;二维空间为线;三维空间为面;高维空间为超平面。
),但SVR 的目的不是找到两种数据的分割平面,而是找到能准确预测数据分布的平面,两者最终都转换为最优化问题的求解;1998年,Weston 等人根据SVM 原理提出了用于解决多类分类的SVM 方法(Multi-Class Support Vector Machines ,Multi-SVM),通过将多类分类转化成二类分类,将SVM 应用于多分类问题的判断:此外,在SVM 算法的基本框架下,研究者针对不同的方面提出了很多相关的改进算法。
例如,Suykens 提出的最小二乘支持向量机 (Least Square Support Vector Machine ,LS —SVM)算法,Joachims 等人提出的SVM-1ight ,张学工提出的中心支持向量机 (Central Support Vector Machine ,CSVM),Scholkoph 和Smola 基于二次规划提出的v-SVM 等。
此后,台湾大学林智仁(Lin Chih-Jen)教授等对SVM 的典型应用进行总结,并设计开发出较为完善的SVM 工具包,也就是LIBSVM(A Library for Support Vector Machines)。
支持向量回归简介人类通过学习,从已知的事实中分析、总结出规律,并且根据规律对未来的现象或无法观测的现象做出正确的预测和判断,即获得认知的推广能力。
在对智能机器的研究当中,人们也希望能够利用机器(计算机)来模拟人的良好学习能力,这就是机器学习问题。
基于数据的机器学习是现代智能技术中的重要方面,机器学习的目的是通过对已知数据的学习,找到数据内在的相互依赖关系,从而获得对未知数据的预测和判断能力,在过去的十几年里,人工神经网络以其强大的并行处理机制、任意函数的逼近能力,学习能力以及自组织和自适应能力等在模式识别、预测和决策等领域得到了广泛的应用。
但是神经网络受到网络结构复杂性和样本复杂性的影响较大,容易出现“过学习”或低泛化能力。
特别是神经网络学习算法缺乏定量的分析与完备的理论基础支持,没有在本质上推进学习过程本质的认识。
现有机器学习方法共同的重要理论基础之一是统计学。
传统统计学研究的是样本数目趋于无穷大时的渐近理论,现有学习方法也多是基于此假设。
但在实际问题中,样本数往往是有限的,因此一些理论上很优秀的学习方法实际中表现却可能不尽人意。
与传统统计学相比, 统计学习理论(Statistical LearningTheory 或SLT ) 是一种专门研究小样本情况下机器学习规律的理论Vladimir N. Vapnik 等人从六、七十年代开始致力于此方面研究,到九十年代中期,随着其理论的不断发展和成熟[17] ,也由于神经网络等学习方法在理论上缺乏实质性进展, 统计学习理论开始受到越来越广泛的重视。
统计学习理论是建立在一套较坚实的理论基础之上的,为解决有限样本学习问题提供了一个统一的框架。
它能将很多现有方法纳入其中,有望帮助解决许多原来难以解决的问题(比如神经网络结构选择问题、局部极小点问题)等;同时, 在这一理论基础上发展了一种新的通用学习方法—支持向量机(Support Vector Machine 或SVM ) ,它已初步表现出很多优于已有方法的性能。
支持向量机(SVM)、支持向量机回归(SVR):原理简述及其MATLAB实例一、基础知识1、关于拉格朗日乘子法和KKT条件1)关于拉格朗日乘子法2)关于KKT条件2、范数1)向量的范数2)矩阵的范数3)L0、L1与L2范数、核范数二、SVM概述1、简介2、SVM算法原理1)线性支持向量机2)非线性支持向量机二、SVR:SVM的改进、解决回归拟合问题三、多分类的SVM1. one-against-all2. one-against-one四、QP(二次规划)求解五、SVM的MATLAB实现:Libsvm1、Libsvm工具箱使用说明2、重要函数:3、示例支持向量机(SVM):原理及其MATLAB实例一、基础知识1、关于拉格朗日乘子法和KKT条件1)关于拉格朗日乘子法首先来了解拉格朗日乘子法,为什么需要拉格朗日乘子法呢?记住,有需要拉格朗日乘子法的地方,必然是一个组合优化问题。
那么带约束的优化问题很好说,就比如说下面这个:这是一个带等式约束的优化问题,有目标值,有约束条件。
那么你可以想想,假设没有约束条件这个问题是怎么求解的呢?是不是直接 f 对各个 x 求导等于 0,解 x 就可以了,可以看到没有约束的话,求导为0,那么各个x均为0吧,这样f=0了,最小。
但是x都为0不满足约束条件呀,那么问题就来了。
有了约束不能直接求导,那么如果把约束去掉不就可以了吗?怎么去掉呢?这才需要拉格朗日方法。
既然是等式约束,那么我们把这个约束乘一个系数加到目标函数中去,这样就相当于既考虑了原目标函数,也考虑了约束条件。
现在这个优化目标函数就没有约束条件了吧,既然如此,求法就简单了,分别对x求导等于0,如下:把它在带到约束条件中去,可以看到,2个变量两个等式,可以求解,最终可以得到,这样再带回去求x就可以了。
那么一个带等式约束的优化问题就通过拉格朗日乘子法完美的解决了。
更高一层的,带有不等式的约束问题怎么办?那么就需要用更一般化的拉格朗日乘子法,即KKT条件,来解决这种问题了。
3.支持向量机(回归)3.1.1 支持向量机支持向量机(SVM )是美国Vapnik 教授于1990年代提出的,2000年代后成为了很受欢迎的机器学习方法。
它将输入样本集合变换到高维空间使得其分离性状况得到改善。
它的结构酷似三层感知器,是构造分类规则的通用方法。
SVM 方法的贡献在于,它使得人们可以在非常高维的空间中构造出好的分类规则,为分类算法提供了统一的理论框架。
作为副产品,SVM 从理论上解释了多层感知器的隐蔽层数目和隐节点数目的作用,因此,将神经网络的学习算法纳入了核技巧范畴。
所谓核技巧,就是找一个核函数(,)K x y 使其满足(,)((),())K x y x y φφ=,代替在特征空间中内积(),())x y φφ(的计算。
因为对于非线性分类,一般是先找一个非线性映射φ将输入数据映射到高维特征空间,使之分离性状况得到很大改观,此时在该特征空间中进行分类,然后再返会原空间,就得到了原输入空间的非线性分类。
由于内积运算量相当大,核技巧就是为了降低计算量而生的。
特别, 对特征空间H 为Hilbert 空间的情形,设(,)K x y 是定义在输入空间n R 上的二元函数,设H 中的规范正交基为12(),(),...,(),...n x x x φφφ。
如果221(,)((),()),{}k k k k k K x y a x y a l φφ∞==∈∑,那么取1()()k k k x a x φφ∞==∑即为所求的非线性嵌入映射。
由于核函数(,)K x y 的定义域是原来的输入空间,而不是高维的特征空间。
因此,巧妙地避开了计算高维内积(),())x y φφ(所需付出的计算代价。
实际计算中,我们只要选定一个(,)K x y,并不去重构嵌入映射1()()k k k x a x φφ∞==∑。
所以寻找核函数(,)K x y (对称且非负)就是主要任务了。
满足以上条件的核函数很多,例如● 可以取为d-阶多项式:(,)(1)d K x y x y =+g ,其中y 为固定元素。
3.支持向量机(回归)3.1.1 支持向量机支持向量机(SVM )是美国Vapnik 教授于1990年代提出的,2000年代后成为了很受欢迎的机器学习方法。
它将输入样本集合变换到高维空间使得其分离性状况得到改善。
它的结构酷似三层感知器,是构造分类规则的通用方法。
SVM 方法的贡献在于,它使得人们可以在非常高维的空间中构造出好的分类规则,为分类算法提供了统一的理论框架。
作为副产品,SVM 从理论上解释了多层感知器的隐蔽层数目和隐节点数目的作用,因此,将神经网络的学习算法纳入了核技巧范畴。
所谓核技巧,就是找一个核函数(,)K x y 使其满足(,)((),())K x y x y φφ=,代替在特征空间中内积(),())x y φφ(的计算。
因为对于非线性分类,一般是先找一个非线性映射φ将输入数据映射到高维特征空间,使之分离性状况得到很大改观,此时在该特征空间中进行分类,然后再返会原空间,就得到了原输入空间的非线性分类。
由于内积运算量相当大,核技巧就是为了降低计算量而生的。
特别, 对特征空间H 为Hilbert 空间的情形,设(,)K x y 是定义在输入空间n R 上的二元函数,设H 中的规范正交基为12(),(),...,(),...n x x x φφφ。
如果221(,)((),()),{}k k k k k K x y a x y a l φφ∞==∈∑,那么取1()()k k k x a x φφ∞==∑即为所求的非线性嵌入映射。
由于核函数(,)K x y 的定义域是原来的输入空间,而不是高维的特征空间。
因此,巧妙地避开了计算高维内积(),())x y φφ(所需付出的计算代价。
实际计算中,我们只要选定一个(,)K x y ,并不去重构嵌入映射1()()k k k x a x φφ∞==∑。
所以寻找核函数(,)K x y (对称且非负)就是主要任务了。
满足以上条件的核函数很多,例如可以取为d-阶多项式:(,)(1)d K x y x y =+,其中y 为固定元素。
支持向量机算法的原理支持向量机(Support Vector Machine,SVM)是一种广泛应用于分类和回归问题的机器学习算法。
它的原理基于统计学习理论中的结构风险最小化原则,通过寻找一个最优的超平面来实现数据的分类。
在SVM中,数据被看作是高维空间中的点,每个点都有一个与之对应的特征向量。
这些特征向量的维度取决于特征的数量。
SVM的目标是找到一个超平面,使得其能够尽可能地将不同类别的数据点分隔开。
超平面是一个d维空间中的d-1维子空间,其中d为特征向量的维度。
在二维空间中,超平面即为一条直线,可以完全将两类数据点分开。
在更高维的空间中,超平面可以是一个曲面或者是一个超平面的组合。
为了找到最优的超平面,SVM引入了支持向量的概念。
支持向量是离超平面最近的数据点,它们决定了超平面的位置和方向。
通过最大化支持向量到超平面的距离,SVM能够找到一个最优的超平面,使得分类误差最小化。
SVM的核心思想是将低维空间中的数据映射到高维空间中,使得原本线性不可分的数据变得线性可分。
这一映射是通过核函数实现的。
核函数能够计算两个数据点在高维空间中的内积,从而避免了显式地进行高维空间的计算。
常用的核函数有线性核、多项式核和高斯核等。
SVM的训练过程可以简化为一个凸优化问题。
通过最小化结构风险函数,SVM能够找到一个最优的超平面,使得分类误差最小化。
结构风险函数由经验风险项和正则化项组成。
经验风险项衡量了分类器在训练集上的错误率,正则化项则防止过拟合。
SVM的优点是具有较好的泛化性能和较强的鲁棒性。
由于最大化支持向量到超平面的距离,SVM对异常值不敏感,能够有效地处理噪声数据。
此外,SVM还可以通过引入松弛变量来处理非线性可分的问题。
然而,SVM也存在一些限制。
首先,SVM对于大规模数据集的训练时间较长,且对内存消耗较大。
其次,选择合适的核函数和参数是一个挑战性的问题,不同的核函数和参数可能会导致不同的分类结果。
请简述 SVM(支持向量机)的原理以及如何处理非线性问题。
支持向量机(Support Vector Machine,SVM)是一种常用的机器学习算法,常用于分类和回归问题。
它的原理是基于统计学习理论和结构风险最小化原则,通过寻找最优超平面来实现分类。
SVM在处理非线性问题时,可以通过核函数的引入来将数据映射到高维空间,从而实现非线性分类。
一、SVM原理支持向量机是一种二分类模型,它的基本思想是在特征空间中找到一个超平面来将不同类别的样本分开。
具体而言,SVM通过寻找一个最优超平面来最大化样本间的间隔,并将样本分为两个不同类别。
1.1 线性可分情况在特征空间中,假设有两个不同类别的样本点,并且这两个类别可以被一个超平面完全分开。
这时候我们可以找到无数个满足条件的超平面,但我们要寻找具有最大间隔(Margin)的超平面。
Margin是指离超平面最近的训练样本点到该超平面之间距离之和。
我们要选择具有最大Margin值(即支持向量)对应的决策函数作为我们模型中使用。
1.2 线性不可分情况在实际问题中,很多情况下样本不是线性可分的,这时候我们需要引入松弛变量(Slack Variable)来处理这种情况。
松弛变量允许样本点处于超平面错误的一侧,通过引入惩罚项来平衡Margin和错误分类的数量。
通过引入松弛变量,我们可以将线性不可分问题转化为线性可分问题。
同时,为了防止过拟合现象的发生,我们可以在目标函数中加入正则化项。
1.3 目标函数在SVM中,目标函数是一个凸二次规划问题。
我们需要最小化目标函数,并找到最优解。
二、处理非线性问题SVM最初是用于处理线性可分或近似线性可分的数据集。
然而,在实际应用中,很多数据集是非线性的。
为了解决这个问题,SVM引入了核函数(Kernel Function)。
核函数可以将数据从低维空间映射到高维空间,在高维空间中找到一个超平面来实现非线性分类。
通过核技巧(Kernel Trick),SVM 可以在低维空间中计算高维空间中样本点之间的内积。
支持向量机算法原理支持向量机算法(SupportVectorMachine,称SVM)是一种有效的机器学习算法,它可以解决分类和回归问题。
SVM是一种二类分类模型,它可以将新实例分配到两类中,正负类,或多类分类问题中的其他类别。
在数据分析中,SVM算法不仅可以解决分类问题,而且还可以解决回归问题。
SVM算法的基本原理是通过搜索最大化类间距,保证训练数据之间最大可分离性,进而找到最优超平面,完成分类任务。
SVM算法可以用来定义和解决各种回归和分类问题。
它的核心思想是通过计算支持向量和超平面来将训练数据划分成多个类别。
支持向量机算法可以通过以下步骤完成:1.首先,根据训练集的特征向量数据,SVM算法建立一个最优超平面的模型,该模型可以将训练数据分割成正类和负类;2.其次,确定最优超平面的距离函数及其支持向量;3.最后,根据支持向量来求解实例的分类结果,实现分类支持向量机算法的核心思想是找到使得类间距最大的超平面,从而使用最大空隙分割实例类。
为此,SVM会找到一个最优超平面,用于从训练数据中区分不同类别的实例,空隙就是超平面距离分类边界最远的两个样本点之间的距离,它反映了两个类别之间的分离程度,距离越大,分类器的泛化能力就越强。
SVM是一种有效的机器学习算法,它可以根据训练样本的特征来分析出相关的超平面,并将输入数据自动分类到相应的类别中,从而实现了分类任务。
SVM算法最大的优势之一是可以处理非线性可分问题,即数据不是简单的线性可分,而是非线性边界,而且也支持多分类。
它在特征空间中有一个可解释的模型,可以帮助理解分类的过程,它的运算速度快,且不需要太多的参数调整,一般地,一次训练就可以获得优良的模型,它也具有稳定性好,容忍噪声,可处理大量维度的特征,并且具有良好的性能。
另外,SVM存在一些不足之处,首先,SVM模型没有显式地输出类间概率,从而无法衡量样本属于某类别的概率。
其次,SVM是基于凸且仅支持二类分类,而不能解决多类分类问题。
3.支持向量机(回归)3.1.1 支持向量机支持向量机(SVM )是美国Vapnik 教授于1990年代提出的,2000年代后成为了很受欢迎的机器学习方法。
它将输入样本集合变换到高维空间使得其分离性状况得到改善。
它的结构酷似三层感知器,是构造分类规则的通用方法。
SVM 方法的贡献在于,它使得人们可以在非常高维的空间中构造出好的分类规则,为分类算法提供了统一的理论框架。
作为副产品,SVM 从理论上解释了多层感知器的隐蔽层数目和隐节点数目的作用,因此,将神经网络的学习算法纳入了核技巧范畴。
所谓核技巧,就是找一个核函数(,)K x y 使其满足(,)((),())K x y x y φφ=,代替在特征空间中内积(),())x y φφ(的计算。
因为对于非线性分类,一般是先找一个非线性映射φ将输入数据映射到高维特征空间,使之分离性状况得到很大改观,此时在该特征空间中进行分类,然后再返会原空间,就得到了原输入空间的非线性分类。
由于内积运算量相当大,核技巧就是为了降低计算量而生的。
特别, 对特征空间H 为Hilbert 空间的情形,设(,)K x y 是定义在输入空间nR上的二元函数,设H 中的规范正交基为12(),(),...,(),...n x x x φφφ。
如果221(,)((),()),{}k k k k k K x y a x y a lφφ∞==∈∑,那么取1()()k k k x a x φφ∞==∑即为所求的非线性嵌入映射。
由于核函数(,)K x y 的定义域是原来的输入空间,而不是高维的特征空间。
因此,巧妙地避开了计算高维内积(),())x y φφ(所需付出的计算代价。
实际计算中,我们只要选定一个(,)K x y ,并不去重构嵌入映射1()()k k k x a x φφ∞==∑。
所以寻找核函数(,)K x y (对称且非负)就是主要任务了。
满足以上条件的核函数很多,例如● 可以取为d-阶多项式:(,)(1)dK x y x y =+ ,其中y 为固定元素。
● 可以取为径向函数:()22(,)ex p ||||/K x y x y σ=-,其中y 为固定元素。
● 可以取为神经网络惯用的核函数:()12(,)tan h ()K x y c x y c =+ ,其中y 为固定元素。
一般地,核函数的存在性只依赖于如何寻找一个平方收敛的非负序列{}k a 。
这样的序列在2l 空间的正锥{}{}22|0,kk l a la k +=∈≥∀中的序列都满足。
但哪一个最佳还有待于进一步讨论。
经验表明,分类问题对于核函数不太敏感。
当然,重新构造一个核函数也不是一个简单的事。
因此,实际操作中往往就在上述三类中挑出一个来使用就可以了。
支持向量机的结构示意图可以表示如下:图1 支持向量机结构示意图其中输入层是为了存贮输入数据,并不作任何加工运算;中间层是通过对样本集的学习,选择(,),1,2,3,...,i K x x i L=;最后一层就是构造分类函数1s g n ((,))Li i i i y y a K x x b ==+∑整个过程等价于在特征空间中构造一个最优超平面。
支持向量机的作用之一就是分类。
根据分类的任务,可以划分为一分类,二分类以及多分类。
对于多类分类问题,可以用若干种手法将其分解为若干个二分类问题叠加。
因此,为了实现支持向量机分类的算法,我们只要针对二分类,从头来给出它的数学原理。
3.1.2 支持向量机分类的数学原理设样本集为{}{}(,)|;1,1,1,...,ni i i i x y x R y i I ∈∈-+=,我们的目的是寻找一个最优超平面H 使得标签为+1 和-1的两类点不仅分开且分得间隔最大。
当在n 维欧几里德空间中就可以实现线性分离时,也即存在超平面将样本集按照标签-1与+1分在两边。
由于超平面在n 维欧几里德空间中的数学表达式是一个线性方程 ,0w x b <>+=,其中,w 为系数向量,x 为n 维变量,,w x <>内积,b为常数。
空间中点ix 到超平面L的距离|,|(,)||||iiw x b d x L w <>+=。
欲使得(,)i d x H 最大,等价于21||||2w 最小。
于是,得到一个在约束条件下的极值问题21m in ||||2(,)1,1,2,...,ii w y w x b i I⎧⎪⎨⎪<>+≥=⎩引入Lagrange 乘子12(,,...,)I αααα=,可以解得关于该参变量的方程121,1(),I Iii j i j i j i i j Q y y x x αααα===-<>∑∑称之为Lagrange 对偶函数。
其约束条件为,10,0,1,2,...,Ii i i i j y i Iαα==≥=∑在此约束条件之下, 使得()Q α达到最大值的α的许多分量为0,不为0的i α 所对应的样本i x 就称为支持向量。
这就是支持向量的来历。
当在输入空间不能实现线性分离,假设我们找到了非线性映射φ将样本集{}{}(,)|;1,1,1,...,nii i i xy x R y i I ∈∈-+=映射到高维特征空间H 中,此时我们考虑在H 中的集合{}{}((),)|;1,1,1,...,ni i i i x y x R y i I φ∈∈-+=的线性分类,即在H 中构造超平面,其权系数w 满足类似的极值问题。
由于允许部分点可以例外,那么可以引入松弛项,即改写为:211m in ||||2(,)1,0,1,2,...,Li i ii i i w C y w x b i Iξξξ=⎧+⎪⎨⎪<>+≥-≥=⎩∑最终转化为一个二次型在约束条件下的二次规划问题:'''11m in 20,0(,...,)(,...,)T T ID c y A C C αααααααα⎧+⎪⎨⎪=≤=≤=⎩其中,1(,...,)TI yy y =,(1, (1)Tc=--,()1,(,)iji ji j IDK x xy y ≤≤=为矩阵。
(,)K x s是核函数。
一分类问题是一个极端情形但却又是非常有用的,它可以表示为如下数学模型:设{}|,1,...,nii x x R i I ∈=为空间n R 的有限观测点,找一个以a 为心,以R 为半径的包含这些点的最小球体。
因此,一分类是对于求一个化合物成分的最小包络曲面的最佳方法。
与前面完全相同的手法,设φ是由某个核函数(,)K x s 导出的从输入空间到特征空间中的嵌入映射,最后可以得到二次规划问题'''11m in 20,0(,...,)(,...,)T T ID c y A C C αααααααα⎧+⎪⎨⎪=≤=≤=⎩其中,1(,...,)TI yy y =, (1, (1)Tc=--, ()1,(,)iji ji j IDK x xy y ≤≤=为矩阵。
(,)K x s 是核函数。
此时111()(,)2(,)(,)L L Li i ij i j i j i f x K x x K x x K x x ααα====-+∑∑∑此时几乎所有的点满足2()f x R≤。
参数C 起着控制落在球外点的数目,变化区间为:1/1LC <<.3.1.3基于线性规划的SVM 分类由于分类问题的自然推理过程都会归结到二次规划求解,计算复杂度相对较高。
如果能将其简化为线性规划而且没有较大的误差, 那么计算量将急速减少。
于是提出了基于线性规划的SVM 分类。
此方法经过数学严格推理,是合理的(因为涉及泛函的知识较多,推理过程放在附录中)。
因此产生了基于线性规划一分类、二分类、多分类。
此处,我们仅给出基于线性规划的SVM 分类的最终形式:111m in .(,),1,...,;1;,0Li i LLi i j j ii i i i Cs tK x x j L ρξαρξααξ===⎧⎛⎫-+⎪ ⎪⎝⎭⎪⎪⎨⎪⎪≥-==≥⎪⎩∑∑∑解出α与ρ则得出决策函数1()(,)Lii j i f x K x x α==∑以及阈值。
参数C 控制着满足条件()f x ρ≥的样本数量。
特别核函数取为径向函数时,参数2σ越小,精度越高。
另外,要提醒注意的是,在求解大规模分类问题得SVM 算法实现时,需要以下辅助手段:停机准则:由于分类问题等价于求对偶问题在约束条件下的极值1111m a x (,)..0,0,1,2,...,LLLi i j i j i j i i j L i i i j y y K x x s t y C i L ααααα====⎧-⎪⎪⎨⎪=≤≤=⎪⎩∑∑∑∑而KKT 条件[(,())1]0()0,1,2,...,i i i i i i y w x b C i Lαφξαξ<>+-+=⎧⎨-==⎩是收敛的充分必要条件。
因此通过监控KKT 条件来得到停机条件110,0,1,2,...,1,0,((,))1,0,1,,Li i i j i Li i i i j i j i y C i L i y y K x x b C i C i αααααα==⎧=≤≤=⎪⎪⎪≥=∀⎧⎨⎪⎪+=<<∀⎨⎪⎪⎪≤=∀⎩⎩∑∑这个条件中的不等式不必严格成立,只要在一定误差条件下成立就可以用了。
选块算法+分解法1. 给定参数0M>,0ε>,k =。
选取初始工作集0W T⊂,记其对应的样本点的下标集为0J 。
令k W T⊂第k 次更新的工作集,其对应的样本点的下标集为k J 。
2. 基于工作集kW T⊂, 由优化问题1111m a x (,)..0,0,LLLi i j i j i j i i j L i i i kj y y K x x s t y C i J ααααα====⎧-⎪⎪⎨⎪=≤≤∈⎪⎩∑∑∑∑求出最优解ˆ{,}j k a j J ∈,构造 1(,...,)kk kL ααα=按照如下方式:ˆ,0,kj k k jkj J j J αα⎧∈⎪=⎨∉⎪⎩3. 如果k α已经在精度ε内满足停机准则,那么以此权系数构造决策函数即可。
否则继续下一步。
4. 在\kTW 中找出M 个最严重破坏条件11,0,((,))1,0,1,,i Li i i i j i j i iy y K x x b C iC iαααα=≥=∀⎧⎪+=<<∀⎨⎪≤=∀⎩∑加入k W 得出新的工作集1k W +,相应的下标集记为1k J +。
5. 重复2)-3),直到样本集耗完为止。
序列最小优化算法(SMO ) Input: the observed dataset{}11(,),...,(,)|,nl l i j S x y x y x R y R =∈∈, 输入精度要求ε>及指定核函数(,)K x y ,初始化0α=,0k=。