07_支持向量機3_統計學習方法


支持向量機內容特別多,爲了方便閱讀,分成三個部分,上接:
07_支持向量機1_統計學習方法
07_支持向量機2_統計學習方法

五、SMO算法

KKT條件中的(k4)(k5)還沒有使用過,這兩個條件主要就是用來求解參數α,μ\alpha , \mu的。但是對於樣本數量和特徵比較多的時候,這麼硬幹是非常耗費內存和時間的。所以在求解參數α\alpha時,大牛們使用了更有效的方法——SMO算法(序列最小最優算法),如果沒理解錯的話就是化整爲零,分而治之的思想。

SMO算法是一種啓發式算法,其基本思路是:如果所有變量的解都滿足此最優化問題的KKT條件,那麼這個最優化問題的解就得到了。因爲KKT條件是該最優化問題的充分必要條件。SMO思路,選擇兩個變量,固定其他變量,針對這兩個變量構建一個二次規劃問題,這個二次規劃問題關於這兩個變量的解應該更接近原始二次規劃問題的解,因爲這會使得原始二次規劃問題的目標函數值變得更小。重要的是,這時子問題可以通過解析方法求解,這樣就可以大大提高整個算法的計算速度。子問題有兩個變量,一個是違反KKT條件最嚴重的那一個,另一個由約束條件自動確定。如此,SMO算法將原問題不斷分解爲子問題並對子問題求解,進而達到求解原問題的目的。

非線性支持向量機的優化問題
minα  12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαis.t.  i=1Nαiyi=00αiC,  i=1,2, ,N \begin{aligned} \min_{\alpha}\space\space & \dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j K({\bf x_i} , {\bf x_j}) - \sum_{i=1}^N \alpha_i \\ s.t. \space\space & \sum_{i=1}^N \alpha_i y_i = 0 \\ & 0 \leq \alpha_i \leq C ,\space\space i=1,2,\cdots ,N \end{aligned}

1、兩個變量二次規劃的求解方法

(1)定義子問題

