1、第四章 分解算法在第二章和第三章中,我们把基于支持向量机的分类问题和回归问题归结为一个带有线性约束的凸二次规划问题。在这一章中,我们将研究这些优化问题的求解。4.1 无约束问题的提法求解约束问题的途径之一,是把它转化为一个或一系列无约束问题。对于解分类问题的支持向量机凸二次规划问题,我们用 Lee 和 Mangasarian 所提出的方法给予说明1。至于回归问题,读者可以参考文献2。4.1.1 非光滑无约束问题考虑线性支持向量机的原始优化问题, (4-1)lkTb CJ12, 21),(minwws.t., (4-2)kkTby)(x.,l(4-3)0,k.,1l这个最优化问题不是严格的凸二次
2、规划问题。为了求解方便,Lee 和 Mangasarian 把它修改为严格的凸二次规划问题1(4-4)lkTb CbJ122, )(),(minwws.t., (4-5)kkTy1)(x.,l(4-6)0,k.,l由约束条件(4-5)-(4-6)可知:问题关于 的解 应满足kk, (4-7)(1byTkxw.,1l其中函数 是单变量函数()(4-8), 0()把(4-7)代入(4-4)可得到无约束最优化问题, (4-9)lkkTTb byCbJ122, )()(1)(min xwww上述问题是严格凸的无约束最优化问题,它有唯一的最优解。但函数 是不可微的,所以要用非光滑的无约束最优化方法求解。
3、4.1.2 光滑无约束问题由于无约束最优化问题是非光滑的,所以不能使用通常的最优化问题解法求解,因为那里总要求目标函数的梯度和 Hessen 矩阵等存在。为此,Lee 和 Mangasarian 引入非光滑函数的近似函数1(4-10)1(,)ln()Pe其中 是参数。显然函数是光滑的,可以证明:当 时,函数 收敛于0 (,)P。这样无约束最优化问题就近似于最优化问题(), (4-11)lkkTTb byPCbJ1 22, ),()(1)(min xwww可以期望,当 充分大时,光滑无约束问题的解会近似于非光滑无约束问题的解。因而也会近似于原始问题的解。4.1.3 带有核的光滑无约束问题在广义支
4、持向量机中,Mangasarian3考虑下述的非线性优化问题, (4-12)lkTb CJ1, 21),(minHs.t., (4-13)kkTkby)(xw.,l(4-14)0,.,1l其中 是一个对称正定矩阵, H(4-15)1()ljjjyx和线性情况一样,Lee 和 Mangasarian1把问题(4-12)-(2-14)转化为下述的严格凸二次规划, (4-16)lklkb CbJ1221, )(),(mins.t.(4-17)1(,),lkjkjkjyKx.,l(4-18)0,k.,l相应于该问题的光滑无约束最优化问题为(4-19)2 2, 111min J(,)()(,),l ll
5、k kjkjb kjCbPyKb x对于光滑的无约束问题,一些经典的算法,如:Newton-Armijo 算法、BFGS 算法(变度量法) 、PRP 共轭梯度法和 Newton-PCG 算法(牛顿条件预优共轭梯度算法)都可以使用4-5。4.2 分解算法的提出在处理具体问题时,由于存储和计算量两方面的要求,传统的处理光滑无约束问题的方法常常失效。原因是这些算法都要存储与训练集相应的核矩阵,而存储核矩阵所需的内存是随着训练集中样本点个数的平方增长的。当样本点以万计时,所需的内存已相当大。例如,当样本点数目超过 10000 时,存储核矩阵所需内存超过 800MB。另外,这些算法往往包含大量的矩阵运算
6、,所需的运算时间往往比较长。为了解决大规模样本集的训练问题,研究者们提出了分解算法。其基本思想是:在每一步迭代中都把训练样本集分解为两个子集合 和 ,只对工作集 中的样本进行迭代,BNB而另一个集合 中的样本所对应的拉格朗日乘子 保持不变。然后,将集合 中的一部NiN分“情况最糟糕的样本点”与工作集 中的一部分样本点进行交换。目前,主要的分解算法有以下几种:(1)选块算法(Chunking):它是由 Boser 等人首先提出的一种解决支持向量机训练存储空间问题的方法6。具体步骤为:首先取训练样本集合中的任意一个子集作为工作集;然后对 求解最优化问题,得到支持向量并构成一个分类判别函数,并用该判
7、别函数B测试集合 中的样本,将其中不满足最优化条件者按其偏离最优的程度顺序排列为侯补工N作集 ,若 中的所有样本均满足最优化条件或 为空集,则程序结束,否则继续;接CC下来剔除 中的非支持向量样本,添加 中排列在前面的 个样本构成新的工作集。循M环往复,直到程序结束。选块算法使得核矩阵大小由 降低为 ( 是支持向量得的个数)2l2s,从而大大降低了对内存的需求,在支持向量很少的情况时能获得很好的结果,当 很大s时,对内存的需求仍很大,难以求解。(2)Osuna 的分解算法:该算法是由 Osuna 等人提出的7,与 Chunking 算法最大的不同,也是它最大的改进之处:它将求解支持向量机的 Q
8、P 问题分解为一系列较小的 QP 问题,并且工作集 的大小保持不变,对内存的需求从与 呈平方关系变为线性关系,因而可以Bs克服 Chunking 算法中存在的问题。由于工作集 是固定大小的,所以 Osuna 算法的速度B与 的选择和 的大小有着密切的关系:如果较小,则每次优化的样本少,导致算法收敛很慢;反之,子 QP 问题的解决仍需要花费较多的内存和较长的时间,没有体现到分解算法的优越性。在 Osuna 分解思想的基础上,Joachims8和 Lin9分别在各自的软件包SVMLight与 LIBSVM 中提出了不同的工作集选择方法。在实现的细节上,Joachims 对常用的参数进行缓存,并对
9、QP 问题进行了 Shrinking 技术,从而使算法能较好地处理大规模的训练问题。(3)SMO 算法:它首先是由 Platt 提出来的10,可以说是 Osuan 分解算法的一个特例:工作集 中只有两个样本。SMO 将工作集的规模减到最小,一个直接的后果就是迭代次数B的增加。然而,其优点在于:两个变量的最优化问题可以解析求解,因而在算法中不需要迭代地求解二次规划问题。考虑到 Platt 所提出的选训练点的启发式策略得到的点有可能不是最大矛盾对点,Keerthi 对 SMO 算法做了重要的改进11。4.3 选块算法我们知道,对偶问题(4-20)1 1min(,)2l lijiijiijyK xs
10、.t.(4-21)10liy(4-22), 2,iCl的解仅依赖于支持向量对应的样本点。如果我们事先知道哪些是支持向量,就可以仅保留与它们相应的样本点,而从训练集中删去其他样本点。对缩小的训练集,建立并求解对偶问题(4-20)-(4-22)可以得到同样的决策函数。这一事实对于大规模的实际问题非常重要,因为它往往是稀疏的,只有不太多的支持向量,有可能只需求解规模不大的优化问题。然而,究竟哪些是支持向量,我们事先是不知道的,一般来说需要采用启发式算法寻找。最简单的启发式方法是选块算法。其基本思想是:去掉对应于非支持向量的拉格朗日乘子 的那些训练点,而只对支持向量计算相应的拉格朗日乘子 。0i i其
11、详细的算法描述如下(算法 4.1):(1)给定参数 和 。选择初始工作集 ,记其对应的样本点的下标集M00WT为 ,令 。0Jk(2)针对工作集用标准优化算法求解最优化问题(4-23)1min(,)2k kijiijiiJj iJyKxs.t.(4-24)0kiiJy(4-25), ikCJ得最优解 。kJ(3)根据 按下述方式构造 :当 时,取 为k 1112(,)kkkTl kjJ1kj的相应分量;当 时, 。检验 是否在精度 内满足某个停机准则,kJkjJ0j比如 KKT 条件。若已满足,则用 构造决策函数,停止计算;否则转步骤 4。1k(4)根据 确定支持向量对应的样本点组成的集合 ,
12、在集合 中找到 个最kJ kSkTSM严重地破坏条件(4-26)CbKykjjkjJi jiikj 11 | ,0| ,),( xx的样本点,用这 个样本点和 中样本点一起组成新的工作集 ,记相应的下标集为MkS1kW。1kJ(5)令 ,转(2)。1k4.4 SVMLight算法我们把 的分量分成两部分:一部分属于工作集,另一部分属于固定集。若记它们对应的下标集分别为 和 ,则优化问题(4-20)-(4-22)可表示为BN(4-27)1122min () ()TTTTBNBNWH1H1s.t.(4-28)0TBNy(4-29)0C其中(4-30)BNBNyBNH因为 N 集合中的变量在一次迭代
13、中是固定的,于是上式中的项 可以省去,121TT于是得到只是优化 B 集合需要求解的子问题(4-31)12min ()()TTBBBNWs.t.(4-32) 0TBNy(4-33)0C在选定 之后,如何选取下标集 呢?一个简单的办法是找一个恰有 个非零分量,B B且使目标函数 下降速度最快的方向 ,然后用 的这些非零分量的下标组12THd成工作集 。Joachims 的选择策略求解下面的线性规划问题(4-34)min()kTVd1s.t., (4-35)0Tyd(4-36),()0,ki if(4-37) i iC, (4-38)1idl,(4-39):0iB目标函数(4-34)可以表示为(4
14、-40)1()lkTiVdgdH其中 。1(,)jlki ijijjgyKx假设 是当前搜索到的解, 为下一步要寻找的解,根据最速下降法,我们有k1k(4-41)kg其中 , 为搜索步长。12(,)Tlg 由于(4-42)11()()kkkTWg从而(4-43) liiliTTkkk gyW121211 )()()( g如果我们能够找到使得 最大的 个元素,则相应的目标函数 将有最大iyBkW的下降量。这样有如下的寻求工作集算法。算法 4.2(寻找工作集 )(1)给定工作集 中的元素个数 ,其中 为偶数。B(2)计算 ,按 的降序重新排列1(,)1,2jlkiiiiijjygyKlx i,得到
15、序列12,l(4-44)12,lii与此对应有(4-45)12,lii(3)从序列(4-45)中的最前边依次往后取 个元素,要求这些元素满足:或者B,或者当 时有 ,或者 时有 ;再从序列的最后边0jiC0ji1jiyjiC1jiy依次往前取 个元素,要求这些元素满足:或者 ,或者当 时有 ,2B0ji0ji1jiy或者当 时有 。这些元素对应的下标构成工作集 。ji1jiyB注:对于步骤 3 中的第一种情况, ,当 大时, 就小;对于第二种情iidyigid况, ,当 小时, 也小。这样,这两种策略保证了目标函数(4-34)取最小值。iidyigi有了寻找工作集 的算法后,就可以给出详细的
16、SVMLight算法B算法 4.3(SVM Light算法)(1)给定工作集 中元素的个数 及精度要求 。取初始点 ,令00(,)TBN。0k(2)用算法 4.2 求工作集 。(3)用标准优化算法求解问题(4-31)-(4-33),得到解 ,令 。1kB11(,)kkTBN(4)若在精度 范围内满足停机准则,则转步骤 5;否则,令 ,转步骤 2。 (5)由近似最优解 构造决策函数。1k4.5 Platt 的 SMO 算法SMO 算法是在分解算法中选取 的特殊情况,即每次迭代过程中只调整相应于两2B个样本点 和 的 和 。这时工作集的规模已经减少到最小,原因是问题(,)iyx(,)jij(4-2
17、7)-(4-29)有等式约束 ,只要变动一个乘子 ,就至少必须同时调整另一10liyi个乘子来保证不违反该约束。Platt 所提出的 SMO 算法主要解决两个问题:(1)两个变量的最优化问题的解析求解;(2)如何选取工作集 中的两个训练样本。为B了及时更新超平面参数,Platt 也提出了更新 的公式。下面,我们从这三个方面详细地b介绍 Platt 的 SMO 算法。(一)两个变量 的解析解求解方法21,不失一般性,假定我们在一组解 中选取 。上标为 oldloldl ,.,321 oldl21,的量表示是本次优化之前 Lagrange 乘子的原值(初始化时可取所有 ) 。0i由 得01liiy
18、(4-46)21201212oldoldoldlyss其中 和 为常数, ,即 ,从而就有 ,原先的目标0s或 者s 2函数 可以写成,11()(,)2l lijiijiijWyKx,11()(,)l lijiijiij 22 221221,(,)(,)yKyKyK xxx(4-4711221233(,),()l liiiiconstconst )令 , , ,对于11()kKx212()kx2(,)kKx,j112231,(,)(,)l loldoldoldjiijiij j jvyyyyKxx11221(,)(,)(,)loldoldloldoldiij j jKbK x(4-48)112
19、2,oldl oldj j jbyyx把 代入 ,并注意到 ,我们可以得到2(,)iy()W1s2112212) )()kskyvconst222112 2()()( )s syvs(4-49)1112)kskct令 ,把 以及 代入212koldls2112(,)(,)oldl oldj j jvbyKyxx(4-49)式的右边第二项得(注意 ): 1212( )skyv2111212122()(,)(,) ,)oldloldloldl oldsksybykykybxxxx211212(1)()()oldoldskk21222(lyky2()old122()lyy(4-502)(oldold
20、lE)其中 是估计值与真实值之间的差。jjoldjy1(,)loldoldiijjyKbyx把(4-50)代入(4-49)中的 得:W(4-51)2122()()oldloldyEcnst计算(4-51)的一阶和二阶导数(4-52)21222()oldloldy(4-53)2()W我们知道 。0在 的情况下, 有极小值。令 ,可得到收敛的 迭代公式()202, (4-54)()122122oldloldoldloldnew EyEy由于 必须满足 且 的约束条件,以下我们分别讨论 和2C2021s 1s时 的修正公式。1s21o.当 时 , 即 21y21图 3-1a 图 3-1b C,21
21、C,21当 时, ;C minax当 时, ,0,22即 ),i(),0a(CHL2o.当 时 , 即 21ys21图 3-2a 图 3-2b 0,21 0,21当 时,0minax2C当 时,2,即 ),i(),ma(HL综上所述, 的取值范围为 ,2L(4-55)1(2,0max(12Cs(4-56)1(2,min(12CsCH其中 。21ys的无条件极值确定后,再考虑上下限的限制,最终的 的递推迭代公式为: 2(4-57)LHnewneeclipednw22,2, 当, 当, 当其中 )(122oldloldnewEy当 时, 不能由(4-54)式求得,这时我们可以分别计算目标函数 在线
22、02 ()W段两个端点上的取值,然后将 Lagrange 乘子修正到目标函数较小的端点上。当两个端点上取得相同的目标函数值时,目标函数在整条线段上的取值都会是一样的,这时不必对作出修正。21,综上所述,计算 的步骤为:21,(1) ;12k(2)若 ,则0LHnewneeclipednw22,2, 当, 当, 当其中 ,然后计算 ;)(12oldloldnewEy 2121)(yoldnewoldnew(3)若 ,则此时 ,分别对应 或0212()()oldlWcst21sy情况的两个端点计算 ,取使 最小的那个端点作 ,再121sy()Wnew2由 求得 。212)(yoldnewoldne
23、wnew1(二)选择两个训练点进入工作集 BPlatt 提出的原始 SMO 算法的 选择由两重循环完成:21,外层循环遍历非边界样本或所有样本:优先选择遍历非边界样本,因为非边界样本更有可能需要调整,而边界样本常常不能得到进一步调整而留在边界上。循环遍历非边界样本并选出它们当中违反 KKT 条件的样本进行调整,直到非边界样本全部满足 KKT 条件为止。当某一次遍历发现没有非边界样本得到调整时,就遍历所有样本,以检验是否整个集合也都满足 KKT 条件。如果在整个集合的检验中又有样本被进一步优化,就有必要再遍历非边界样本。这样,外层循环不停地在“遍历所有样本”和“遍历非边界样本”之间切换,直到整个
24、训练集都满足 KKT 条件为止。内层循环针对违反 KKT 条件的样本选择另一个样本与它配对优化工作(指优化它们的Lagrange 乘子) ,选择的依据是尽量使这样一对样本能取得最大优化步长。对其中一个Lagrange 乘子 来说优化步长为 ,但由于核函数估算耗时较大,只用2/)(12E来大致估计有可能取得的步长太小。也就是说,选出使得 最大的样本作12E 12E为第二个样本。需要注意的是,这样的步长估计是比较粗略的,选择出来的一对样本有时可能使目标函数不能作出进一步调整。这时就要遍历所有非边界样本(非边界样本就是Lagrange 乘子不在边界 0 或 C 上的样本) ,继续寻找能与 配对优化的
25、 ,如果这样的样21本在非边界样本中找不到,再遍历所有样本。这两次遍历都是从随机位置开始的,以免算法总是在一开始遍历就向固定的方向偏差。在极端退化的情形,找不到与 配对能作出进2一步调整的 ,这时就放弃第一个样本。1以上用 KKT 条件对样本所作检验都是达到一定精度就可以了,例如不等式的约束可以在 1 的一定允许误差范围之内,通常这一允许误差(tolerance)取 0.001,如果要求十分精确的输出算法就不能很快收敛。(三)样本误差和超平面参数 的更新b每做完一次最小优化,必须更新每个样本的误差(Error Cache) ,以便用修正过的分类面对其它样本再做 KKT 检验,以及选择第二个配对
26、优化样本时估计步长之用。更新Error Cache 首先要重置阈值 。Platt 直接利用刚刚被优化的两个样本的信息在原阈值b基础上作简单修正,而不是调用所有支持向量重新计算。oldb由 和 可知:1(,)lnewnenewjiijjEyKyx1(,)loldoldoldjiijjEyKbyx优化后的 如果不在边界上(由 KKT 条件可知 ) ,则 的计算公式为:new1 10newb(4-58)11121(,)(,)old oldbEyKybxx优化后的 如果不在边界上(由 KKT 条件可知 ) ,则 的计算公式为:new20newE(4-59)21222(,)(,)old oldyyK当
27、都不在边界上时,两者计算所得的 值相同。21, b如果 都取值为 0 或 C,即两个 Lagrange 乘子都在边界上时, 和 以及它们 1b2之间的数都可作为符合 KKT 条件的阈值。这时 SMO 算法选择最安全的 和 的中点作为阈值。(4-60)21b至于样本的误差,其修正公式为:(4-61),1122()(,()(,)newoldnewoldnewclipdol newoldjj j jEyKyKbxx4.6 Keerthi 的 SMO 改进算法Platt 的 SMO 算法,每次修改 都涉及 值。为了进一步提高 SMO 的性能,KeerthiiEb等人提出了一种不考虑 值的 KKT 条件
28、判别方法,并给出了一种选择最大冲突对的计算公b式11。设(4-62)1(,)lijijijFyKyx则: 21 1(,)(,)l lijijijijij jyKbyby xx(4-63)1(,)()lijijiijyyF则 KKT 条件可写为(4-64)0()0iiyb(4-65)iiCF(4-66)()0iiCyFb引入记号:,即此时iIi0: i,即此时011iiy, 且 iFb,即此时CIii, 且:2 i,即此时yii, 且3 i,即此时01:4iiI, 且 iFb(4-64)-(4-66)就可以写成(4-67)012iiIb(4-68)34iF注意到:, ,我们有 (当 KKT 条件
29、满足时) 。210IIi430IIjijb设(4-69)012max:lowibFI(4-70)34nupj当 KKT 条件满足时,就有(4-71)uplowb这样我们就可以通过直接计算 ,而不是每次先更新 b 值再来判断所得解是否满足uploKKT 条件了。在 Keerthi 的改进算法中,选进工作集 中的样本下标如下:Bargmx(|1,|1,0)ttttttiyFCyF(4-72)ar(|1,0)tttttarin(|,|,)ttttttjyy(4-73)g|110tttttFC按照上述公式所选的样本 和 是与 KKT 条件发生最大冲突的两个样本。ij其算法终止条件为:(4-74)2up
30、lowb其中 是一个预先设定的大于 0 的小数,其目的是控制算法的精度。算法终止后,超平面参数 为:b(4-75)()/2uplowb4.7 改进的 SMO 算法的收敛性对于改进的 SMO 算法的收敛性证明,Lin12和 Keerthi13做了很好的工作。在这一节中,我们将详细介绍 Lin 的工作。假设 是当前解,违背(4-71)约束的工作集是 ,那么子问题的最小值在取k,jiB值范围 内的线段 上取得。由,0,CS kNTjiyy,我们可定义kNTjiyy, , (4-76)ikiitt)( jkjjytt)( ji,s tkss,)(则子问题的目标函数为:(4-77)min (t)(t)W
31、s. t. . (4-78)Stji)(,(设 是这个问题的解,且 。从(4-76)可以得到t )1tk(4-79)1|2kt因为 是 的二次函数,由 Taylor 公式可得:(t) (4-80)2)0()(0tt(t) 因为(4-81)111()()()(,)(,)l l lsijsisisjsjtyFttyKtyKxx(4-82) t,2,ijij则有(4-83)(0)()kkijF(4-84)2 (0),2,|()|ijijijKKxxx定理 4.1:如果 SMO 的工作集是根据(4-72)和(4-73)选择的,那么对于任意的正整数 k,必然存在 ,使得下式成立:(4-85)|2)()(
32、11 kkkff 证明:我们考虑下面两种情况:1) 0(t) 设 是无约束情况下 取最小值所对应的变量值,由方程(4-80)可得 。*t )0(*t很显然, (由二次函数的对称性可以得到) ,其中 。由方程(4-79)和(4-*t 1080),可得(4-86)212222 |4)()(0)(0)()0( ktt 2) t由(4-84)可知 。对于分解算法,当 在工作集中时,()ijxji,,由 可知 。从而 ,()()kkijF0()()kkijjiFy0)(ijy。因为 意味着 是线性函数,利用 ,2|0|t ( t)(t,我们有Ct|(4-87)Cttt k212 |)0(|)( 注意到
33、, 。如果取(0)kW1kt(4-88) 02:2min,2i ijjijjij kkC则不等式(4-85)成立。4.8 解回归问题的 SMO 算法4.8.1. Shevade 算法Keerthi 继提出解分类问题的 SMO 算法之后,又把其思想推广到解回归问题14。在第三章的讨论中,我们得到了非线性回归问题的对偶问题(4-89),1 11min()(,)()()2l l liijjijiiiiij iKy xs.t.(4-90)1()0liii(4-91)0, 2,iCl(4-92)i其拉格朗日函数为 1 11()(,)()()2l l liijjijiiiiij iLKy x(4-93)1
34、1111()()()l lll liiiiiiiii C设(4-94)1()(,liijjijjFyKx则对偶问题的 KKT 条件为(4-95)1()(,) 0ljjijiiiijiLKyFx(4-96)1()(,)ljjijiiiiji (4-97)0, , 0, 12,iii l(4-98)iii(4-99)(), , , ,iiiiCCl(4-100)012iiii在第三章的第五节中,我们已经证明: 。则由 KKT 条件(4-95)- (,)i l(4-100)可知(1) 当 时0ii(4-101)iF(2) 当 时iC(4-102)i(3) 当 时i(4-103)iF(4) 当 时(0
35、,)iC(4-104)i(5) 当 时(,)i(4-105)iF假设 的定义为0123,I(4-106)0| 0i iIC或(4-107)1|ii(4-108)2| iiI或(4-109)3|0iiC同时定义 和 如下:iFi(4-110)12, |0i iiFCIi(4-111)13, |0i ii I则下述关系式成立(4-112)012, iFI(4-113)3i设(4-114)012max| lowibFI(4-115)3n|upi则 KKT 条件可以表示为:(4-116)lowupb和处理分类问题的思想一样,Keerthi 等人选择 进入工作集 ,其中(,)ijB(4-117)012a
36、rgmx| iiFI(4-118)3n|ij最终的超平面参数 用下列公式计算b(4-119)2uplowb4.8.2. Flake 算法基于 Platt 的 SMO 算法,Flake 和 Lawrence 提出了解回归问题的分解算法15。下面,我们从两个变量的解析求解和超平面参数的更新两个方面介绍他们的工作。(一)两个变量的解析求解我们知道回归问题的输出形式为(4-120)1(,)()(,ljjjjfbKbxx假设 为对偶问题的目标函数,令 ,则由(,)Wiii(4-121)22222() ()iiiiiiiiii知(4-122)iii从而有(4-123)1(,)(,)lifbkbxx(4-1
37、24)111()2l llijiiijWy(4-125)10li设工作集 中的两个样本下标为 和 ,则可表示为Bij(4-126)221(,) oldlijijijijijijcWkkzyW其中 是与 和 无关的常数。cij(4-127), , loldoldoldloldoldkiksikjksjzfbij(4-128)(,), ,oldoldlkkf ijx设 ,则*oldlijijs22*11()()()oldljjijjijjijWksksz(4-129)*jjjijcsyW由 可得*gn()j jds jijjoldjliijjijj yszksksdW )sgn()gn()2()(
38、) * (4-130)令 ,则有()0jd(2)jijijkoldjliijijjij zksy )()sgn()s(* oldijoldioldliijioldjlijjij bkf( )oldloldoldjijjfkb(4-131)2(sgn()s(* ijjioldjljoldijjij kfy 由(4-131)得(4-132)sgn()s(1*oldjlijjijoldjj fy其中(4-133)2ijijk方程(4-132)是一个关于变量 的隐式方程,可采用下列步骤求 和 :jij(1)令 , ,这里 是迭代次数。0jjold0kk(2)计算 。1()koldoldljjjijyf
39、(3)如果 ,那么 。1*1()0kkjjsA112sgn()kkjj j(4)如果 ,转步骤 5;否则 , ,转步骤 2。1kjj1oldkjj(5)计算 , 。*max(,)LsC*min(,)HCs(6) , 。1inewkj jLewnewij(二)超平面参数的更新由于回归问题的 KKT 条件为(1)当 时0i(4-134)iyf(2)当 时iC(4-135)iyf(3)当 时i(4-136)iyf当 时,我们有0 iC(4-137)()()newoldl oldoldiiiijjibyfkkb当 时,我们有 j(4-138)()()newoldl oldoldjjjiijjjyfkk
40、如果 和 都取值为 0 或 则ij C(4-139)2newijb由方程(4-123),我们可以得到决策函数值 和 的更新公式如下:ifj(4-140)()()newoldnewoldnewoldnewoldiiiiijjijf kkb(4-141)l l l ljjiiijjjj4.9 扩展的拉格朗日支持向量机4.9.1 拉格朗日支持向量机为了更清楚的描述问题,我们引进一些新的记号。 表示 空间中的向量,它的负xnR数分量被置为零。 代表一个 的实数矩阵, 和 分别表示 矩阵的第 ilnRAliAjA行和第 j 列。定义 阶对角矩阵 ,根据每个样本点的类别,规定 矩阵对角线上元素lDD为 +
41、1 还是 1。 表示所有分量均为 1 的向量。 为单位矩阵。ideI由于原始支持向量机不是严格凸二次规划,Mangasarian 通过在目标函数中增加 ,21b把它转化成一个严格凸二次规划16。(4-142)211min2TTCbws.t.(4-143)()DAe上述优化问题的 Lagrange 函数为(4-144)211(,) ()2TTLbbbwe分别对 求偏导,并分别令其为零,得到(,)Lbw,b(4-145),TTbCwADeD将(4-145)带入式(4-144),可得下述对偶问题(4-146)120Rmin()lI 设 C -,TIHeQH则对偶问题(4-146)就变成:(4-147
42、)120Rin lT设 ,则优化问题(4-147)的 KKT 条件为:Qe(4-148) (0,)从而(4-149)Qe上述问题可以用下述迭代公式求解。, (4-150)1()i ii ,1对于该迭代公式,可以证明,只要 满足条件 (4-151)C20从任意初始点开始逐步迭代,都可以线性收敛至 (4-147)的全局最优解。通常我们可以取。C9.1应用 SMW 等式,Mangasarian 用下式求 1Q(4-152)1 1()()TTCC I IHH这样就把一个求 矩阵的逆的问题转化成了求 矩阵逆的问题。我们知道,l()n对应的是样本数,它往往是成千上万的,而 则是样本的属性数,它往往只有几十
43、个。l可见利用 SMW 等式,求逆的难度大大下降了。它不仅使得 的求解变得可行,而且快速1地对其求解,从而使得 LSVM 算法在处理线性分类问题时达到一个非常快的速度。对于非线性分类问题,由于(4-153)C( ),TIAQDKeD所以公式(4-152)不能用,只能直接求解 ,这就导致在这种情况下,它只能处理中小型1样本,而不能处理大样本数据的训练问题。4.9.2 扩展的拉格朗日支持向量机为了让 LSVM 机能够解大规模的非线性分类问题,我们提出了扩展的拉格朗日支持向量机算法(Extended Lagrangian Support Vector Machine, ELSVM)17。其基本想法是
44、:当处理大规模的非线性分类问题时,我们首先对问题进行分解,用 SVMLight算法寻找进入工作集 的样本,然后用 LSVM 求解规模较小的子二次规划问题。这样以来,我们一方面可B以扩大工作集 的规模,另一方面可以充分利用 LSVM 机快速求解中小规模问题的优势。下面,我们先给出 ELSVM 的优化公式,然后给出详细的算法。对于线性分类问题,ELSVM 所要优化的问题为:(4-154)120Rmin()lTTTCIDAe根据分解算法,将变量分解成两部分 B 和 N,于是上式可变为120Rmin()lTTTCIDAe12 T TDe111 1222 2TTNBTT TTBBNBNNC ADA(4-155)12TNNB Deeee因为集合 N 是固定集合,在一次迭代中,N 中的变量值不发生变化,因此,项的值可以视为11 122 2TTTTTTNNC AD常数,于是式(4-155)可简化为B1112220min (TBqTTTTTBBBBBReDeAD(4-156)Ne令(4-157)BBBC -, TBIHDAeQH子问题可改写成(4-158)B120min qTTBRE其中(4-1