支持向量机——线性可分支持向量机

2024-05-19 00:00

1. 支持向量机——线性可分支持向量机

  GitHub          CSDN 
   支持向量机(Support vector machines, SVM)是一种 二分类模型 ,它的基本模型是定义在特征空间上的间隔最大的线性分类器,他的学习策略就是间隔最大化,同时该方法可以形式化为一个求解图二次规划。
   支持向量机可分为三类:
   支持向量机模型中存在三宝:
   支持向量机和感知机在某些方面很相似,其相同点:
   不同点:
                                           图1 感知机与支持向量机区别
   图中的蓝色和黄色圆点分别表示正负样本,对于这个二分类,从图中我们可知,在最上面的黄线和最下面的绿线之间的线条都是可以把训练样本集完全分开的,这就是感知机的原理,通过这些分离超平面把训练集分开,这样的分离超平面存在很多条,比如图中的虚线,从视觉上中间那条实线应该是众多线条中最优的一条,感知机对于学习的分离超平面由于优化算法、学习率等不同因素,会随机地学习到这众多分离超平面中的一条,当学习到的是靠近上下边缘的分离超平面是,对于一个未知样本,当这个样本稍微浮动一下,模型就很可能对他进行误分类了,因此鲁棒性很低,而支持向量机的目标是找到图中中间那条最优的分离超平面。
    定义(线性可分支持向量机) :给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到一个分离超平面:
        即相应的决策模型:
        此模型就为线性可分支持向量机。其中    表示分离超平面的法向量,    表示截距,位于分离超平面之上的样本为正样本,之下的为负样本。
   一般来说,一个点到分离超平面的远近可以表示分类预测的确信程度,在给定分离超平面  的情况下,   能够相对地表示点    到分离超平面的远近。同时   的符号与类别标记    是否保持一致来表示分类是否正确,所以,可以用   来表示分类的正确性及确信度,这就是函数间隔(functional margin)的概念。
    定义(函数间隔) :对于给定训练数据集    和超平面   ,定义超平面    关于样本点    的函数间隔为:
     
   分离超平面关于训练数据集    的函数间隔为超平面关于    中所有样本点    的函数间隔最小值:
     
   上述定义是在给定超平面    的时候计算,然而在实际支持向量机的学习过程中,只有函数间隔是不够的,因为当    和    按比例同时扩大    倍,此时函数间隔也扩大    倍,而超平面并没有改变。因此我们需要对分离超平面加以约束,如规范化,  ,使得间隔不随    和    成比例扩大而改变。这时函数间隔就成为了几何间隔(geometric margin)
    定义(几何间隔) :对于给定训练数据集    和超平面   ,定义超平面    关于样本点    的几何间隔为:
     
   分离超平面关于训练数据集    的函数间隔为超平面关于    中所有样本点    的函数间隔最小值:
     
      为    的    范数。其实上述公式就是我们中学时候学习的点到直线的距离公式的推广,或者说点到直线的距离公式是该公式在二位平面下的表示。
   通过公式4和公式6的比较,我们可以得出函数间隔和几何间隔有如下关系:
     
   支持向量机学习的基本思想是求解能够 正确划分训练数据集 且 几何间隔最大 的分离超平面。间隔最大化的直观解释是:使分类决策模型以较大的确信度来对数据集分类,同时对离超平面较近的点也有很大的确信度。
   因此,最大间隔支持向量机形式化为:
     
   也即:
     
   我们得知函数间隔  的取值并不影响模型的最优化问题,将    和    成比例的改变    倍,函数间隔也变成   ,这一改变对上面最优化的不等式约束并没有印象,因此,我们可以令   ,于是上述公式就等价于:
     
   此时,SVM优化问题变为一个凸二次规划问题,利用拉格朗日乘子法即可求出最优的   
   为求解支持向量机的最优化问题,我们将公式10作为原始问题,应用拉格朗日对偶性,通过求解对偶问题(dual problem)得到原始问题(primal problem)的最优解,这就是支持向量机的对偶算法。这样做的 优点 :
   通过对公式10的约束条件引入拉格朗日乘子  ,构建出拉格朗日函数:
     
   我们称公式10为带约束的原始问题,根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题     
   公式12和原始公式存在一种弱对偶关系,当等号成立时为强对偶关系:
     
   此时我们就可以按照利用拉格朗日对偶性求解问题的标准模型,求解出  .
     
     
   将公式14和15带入公式11得:
     
     
   将上式转化为求极小值
     
   上式可以继续利用凸二次规划来求解   ,然后可由  求得原始问题对    的解   。
    定理  设    是对偶问题(即公式18)的解,则存在下标   ,使得   ,并按如下公式求得  
     
     
    证明    根据拉格朗日某定理,KKT条件成立,即:
     
   此时,公式13具有强对偶关系,即等号成立。根据支持向量机的特点,至少存在一个   ,即对于支持向量(后面讲解),对此j有
     
   由于    为1或-1,上式两边同乘以一个    得:
     
   从上面的推导我们可以看出,   和   只依赖于训练数据中对应于   的样本点   ,而其他样本点对    和    没有印象,我们把这些   的样本点称为支持向量。这些样本点一定位于间隔边界上。
    文中绘图源码 