假設選擇的兩個變量是α1,α2\alpha_1,\alpha_2,其他變量αi(i=3,4, ,N)\alpha_i(i=3,4,\cdots , N)是固定的。於是上面非線性支持向量機的優化問題的SMO子問題可以寫成:
minα1,α2  W(α1,α2)=12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi=12i=1N(j=12αiαjyiyjK(xi,xj)+j=3NαiαjyiyjK(xi,xj))(α1+α2)i=3Nαi=12i=12(j=12αiαjyiyjK(xi,xj)+j=3NαiαjyiyjK(xi,xj))+12i=3N(j=12αiαjyiyjK(xi,xj)+j=3NαiαjyiyjK(xi,xj))(α1+α2)i=3Nαi=12i=12j=12αiαjyiyjK(xi,xj)+i=12j=3NαiαjyiyjK(xi,xj)+12i=3Nj=3NαiαjyiyjK(xi,xj)(α1+α2)i=3Nαi=12K11α12+12K22α22+y1y2K12α1α2+y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2(α1+α2)i=3Nαi+12i=3Nj=3NαiαjyiyjK(xi,xj) \begin{aligned} \min_{\alpha_1,\alpha_2}\space\space W(\alpha_1,\alpha_2) & = \dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j K({\bf x_i} , {\bf x_j}) - \sum_{i=1}^N \alpha_i \\ & = \dfrac{1}{2}\sum_{i=1}^N \left( \sum_{j=1}^2 \alpha_i \alpha_j y_i y_j K({\bf x_i} , {\bf x_j}) + \sum_{j=3}^N \alpha_i \alpha_j y_i y_j K({\bf x_i} , {\bf x_j}) \right) - (\alpha_1 + \alpha_2) - \sum_{i=3}^N \alpha_i \\ & = \dfrac{1}{2}\sum_{i=1}^2 \left( \sum_{j=1}^2 \alpha_i \alpha_j y_i y_j K({\bf x_i} , {\bf x_j}) + \sum_{j=3}^N \alpha_i \alpha_j y_i y_j K({\bf x_i} , {\bf x_j}) \right) \\ &+ \dfrac{1}{2}\sum_{i=3}^N \left( \sum_{j=1}^2 \alpha_i \alpha_j y_i y_j K({\bf x_i} , {\bf x_j}) + \sum_{j=3}^N \alpha_i \alpha_j y_i y_j K({\bf x_i} , {\bf x_j}) \right) - (\alpha_1 + \alpha_2) - \sum_{i=3}^N \alpha_i \\ & = \dfrac{1}{2}\sum_{i=1}^2 \sum_{j=1}^2 \alpha_i \alpha_j y_i y_j K({\bf x_i} , {\bf x_j}) + \sum_{i=1}^2 \sum_{j=3}^N \alpha_i \alpha_j y_i y_j K({\bf x_i} , {\bf x_j}) \\ &+ \dfrac{1}{2}\sum_{i=3}^N \sum_{j=3}^N \alpha_i \alpha_j y_i y_j K({\bf x_i} , {\bf x_j}) - (\alpha_1 + \alpha_2) - \sum_{i=3}^N \alpha_i \\ & = \dfrac{1}{2}K_{11} \alpha_1^2 + \dfrac{1}{2}K_{22} \alpha_2^2 + y_1 y_2 K_{12}\alpha_1 \alpha_2 + y_1 \alpha_1 \sum_{i=3}^N y_i \alpha_i K_{i1} + y_2 \alpha_2 \sum_{i=3}^N y_i \alpha_i K_{i2} \\ &- (\alpha_1 + \alpha_2) - \sum_{i=3}^N \alpha_i + \dfrac{1}{2}\sum_{i=3}^N \sum_{j=3}^N \alpha_i \alpha_j y_i y_j K({\bf x_i} , {\bf x_j}) \end{aligned}

上式最後兩項爲常數項,對於求解最優的α1,α2\alpha_1,\alpha_2毫無作用,捨去,則有SMO對於變量α,α2\alpha_,\alpha_2的子問題可以寫成:
minα1,α2  W(α1,α2)=12K11α12+12K22α22+y1y2K12α1α2+y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2(α1+α2)    (29)s.t.  α1y1+α2y2=i=3Nyiαi=ζ    (30)0α1C,i=1,2    (31) \begin{aligned} \min_{\alpha_1,\alpha_2}\space\space & W(\alpha_1,\alpha_2) = \dfrac{1}{2}K_{11} \alpha_1^2 + \dfrac{1}{2}K_{22} \alpha_2^2 + y_1 y_2 K_{12}\alpha_1 \alpha_2 + y_1 \alpha_1 \sum_{i=3}^N y_i \alpha_i K_{i1} + y_2 \alpha_2 \sum_{i=3}^N y_i \alpha_i K_{i2} - (\alpha_1 + \alpha_2) &\space\space\space\space(29)\\ s.t.\space\space & \alpha_1 y_1 + \alpha_2 y_2 = -\sum_{i=3}^N y_i \alpha_i = \zeta &\space\space\space\space(30)\\ & 0 \leq \alpha_1 \leq C ,i =1,2 &\space\space\space\space(31) \end{aligned}

  • Kij=K(xi,xj),i,j=1,2, ,NK_{ij} = K(x_i,x_j),i,j =1,2,\cdots,N
  • ζ\zeta是常數

(2)確定變量範圍

由於只有兩個變量(α1,α2)(\alpha_1,\alpha_2),約束可以用二維空間中的圖形表示,如下圖:

二變量優化問題圖示
  • 不等式約束(31)使得(α1,α2)(\alpha_1,\alpha_2)在盒子[0,C]×[0,C][0,C] \times [0,C]內;
  • 等式約束(30)使得(α1,α2)(\alpha_1,\alpha_2)在平行於盒子[0,C]×[0,C][0,C] \times [0,C]的對角線的直線上。

