SMO原理原理未完待续..

1.SMO概念
上一篇博客已经详细介绍了SVM原理(http://blog.csdn.net/luoshixian099/article/details/51073885),
为了方便求解,把原始最优化问题转化成了其对偶问题,因为对偶问题是一个凸二次规划问题,这样的凸二次规划问题具有全局最优解,如下:

min α Ψ ( α ) = min α 1 2 i = 1 N j = 1 N y i y j K ( x i , x j ) α i α j i = 1 N α i \min_{\overrightarrow{\alpha}}\Psi(\overrightarrow{\alpha})\\ =\min_{\overrightarrow{\alpha}}\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^Ny_i·y_j·K(\overrightarrow{x_i},\overrightarrow{x_j})·\alpha_i·\alpha_j-\sum_{i=1}^{N}\alpha_i
0 α i C , i , 0≤\alpha_i≤C,\forall i,
i = 0 N y i α i = 0 \sum_{i=0}^N y_i·\alpha_i=0
其中 K ( x i , x j ) K(\overrightarrow{x_i},\overrightarrow{x_j}) 表示向量内积

其中:
( x i x_i , y i y_i ):训练样本数据,
x i x_i :样本特征
y i { 1 , 1 } y_i\in\{-1,1\} :为样本标签
C C :惩罚系数

上述问题是要求解N个参数 ( α 1 , α 2 , α 3 , . . . , α N ) (\alpha_1,\alpha_2,\alpha_3,...,\alpha_N)
,其他参数均为已知,有多种算法可以对上述问题求解,但是算法复杂度均很大。
但1998年,由Platt提出的序列最小最优化算法(SMO)可以高效的求解上述SVM问题,它把原始求解N个参数二次规划问题分解成很多个子二次规划问题分别求解,每个子问题只需要求解2个参数,方法类似于坐标上升,节省时间成本和降低了内存需求。每次启发式选择两个变量进行优化,不断循环,直到达到函数最优值。

2.SMO原理分析
2.1视为一个二元函数
为了求解N个参数 ( α 1 , α 2 , α 3 , . . . , α N ) (\alpha_1,\alpha_2,\alpha_3,...,\alpha_N) ,首先想到的是坐标上升的思路,例如求解α1,可以固定其他N-1个参数,可以看成关于 α 1 \alpha_1 的一元函数求解,但是注意到上述问题的等式约束条件 i = 1 N y i α i = 0 \sum_{i=1}^{N}y_i\alpha_i=0 ,当固定其他参数时,参数 α 1 \alpha_1 也被固定,因此此种方法不可用。

SMO算法选择同时优化两个参数,
固定其他N-2个参数,假设选择的变量为 α 1 , α 2 \alpha_1,\alpha_2 的二元函数,

C o n s t a n t Constant 表示常数项,(不包含变量 α 1 \alpha_1 , α 2 \alpha_2 的项)。
m i n Ψ ( α 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 v 1 α 1 + y 2 v 2 α 2 + C o n s t a n t ( 1 ) minΨ(\alpha_1,\alpha_2)=\frac12K_{11}\alpha_1^{2}+\frac12K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2)+y_1v_1\alpha_1+y_2v_2\alpha_2+Constant\qquad \color{Red}{(1)}
其中 v i = j = 3 N α j y j K ( x i , x j ) , i = 1 , 2 v_i=\sum_{j=3}^N\alpha_jy_jK(x_i,x_j),i=1,2

2.2视为一元函数
3.由等式约束得:
α 1 y 1 + α 2 y 2 = i = 3 N α i y i = ζ \alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^N\alpha_iy_i=\zeta
可见 ζ \zeta 为定值。

等式 α 1 y 1 + α 2 y 2 = ζ \alpha_1y_1+\alpha_2y_2=\zeta 两边同时乘以 y 1 y_1 ,且 y 1 2 = 1 y_1^2=1 ,得
α 1 = ( ζ y 2 α 2 ) y 1 ( 2 ) \alpha_1=(\zeta-y_2\alpha_2)y_1 \qquad \color{Red}{(2)}

(2)式带回到(1)中得到只关于参数 α 2 {\alpha_2} 的一元函数,由于常数项不影响目标函数的解,以下省略掉常数项 C o n s t a n t Constant
m i n   Ψ ( α 2 ) = 1 2 K 11 ( ζ α 2 y 2 ) 2 + 1 2 K 22 α 2 2 + y 2 K 12 ( ζ α 2 y 2 ) α 2 ( ζ α 2 y 2 ) y 1 α 2 + v 1 ( ζ α 2 y 2 ) + y 2 v 2 α 2 ( 3 ) min\ Ψ(\alpha_2)=\frac12K_{11}(\zeta-\alpha_2y_2)^2+\frac12K_{22}\alpha_2^2+y_2K_{12}(\zeta-\alpha_2y_2)\alpha_2-(\zeta-\alpha_2y_2)y_1-\alpha_2+v_1(\zeta-\alpha_2y_2)+y_2v_2\alpha_2 \qquad\color{Red}{(3)}

2.3对一元函数求极值点
上式中是关于变量α2的函数,对上式求导并令其为0得:
Ψ ( α 2 ) α 2 = ( K 11 + K 22 2 K 12 ) α 2 K 11 ζ y 2 + K 12 ζ y 2 + y 1 y 2 1 v 1 y 2 + v 2 y 2 = 0 \frac{\partial \Psi (\alpha_2)}{\partial \alpha_2}=(K_{11}+K_{22}-2K_{12})\alpha_2-K_{11}\zeta y_2+K_{12}\zeta y_2+y_1y_2-1-v_1y_2+v_2y_2=0
1.由上式中假设求得了 α 2 {\alpha_2} 的解,带回到(2)式中可求得 α 1 {\alpha_1} 的解,分别记为:
α 1 n e w , α 2 n e w \alpha_1^{new},\alpha_2^{new}
优化前的解记为:
α 1 o l d , α 2 o l d \alpha_1^{old},\alpha_2^{old} ,
由于参数 α 3 , α 4 , . . . , α N \alpha_3,\alpha_4,...,\alpha_N 固定,由等式约束
i = 1 N y i α i = 0 \sum_{i=1}^{N}y_i\alpha_i=0 有:
α 1 o l d y 1 + α 2 o l d y 2 = i = 3 N α i y i = α 1 n e w y 1 + α 2 n e w y 2 = ζ \alpha_1^{old}y_1+\alpha_2^{old}y_2\\ =-\sum_{i=3}^N\alpha_iy_i\\ =\alpha_1^{new}y_1+\alpha_2^{new}y_2\\ =\zeta
ζ = α 1 o l d y 1 + α 2 o l d y 2 ( 4 ) \zeta=\alpha_1^{old}y_1+\alpha_2^{old}y_2 \qquad \color{Red}{(4)}

2.假设SVM超平面的模型为 f ( x ) = w T x + b f(x)=w^Tx+b ,
3.上一篇中已推导出 w w 的表达式,将其带入得
f ( x ) = i = 1 N α i y i K ( x i , x ) + b f(x)=\sum_{i=1}^N\alpha_iy_iK(x_i,x)+b
f ( x i ) f(x_i) :表示样本 x i x_i 的预测值
y i y_i 表示样本 x i x_i 的真实值,定义 E i E_i 表示预测值与真实值之差为
E i = f ( x i ) y i ( 5 ) E_i=f(x_i)-y_i \qquad \color{Red}{(5)}

3.由于 v i = j = 3 N α j y j K ( x i , x j ) , i = 1 , 2 v_i=\sum_{j=3}^N\alpha_jy_jK(x_i,x_j),i=1,2 因此,
v 1 = f ( x 1 ) j = 1 2 y j α j K 1 j b ( 6 ) v_1=f(x_1)-\sum_{j=1}^2y_j\alpha_jK_{1j}-b\qquad \color{Red}{(6)}

v 2 = f ( x 2 ) j = 1 2 y j α j K 2 j b ( 7 ) v_2=f(x_2)-\sum_{j=1}^2y_j\alpha_jK_{2j}-b\qquad \color{Red}{(7)}

把(4)(6)(7)带入下式中:
( K 11 + K 22 2 K 12 ) α 2 K 11 ζ y 2 + K 12 ζ y 2 + y 1 y 2 1 v 1 y 2 + v 2 y 2 = 0 (K_{11}+K_{22}-2K_{12})\alpha_2-K_{11}\zeta y_2+K_{12}\zeta y_2+y_1y_2-1-v_1y_2+v_2y_2=0

化简得: 此时求解出的 α 2 n e w \alpha_2^{new} 未考虑约束问题,先记为 α 2 n e w , u n c l i p p e d \alpha_2^{new,unclipped} :

( K 11 + K 22 2 K 12 ) α 2 n e w , u n c l i p p e d = ( K 11 + K 22 2 K 12 ) α 2 o l d + y 2 [ y 2 y 1 + f ( x 1 ) f ( x 2 ) ] (K_{11}+K_{22}-2K_{12})\alpha_2^{new,unclipped}=(K_{11}+K_{22}-2K_{12})\alpha_2^{old}+y_2\left[y_2-y_1+f(x_1)-f(x_2)\right]

代入(5)式,并记 η = K 11 + K 22 2 K 12 \eta=K_{11}+K_{22}-2K_{12} :
α 2 n e w , u n c l i p p e d = α 2 o l d + y 2 ( E 1 E 2 ) η ( 8 ) \alpha_2^{new,unclipped}=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta} \qquad \color{Red}{(8)}