支持向量机——线性可分支持向量机

2. 支持向量机的支持向量概述

所谓支持向量是指那些在间隔区边缘的训练样本点。 这里的“机(machine,机器)”实际上是一个算法。在机器学习领域,常把一些算法看做是一个机器。支持向量机(Support vector machines,SVM)与神经网络类似,都是学习型的机制,但与神经网络不同的是SVM使用的是数学方法和优化技术。

3. 笔记:支持向量机

  1、线性可分支持向量机    线性可分支持向量机是指在训练数据集线性可分的情况下,寻找一条几何间隔最大化的直线(也称硬间隔最大化),将正样本和负样本完全分开。   1.1、目标函数   设有数据集D{(x(1),y(1)),(x(2),y(2)),(x(3),y(3))...(x(m),y(m))}含有m个样本,其中x∈Rn,y∈(-1,+1)。(x为n维向量),分割样本的直线方程为y=ω.x+b(ω∈Rn属于n维向量),目标函数为:        1.2 对偶理论求解目标函数   1)1.1中的问题称为函数优化的原问题,构造广义拉格朗日函数L(ω,b,α):  其中,α为拉格朗日乘子,数学上可以证明,构造的拉格朗日函数的最小最大问题(先对α求最大值,再对ω,b求最小值)与原问题等价,即min ω,b max α L(ω,b,α)与原问题等价。   2)容易证明,min ω,b max α L(ω,b,α)与其对偶问题max α min ω,b L(ω,b,α)满足以下关系:     上式被成为弱对偶关系   3)如果原问题是一个凸二次规划问题,则满足强对偶关系,即:     此外,原问题与对偶问题满足强对偶关系的充要条件是KKT条件:                       1.3 对偶问题的解   由强对偶关系,可以将求原问题转化为求对偶问题,通过KKT条件,可以得到将对偶问题的优化问题最终转化为:              该问题为凸二次规划问题,可以利用一些优化算法进行求解,比如SMO算法等。   1.4分类超平面和决策函数   由1.3求得最优解α * 后,可分别得到ω * 和b * 。     选择α * 中的一个正分量α *  j >0,可得b * :        分离超平面为:y=ω * .x+b *    决策函数为f(x)=sign(ω * .x+b * )   线性可分支持向量机求得的超平面唯一。   1.5支持向量   只有那些拉格朗日乘子α不为0对应的点才对最终的决策函数有贡献,这些点均位于分割边界上,被称为支持向量。    2、线性支持向量机    对于训练集出现某些异常点,导致无法线性可分,线性支持向量机目的在于寻找一条直线,在剔除这些异常点后,使大部分训练数据是线性可分的,实现软间隔最大化。   2.1 目标函数        其中,参数C用来对误分类进行惩罚,C越大,对误分类容忍度越小;ζ表示松弛因子。   2.2对偶问题的求解   最终转化为对偶问题的优化为:              2.3分类超平面和决策函数   由1.3求得最优解α * 后,可分别得到ω * 和b * 。     选择α * 中的一个正分量0<α *  j <C,可得b * ,注意,此时求得的b值不唯一:        分离超平面为:y=ω * .x+b *    决策函数为f(x)=sign(ω * .x+b * )   注意,线性支持向量机求得的超平面不唯一。   2.4支持向量   支持向量由在函数间隔边界上的点、超平面与间隔边界上的点、位于超平面上的点和误分类点组成。    3、非线性支持向量机与核函数    非线性支持向量机用来解决线性不可分数据集的分类问题。现实中存在一些数据集,在现有特征维度下完全线性不可分(与只存在一些异常点不同,使用软间隔最大化的线性支持向量及也不能解决),非线性支持向量机通过核函数,将低维数据集通过映射函数转换为高维数据,这些高维数据是线性可分的。   3.1 核函数   1)设X是输入空间,H为特征空间,如果存在映射函数φ(x)使在输入空间X的数据映射到特征空间H中,使得对于输入空间X中的任意x,z∈X,都有:        则称K(x,z)为核函数。   2)常用核函数   (1)多项式核函数     其中,p为多项式次数。   (2)高斯核函数        对应的支持向量机为高斯径向基函数分类器。   高斯核函数中的参数δ较大时,导致高偏差,低方差;   δ参数较小时,导致低偏差,高方差。   (3)字符串核函数   定义在字符串上的核函数   3.2目标函数   目标函数转化为对偶问题的求解,并应用核函数后,可以转化为:              3.3 决策函数   在3.2求得α值后,不必通过映射函数φ(x)求参数ω,而是通过核函数求得决策函数:        将数据从低维空间通过映射函数映射到高维空间,当做优化计算时,不必显式求得映射函数,而是通过核函数在低维空间做计算,这种方式称为为核技巧。
    注意:吴恩达机器学习课程中,称高斯核函数K(x i ,x)为样本x与参考点x i (i=1,2,...m)的相似度函数。对于容量为m训练数据集,选择这m个数据作为参考点,将样本x与参考点x i 的高斯核函数(相似度函数)构建新的特征f i ,最终的决策函数可以表示为:        其中,θ 0 对应着公式3.3中的b * ,θ i 对应着α i  * y i ,f i 对应着K(x i ,x)。 