因此要求的是目標函數在一條平行於對角線的線段上的最優值。這使得兩個變量的最優化問題成爲實質上的單變量的最優化問題,不妨考慮爲變量α2\alpha_2的最優化問題。

假設問題(29)-(31)的初始可行解爲α1old,α2old\alpha_1^{old},\alpha_2^{old},最優解爲α1new,α2new\alpha_1^{new},\alpha_2^{new},並且假設在沿着約束方向未經剪輯時α2\alpha_2的最優解爲α2new,unc\alpha_2^{new,unc}α2\alpha_2剪輯後的解爲α2new\alpha_2^{new}
α2new\alpha_2^{new}必須滿足式(31),則α2new\alpha_2^{new}的取值範圍必須滿足:
Lα2newHL \leq \alpha_2^{new} \leq H

因爲有式(30),則有:
(32)α1oldy1+α2oldy2=i=3Nyiαi=α1newy1+α2newy2\alpha_1^{old} y_1 + \alpha_2^{old} y_2 = -\sum_{i=3}^N y_i \alpha_i = \alpha_1^{new} y_1 + \alpha_2^{new} y_2 \tag{32}

  • y1y2y_1與y_2異號時:
    α1oldy1y2+α2oldy22=α1newy1y2+α2newy22α2new=α2oldα1old+α1new\alpha_1^{old} y_1 y_2 + \alpha_2^{old} y_2^2 = \alpha_1^{new} y_1 y_2 + \alpha_2^{new} y_2^2 \Longrightarrow \alpha_2^{new} = \alpha_2^{old} - \alpha_1^{old} + \alpha_1^{new}
    又因爲:
    0α1C,  0α2C0 \leq \alpha_1 \leq C,\space\space 0 \leq \alpha_2 \leq C
    所以有:
    L=max(0,α2oldα1old),  H=min(C,C+α2oldα1old)L = \max(0,\alpha_2^{old} - \alpha_1^{old}),\space\space H = \min(C,C + \alpha_2^{old} - \alpha_1^{old})

  • y1y2y_1與y_2同號時:
    α1oldy1y2+α2oldy22=α1newy1y2+α2newy22α2new=α2old+α1oldα1new\alpha_1^{old} y_1 y_2 + \alpha_2^{old} y_2^2 = \alpha_1^{new} y_1 y_2 + \alpha_2^{new} y_2^2 \Longrightarrow \alpha_2^{new} = \alpha_2^{old} + \alpha_1^{old} - \alpha_1^{new}
    所以有:
    L=max(0,α2old+α1oldC),  H=min(C,α2old+α1old)L = \max(0,\alpha_2^{old} + \alpha_1^{old}- C),\space\space H = \min(C, \alpha_2^{old} + \alpha_1^{old})

(3)最優求解

爲了方便書寫,令:
g(x)=j=1NαjyjK(x,xj)+b    (w1)νi=j=3NαjyjK(xi,xj)=g(xi)j=12αjyjK(xi,xj)b    (w2)Ei=g(xi)yi=(j=1NαjyjK(xi,xj)+b)yi    (w3)η=K11+K222K12=ϕ(x1)ϕ(x2)2    (w4) \begin{aligned} & g(x) = \sum_{j=1}^N \alpha_j y_j K(x,x_j) + b &\space\space\space\space(w1)\\ & \nu_i = \sum_{j=3}^N \alpha_j y_j K(x_i,x_j) = g(x_i) - \sum_{j=1}^2 \alpha_j y_j K(x_i,x_j) - b &\space\space\space\space(w2)\\ & E_i = g(x_i) - y_i = \left(\sum_{j=1}^N \alpha_j y_j K(x_i,x_j) + b \right) - y_i &\space\space\space\space(w3)\\ & \eta = K_{11} + K_{22} - 2K_{12} = ||\phi(x_1) - \phi(x_2)||^2 &\space\space\space\space(w4) \end{aligned}

  • i=1,2i=1,2時,EiE_i爲函數g(x)g(x)對輸入xix_i的預測值與真實輸出yiy_i之差。
  • ϕ(x)\phi(x)是輸入空間到特徵空間的映射