2.4对原始解修剪
上述求出的解未考虑到约束条件:
0 α i = 1 , 2 C 0\leq\alpha_{i=1,2}\leq C
α 1 y 1 + α 2 y 2 = ζ \alpha_1·y_1+\alpha_2·y_2=\zeta

在二维平面上直观表达上述两个约束条件 :

在这里插入图片描述
最优解必须要在方框内且在直线上取得,因此
L α 2 n e w H L\leq\alpha_2^{new} \leq H
y 1 y 2 y_1\neq y_2 时,
L = m a x ( 0 , α 2 o l d α 1 o l d ) ; L=max(0,\alpha_2^{old}-\alpha_1^{old});
H = m i n ( C , C + α 2 o l d α 1 o l d ) H=min(C,C+\alpha_2^{old}-\alpha_1^{old})

y 1 = y 2 y_1= y_2 时,
L = m a x ( 0 , α 1 o l d + α 2 o l d C ) ; L=max(0,\alpha_1^{old}+\alpha_2^{old}-C);
H = m i n ( C , α 2 o l d + α 1 o l d ) H=min(C,\alpha_2^{old}+\alpha_1^{old})

经过上述约束的修剪,最优解就可以记为 α 2 n e w \alpha_2^{new} 了.

α 2 n e w = {  H , α 2 n e w , u n c l i p p e d > H α 2 n e w , u n c l i p p e d , L α 2 n e w , u n c l i p p e d H  L , α 2 n e w , u n c l i p p e d < L \alpha_2^{new}=\begin{cases} & \text{ H ,} \alpha_2^{new,unclipped}>H \\ \\& \alpha_2^{new,unclipped}, L\leqslant \alpha_2^{new,unclipped}\leqslant H\\ \\ & \text{ L ,} \alpha_2^{new,unclipped}<L \end{cases}

经过上述约束的修剪,最优解就可以记为 α 2 n e w \alpha_2^{new} 了.

α 2 n e w = {  H , α 2 n e w , u n c l i p p e d > H α 2 n e w , u n c l i p p e d , L α 2 n e w , u n c l i p p e d H  L , α 2 n e w , u n c l i p p e d < L \alpha_2^{new}=\begin{cases} & \text{ H ,} \alpha_2^{new,unclipped}>H \\ \\& \alpha_2^{new,unclipped}, L\leqslant \alpha_2^{new,unclipped}\leqslant H\\ \\ & \text{ L ,} \alpha_2^{new,unclipped}<L \end{cases}

相关文章
相关标签/搜索