笔记:支持向量机

4. 支持向量机原理

支持向量机方法的基本思想是:定义最优线性超平面,并把寻找最优线性超平面的算法归结为求解一个凸规划问题。进而基于Mercer核展开定理,通过非线性映射φ,把样本空间映射到一个高维乃至于无穷维的特征空间(Hilbert空间),使在特征空间中可以应用线性学习机的方法解决样本空间中的高度非线性分类和回归等问题(Nello Cristianini,2005)。简单地说就是升维和线性化。一般的升维都会带来计算的复杂化。这里自然发生的两个问题是如何求得非线性映射φ和解决算法的复杂性。SVM方法巧妙地解决了这两个难题:由于应用了核函数的展开定理,所以根本不需要知道非线性映射的显式表达式;由于是在高维特征空间中应用线性学习机的方法,所以与线性模型相比不但几乎不增加计算的复杂性,而且在某种程度上避免了“维数灾”。另外,SVM是一种有坚实理论基础的新颖的小样本学习方法。它基本上不涉及概率测度的定义及大数定律等,因此不同于现有的统计方法。从本质上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练样本到预报样本的“转导推理”(transductive inference),大大简化了通常的分类和回归等问题。SVM的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾”。如果说神经网络方法是对样本的所有因子加权的话,SVM方法是对只占样本集少数的支持向量样本“加权”。当预报因子与预报对象间蕴涵的复杂非线性关系尚不清楚时,基于关键样本的方法可能优于基于因子的“加权”。少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒”性。由于有较为严格的统计学习理论做保证,应用SVM方法建立的模型具有较好的推广能力。SVM方法可以给出所建模型的推广能力的确定的界,这是目前其它任何学习方法所不具备的。
随着支持向量机理论的深入研究,出现了许多变种的支持向量机,如Sheng-wei Fe(2009)提出的两类重要的预测技术:分类和回归。其中分类问题预测要求观察值是离散的,而回归问题主要针对决策属性值是连续的情况,它通过学习训练样本集建立一个回归器,然后在条件属性给定的情况下进行预测。
支持向量机回归分为线性回归和非线性回归,其原理如下:
(1)支持向量机线性回归
设样本集为:(x1,y1),…,(xi,yi),x∈Rn,y∈R,回归函数用下列线性方程来表示:
f(x)=w·x+b (4.14)
假设所有训练数据在ε精度下如图4.5所示无误差地用线性函数拟合,即