則目標函數可以寫成:
(33)W(α1,α2)=12K11α12+12K22α22+y1y2K12α1α2+y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2(α1+α2)=12K11α12+12K22α22+y1y2K12α1α2+y1ν1α1+y2ν2α2(α1+α2) \begin{aligned} W(\alpha_1,\alpha_2) & = \dfrac{1}{2}K_{11} \alpha_1^2 + \dfrac{1}{2}K_{22} \alpha_2^2 + y_1 y_2 K_{12}\alpha_1 \alpha_2 + y_1 \alpha_1 \sum_{i=3}^N y_i \alpha_i K_{i1} + y_2 \alpha_2 \sum_{i=3}^N y_i \alpha_i K_{i2} - (\alpha_1 + \alpha_2) \\ & = \dfrac{1}{2}K_{11} \alpha_1^2 + \dfrac{1}{2}K_{22} \alpha_2^2 + y_1 y_2 K_{12}\alpha_1 \alpha_2 + y_1 \nu_1 \alpha_1 + y_2 \nu_2 \alpha_2 - (\alpha_1 + \alpha_2) \tag{33} \end{aligned}

α1y1=ζα2y2yi2=1\alpha_1 y_1 = \zeta - \alpha_2 y_2 及 y_i^2 =1,可將α1\alpha_1表示爲:
α1=(ζy2α2)y1\alpha_1 = (\zeta - y_2 \alpha_2) y_1
將上式α1\alpha_1代入目標函數(33)得到只含有α2\alpha_2的目標函數:
(34)W(α2)=12K11(ζα2y2)2+12K22α22+y2K12(ζα2y2)α2+ν1(ζα2y2)+y2ν2α2(ζy2α2)y1α2 W(\alpha_2) = \dfrac{1}{2}K_{11} (\zeta - \alpha_2 y_2)^2 + \dfrac{1}{2}K_{22} \alpha_2^2 + y_2 K_{12}(\zeta - \alpha_2 y_2) \alpha_2 + \nu_1 (\zeta - \alpha_2 y_2) + y_2 \nu_2 \alpha_2 - (\zeta - y_2 \alpha_2) y_1 - \alpha_2 \tag{34}
上式對α2\alpha_2求導得:
Wα2=K11α2K11ζy2+K22α2+K12ζy22K12α2ν1y2+y2ν2+y1y21\dfrac {\partial W}{\partial {\alpha_2}} = K_{11} \alpha_2 - K_{11}\zeta y_2 + K_{22} \alpha_2 + K_{12}\zeta y_2 - 2K_{12}\alpha_2 - \nu_1 y_2 + y_2 \nu_2 + y_1 y_2 -1
令其爲0,得到:
(K11+K222K12)α2=K11ζy2K12ζy2+ν1y2y2ν2y1y2+y22=y2[K11ζK12ζ+(g(x1)j=12αjyjK1jb)(g(x2)j=12αjyjK2jb)y1+y2] \begin{aligned} \left(K_{11} + K_{22} - 2K_{12}\right)\alpha_2 &= K_{11}\zeta y_2 - K_{12}\zeta y_2 + \nu_1 y_2 - y_2 \nu_2 - y_1 y_2 + y_2^2 \\ & = y_2[ K_{11}\zeta - K_{12}\zeta + \left( g(x_1) - \sum_{j=1}^2 \alpha_j y_j K_{1j} - b \right) - \left( g(x_2) - \sum_{j=1}^2 \alpha_j y_j K_{2j} - b \right) - y_1 + y_2 ] \end{aligned}

