支持向量机器—SMO算法

引入SMO的背景

前面的文章提到,SVM的学习问题可以转成下面的凸二次规划的对偶问题:
min ⁡ α      1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i s . t .    ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C \min\limits_{\alpha} \;\; \frac{1}{2}\sum\limits_{i=1}^{N}\sum\limits_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j) - \sum\limits_{i=1}^{N}\alpha_i\\ s.t. \; \sum\limits_{i=1}^{N}\alpha_iy_i = 0 \\ 0 \leq \alpha_i \leq C αmin21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαis.t.i=1Nαiyi=00αiC
上面的式子是关于 α i , i = 1 , 2 , . . . N \alpha_i, i=1,2,...N αi,i=1,2,...N的函数,由于一个 α i \alpha_i αi对应一个样本,所以变量的个数等于样本的个数。在样本众多的情况下,直接对所有的变量1求全局最优解,计算量太大。

为解决这个问,可以使用序列最小最优化(SMO)算法,基本思路为:如果所有变量的解都满足KKT条件,那么就得到了最优化的解(因为KKT条件是该问题最优化问题的充要条件)。如果不满足KKT条件,那么选择两个 α i , α j \alpha_i, \alpha_j αi,αj作为变量,其他的作为常量,然后对这两个变量进行优化,那么优化的结果应该更接近KKT条件。整个SMO算法包括两个部分:

  1. 求两个变量的解析解
  2. 选择变量的启发式方法

两个变量二次规划求解方法

先假设我们已经按照某种方法选择了两个变量 α 1 , α 2 \alpha_1,\alpha_2 α1,α2 ,其他变量 α i ( i = 3 , 4 … , N ) \alpha_i(i=3,4\ldots,N) αi(i=3,4,N) 可以视为常量,在优化函数中可以舍去。于是优化函数可以写成:
min ⁡ α 1 , α 2 W ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 α 1 ∑ i = 3 N y i α i K i l + y 2 α 2 ∑ i = 3 N y i α i K i 2 s . t .     α 1 y 1 + α 2 y 2 = − ∑ i = 3 N y i α i = ς 0 ⩽ α i ⩽ C , i = 1 , 2 \begin{aligned} \min_{\alpha_1,\alpha_2} W(\alpha_1,\alpha_2)=&\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2\\ &-(\alpha_1+\alpha_2)+y_1\alpha_1\sum_{i=3}^Ny_i\alpha_iK_{il}+y_2\alpha_2\sum_{i=3}^Ny_i\alpha_iK_{i2}\\ s.t. \ \ \ &\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^Ny_i\alpha_i=\varsigma\\ &0\leqslant\alpha_i\leqslant C, i=1,2 \end{aligned} α1,α2minW(α1,α2)=s.t.   21K11α12+21K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3NyiαiKil+y2α2i=3NyiαiKi2α1y1+α2y2=i=3Nyiαi=ς0αiC,i=1,2
式子中 K i j = K ( x i , x j ) , ς K_{ij}=K(x_i,x_j),\varsigma Kij=K(xi,xj),ς 是常数。约束条件为一个不等式约束和一个等式约束。

根据约束条件: α 1 y 1 + α 2 y 2 = ς = k , 0 ⩽ α i ⩽ C \alpha_1y_1+\alpha_2y_2=\varsigma=k,0\leqslant\alpha_i\leqslant C α1y1+α2y2=ς=k0αiC,其中 y i ∈ { − 1 , 1 } y_i \in \{-1, 1\} yi{ 1,1},可以知道 ( α 1 , α 2 ) (\alpha_1,\alpha_2) (α1,α2) 在平行于盒子 [ 0 , C ] × [ 0 , C ] [0,C]\times [0,C] [0,C]×[0,C] 的对角线的线段上。根据不同的 y 1 , y 2 y_1, y_2 y1,y2的取值,函数图像如下图所示:

在这里插入图片描述

假设原始问题的初始可行解为 α 1 o l d , α 2 o l d \alpha_1^{old},\alpha_2^{old} α1old,α2old,本次迭代的最优解为 α 1 n e w , α 2 n e w \alpha_1^{new},\alpha_2^{new} α1new,α2new,假设沿着约束方向 α 2 \alpha_2 α2未经剪辑(未考虑不等式约束)的解是 α 2 n e w , u n c \alpha_2^{new,unc} α2new,unc

由于约束边界的存在,实际上有:
L ≤ α 2 n e w ≤ H L \leq \alpha_2^{new} \leq H Lα2newH
其中,L为线段下端点,H为上端点,具体的:

y 1 ≠ y 2 y_1 \neq y_2 y1=y2 时,如上图(a),则:
L = m a x ( 0 , α 2 o l d − α 1 o l d )        H = m i n ( C , C + α 2 o l d − α 1 o l d ) L = max(0, \alpha_2^{old}-\alpha_1^{old}) \;\;\;H = min(C, C+\alpha_2^{old}-\alpha_1^{old}) L=max(0,α2oldα1old)H=min(C,C+α2oldα1old)
y 1 = y 2 y_1 = y_2 y1=y2 时,如上图(b),则:
L = m a x ( 0 , α 2 o l d + α 1 o l d − C )        H = m i n ( C , α 2 o l d + α 1 o l d ) L = max(0, \alpha_2^{old}+\alpha_1^{old}-C) \;\;\; H = min(C, \alpha_2^{old}+\alpha_1^{old}) L=max(0,α2old+α

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值