基坑降水工程的环境效应与评价方法


图4.5 支持向量机回归

考虑到允许误差的情况,引入松弛因子ξi,  ,则式(4.13)变为

基坑降水工程的环境效应与评价方法

其中常数C>0,表示对超出误差ε的样本的惩罚程度,ξi,  为松弛变量的上限与下限。为此构造拉格朗日函数:

基坑降水工程的环境效应与评价方法

得到其对偶问题为:

基坑降水工程的环境效应与评价方法


基坑降水工程的环境效应与评价方法


基坑降水工程的环境效应与评价方法

可以得到回归函数为:
其中,αi,  将只有一小部分小为零,它们对应的样本就是支持向量。
(2)支持向量机非线性回归
以上讨论的是线性问题,对于非线性问题,把输入样本xi通过ψ:x→H映射到高维特征空间H(可能是无穷维)。当在特征空间中构造最优超平面时,实际上只需进行内积运算,而这种内积运算是可以用原空间中的函数来实现的,没有必要知道ψ的形式。因为只要核函数K(xi,xj)满足Mercer条件,它就对应某一变换空间的内积即K(xi,xj)=ψ(i)·ψ(xj)。这一点提供了可能导致的“维数灾难”问题解决方法。
由线性支持向量回归可知,二次规划的拉格朗日目标函数:

基坑降水工程的环境效应与评价方法

其对偶形式:

基坑降水工程的环境效应与评价方法

可以得到回归函数为:

基坑降水工程的环境效应与评价方法

传统的拟合方法通常是在线性方程后面加高阶项。由此增加的可调参数增加了过拟合的风险。支持向量回归用核函数即能作非线性回归,达到了“升维”的目的,增加的可调参数很少,过拟合仍能控制。

5. 支持向量机的基本原理

支持向量机的主要思想是:建立一个最优决策超平面,使得该平面两侧距离该平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力。
对于一个多维的样本集,系统随机产生一个超平面并不断移动,对样本进行分类,直到训练样本中属于不同类别的样本点正好位于该超平面的两侧,满足该条件的超平面可能有很多个,SVM正式在保证分类精度的同时,寻找到这样一个超平面,使得超平面两侧的空白区域最大化。
支持向量机中的支持向量是指训练样本集中的某些训练点,这些点最靠近分类决策面,是最难分类的数据点。SVM中最优分类标准就是这些点距离分类超平面的距离达到最大值;“机”是机器学习领域对一些算法的统称,常把算法看做一个机器,或者学习函数。
SVM是一种有监督的学习方法,主要针对小样本数据进行学习、分类和预测,类似的根据样本进行学习的方法还有决策树归纳算法等。

支持向量机的应用实例
支持向量机是一种监督模式识别和机器学习方法,采用最大分类间隔准则实现有限训练样本情况下推广能力的优化。
通过核函数间接实现非线性分类或函数回归,支持向量机通常简写作SVM。
支持向量机使用铰链损失函数计算经验风险并在求解系统中加入了正则化项以优化结构风险,是一个具有稀疏性和稳健性的分类器。
支持向量机可以通过核方法进行非线性分类,是常见的核学习方法之一。
支持向量机在人像识别、文本分类等模式识别问题中有得到应用。

支持向量机的基本原理