ζ=α1oldy1+α2oldy2\zeta = \alpha_1^{old} y_1 + \alpha_2^{old} y_2代入得到:
(K11+K222K12)α2new,unc=y2((K11+K222K12)α2oldy2+y2y1+g(x1)g(x2))=(K11+K222K12)α2old+y2(E1E2) \begin{aligned} \left(K_{11} + K_{22} - 2K_{12}\right)\alpha_2^{new,unc} &= y_2((K_{11} + K_{22} - 2K_{12})\alpha_2^{old} y_2 + y_2 - y_1 + g(x_1)-g(x_2)) \\ & = (K_{11} + K_{22} - 2K_{12})\alpha_2^{old} + y2(E_1 - E_2) \end{aligned}
η=K11+K222K12=ϕ(x1)ϕ(x2)2\eta = K_{11} + K_{22} - 2K_{12} = ||\phi(x_1) - \phi(x_2)||^2代入得到:
(35a)α2new,unc=α2old+y2(E1E2)η\alpha_2^{new,unc} = \alpha_2^{old} + \dfrac{y_2(E_1 - E_2)}{\eta} \tag{35a}

則得到剪輯後的α2\alpha_2的解爲:
(35)α2new={H,α2new,unc>Hα2new,unc,Lα2new,uncHL,α2new,unc<L \alpha_2^{new} = \begin{cases} H, & \alpha_2^{new,unc} > H \\[2ex] \alpha_2^{new,unc}, & L \leq \alpha_2^{new,unc} \leq H \tag{35}\\[2ex] L, & \alpha_2^{new,unc} < L \end{cases}

α2new\alpha_2^{new}和等式約束(32)求得α1new\alpha_1^{new}是:
α1new=α1old+y1y2(α2oldα2new)\alpha_1^{new} = \alpha_1^{old} + y_1 y_2 (\alpha_2^{old} - \alpha_2^{new} )

於是得到問題(29)-(31)的解(α1new,α2new)(\alpha_1^{new},\alpha_2^{new})

(4)計算閾值b和差值E

在每次完成兩個變量的優化後,都要重新計算閾值b和差值E。

閾值b更新

0<α1new<C0< \alpha_1^{new} < C時,由KKT條件(k3)(k6)(k8)可知:
i=1NαiyiKi1+b=y1\sum_{i=1}^N \alpha_i y_i K_{i1} + b = y_1
於是,
(36)b1new=y1i=3NαiyiKi1α1newy1K11α1newy1K11b_1^{new} = y_1 - \sum_{i=3}^N \alpha_i y_i K_{i1} - \alpha_1^{new} y_1 K_{11} - \alpha_1^{new} y_1 K_{11} \tag{36}
E1E_1的定義有
E1=i=3NαiyiKi1+α1oldy1K11+α2oldy2K21+boldy1E_1 = \sum_{i=3}^N \alpha_i y_i K_{i1} + \alpha_1^{old} y_1 K_{11} + \alpha_2^{old} y_2 K_{21} + b^{old} - y_1
則式(36)等號右側的前兩項可寫成:
y1i=3NαiyiKi1=E1+α1oldy1K11+α2oldy2K21+boldy_1 - \sum_{i=3}^N \alpha_i y_i K_{i1} = -E_1 + \alpha_1^{old} y_1 K_{11} + \alpha_2^{old} y_2 K_{21} + b^{old}
把上式代入式(36)可得:
(37)b1new=E1y1K11α1newα1old)y2K21α2newα2old)+boldb_1^{new} = -E_1 - y_1 K_{11}(\alpha_1^{new} - \alpha_1^{old}) - y_2 K_{21}(\alpha_2^{new} - \alpha_2^{old}) + b^{old} \tag{37}

