§4-1. 线性分类问题的支持向量机
一、 分类问题与机器学习
设有两类模式C1和C2,TX1, y1X2, y2XN, yN是从模式C1和C2中抽样得到的训练集,其中XnRM、yn1, -1。若Xn属于C1类,则对应有yn1;若Xn属于C2类,则对应有yn1;。寻求RM上的一个实函数gX,对于任给的未知模式,有
gX0, XC1 或者 gX0, XC2 C 1gX1, X sgn (4-1) , C2gX1Xsgn式中sgn为符号函数,gX称为决策(分类)函数。
前两章学过的前向神经元网络和径向基网络,都可以用来解决此类问题。这一章,我们称解决上述问题的方法为“分类机”。当gX为线性函数时,称为线性分类机;当gX为非线性函数时,称为非线性分类机。
举例:患有心脏病与年龄和胆固醇水平密切相关。对大量病人进行调查,得到表4-1所示数据,图4-1是数据的分布示意图。
表4-1 编号 年龄x1 胆固醇x2 患病否y 1 2 3 4 5 6 56 55 70 74 59 68 192 205 177 155 198 171 -1 1 1 -1 1 -1
图4-1.样本分布
根据数据Xx1x2分布以及所对
应的y值,我们可以目测获得一条分类线gX。gX不仅可以将两类模式分开,并且具有最宽的“边带(Margin)”。以后,对任意一个被观察者进行检验,得到
1
其数据Xx1x2后,若X处于gX上边,即可判定为心脏病疑似;处于gX下边,则认为没有患有心脏病。
以上仅用年龄和胆固醇水平来判定是否患有心脏病显然是极其不可靠的。也就是说仅凭x1和x2两个参数不足以判别一个人是否患有心脏病,还必须考虑更多的参数,Xx1这种情况下已无法人为直观地确定判x2xN的维数很高。
别函数gX了。于是,我们需要一种根据给定的大量样本确定判别函数的方法,即需要一个能够由经验数据学会对某些模式进行分类的“学习机”。
二、 两类可分问题的线性分类机
实际上,以前讲过的“采用硬限幅函数的单个神经元”就是一个线性分类机。这里,我们从最大分类间隔角度,导出另外一种线性分类机。
仍以图4-1为例,对于这个二维问题,线性分类机的作用就是要在C1和C2之间寻找一条分类线l,其表达式为gX。我们已经熟知,在高维情况下gX是一个超平面。
对于线性可分的两类模式C1和C2而言,能够准确将其分开的直线不是唯一的。假设有直线l可以无误地将C1和C2两类模式分开,另有直线l1和直线l2与l之间的间距为k, l1与l2之间形成一个没有学习样本的带状区域,不妨称该带状区域为“边带(Margin)”,而l是边带的中分线。显然,最合理的分类线应该具有最宽的边带。
假设,已知分类线l的法线矢量为W0,则分类线的表达式为:
gXW0Xb00 (4-2)
式中表示矢量点积。显然, gX到原点距离为Nb0。 W0对于给定的所有N个学习样本Xn, ynn1,gX应满足:
2
gXn0, yn1 XnC1 (4-3a)
gXn0, yn1 XnC2或写成
ynsgngXn1XnC1 (4-3b)
ynsgngXn1XnC2如图所示,直线l1和直线l2与分类线l之间的间隔距离为k,则这两条边界线的表达式分别为:
l1:W0Xb0k
l2:W0Xb0k直线l1和直线l2之间的间距为2k,寻找最大带宽的问题,转化为在保证所有学习样本满足(4-3)式的前提下,寻找gX使k达到最大的问题了。
k是一个标量,因此,可以取WW0b;b0。于是,分类线l的表达式可
kk以改写成:
l:gXWXb0 (4-4)
直线l1和直线l2的表达式可以改写成:
l1:WXb1 (4-5)
l2:WXb1当k增大时,WW0变小。于是,寻找最大带宽k的问题,变成了寻找最小k2W的问题,为了计算上的方便,取目标函数为1W。
2对于任意学习样本Xnyn,其分布必然在直线l1之上或直线l2之下。即有
gXnWXnb1;yn1, XnC1 (4-6) gXWXb1;y1, XCnnn2n将以上两式合并,有
ynWXnb1 (4-7)
在选择分类线的过程中,(4-7)式对于任何学习样本都必须成立。在此前提下
3
寻找最宽边界的问题,最后可以表示成一个约束优化问题:
min1W2W,b2 (4-8) s..tynWXnb1, n1, 2, , N这里目标函数中的
1没有其他意义,只是为了下一步导出求解方法时方便。由此2得到两类分类机算法:
(1). 给定学习样本集Xn, ynn1,XnRM、yn1, -1。yn1表示Xn属
N于C1类,yn1表示Xn属于C2类;
(2). 构造并求解关于变量W和b的优化问题(目标函数加上平方)
min1W21WTWW,b22 s..tynWXnb1, n1, 2, , N求得最优解W*和b*; (3). 构造分类函数
gXW*Xb* (4-9)
对于任意的未知模式X,可以由上式判断其所属类别:
gX0 则 XC1 (4-10)
gX0 则 XC2从以上分析过程可知,对于任意学习样本Xn,有
gXn1 则 XnC1
gXn1 则 XnC2学习样本是实际模式的抽样或特例,工作中的实际模式可能超过学习样本的分布范围。如果能够预测到实际模式的分布,并且根据其分布确定分类函数,我们称之为“预测最优”。但实际上是很难做到的,无论我们得到多大规模的样本都总是实际问题的抽样或特例,以这些数据所做的任何估计都只是以局部推测全局。以上得到的“支持向量机”取两类样本之间最大边带的中心为分类函数,显然是对现有学习样本的最佳分类。尽管这样的分类函数未必是“预测最优”,但这种方法比器硬“限幅函数单个神经元”只能得到一个可行的分类函数来说,有更强的合理性。我们称支持向量机获得的分类函数具有“结构最优”性。
4
从结构上还可以看出,最宽边界只取决于个别样本,大量位于直线l1和直线称恰好位于直线l1和直线l2上的样本为“支l2外边的样本对最宽边界并没有影响。
持向量”。这正是这种算法称为“支持向量机”的原因。 附:用Matlab语言中的优化函数constr求解混合约束问题
语句结构如下:X=constr(‘fun’,x,options),其中:
fun 是目标函数和约束条件的表达式,可以用Matlab的函数语句或M文件来定义;
x 是一个数组,其中元素为优化参数;
options 是控制参数。
以下举例说明其用法。优化问题:
2min.ex14x122x24x1x22x21x1x20
s..t1.5x1x2x1x20x1x2100(1). 建立.m文件:OPTex01.m
用数组x表示优化参数:x(1)对应于x1、x(2)对应于x2。
function [f,g]= OPTex01 (x)
f=exp(x(1))(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1; g(1)=x(1)+x(2);
g(2)=1.5+x(1)*x(2)-x(1)-x(2); g(3)=-x(1)*x(2)-10;
(2). 在窗口或文件中调用优化函数
x=[-1,1];
%给优化参数赋初值;
%参数赋值1,说明第一个约束为等式;
options(13)=1;
x=constr(‘OPTex01’,x,options);
运行结果:x=-1.2247 1.2247
在求解SVM问题时约束条件表达式与样本数量相同,显然,逐个写出表达式不太现实。但表达式的形式均相同,因此,可以写成矩阵运算的形式。
5
§4-2. 求解线性分类问题的优化方法
求解(4-8)式是一个典型的优化问题,而且,(4-8)式中只涉及到变量W的二次关系W,因此,是一个二次规划问题。二次规划问题有唯一的最优解,不存在局部最优,这是本算法的突出优点。后面还可以看到,借助Lagrange方法求解(4-8)式优化问题时,只涉及到Xn之间的点积运算,这将这种方法推广到非线性可分问题提供了极大的方便。为此,首先介绍最优化问题的基本概念。
一、 优化问题的几个基本定义和定理
定义(无约束问题的全局极小点或整体解):称X*RM是目标函数fX的全局最优解,如果对于任意的XRM有fXfX*。如果对于任意XX*有
fXfX*,则X*称为严格全局最优点。
给定函数fX求解全局最优的问题,称为“无约束优化问题”。记作
minfX,XRM。
定义(约束问题的全局极小点或整体解):设
DX ciX0, i1, 2, , p; ciX0, ip1, p2, , pq; XRM
是目标函数fX的可行域,称X*D是目标函数fX在D上的最优解,如果对于任意的XD都有fXfX*。如果对于任意XX*,X, X*D有
fXfX*,则X*称为fX在D上的严格最优点。
给定函数fX和约束条件
ciX0,i1, 2, , p
ciX0,ip1, p2, , pq
在可行域上求解目标函数fX最优解的问题称为“约束优化问题”。记作
6
mins.t.fX, Xx1, x2, , xMRMTciX0,i1, 2, , pciX0,ip1, p2, , pq
定义(凸集):称集合SRM为凸集,如果对于任意X1, X2S和任意的
0, 1,都有X11X2S。
定义(凸组合):设X1, X2, , XNRM,如果存在非负的1, 2, , N满足n1,则称XnXn是X1, X2, , XN的一个凸组合。
n1n1NN定义(凸函数):设SRM为非空凸集,称f为定义在S上的凸函数,如果对任意X1, X2S和0, 1都有
fX11X2fX11fX2
如果X1 X2时上式中严格不等号成立,则f称为严格凸函数。
定理(凸函数的充要条件):设SRM为非空凸集,称f为定义在S上的凸函数,如果对任意X, XXS都有
fXXfXfXX
其中fX是函数f在X点的梯度。(证明从略)。
图4-2.凸函数 二、 最优性条件
定理(凸无约束问题解的充要条件):设fX是RM上的连续可微凸函数,则X*RM是无约束问题全局最优的充分必要条件是fX*0。
7
下面研究凸约束问题解的必要条件。
1. 等式约束问题的必要条件
先考虑二维且只有一个等式约束的优化问题
mins.t.fXfx1, x2cXcx1, x20
显然,该问题的可行域是由cX0确定的一条曲线,fX在XcX0, XR2取值就是
fXfx1, x2和曲面cx1, x20的交线,如图
cX04-3所示的即空间曲线l:。该约束
fXfx1, x2 图4-3 等式约束问题示意 问题的解X*是交线上的最小点,而X*未必是无约束问题min:fX的最优点,因此,fX*0不一定成立。
考虑fX上的等高线fXk,当k比较大时等高线与l有交点;当k低于
hfX*时就没有了交点。显然,在X*点等高线fXh和l有唯一的交点,即,在x1, x2平面上等高线fXh与曲面cX0相切,于是法线共线。而等高线fXh在切点X*处的法线就是fX在X*点的梯度矢量
fXcXxx1,的法线为。因此,cX0fX*1cX*fXxxcX2XX*2XX*必有常数*使得
fX**cX*0
X*除了满足上述条件外,作为约束问题必然还有cX*0,由此得到约束问题
解的条件为
fX**cX0 cX0
8
引入Lagrange乘子,构造Lagrange函数
LX, fXcX
可以看到,在X*约束问题解的条件可以表达为
XLX, XX*fX**cX*0**LX, XX*cX*0 (4-11)
用矢量函数CXc1Xc2XcpX0表示多个等式约束,令Lagrange
T乘子矢量Α12p,则多个等式约束情况下Lagrange函数为
LX, ΑfXiciXfXCX*Α
i1pTT解的必要条件可以表达为
XLX, ΑXX*fX*CX*Α*0ΑΑ*ΑΑ*TΑLX, ΑXX*CX*0 (4-12)
其中CXc1Xc2XcpX0。显然,最优点满足(4-12) 但满
T足(4-12)不一定是最优点。
2. 不等式约束问题的必要条件
先考虑二维且只有一个不等式约束的优化问题
mins.t.fXfx1, x2cXcx1, x20
如图4-3所示,可以分两种情况考虑:
最优点X*落在可行域的边界上。该问题解的存在条件与等式约束问题
相同,由(4-11)式给出。还可以证明,在切点X*处fX*指向可行域D的外侧而cX*指向内侧,二者共线但方向相反,所以必有*0使得fX**cX*0。此条件等价于
9
XLX, XX*fX**cX*0**LX, XX*cX*0 (4-13)
*0上式同样适用于等式约束情况。
最优点X*落在可行域以内。约束条件不起作用,X*就是无约束问题
min:fX的最优解,即有fX*0;同时,由于X*位于约束曲线cX0的内侧,因此,必有cX*0。此条件等价于
XLX, XX*fX**cX*fX*0**LX, XX*cX*0 (4-14)
*0综合(4-13)和(4-14)式,不等式约束问题的必要条件
XLX, XX*fX**cX*0**LX, XX*cX*0 (4-15)
*cX*0把上述结论推广到多个不等式约束的情况
XLX, ΑXX*fX*CX*Α*0ΑΑ*ΑΑ*T*0ΑLX, ΑXX*CX*0Α*0CX*Α*0 (4-16)
3. 一般约束问题的必要条件
一般问题包括等式约束和不等式约束,比较(4-12)、(4-13)和(4-16)式可以看到:
(4-16)式条件中的第一项是等式、不等式约束两种情况所共同拥有
的;
对于等式约束和最优点处在可行域边沿上的情况,第二项取“=”、
第三项取“>”;
10
对于最优点位于约束曲线内侧的情况,第二项取“<”号、第三项取
“=”;
第四项为所有情况所共有。 于是,可以归纳出“一般约束问题”
minfXXx1x2xMRMs.t.ciX0i1, 2, , p
ciX0ip1, p2, , pqT的必要性条件”:
XLX, ΑXX*fX*CX*Α*0ciX*0, i1, 2, , pciX*0, ip1, p2, , pq (4-17)
i*0 i1, 2, , pciX*i*0 i1, 2, , pΑΑ*T此条件也称为“KKT条件(Karush-Kuhn-Tucher 条件)”。实际上,对于凸一般约束问题,(4-17)式条件就是充分必要条件。
三、 对偶理论
1. 原始问题与对偶问题
为了得到求解优化问题的实用方法,需要借助对偶理论简化问题。用以下例子引出对偶理论的概念:
设有两个人P和D进行博奕,博奕的规则是:
P的可行策略集为X,D的可行策略集为Y。即P和D所能采用的招数
集合分别为X和Y;
每次对决,两个人各从自己的策略集中选择一个策略。例如,P采用招
数xX,D采用招数yY,然后对决;
两人同时公开策略,依照策略不同而确定输赢并决定赔付。假设对决中
D获胜,则由P向D赔付Fx, y0,Fx, y是策略x, y的函数。反过来,若P获胜,则赔付Fx, y0。
11
假设参与者P和D都不是盲目冒险,而是理性地追求最大利益,两人都选择最小风险的决策。首先,参与人P选择的任意一个策略xX,在Y中存在一个yY使他的赔付Fx, y最大。将他选择x时给D的最大可能赔付记作
F*xmaxFx, y (4-18)
yY参与者P应该尽可能F*x实际上就是参与者P选择策略x后的最大风险。的减小F*x,即,P渴望得到以下问题的解
minF*xminmaxFx, y (4-19)
xXxXyY这个问题称为“极小-极大”问题,即最大赔付中的最小。
另一方面,参与人D希望得到对方最大的赔付。他选择的任意一个策略
yY,最差情况下,在X中存在一个xX使他得到的赔付Fx, y最小。将他
选择y时能够得到的最小可能赔付记作
FyminFx, y (4-20)
xXFy实际上就是参与者D选择策略y后的最大风险。参与者D应该尽可能争取最大的Fy,即,D渴望得到以下问题的解
maxFymaxminFx, y (4-21)
yYyYxX该问题称为“极大-极小问题” ,即最小赔付中的最大。
定义(原始问题和对偶问题):称极小-极大问题(4-19)为原始问题,Fx为原始函数;称极大-极小问题(4-21)为对偶问题,Fy为对偶函数。
2. 弱对偶定理
凭直观可以得到:对于任意的xX和yY,有
FyminFx, yFx, ymaxFx, yFx (4-22)
xXyY由此可以得到定理:
12
定理(弱对偶):Fx和Fy分别为原始函数和对偶函数,对任意的xX和yY,有FyFx。若原始问题和对偶问题都有最优解,则
maxminFx, ymaxFyminFxminmaxFx, y (4-23)
yYxXyYxXxXyY即,原始问题的最优值以对偶问题的最优值为下界。
例1:两人零和(必决胜负)博奕。P和D的可选策略集分别为X1, 2和
Y1, 2,当他们分别选择iX和jY时,P向 D的赔付为Fi, jaij。P和
12。 D所有可能选择的赔付组成一个矩阵A432对于P而言,任选i1, 2,可能的最大赔付为FimaxFi, j,
j1,24于是,极小-极大问题的最优解为
2minFiminmaxFi, jmin2 i1,2i1,2j1,2i1,24此人的最优选择是i1,这样他的最大赔付是2。若对方失误则还有可能赔付-1。
对于D而言,任选j1, 2,可能的最小获赔为FiminFi, j12,
i1,2于是,极大-极小问题的最优解为
maxFjmaxminFi, jmax122
j1,2j1,2i1,2j1,2即定理中的等号。此人的最优选择是j2,这样他至少获赔是2,如果对方失误则还有可能获赔4。maxFj0显然博奕对D有利。这种情况下“最多赔付”
j1,2与“至少获赔”相等,但是,从矩阵A可以看到这是不公平的对决。
12,极小-极大问题的解没有变,极大-极小问题的解为 改变矩阵A41maxFjmaxminFi, jmax111
j1,2j1,2i1,2j1,2于是,maxFjmaxminFi, j12minmaxFi, jminFi。“最多赔
j1,2j1,2i1,2i1,2j1,2i1,2付”大于“至少获赔”,符合定理中的不等号。maxFj0显然博奕对D有利。
j1,2 13
12以上例子给出了弱对偶定理的两种可能。再假设A这意味着两21,
方的利益和风险相同。根据公式可以得到
22 对于P而言,其最大赔付风险为:minFiminmaxFi, jmini1,2i1,2j1,2i1,22maxFjmaxminFi, jmax111 对于D而言,其最小获赔风险为:
j1,2j1,2i1,2j1,2符合定理中的不等号。
3. 强对偶定理
前面通过例子已经看到原始问题的解minFxminmaxFx, y总是大于
xXxXyY等于对偶问题的解maxFymaxminFx, y。考察例子中的矩阵A,元素
yYyYxXa122是第一行中的最大,同时又是第二列的最小,存在这样的点称该博奕有鞍点。后面可以看到,原始问题和对偶问题的最优是否相等和博奕有没有鞍点密切相关。
定义(鞍点条件):设给定定义在X, Y上的实值赔付函数Fx,y和一个点
x,y,xX,yY。若对任意的xX,yY,有
Fx,yFx,yFx,y
则称x,y为鞍点。(鞍点即“行中最大、列中最小”)
定理(强对偶性):原始问题和对偶问题有相同最优值
minFxminmaxFx, ymaxminFx, ymaxFy
xXxXyYyYxXyY的充分必要条件是存在鞍点。
四、 Lagrange对偶理论 1. 原始问题与对偶问题
以只含不等式约束的约束问题为例
14
mins.t.fXciX0, i1, 2, , p (4-24)
在前面的分析中我们还知道,给定Lagrange乘子Α12p则其Lagrange函数
TLX, AfXATCX
满足以下条件:
若最优点X位于可行域边界上,则fX与CX共线且反向。fX作为凸函数其fX0,所以,必然CX0,在
LX, AXXfXA*TAACX0
T中,Lagrange乘子Α12p一定满足i0;
若最优点X位于可行域之内,则约束条件没有作用约束问题与相应的无
约束问题同解,即,应有
LX, ΑXXfX0
AA因此,必有i0,i1, 2, , p。
现在,将Lagrange函数LX, A看作定义在XRM,ARp上的赔付函数,与前面讲的内容对应:XRMxX,ARpyY。于是,由此定义的原始函数
TLXmaxLX, AmaxfXACX (4-25) ppARAR考虑到有ciX0,i0,上式中第二项iciX0,所以给定任意X对括号取最大值结果必然是第二项为0,即
LXfX (4-26)
以上结果中已经包含了条件ciX0,i0,所以,此时的极小-极大问题
XRX minLM就是(4-24)式所示的约束优化问题,优化被表示为一个“极小-极大”问题:
15
XRTminLXminmaxLX, AminmaxfXACX (4-27) MMMppXRARXRAR将约束优化问题表示成最小-最大问题的目的,是利用对偶问题将原有的优化问题转化成更容易求解的形式。(4-27)式作为原始问题,其对偶问题为
TmaxLAmaxminLX,AmaxminfXACX (4-28) MMpppARARXRARXR这里的对偶函数为
LAminLX,AminfXATCX, ARp (4-29) MMXRXR利用对偶问题表达的优化问题,将原来的问题变成了容易求解的无约束问题。对于(4-28)式,首先求解关于变量X的极小值问题
XRTminfXACX M得到XA后,代回(4-29)式得到只包含变量A的对偶函数LA,然后求解关于变量A的极大值问题
maxLA pAR得到Lagrange乘子A,然后,可以利用KKT条件中的其它关系式,求得X。
例2:考虑单变量优化问题
minfxx2
s.t.1x0目标函数为抛物面fxx2,约束条件为x1,凭直观就可以判断解为x1。该问题的Lagrange函数为
Lx,x21x
由KKT条件可知0。相应的对偶函数为
LminLx,minx21x
x,x,解等式右边的无约束问题
d2x1x2x0,x dx2于是对偶函数为
L24
16
这是一个开口向下且极大值2的抛物线。用对偶问题表达的优化问题
2maxLmax 0,0,4显然,在0,上的解为2。再利用前面的关系可以得到x1,此结果显然就是原来优化问题的解。20也印证了最优点位于约束边界上。
2. 二次规划问题的对偶性 在上面我们实际上用到一个事实:被表达的优化问题是一个强对偶问题,即
minLXminXXAi0,,i1,2,,pmaxLX, AAi0,,i1,2,,pmaxminLX, AmaxLX
XX如果要用以上方法解决支持向量机问题,必须首先保证(4-8)式是一个强对偶问题。
定理(强对偶性):考虑连续可微的凸优化问题
minfX (4-30)
s.t.ciX0, i1, 2, , p其中fX和所有ciX都是连续可微的凸函数,并且约束条件满足(约束规格)
(1). ciX均为线性函数;
(2). 梯度集c1X, c2X, , cpX中各个分量线性无关。
T则:
(1). 若原始问题(4-30)有解,则其对偶问题(4-28式)
TmaxLAmaxminLX,AmaxminfXACX,也有解; MMpppARARXRARXR(2). 若原始问题(4-30)和对偶问题(4-28)分别有解X和A,则这两个解分别
为原始问题和对偶问题最优解的充分必要条件是相应的原始问题和对偶问题的目标函数值相等。
利用对偶理论,我们首先可以将(4-30)式优化问题表示成(4-25)和(4-27)式所表示的极小-极大(原始)问题。如果满足强对偶条件,利用对偶理论又可以转
17
化为极大-极小(对偶)问题,对偶问题更加容易求解。
从前面的例子已经看到利用对偶函数求解优化问题的过程是 (1). 求对偶函数
TLAminLX,AminfXACX (4-31) MMXRXR方法是令
XfXATCX0
解出
XA (4-32)
代回对偶函数得到
TLAminLX,ALX,AfXACX MXR(2). 取对偶函数极大值
maxLAmaxLX,AmaxfXATCX pppARARAR方法是令
AfXATCX0
解出A,代回(4-32)式得到优化解XA。
3. Wolfe对偶问题
可以将上面求解过程的两个步骤归纳为一个新的优化问题
maxLX, A (4-33) s.t.XLX, A0i0, i1, 2, , p其中,约束条件XLX, A0实际上就是上面步骤中的第一步,而目标函数就是上面步骤中的第二步。其实,(a). 将XLX, A0求解,然后,(b). 代回
LA就解得了Lagrange乘子。 LX, A就得到了LA,再,(c). 取maxpAR 18
(4-33)式看起来似乎只是将通过对偶理论表达的优化问题及其求解方法,归纳成了另一个数学表达形式。但(4-33)式更加接近原始问题,利用(4-33)式我们无须再涉及关于原始函数LX, A或对偶函数LX, A的运算,而可以直接从Lagrange函数LX, A出发,求解优化问题。
(4-33)式优化问题称为(4-30)式优化问题的“Wolfe对偶(Wolfe Dual)”。
五、 两类线性可分支持向量机的求解 1. 线性支持向量机问题的对偶问题及其求解 现在回到两类线性可分的分类机问题上。(4-8)式所示两类线性可分的支持向量机问题是一个二次规划问题(目标函数上多了一个平方),二次规划问题是典型的凸优化问题,满足强对偶性条件。重写如下:
min1W2W,b2 (4-34) s..t1ynWXnb0, n1, 2, , NN上式中,优化变量为WRM和bR,而Xn,bnn1是学习样本,其中
XnRM是特征矢量、bn1,1是Xn归属的类别值。约束条件的意思就是要保证每个学习样本都能够被正确分类。总共有N个学习样本,相应地就有N个约束表达式。用A12N,n0,1表示Lagrange乘子,则上式
T的Lagrange函数为
2LW,b,A1WnynWXnb12n121WnynWXnbn2n1n121WnynWXnbnynn2n1n1n1NNNNNN (4-35)
其中W和b合起来相当于原始问题Lx, y中的变量x,而Lagrange乘子
A12N则相当于y。
T利用前面已经举例并且归纳的方法求解“极小-极大”问题
19
n0,,n1,,Nmax minLW,b,A MWR,bR就可以得到两类线性可分支持向量机问题。步骤如下:
(a). 求对偶函数LW,b,AWRM,bRminLW,b,A
WLW,b,A0令得到:
LW,b,A0bNWnynXn0n1 (4-36) Nynn0n1代入(4-35)式得到
LW,b,A1WWnynWXnb12n112Nn1NnynXnkykXknynWXnbnk1n1n1NNNNNNN1nkynykXnXknyn2n1k1n1NkykXkXnbnk1n1 (4-37)
NNNNN1nkynykXnXknynkykXkXnbn2n1k1n1k1n1NNNNNN1nkynykXnXknkynykXkXnbnynn2n1k1n1k1n1n11nkynykXnXkn2n1k1n1上式中并没有出现b,但我们可以先解出n。
(b). 由令:
nLW,b,AynkykXnXk10n1, 2, , Nk1NNNNn0,,n1,,maxLW,b,A,求解Lagrange乘子n
(4-38)
由这组线性方程中可以解出所有的Lagrange乘子1, 2, , N,再利用(4-36)式的第一式可以得到
WnynXn (4-39)
n1N 20
于是得到了分类函数gXWXb的法向矢量W。
其实,从线性约束凸优化问题的几何意义可知,只有与n0相对应的那些约束条件才是有效的。对应于支持向量机问题,这些n所对应的学习样本
Xn, yn是支持向量,它们恰好位于分类边带线
l1: WXb1 (4-40) l: WXb12上。其余与k0对应的约束条件中的样本点,都位于上边带l1之上或下边带l2之下,这些点的存在并不影响分类函数的位置。根据已经得到的W和支持向量求出b并构造分类函数gXWXb的工作已不在困难。
假设所得到的Lagrange乘子中k0,表明学习样本Xk是支持向量,它必然满足约束条件
1ykWXkb0
同时考虑到yk1,所以有
bykWXkyknynXnXk (4-41)
n1N于是,得到分类函数
gXnynXn,XnynXn,Xkyk (4-42)
n1n1NN2. 线性支持向量机的Wolfe对偶 以下我们继续研究通过Wolfe对偶求解(4-34)式支持向量机问题的方法,其结果将为解决非线性分类方法找到非常有效的方法。
根据(4-33)式对Wolfe对偶的定义,可以得到(4-34)式问题的Wolfe对偶
21
maxLW, b, As..twLW, b, A0 (4-43)
bLW, b, A0n0, n1, 2, , N式中约束条件中前两式的解如(4-36)所示。由其中第一式得到
WnynXn,将此结果代入(4-43)式的目标函数LW,b,A,并利用(4-36)式
n1N的第二式,得到(4-37)式。(4-37)式中消除了变量W并包含了(4-43)的第一个约束条件,即
LALW,b,A (4-44) 1nkynykXnXkn2n1k1n1NNN因此,若用(4-44)式作为Wolfe对偶的目标函数,则可取掉第一个约束不等式。
由于问题的特殊性,我们只从约束条件wLW,b,A0中解出W并代回了目标函数,由第二个约束条件bLW,b,A0只得到ynn0,没有得到关
n1N于b的表达式并代回目标函数。因此,即使换用(4-44)式作为Wolfe对偶的目标函数,原式中的第二个约束条件只好继续保留。鉴于ynn0从形式上更加简
n1N单,因此,用将该结论替代(4-43)式中原来的约束条件bLW,b,A0。
于是,可以将(4-43)式的Wolfe对偶改写成
p1ppmaxyiyjijXiXjii2i1j1i1s.t.yii1pi0 (4-45)
i0, i1, 2, , p该式不仅更加简洁,尤其是为实现非线性分类奠定了基础。(4-45)式同样也是求解两类线性可分支持向量机的实用算法。
许多软件,例如MatLab软件中都有求解(4-45)式子优化问题的函数可供调用,当然,也可以直接对(4-34)式直接求解。我们前面关于优化问题的所有工作,都是为了得到(4-45)式的结果,为解决非线性分类问题寻找途径。
22
§4-3. 非线性支持向量机——核方法(Kernel Method)
1. 特征空间的非线性影射和核函数
前面已经提到,(4-45)式得到的关于线性支持向量机的Wolfe对偶不仅是为求解该问题提供了一个简洁的优化问题形式,更是为解决非线性两类分类问题开辟了一条新路。
考虑图4-4所示的两个二维空间Xx1, x2R2和Zz1, z2R2,两者之
z1x1间存在影射关系ZXx1, x2,或者表示为。影射使平面
3z2x23发生了连续变形。从图中可以看到点的位置发生了移动,尤其是X平面中的三次
3曲线x2x13,即x1, x1,被影射成为Z平面中的直线z2z1,或表示为x1, x1。
考虑以下从Xx1, x2R2到Yy1, y2, y3R3影射
y1x1xbx1c3X: y22
a2yx2ax1c3b利用这个影射我们可以将X平面中任意给定的二次曲线x2x12x1影射为R3上的空间直线,显然,只需要取a、b、c即可。3同样可以将X平面中给定的直线x2kx1d影射为R3上的空间直线,显然,只需要
图4-4 (a). 原始空间XR 图4 -4 影射示意 (b). 影射ZXR 2 2 23
取a0、bk、cd即可。因此,适当选择系数abc,3可以将X平面中的二次曲线、直线影射为YR3上的空间直线。
通过以上例子很容易想到,如果我们定义XR2到YRN1影射
y1x11Nk1knnx2anx1anx1nk1n0yk (4-46) N1X: akNx2anx1na0n2yN1a1则可以将XR上小于等于N阶的多项式曲线x2anx1n影射为YRN1上的
2Nn0直线。于是,如果影射阶数N,则任意XR2上的多项式曲线都将被影射为直线。
当然,在上面的分析中回避了影射和存在域的问题。这里只是想引申出一个设想:对于非线性可分的两类点集,寻找一个影射将问题影射到新空间ZRS使之成为线性可分问题,然后在新空间上运用前面得到的方法寻找分类函数。
从前面关于影射的分析中可以看到,如果(4-46)式影射的阶数趋于无穷大,则任何多项式曲线边界的两类问题都可以被影射为线性可分的问题。实际上,这个问题和曲线拟合问题是一样的,只要所采用的模型有足够高的阶数,那么,给定的样本总可以被拟合出来。问题是如何选取影射?注意到,上一节得到的(4-45)式,线性可分支持向量机的Wolfe对偶目标函数中只包含学习样本的点积运算XiXj,假设已经找到合适的影射,则非线性可分两类问题的支持向量机的Wolfe对偶为
24
p1ppmaxyiyjijXiXjii2i1j1i1s.t.yii1pi0 (4-47)
i0, i1, 2, , p其实我们并不一定非要知道的表达式,如果能够直接计算XiXj则完全没有必要写出;另一方面,我们对的要求就是它有足够高的阶数,具有足够强的拟合能力。可以想象,对于一个具体的分类问题,这样的并不唯一。
直接寻找不容易,但可以证明,找到一个函数
KXi,XjXiXj (4-48)
使之所隐含的能够满足上述要求却并非困难的事情。例如,径向基函数
KXi,XjeXiXj22
如果将它分解成两个函数的点积,其形式等价的阶数将非常高。
于是,我们不用寻找,转而直接寻找KXi,Xj,非线性可分两类分类问题支持向量机的Wolfe对偶成为
p1ppmaxyiyjijKXi,Xjii2i1j1i1s.t.yii1pi0 (4-49)
i0, i1, 2, , p(4-48)式定义的函数KXi,Xj成为“核函数(Kernel Function)”。利用核函数,两类非线性可分问题转化成了线性问题。相应的分类函数为
gXnynKXn,XnynKXn,Xkyk (4-50)
n1n1NN可见,正因为在支持向量机的Wolfe对偶表达形式中,只出现了学习样本的点积运算,才使得我们有可能运用核函数的方法解决非线性分类问题。这正是支持向量机引起人们广泛关注的意义所在。
25
基于核函数求解机器学习问题的方法又被称为“核方法”,是最近一些年人工智能发展的一个亮点。
2. 核函数存在的条件和常用核函数
我们希望KXi,Xj隐含着的影射具有足够强的非线性拟合能力,或者说,是一个自由度极高的函数。那么什么样的函数隐含影射呢?这是一个复杂的泛函问题,超出了本课程的内容范围,这里不做过多的讨论。我们只从形式上给出KXi,Xj成立的Mercer条件。 1. Mercer条件:
影射以及和表达式
KXYXiYi
i存在的条件是,当且仅当对于任意的gx
gxdx
2有
KXYgXgYdXdY0。
2. 常用核函数:
多项式:KXYXY1
p径向基:KXYeXY2
双曲正弦:KXYtanhXY
26
§4-4. 算法归纳
相关算法:线性(4-8,4-34)、(4-33)、Wolf对偶表示(4-43)、非线性(4-49) 一、两类线性可分的SVM算法
X1X2XNM给定学习样本:,其中,XiR是已知类别M维特征矢
y1y2yN量,yi这里介绍两类可分情况下的SVM算法的MatLab11是Xi的类别值。语言编程实现方法。
需要注意的是调用MatLab优化函数constr时,该函数要求优化参数的变量名必须是“x”,因此,不得不在程序中用x表示Lagrange乘子。
图4-5 用MatLab语言实现SVM分类算法的流程
(1). 求解优化问题(4-45)
p1ppmaxyiyjijXiXjii2i1j1i1s.t.yii1pi0
i0, i1, 2, , p
27
其中XiXj是矢量内积。
求解该优化问题的MatLab程序如下: a. 建立.m文件
function [f, g]=exfun(x,M,N)
fid=fopen(‘Tmp.dat’, r); X=fread(fid, M*N, ’float’); X=reshape(X,M,N); Y=fread(fid,’char’); fclose all f=0;
% 将样本数据还原成M×N矩阵
% M为样本维数,N为样本个数
for i=1:N
for j=1:N end end
f=f-sum(x);
f=f+y(i)*y(j)*x(i)*x(j)*X(i)’*X(j);
g(1)=y’*x; g(2:N+1)=-x;
b. 主程序
{输入学习样本: X:N个M维矢量,即M×N矩阵;
y:N维数组,每个元素与X中的一个矢量对应}
%存储学习样本 fid=fopen(‘Tmp.dat’,’w’); fwrite(fid,X,y,’float’); fclose all opts(13)=1; x=rand(N,1);
% 第一个约束表达式为等式约束; % 优化变量赋初值
A=constr(‘exfun’,x,opts); % A为得到的Lagrange乘自数组
28
{用(4-45)式构造判别函数}
二、非线性可分SVM的MatLab语言实现
与线性可分两类分类问题的区别仅在于,将其中的点积运算:
XiXjxi1xj1xi2xj2xiMxjMximxjm
m1M换成核函数运算(以Gaussian径向基函数为例):
KXiXjeXiXj222xi1xj12xi2xj22xiMxjM222ximxjmm1M2ee22
.m文件
function [f, g]=exfun(x,M,N)
fid=fopen(‘Tmp.dat’, r); X=fread(fid, M*N, ’float’); X=reshape(X,M,N); Y=fread(fid,’char’); fclose all f=0;
% 将样本数据还原成M×N矩阵
% M为样本维数,N为样本个数
for i=1:N
for j=1:N end end
f=f-sum(x);
f=f+y(i)*y(j)*x(i)*x(j)*exp(-norm(X(i)-X(j))^2/(2*s^2));
g(1)=y’*x; g(2:N+1)=-x;
29
因篇幅问题不能全部显示,请点此查看更多更全内容