6. 支持向量机(2)

 简单的说,支持向量机就是通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。(引自刘知行)
   假设给定一个训练数据集    。同时,假定已经找到样本空间中的分割平面,其划分公式可以通过以下线性方程来描述:  使用一条直线对线性可分数据集进行分类的过程中,我们已经知道这样的直线可能有很多条:   
                                                                                             
   对于线性可分的正负样本点而言,位于    虚线外的点就是正样本点,而位于    虚线外的点就是负样本点。另外,正好位于两条虚线上方的样本点就被我们称为支持向量,这也就是支持向量机的名字来源。
   对于线性可分数据而言,几何间隔最大的分离超平面是唯一的,这里的间隔也被我们称之为「硬间隔」,而间隔最大化也就称为硬间隔最大化。上图实际上就是硬间隔的典型例子。   最大间隔分离超平面,我们希望最大化超平面    关于训练数据集的几何间隔   ,满足以下约束条件:每个训练样本点到超平面    的几何间隔至少都是    ,因此可以转化为以下的约束最优化问题:        实际上,   的取值并不会影响最优化问题的解,同时,我们根据数学对偶性原则,可以得到面向硬间隔的线性可分数据的支持向量机的最优化问题:        我们通常使用拉格朗日乘子法来求解最优化问题,将原始问题转化为对偶问题,通过解对偶问题得到原始问题的解。对公式(3)使用拉格朗日乘子法可得到其「对偶问题」。具体来说,对每条约束添加拉格朗日乘子   ,则该问题的拉格朗日函数可写为:     我们通过将公式(4)分别对    和    求偏导为  0  并代入原式中,可以将    和    消去,得到公式(3)的对偶问题:           解出最优解    后,基于此我们可以求得最优解   ,   ,由此得到分离超平面:     使用符号函数求得正负类之间的分类决策函数为:     
   当数据集变成严格意义上的线性不可分,如下图所示,在实心点和空心点中各混入了零星的不同类别的「噪声」数据点,造成线性不可分的原因往往是因为包含「噪声」数据,它同样可以被看作是不严格条件下的线性可分。   当我们使用支持向量机求解这类问题时,就会把最大间隔称之为最大「软间隔」,而软间隔就意味着可以容许零星噪声数据被误分类。
                                           当出现上图所示的样本点不是严格线性可分的情况时,某些样本点    就不能满足函数间隔    的约束条件,即公式(3b)中的约束条件。为了解决这个问题,可以对每个样本点    引入一个松弛变量   ,使得函数间隔加上松弛变量   ,即约束条件转化为:     同时,对每个松弛变量    支付一个代价   ,目标函数由原来的    变成:     这里,   称为惩罚参数,一般根据实际情况确定。   值越大对误分类的惩罚增大,最优化问题即为:           这就是软间隔支持向量机的表示过程。同理,我们可以使用拉格朗日乘子法将其转换为对偶问题求解:           解出最优解    后,基于此我们可以求得最优解   ,   ,由此得到分离超平面:     使用符号函数求得正负类之间的分类决策函数为:     
   对于线性不可分的数据集,我们也可以通过支持向量机去完成分类。但是需要通过一些方法把线性不可分数据转换为线性可分数据之后,再完成分类。
    我们把这种数据转换的方法称作「核技巧」,实现数据转换的函数称之为「核函数」 。   
                                           
    核技巧的关键在于空间映射,即将低维数据映射到高维空间中,使得数据集在高维空间能被线性可分。    如上图所示,假设我们在二维空间中有蓝色和红色代表的两类数据点,很明显无法使用一条直线把这两类数据分开。此时,如果我们使用核技巧将其映射到三维空间中,就变成了可以被平面线性可分的状态。
   对于「映射」过程,我们还可以这样理解:分布在二维桌面上的红蓝小球无法被线性分开,此时将手掌拍向桌面(好疼),小球在力的作用下跳跃到三维空间中,这也就是一个直观的映射过程。   同时,「映射」的过程也就是通过核函数转换的过程。这里需要补充说明一点,那就是将数据点从低维度空间转换到高维度空间的方法有很多,但往往涉及到庞大的计算量,而数学家们从中发现了几种特殊的函数,这类函数能大大降低计算的复杂度,于是被命名为「核函数」。也就是说,核技巧是一种特殊的「映射」技巧,而核函数是核技巧的实现方法。
   此外,核函数还可以通过函数组合得到,例如:   若    和    是核函数,那么对于任意正数   ,其线性组合:     
   我们通过直接引入核函数   ,而不需要显式的定义高维特征空间和映射函数,就可以利用解线性分类问题的方法来求解非线性分类问题的支持向量机。引入核函数以后,对偶问题就变为:           同样,解出最优解    后,基于此我们可以求得最优解   ,   ,由此得到分离超平面:     使用符号函数求得正负类之间的分类决策函数为:     
   主要参数说明:

7. 支持向量机

 支持向量机(Suport Vector Machine,常简称为SVM),是一个监督式学习的方式。支持向量机属于一般化线性分类器,这类分类器的特点是能够同时最小化经验误差与最大化几何边缘区,因此支持向量机机也被称为最大边缘区分类器。
     
                                             
     
                                             
   蓝色和红色的线圈出来的点就是所谓的支持向量,离分界线最近的点,如果去掉这些点,直线多半要改变位置。Classifier Boundary就是决策函数f(x),在两个类的中间。红色和蓝色之间的间隙就是我们要的最大化分类的间隙。
   有拉格朗日乘子法的地方,必然是一个组合优化问题。比如     
   这是一个带等式约束的优化问题,有目标值,有约束条件,不能直接求导。可以使用拉格朗日方法,把这个约束乘以一个系数加到目标函数中去,这样相当与既考虑了原目标函数,也考虑了约束条件。然后分别对x求导等于0,        把它带点菜约束条件中去,可以看到,2个变量两个等式,最终可再带回去求x就可以了。更高一层,带有不等式的约束问题怎么办?需要用更一般化的拉格朗日乘子法,即KKT条件,来求解这个问题。
   任何原始问题约束条件无非最多三种,等式约束,大于号约束,小于号约束,而这三种最终通过将约束方程简化成两类:约束方程等于0和约束方程小于0。
   假设原始问题约束条件为下例所示:        那么把约束条件变个样子        现在拿到目标函数中去变成     
   那么KKT条件的定理是什么呢?就是如果一个优化问题在转变成        其中g是不等式约束,h是等式约束。那么KKT条件就是函数的最优值,它必定满足下面条件:
   这三个等式很好理解,重点是第三个句子不好理解,因为我们知道在约束条件变完或,所有的  ,且求和还要为0。那么为什么KKT的条件是这样的呢?
   某次的g(x)在为最优解起作用,那么它的系数值(可以)不为0,如果某次g(x)没有为下一次的最优解起作用,那么它的系数就必须为0。
    函数间隔    对于给定的训练数据集T合超平面(w,b),定义超平面(w,b)关于样本点  的函数间隔为  
   函数间隔可以表示分类预测的正确性及确信度。但是选择超平面时,只有函数间隔是不够的,因子只要成比较改变  和b,超平面并没有改变,但函数间隔却扩大了。
    几何间隔    对于给定的训练数据集T和超平面  ,定义超平面  关于样本点  的几何间隔为  ,其中  为  的  范数。
   如果  ,那么函数间隔和几何间隔相等。如果超平面参数  成比例地改变(超平面没有改变),函数间隔也成比例改变,而几何间隔不变。
   支持向量机的基本想法是求解能够正确分训练数据集并且几何间隔最大的分离超平面。对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面时唯一的。这里的间隔最大化被称为硬间隔最大化。
   间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将他们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。
   下面考虑如何求一个几何间隔最大的分离超平面,即最大间隔分离超平面。具体地,这个问题可以表示为下面的约束最优化问题:        即我们希望最大化超平面  关于训练数据集的集合间隔  ,约束条件表示的是超平面  关于每个训练样本点的集合间隔至少是  
   考虑几何间隔和函数间隔的关系式,可将这个问题改成为        函数间隔  并不影响最优化问题的解。事实上,假设将  成比例改变为  ,这时函数间隔变成  。函数间隔的改变对最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,也就事实说,它产生一个等价的最优化问题。这样,就可以取  。将  代入上面的最优化问题。注意最大化  和最小化  是一样的。
   于是就得到下面的线性可分支持向量机学习的最优化问题        这是一个凸二次规划问题(contex quadratic programming)问题。   凸优问题是指约束最优化问题        其中,目标函数  和约束函数  都是  上的可连续可微的凸函数,约束函数  是  的仿射函数。当木匾函数是  是二次函数且约束函数  是仿射函数时,上述的凸优化问题成为凸二次规划问题。   如果求出约束最优化问题的解  ,那么就可以得出最大间隔分离超平面  及决策函数  ,即线性可分支持向量机模型。
   为了求解线性可分支持向量机的最优化问题,将它作为原始最优化问题,应用到拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这就是线性可支持向量机的对偶算法(dual algorithm)。这样做的优点,一是对偶问题往往根据容易求解;二是自然引入核函数,进而推广到非线性可分类问题。
   首先构建拉格朗日函数(Lagrange function)。为此,对每一个不等式约束引入拉格朗日乘子(Lagrange multiplier)  定义拉格朗日函数:        其中  为拉格朗日乘子向量。
   根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题  
   为了得到对偶函数问题的解,需要先求  对  的极小,再求  的极大   (1)求     将拉格朗日函数  分别对  求偏导数并令其等于0     
   将(1)代入拉格朗日函数,并利用(2),即可得        即        (2)求  对  的极,即对偶问题             将公式(3)的目标函数由极大值转换成求极小,就得到下面与之等价的对偶最优化问题          
   (3)解     假设  是对偶最优化问题的解,则存在下标使得  ,并求按下式求得原始最优化的解  
   根据KKT条件成立,即得        因此          ,且至少存在一个  ,假设  ,那么  不是原始问题的解,所以     
   那么分离的超平面可以写成        决策函数可以写成     
   由此可以看出,分类决策函数只依赖于输入x和训练样本输入的内积,式(8)称为线性可分支持向量机的对偶形式。
    案例    训练数据正例点是  ,负例点是  ,试用线性可分支持向量机   解:根据所给数据,对偶问题是     
   解这一优化问题,将  代入目标函数并记为     
   对  求偏导令其为0,易知  处取极值,该点不满足约束条件  ,所以最小值应在边界上达到。
   当  ,当  ,于是  
   这样,  对应的实例点  是支持向量,计算可得  ,  
   分离超平面为     分离决策函数为  
   线性可分问题的支持向量机学习方法,对线性不可分训练数据是不适用的,因为这时上述方法中的不等式约束不能都成立。 线性不可分意味着不能满足函数间隔大于等于1的约束条件 。为了解决这个问题,对每个样本点  都引入一个松弛变量  ,使得函数间隔加上变量大于等于1,这样约束条件变为        同时对于每个松弛变量  ,支付一个代价  ,目标函数由原来的  变成        C>0为惩罚参数,一般由应用问题解决,C值大时对误分类的惩罚增大,C值小时对误分类的惩罚减小。最小化木匾函数有2层意思:使得  尽量小,即间隔尽量大,同时使误分类点的个数尽量小,C是调和两者的系数
   非线性分类问题是指通过非线性模型才能很好地进行分类的问题。非线性问题往往不好求解,希望通过线性分类问题的方法解决这个问题,所采取的方法是进行一个非线性变换,将非线性问题变成线性问题,通过解变换后的线性问题的方法求解原来的非线性问题。
   用线性分类方法求解非线性分类问题分两步:首先使用一个变换将原来空间的数据映射到新空间;然后在新空间里用线性分类学习方法从训练数据中学习分类模型。核技巧就属于这样的方法。
   设X是输入空间(欧氏空间  的子集或离散集合),又设H为特征向量(希伯而空间H),如果存在一个从X到H的映射        使得对所有  ,函数  满足条件        则称K(x,z)为核函数,  为映射函数,  。通常计算K(x,z)比较容易,而通话  计算K(x,z)并不容易。
     是输入空间到特征空间的迎神,特征空间一般是高维的,甚至是无穷维,可以看到,对于给定的核K(x,z),特征空间H和映射函数  的取法并不唯一,可以取不同的特征空间,即便是在同一特征空间也可以取不同的映射。
   在对偶目标函数中的内积  可以用核函数  来代替,此时对偶问题的目标函数成为        这等价于经过映射函数  将原来的输入空间变换到一个新的特征空间,将输入空间中的内积  变换成特征空间中的内积  ,在新的特征空间里从训练样本中学习线性支持向量机。学习是隐式地在特征空间进行的,不需要显式地定义特征空间和营业日函数。在实际应用中,往往依赖领域知识直接选择核函数。
        对应的支持向量机是一个p次多项式分类器,在此情形下,分类决策函数成为     
        对应的支持向量机是高斯径向基函数(radial basis function)分类器。在此情形下,分类决策函数成为     
   核函数不仅可以定义在欧式空间,还可以定义在离散数据的集合上。比如,字符串核函数是定义在字符串集合上的核函数。字符串核函数在文本分类、信息检索、生物信息学等方面都有应用。
   两个字符串s和t上的字符串核函数是基于映射  的特征空间中的内积:             字符串核函数  给出了字符串s和t中长度等于n的所有子串组成的特征向量的余弦相似度。直观上看,两个字符串相同的字串越多,它们就越相似,字符串核函数的值就越大。字符串核函数可以由动态规划快速地计算。
   支持向量机的学习问题可以形式化为求解凸二次规划问题,这样的凸二次规划问题具有全局最优解,并且有许多最优化算法可以用于这一问题的求解。但是当训练样本容量很大时,这些算法往往变得非常低效,以至无法使用。
   序列最小最优化(sequential minimal optimization,SMO)算法,是一种启发式算法,其基本思路是:如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。因为KKT条件是该最优化问题的充分必要条件。否则,选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题。这个二次规划问题的目标是使函数值变得更小。重要的是,这时子问题可以通过解析方法求解,这样就可以大大提高整个算法的计算速度。子问题有两个变量,一个是违反KKT条件最严重的那一个,另一个由约束条件自动确定。如此,SMO算法将原问题不断分解为子问题并对子问题求解,进而达到求解原问题的目的。
   假设两个变量是  ,其他变量  是固定的,于是SNO的最优化问题的子问题可以写成。
        其中,  是常数,目标函数中省略不含  的常数项。
   为了求解两个变量的二次规划问题,约束可以用二维空间中的图形表示
                                           不等式约束(7.3)使得  在盒子[0,C] [0,C]内,等式约束(7.2)使  在平行于盒子[0,C] [0,C]的对角线的直线上。因此要求的是目标函数在一条平行于对角线的线段上最优值。这使得两个变量的最优化问题成为实质上的单变量最优化文图,不访考虑为变量  的最优化问题。
   假设初始化可行解为  ,最优化解为  ,并且假设沿着约束方向未经剪辑时  的最优解为  
   由于  需满足不等式约束(7.3),所以最优值  的取值范围必须满足条件        其中,L与H是  所在对角线段端点的界,如果          如果  ,则     
   下面首先要求沿着约束方向未经剪辑即未考虑不等式约束(7.3)时  的最优解  ,然后在解决剪辑后  的解  ,我们用定理来描述这个结果        令     
   当i=1,2时,  为函数g(x)对输入  的预测值与真实输出  之差
    定理  最优化问题(7.1)~(7.3)沿着约束方向未经剪辑时的解是        其中       是输入空间到特征空间的映射
   经剪辑后的  的解是        由  是     