同樣,如果0<α2new<C0< \alpha_2^{new} < C,那麼,
(38)b2new=E2y1K12α1newα1old)y2K22α2newα2old)+boldb_2^{new} = -E_2 - y_1 K_{12}(\alpha_1^{new} - \alpha_1^{old}) - y_2 K_{22}(\alpha_2^{new} - \alpha_2^{old}) + b^{old} \tag{38}

  • 如果α1new,α2new\alpha_1^{new},\alpha_2^{new}同時滿足0<αinew<C, i=1,20< \alpha_i^{new} < C,\space i=1,2,那麼b1new=b2newb_1^{new} = b_2^{new}
  • 如果α1new,α2new\alpha_1^{new},\alpha_2^{new}是0或者C,那麼b1new,b2newb_1^{new} , b_2^{new}以及他們之間的數都是符合KKT條件的閾值,這時選擇它們的中點作爲bnewb^{new}

綜上可得:
(39)bnew=b1new+b2new2b^{new} = \dfrac{b_1^{new} + b_2^{new}}{2} \tag{39}

差值EiE_i更新

在每次完成兩個變量的優化之後,還必須更新對應的EiE_i值,並將他們保存在列表中。EiE_i值的更新要用到bnewb^{new}值,以及所有支持向量對應的αj\alpha_j
(40)Einew=SyjαjK(xi,xj)+bnewyiE_i^{new} = \sum_S y_j \alpha_j K(x_i,x_j) + b^{new} - y_i \tag{40}

  • S是所有支持向量xjx_j的集合。非支持向量的E值爲0。

看了很多博客,其實統計學習方法裏面的過程已經很完整,對其中一些過程做了補充,別看在求解時用了很多計算公式,其實裏面沒有很深的知識,就是變換多。

2、變量的選擇方法

SMO算法在每個子問題中選擇兩個變量優化,其中至少一個變量是違反KKT條件的。

(1)第1個變量的選擇

SMO稱選擇第1個變量的過程爲外層循環。外層循環在訓練樣本中選取違反KKT條件最嚴重的樣本點,並將其對應的變量作爲第1個變量。具體的,檢驗訓練樣本點(xi,yi)(x_i,y_i)是否滿足KKT條件,即:
αi=0    yig(xi)10<αi<C    yig(xi)=1αi=C    yig(xi)1\begin{aligned} \alpha_i = 0 & \iff y_i g(x_i) \geq 1 \\ 0 < \alpha_i < C & \iff y_i g(x_i) = 1 \\ \alpha_i = C & \iff y_i g(x_i) \leq 1 \\ \end{aligned}

  • g(xi)=j=1NαjyjK(xi,xj)+bg(x_i) = \sum_{j=1}^N \alpha_j y_j K(x_i,x_j) + b

該檢驗是在精度ϵ\epsilon範圍內進行的,即在精度ϵ\epsilon範圍內的點不選用

  • 在檢驗過程中,外層循環首先遍歷所有滿足條件0<αi<C0 < \alpha_i < C的樣本點,即在間隔邊界上的支持向量點,檢驗它們是否滿足KKT條件。
  • 如果這些點都滿足KKT條件,那麼就遍歷整個訓練集,檢驗它們是否滿足KKT條件。

(2)第2個變量的選擇

SMO稱選擇第2個變量的過程爲內層循環。假設在外層循環中已經找到第1個變量α1\alpha_1,現在要在內層循環中找到第2個變量α2\alpha_2第2個變量選擇的標準是希望能使α2\alpha_2有足夠大的變化

由式(35a)(35)可知,α2new\alpha_2^{new}是依賴於E1E2|E_1 - E_2|的,爲了加快計算速度,一種簡單的做法是選擇α2\alpha_2,使其對應的E1E2|E_1 - E_2|最大。因爲α1\alpha_1已定,E1E_1也確定了。

  • 如果E1E_1是正的,那麼選擇最小的EiE_i作爲E2E_2
  • 如果E1E_1是負的,那麼選擇最大的EiE_i作爲E2E_2
  • 爲了節省計算時間,將所有EiE_i值保存在一個列表中。

