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}

相關文章
相關標籤/搜索