支持向量机

8. 支持向量机

 
                                                                                   
    定义拉格朗日函数      ,    KKT条件 为:        求极值,则令             得到:             代入  消去  和  ,得到原问题的 对偶问题 为              由KKT条件得到:对于任意训练样本  总有  或  ,这就意味着当  时,该样本并不会对  产生而任何影响,当  时,此时意味着训练样本在最大间隔的边界上,该样本点称之为支持向量。 
   **
   假设样本线性可分,即存在一个超平面对样本进行分类。而实际任务中,样本往往是非线性可分。此时,我们将  映射到高维特征空间,在特征空间中找到超平面使得样本线性可分,记  为  映射到高维特征空间所对应的特征向量。   因此,对应的模型可以表示为        实际只需要求解如下函数:             对偶问题为:             当特征空间维度很高时,计算  困难,故定义核函数  使得  ,   则对偶问题重写为:             求解该对偶问题得到          
                                           由于  非凸、非连续,常用其他损失函数替代,如下图所示:   
                                                     
                   采用拉格朗日乘子法      ,求极值,令                  带入L得到原问题的对偶问题为:                   KKT条件要求 :        由此可得:
   (1)考虑  与  最多允许有  的误差   (2)构建宽度为  的间隔带,如图:   
                                                                                                                                                                                                                                                   
   **
最新文章
热门文章
推荐阅读