在特殊情況下,如果內層循環通過以上方法選擇的α2\alpha_2不能使目標函數有足夠的下降,那麼採用以下啓發式規則繼續選擇α2\alpha_2

  • 遍歷在間隔邊界上的支持向量點,依次將其對應的變量作爲α2\alpha_2試用,直到目標函數有足夠的下降;
  • 若找不到合適的α2\alpha_2,那麼遍歷訓練數據集;
  • 若仍找不到合適的α2\alpha_2,則放棄第1個α1\alpha_1,再通過外層循環尋找另外的α1\alpha_1

3、SMO算法

輸入:訓練數據集T={(x1,y1),(x2,y2), ,(xN,yN)}T = \{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},其中,xiRn, yi{1,+1}, i=1,2, ,Nx_i \in {\bf R}^n,\space y_i \in \{-1,+1\},\space i =1,2,\cdots,N,精度ϵ\epsilon

輸出:近似解α^\hat{\alpha},由於給算法設置了一個精度ϵ\epsilon,所以最終求得是近似解。

(1)取初值α(0)=0\alpha^{(0)} = 0,令k=0k=0

(2)選取優化變量α1(k),α2(k)\alpha_1^{(k)},\alpha_2^{(k)},解析求解兩個變量的最優化問題(29)(31),求得最優解α1(k+1),α2(k+1)\alpha_1^{(k+1)},\alpha_2^{(k+1)},更新α\alphaα(k+1)\alpha^{(k+1)}

(3)若在精度ϵ\epsilon範圍內滿足停機條件:
i=1Nαiyi=0\sum_{i=1}^N \alpha_i y_i = 0
0αiC, i=1,2, ,N0 \leq \alpha_i \leq C,\space i=1,2,\cdots,N
yig(xi)={1,{xiαi=0}=1,{xi0<αi<C}1,{xiαi=C} y_i \cdot g(x_i) = \begin{cases} \geq 1, & \{x_i|\alpha_i = 0\} \\[2ex] = 1, & \{x_i|0 < \alpha_i < C \} \\[2ex] \leq 1, & \{x_i|\alpha_i = C\} \end{cases}

  • g(xi)=j=1NαjyjK(xi,xj)+bg(x_i) = \sum_{j=1}^N \alpha_j y_j K(x_i,x_j) + b

則轉(4);否則令k=k+1k = k+1,轉(2);

(4)取α^=α(k+1)\hat{\alpha} = \alpha^{(k+1)}

對於深入研究支持向量機之前,看了一眼書,這個算法佔的篇幅最大,公式最多,難度應該不一般。研究下來確實不一般,花費六天,每天至少5小時,最終下來感覺還算是比較瞭解了。其實支持向量機的模型和策略都很簡單,模型就是一個超平面,策略就是最大化分類間隔,解決的問題從線性可分到線性近似可分,再到非線性可分;然後就是算法,對最終最優化問題的求解,爲了求解快速、少佔內存,有大牛發明了SMO算法(序列最小最優算法)。

如果是想研究支持向量機可以按我上面的總結看下來絕對沒問題,大致內容和李航的統計學方法一致,我對中間涉及的一些數學知識做了一定補充,這也是我這篇博客與課本差別之一,對一些難以理解的地方詳細展開和知識補充。這篇總結涉及的知識點很多,若有不正確的地方還望指出,以免誤導他人。

之前的學習的幾個算法都是搞懂再來做總結,支持向量機知識點太多,一下全部搞懂挺難的,是知道一點就總結一點,遇到過不去的就停下來找博客,看別人的講解,就這樣把難點逐個擊破,然後整個算法也就總結完了。這也相當於應用了SMO算法的思想,化整爲零,逐個擊破,每一個算法都是智慧的結晶。

參考資料:

********************************************
未完待續

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章