ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

线性支持向量机

2021-07-06 20:02:40  阅读:137  来源: 互联网

标签:y2 yi 12 sum 支持 线性 alpha aligned 向量


1. 线性SVM模型

线性支持向量机的思想非常朴素:用一个超平面将两类数据分割开来。
在这里插入图片描述

如上图,这样的超平面有无数个,选择哪个超平面更好呢?从上图可以看出,平面①会将红色的两个数据分错,平面②则不会,这是因为平面②将两边的间隔分得更大。所以,我们应该选择将两边间隔分割得最大的超平面。

设超平面为 w T x + b = 0 w^Tx+b=0 wTx+b=0,类别标记 y i ∈ [ − 1 , 1 ] y_i\in[-1,1] yi​∈[−1,1]。现将超平面上下平移,直到有数据穿过为止,此时 w T x i + b = 1 或 w T x i + b = − 1 w^Tx_i+b=1或w^Tx_i+b=-1 wTxi​+b=1或wTxi​+b=−1。如下图:
在这里插入图片描述
被穿过的数据 x i x_i xi​称为支持向量,而某支持向量到超平面的距离的2倍称为间隔: m a r g i n = 2 ∣ ∣ w ∣ ∣ margin=\cfrac{2}{||w||} margin=∣∣w∣∣2​,要最大化间隔可以最小化 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣。并且,所有数据满足:
{ w T x i + b ≥ + 1 , y i = + 1 w T x i + b ≤ − 1 , y i = − 1 即 : y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m \begin{aligned} \begin{cases} w^Tx_i+b \geq +1& , y_i=+1 \\ w^Tx_i+b \leq -1 & , y_i=-1 \end{cases} \\ \\ 即:y_i(w^Tx_i+b) \geq 1,i=1,2,...,m \end{aligned} {wTxi​+b≥+1wTxi​+b≤−1​,yi​=+1,yi​=−1​即:yi​(wTxi​+b)≥1,i=1,2,...,m​
上述不等式表达的意思是:所有数据点都要分类正确。

总之,线性SVM模型目标在于求解 w , b w,b w,b,使得数据点均分类正确的情况下,同时间隔要最大化,即:

m i n [ w , b ] 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m \begin{aligned} & min_{[w,b]} \enspace \frac{1}{2}||w||^2 \\ \\ &s.t. \enspace y_i(w^Tx_i+b) \geq 1,i=1,2,...,m \end{aligned} ​min[w,b]​21​∣∣w∣∣2s.t.yi​(wTxi​+b)≥1,i=1,2,...,m​

这就是线性支持向量机的模型。它是一个凸二次规划问题,关于这类问题有很多方法可以求解,有兴趣的可以去学习凸优化理论。然而,伟大的数学家发明出了更高效的方法(对偶问题)来求解。

2. 对偶理论

一般的优化问题如下:

m i n [ x ] g ( x ) s . t . f i ( x ) ≤ 0 , i = 1 , 2 , . . . , m h i ( x ) = 0 , i = 1 , 2 , . . . , q \begin{aligned} &min_{[x]} \enspace g(x) \\ \\ &s.t. \enspace f_i(x)\leq 0,i=1,2,...,m \\ & \qquad h_i(x)= 0,i=1,2,...,q \end{aligned} ​min[x]​g(x)s.t.fi​(x)≤0,i=1,2,...,mhi​(x)=0,i=1,2,...,q​
构造拉格朗日辅助函数: L ( x , α , v ) = g ( x ) + ∑ i = 1 m α i f i ( x ) + ∑ i = 1 q v i h i ( x ) , ( α i ≥ 0 ) L(x,\alpha,v)=g(x)+\sum_{i=1}^m \alpha_if_i(x)+\sum_{i=1}^qv_ih_i(x),(\alpha_i\geq0) L(x,α,v)=g(x)+∑i=1m​αi​fi​(x)+∑i=1q​vi​hi​(x),(αi​≥0)

现在我们对L最大化 α , v \alpha,v α,v得:
m a x [ α , v ] L ( x , α , v ) = g ( x ) + m a x { ∑ i = 1 m α i f i ( x ) + ∑ i = 1 q v i h i ( x ) } \begin{aligned} max_{[\alpha,v]} \enspace L(x,\alpha,v)=g(x)+max\{\sum_{i=1}^m \alpha_if_i(x)+\sum_{i=1}^qv_ih_i(x)\} \end{aligned} max[α,v]​L(x,α,v)=g(x)+max{i=1∑m​αi​fi​(x)+i=1∑q​vi​hi​(x)}​
由于 f i ( x ) ≤ = 0 且 α i ≥ 0 f_i(x)\leq=0且\alpha_i\geq0 fi​(x)≤=0且αi​≥0,则 α i f i ( x ) \alpha_if_i(x) αi​fi​(x)的取值为负无穷到0,得到 m a x ∑ i = 1 m α i f i ( x ) = 0 max\enspace \sum_{i=1}^m \alpha_if_i(x)=0 max∑i=1m​αi​fi​(x)=0;又 h i ( x ) = 0 , 则 m a x ∑ i = 1 q v i h i ( x ) = 0 h_i(x)=0,则max\enspace \sum_{i=1}^qv_ih_i(x)=0 hi​(x)=0,则max∑i=1q​vi​hi​(x)=0。故推导出:
g ( x ) = m a x [ α , v ] L ( x , α , v ) \begin{aligned} g(x)= max_{[\alpha,v]} \enspace L(x,\alpha,v) \end{aligned} g(x)=max[α,v]​L(x,α,v)​
那么原问题可以表达为: p ∗ = m i n [ x ] m a x [ α , v ] L ( x , α , v ) p^*=min_{[x]} max_{[\alpha,v]} \enspace L(x,\alpha,v) p∗=min[x]​max[α,v]​L(x,α,v)

其对偶问题为: d ∗ = m a x [ α , v ] m i n [ x ] L ( x , α , v ) d^*= max_{[\alpha,v]}min_{[x]}\enspace L(x,\alpha,v) d∗=max[α,v]​min[x]​L(x,α,v) (强对偶条件成立时)

观察原问题和对偶问题的表达式,其实就是交换了一下求解次序。这样做的意义在于:直接求解 p ∗ p^* p∗ 是非常困难的。但是交换了次序后,先求解 m i n [ x ] L ( x , α , v ) min_{[x]}\enspace L(x,\alpha,v) min[x]​L(x,α,v)可能非常简单,再求解 m a x [ α , v ] max_{[\alpha,v]} max[α,v]​也可能非常简单。

我们现在看d*是如何推导出来的

设拉格朗日对偶函数: h ( α , v ) = m i n [ x ] L ( x , α , v ) h(\alpha,v)=min_{[x]}L(x,\alpha,v) h(α,v)=min[x]​L(x,α,v)。再任取 x 0 x_0 x0​是原问题可行的点,即满足 f i ( x 0 ) ≤ 0 , h i ( x 0 ) = 0 f_i(x_0)\leq0,h_i(x_0)=0 fi​(x0​)≤0,hi​(x0​)=0,有:
由 于 α i ≥ 0 , 则 ∑ i = 1 m α i f i ( x 0 ) + ∑ i = 1 q v i h i ( x 0 ) ≤ 0 L ( x 0 , α , v ) = g ( x 0 ) + ∑ i = 1 m α i f i ( x 0 ) + ∑ i = 1 q v i h i ( x 0 ) ≤ g ( x 0 ) h ( α , v ) = m i n [ x ] L ( x , α , v ) ≤ L ( x 0 , α , v ) ≤ g ( x 0 ) \begin{aligned} 由于\alpha_i\geq 0,则\sum_{i=1}^m \alpha_if_i(x_0)+\sum_{i=1}^qv_ih_i(x_0) &\leq 0 \\ L(x_0,\alpha,v)=g(x_0)+\sum_{i=1}^m \alpha_if_i(x_0)+\sum_{i=1}^qv_ih_i(x_0)&\leq g(x_0) \\ h(\alpha,v)=min_{[x]}L(x,\alpha,v)\leq L(x_0,\alpha,v)&\leq g(x_0) \end{aligned} 由于αi​≥0,则i=1∑m​αi​fi​(x0​)+i=1∑q​vi​hi​(x0​)L(x0​,α,v)=g(x0​)+i=1∑m​αi​fi​(x0​)+i=1∑q​vi​hi​(x0​)h(α,v)=min[x]​L(x,α,v)≤L(x0​,α,v)​≤0≤g(x0​)≤g(x0​)​
即, h ( α , v ) h(\alpha,v) h(α,v)恒小于等于 g ( x ) g(x) g(x),有:
m a x [ α , v ] h ( α , v ) ≤ m i n [ x ] g ( x ) 即 , d ∗ ≤ p ∗ \begin{aligned} &max_{[\alpha,v]}h(\alpha,v)\leq min_{[x]}g(x) &\\ \\ &即 ,d^*\leq p^* \end{aligned} ​max[α,v]​h(α,v)≤min[x]​g(x)即,d∗≤p∗​

强对偶条件:(1)问题是凸的(2)存在 x x x, f i ( x ) < 0 均 成 立 f_i(x)<0均成立 fi​(x)<0均成立,此时 p ∗ = d ∗ = m a x [ α , v ] m i n [ x ] L ( x , α , v ) p^*=d^*= max_{[\alpha,v]}min_{[x]}\enspace L(x,\alpha,v) p∗=d∗=max[α,v]​min[x]​L(x,α,v)。

另外,凸优化问题的最优解满足KKT条件:
α i ≥ 0 f i ( x ) ≤ 0 h i ( x ) = 0 α i f i ( x ) = 0 ∇ x L ( x , α , v ) = 0 \begin{aligned} \alpha_i &\geq 0 \\ f_i(x) &\leq 0 \\ h_i(x)& = 0 \\ \alpha_i f_i(x)& =0 \\ \nabla_xL(x,\alpha,v)&=0 \end{aligned} αi​fi​(x)hi​(x)αi​fi​(x)∇x​L(x,α,v)​≥0≤0=0=0=0​

3.线性SVM的对偶问题

回顾一下线性SVM的模型为:
m i n [ w , b ] 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m \begin{aligned} & min_{[w,b]} \enspace \frac{1}{2}||w||^2 \\ \\ &s.t. \enspace y_i(w^Tx_i+b) \geq 1,i=1,2,...,m \end{aligned} ​min[w,b]​21​∣∣w∣∣2s.t.yi​(wTxi​+b)≥1,i=1,2,...,m​
我们令 g ( w , b ) = 1 2 ∣ ∣ w ∣ ∣ 2 , f i ( x ) = 1 − y i ( w T x i + b ) g(w,b)=\cfrac{1}{2}||w||^2,f_i(x)=1- y_i(w^Tx_i+b) g(w,b)=21​∣∣w∣∣2,fi​(x)=1−yi​(wTxi​+b).构造朗日辅助函数:
L ( w , b , α ) = g ( w , b ) + ∑ i = 1 m α i [ 1 − y i ( w T x i + b ) ] , α i ≥ 0 \begin{aligned} L(w,b,\alpha)=g(w,b)+\sum_{i=1}^m\alpha_i[1- y_i(w^Tx_i+b)],\alpha_i\geq0 \end{aligned} L(w,b,α)=g(w,b)+i=1∑m​αi​[1−yi​(wTxi​+b)],αi​≥0​
原问题: p ∗ = m i n [ w , b ] m a x [ α ] L ( w , b , α ) p*=min_{[w,b]} max_{[\alpha]} \enspace L(w,b,\alpha) p∗=min[w,b]​max[α]​L(w,b,α)
对偶问题: d ∗ = m a x [ α ] m i n [ w , b ] L ( w , b , α ) d*=max_{[\alpha]}min_{[w,b]}\enspace L(w,b,\alpha) d∗=max[α]​min[w,b]​L(w,b,α)
拉格朗日对偶函数: h ( α ) = m i n [ w , b ] L ( w , b , α ) h(\alpha)=min_{[w,b]}\enspace L(w,b,\alpha) h(α)=min[w,b]​L(w,b,α).

显然线性SVM模型满足强对偶条件,存在对偶问题,且最优解满足KKT条件中的: ∇ [ w , b ] L ( w , b , α ) = 0 \nabla_{[w,b]}L(w,b,\alpha)=0 ∇[w,b]​L(w,b,α)=0。所以求 h ( α ) h(\alpha) h(α),对w,b分别求偏导即可:
L ( w , b , α ) = 1 2 w T w + ∑ i = 1 m α i [ 1 − y i ( w T x i + b ) ] ∂ L ∂ w = w − ∑ i = 1 m α i y i x i = 0 ∂ L ∂ b = − ∑ i = 1 m α i y i = 0 得 到 : ( 1 ) w = ∑ i = 1 m α i y i x i ( 2 ) 0 = ∑ i = 1 m α i y i \begin{aligned} L(w,b,\alpha)=&\cfrac{1}{2}w^Tw+\sum_{i=1}^m\alpha_i[1- y_i(w^Tx_i+b)] \\ \cfrac{\partial L}{\partial w}=&w-\sum_{i=1}^m\alpha_iy_ix_i=0\\ \cfrac{\partial L}{\partial b}=&-\sum_{i=1}^m\alpha_iy_i=0\\ \\得到: (1)\enspace w=&\sum_{i=1}^m\alpha_iy_ix_i \\ (2)\enspace 0=&\sum_{i=1}^m\alpha_iy_i \end{aligned} L(w,b,α)=∂w∂L​=∂b∂L​=得到:(1)w=(2)0=​21​wTw+i=1∑m​αi​[1−yi​(wTxi​+b)]w−i=1∑m​αi​yi​xi​=0−i=1∑m​αi​yi​=0i=1∑m​αi​yi​xi​i=1∑m​αi​yi​​
上述得到的(1)(2)式非常重要,后续会用。现在将(1)(2)式带回 L ( w , b , α ) 得 h ( α ) L(w,b,\alpha)得h(\alpha) L(w,b,α)得h(α):
h ( α ) = 1 2 w T ∑ i = 1 m α i y i x i + ∑ i = 1 m α i − w T ∑ i = 1 m α i y i x i = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i y i α j y j x i T x j \begin{aligned} h(\alpha)=&\frac{1}{2}w^T\sum_{i=1}^m\alpha_iy_ix_i+\sum_{i=1}^m\alpha_i-w^T\sum_{i=1}^m\alpha_iy_ix_i \\ =&\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_iy_i\alpha_jy_jx_i^Tx_j \end{aligned} h(α)==​21​wTi=1∑m​αi​yi​xi​+i=1∑m​αi​−wTi=1∑m​αi​yi​xi​i=1∑m​αi​−21​i=1∑m​j=1∑m​αi​yi​αj​yj​xiT​xj​​
则得对偶问题 d ∗ = m a x [ α ] h ( α ) d^*=max_{[\alpha]}h(\alpha) d∗=max[α]​h(α),即:
m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i y i α j y j x i T x j s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 \begin{aligned} &max_{\alpha}\enspace\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_iy_i\alpha_jy_jx_i^Tx_j \\ \\ &s.t. \sum_{i=1}^m\alpha_iy_i = 0,\alpha_i \geq 0 \end{aligned} ​maxα​i=1∑m​αi​−21​i=1∑m​j=1∑m​αi​yi​αj​yj​xiT​xj​s.t.i=1∑m​αi​yi​=0,αi​≥0​
这就是线性SVM模型得对偶问题,求解出 α \alpha α就能求解出 w , b w,b w,b。此时 α i \alpha_i αi​应该满足KKT条件:
{ α i ≥ 0 1 − y i ( w T x i + b ) ≤ 0 α i [ 1 − y i ( w T x i + b ) ] = 0 \begin{aligned} \begin{dcases} \alpha_i\geq0 & \\ 1-y_i(w^Tx_i+b)\leq 0&\\ \alpha_i[1- y_i(w^Tx_i+b)]=0 \end{dcases} \end{aligned} ⎩⎪⎨⎪⎧​αi​≥01−yi​(wTxi​+b)≤0αi​[1−yi​(wTxi​+b)]=0​​​
从KKT条件可以看出,总有 α i = 0 或 y i ( w T x i + b ) = 1 \alpha_i=0或y_i(w^Tx_i+b)=1 αi​=0或yi​(wTxi​+b)=1.若 α i = 0 \alpha_i=0 αi​=0,说明样本 x i x_i xi​不会出现在对偶问题得表达式中,对求解没有任何影响;若 α i > 0 , 则 y i ( w T x i + b ) = 1 \alpha_i>0,则y_i(w^Tx_i+b)=1 αi​>0,则yi​(wTxi​+b)=1,说明该样本是支持向量。所以,支持向量机最终模型仅仅和少量的支持向量有关。

4.SMO算法

回顾一下线性SVM模型的对偶问题:
m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i y i α j y j x i T x j s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 \begin{aligned} &max_{\alpha}\enspace\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_iy_i\alpha_jy_jx_i^Tx_j \\ \\ &s.t. \sum_{i=1}^m\alpha_iy_i = 0,\alpha_i \geq 0 \end{aligned} ​maxα​i=1∑m​αi​−21​i=1∑m​j=1∑m​αi​yi​αj​yj​xiT​xj​s.t.i=1∑m​αi​yi​=0,αi​≥0​
这个问题是个二次规划问题,有m个参数,求解起来也相当复杂,于是伟大的数学家又发明了SMO算法来高效的解决二次规划问题。

SMO算法思想:对于有m个参数的二次规划问题,先选取两个参数做为变量,固定其余m-2个参数的值(看成常量),这样m个参数的二次规划问题就分解成了一系列2个参数的子问题,而单个子问题通过迭代求解是非常快的,所以SMO算法效率是很高的。

推导过程:
我们假设选取 α 1 , α 2 \alpha_1,\alpha_2 α1​,α2​,固定 [ α 3 , . . . , α m ] [\alpha_3,...,\alpha_m] [α3​,...,αm​],则有:
α 1 y 1 + α 2 y 2 = C C = − ∑ i = 3 m α i y i \begin{aligned} \alpha_1y_1+\alpha_2y_2=C\\ C=-\sum_{i=3}^m\alpha_iy_i \end{aligned} α1​y1​+α2​y2​=CC=−i=3∑m​αi​yi​​
我们将目标函数展开:
F ( α ) = α 1 + α 2 + ∑ i = 3 m α i − 1 2 { α 1 2 y 1 2 x 1 T x 1 + 2 α 1 α 2 y 1 y 2 x 1 T x 2 + 2 ∑ j = 3 m α 1 α j y 1 y j x 1 T x j + α 2 2 y 2 2 x 2 T x 2 + 2 ∑ j = 3 m α 2 α j y 2 y j x 2 T x j + ∑ i = 3 m ∑ j = 3 m α i α j y i y j x i T x j } \begin{aligned} F(\alpha)=&\alpha_1+\alpha_2+\sum_{i=3}^m\alpha_i-\cfrac{1}{2}\{\alpha_1^2y_1^2x_1^Tx_1+2\alpha_1\alpha_2y_1y_2x_1^Tx_2 \\&+2\sum_{j=3}^m\alpha_1\alpha_jy_1y_jx_1^Tx_j+\alpha_2^2y_2^2x_2^Tx_2\\&+2\sum_{j=3}^m\alpha_2\alpha_jy_2y_jx_2^Tx_j+\sum_{i=3}^m\sum_{j=3}^m\alpha_i\alpha_jy_iy_jx_i^Tx_j\} \end{aligned} F(α)=​α1​+α2​+i=3∑m​αi​−21​{α12​y12​x1T​x1​+2α1​α2​y1​y2​x1T​x2​+2j=3∑m​α1​αj​y1​yj​x1T​xj​+α22​y22​x2T​x2​+2j=3∑m​α2​αj​y2​yj​x2T​xj​+i=3∑m​j=3∑m​αi​αj​yi​yj​xiT​xj​}​
常数项对求导不会有影响直接扔掉,并记 K i j = x i T x j K_{ij}=x_i^Tx_j Kij​=xiT​xj​,化简后得:
F ( α ) = α 1 + α 2 − 1 2 { α 1 2 K 11 + 2 α 1 α 2 y 1 y 2 K 12 + 2 ∑ j = 3 m α 1 α j y 1 y j K 1 j + α 2 2 K 22 + 2 ∑ j = 3 m α 2 α j y 2 y j K 2 j } \begin{aligned} F(\alpha)=&\alpha_1+\alpha_2-\cfrac{1}{2}\{\alpha_1^2K_{11}+2\alpha_1\alpha_2y_1y_2K_{12}+2\sum_{j=3}^m\alpha_1\alpha_jy_1y_jK_{1j}\\&+\alpha_2^2K_{22}+2\sum_{j=3}^m\alpha_2\alpha_jy_2y_jK_{2j}\} \end{aligned} F(α)=​α1​+α2​−21​{α12​K11​+2α1​α2​y1​y2​K12​+2j=3∑m​α1​αj​y1​yj​K1j​+α22​K22​+2j=3∑m​α2​αj​y2​yj​K2j​}​
将 α 1 = y 1 ( C − α 2 y 2 ) \alpha_1=y_1(C-\alpha_2y_2) α1​=y1​(C−α2​y2​)带入上式得,关于 α 2 的 一 元 函 数 \alpha_2的一元函数 α2​的一元函数:
F ( α 2 ) = y 1 ( C − α 2 y 2 ) + α 2 − 1 2 { ( C − α 2 y 2 ) 2 K 11 + 2 ( C − α 2 y 2 ) α 2 y 2 K 12 + 2 ∑ j = 3 m ( C − α 2 y 2 ) α j y j K 1 j + α 2 2 K 22 + 2 ∑ j = 3 m α 2 α j y 2 y j K 2 j } \begin{aligned} F(\alpha_2)=&y_1(C-\alpha_2y_2)+\alpha_2-\cfrac{1}{2}\{(C-\alpha_2y_2)^2K_{11}+2(C-\alpha_2y_2)\alpha_2y_2K_{12}\\&+2\sum_{j=3}^m(C-\alpha_2y_2)\alpha_jy_jK_{1j}+\alpha_2^2K_{22}+2\sum_{j=3}^m\alpha_2\alpha_jy_2y_jK_{2j}\} \end{aligned} F(α2​)=​y1​(C−α2​y2​)+α2​−21​{(C−α2​y2​)2K11​+2(C−α2​y2​)α2​y2​K12​+2j=3∑m​(C−α2​y2​)αj​yj​K1j​+α22​K22​+2j=3∑m​α2​αj​y2​yj​K2j​}​
对 α 2 \alpha_2 α2​求偏导,令其等于0:
∂ F ∂ α 2 = 1 − y 1 y 2 + ( C − α 2 y 2 ) y 2 K 11 − C y 2 K 12 + 2 α 2 K 12 − α 2 K 22 + ∑ j = 3 m α j y 2 y j K 1 j − ∑ j = 3 m α j y 2 y j K 2 j = 0 \begin{aligned} \cfrac{\partial F}{\partial \alpha_2}=&1-y_1y_2+(C-\alpha_2y_2)y_2K_{11}-Cy_2K_{12}+2\alpha_2K_{12}-\alpha_2K_{22}\\&+\sum_{j=3}^m\alpha_jy_2y_jK_{1j}-\sum_{j=3}^m\alpha_jy_2y_jK_{2j}=0 \end{aligned} ∂α2​∂F​=​1−y1​y2​+(C−α2​y2​)y2​K11​−Cy2​K12​+2α2​K12​−α2​K22​+j=3∑m​αj​y2​yj​K1j​−j=3∑m​αj​y2​yj​K2j​=0​
整理得:
α 2 ( K 11 + K 22 − 2 K 12 ) = 1 − y 1 y 2 + C y 2 K 11 − C y 2 K 12 + ∑ j = 3 m α j y 2 y j K 1 j − ∑ j = 3 m α j y 2 y j K 2 j \begin{aligned} \alpha_2(K_{11}+K_{22}-2K_{12})=&1-y_1y_2+Cy_2K_{11}-Cy_2K_{12}\\&+\sum_{j=3}^m\alpha_jy_2y_jK_{1j}-\sum_{j=3}^m\alpha_jy_2y_jK_{2j} \end{aligned} α2​(K11​+K22​−2K12​)=​1−y1​y2​+Cy2​K11​−Cy2​K12​+j=3∑m​αj​y2​yj​K1j​−j=3∑m​αj​y2​yj​K2j​​

这是一个迭代式,因为C与 α 2 o l d \alpha_2^{old} α2old​有关,将 α 1 o l d y 1 + α 2 o l d y 2 = C \alpha_1^{old}y_1+\alpha_2^{old}y_2=C α1old​y1​+α2old​y2​=C代入上式得:
α 2 n e w ( K 11 + K 22 − 2 K 12 ) = y 2 { y 2 − y 1 + α 1 o l d y 1 K 11 + α 2 o l d y 2 K 11 − α 1 o l d y 1 K 12 − α 2 o l d y 2 K 12 + ∑ j = 3 m α j y j K 1 j − ∑ j = 3 m α j y j K 2 j } \begin{aligned} \alpha_2^{new}(K_{11}+K_{22}-2K_{12})=&y_2\{y_2-y_1+\alpha_1^{old}y_1K_{11}+\alpha_2^{old}y_2K_{11}\\&-\alpha_1^{old}y_1K_{12}-\alpha_2^{old}y_2K_{12}+\sum_{j=3}^m\alpha_jy_jK_{1j}\\&-\sum_{j=3}^m\alpha_jy_jK_{2j}\} \end{aligned} α2new​(K11​+K22​−2K12​)=​y2​{y2​−y1​+α1old​y1​K11​+α2old​y2​K11​−α1old​y1​K12​−α2old​y2​K12​+j=3∑m​αj​yj​K1j​−j=3∑m​αj​yj​K2j​}​
其中SVM的线性模型为:
f ( x 1 ) = w T x 1 + b = ∑ i = 1 m α i y i x i T x 1 + b = α 1 o l d y 1 K 11 + α 2 o l d y 2 K 12 + ∑ i = 3 m α i y i K 1 i + b 同 理 : f ( x 2 ) = α 1 o l d y 1 K 12 + α 2 o l d y 2 K 22 + ∑ i = 3 m α i y i K 2 i + b \begin{aligned} f(x_1)=&w^Tx_1+b \\=&\sum_{i=1}^m\alpha_iy_ix_i^Tx_1+b \\=&\alpha_1^{old}y_1K_{11}+\alpha_2^{old}y_2K_{12}+\sum_{i=3}^m\alpha_iy_iK_{1i}+b \\ 同理:f(x_2)=&\alpha_1^{old}y_1K_{12}+\alpha_2^{old}y_2K_{22}+\sum_{i=3}^m\alpha_iy_iK_{2i}+b \end{aligned} f(x1​)===同理:f(x2​)=​wTx1​+bi=1∑m​αi​yi​xiT​x1​+bα1old​y1​K11​+α2old​y2​K12​+i=3∑m​αi​yi​K1i​+bα1old​y1​K12​+α2old​y2​K22​+i=3∑m​αi​yi​K2i​+b​
将上述两个推导式代入迭代式得:
α 2 n e w ( K 11 + K 22 − 2 K 12 ) = y 2 { y 2 − y 1 + α 1 o l d y 1 K 11 + α 2 o l d y 2 K 11 − α 1 o l d y 1 K 12 − α 2 o l d y 2 K 12 + f ( x 1 ) − α 1 o l d y 1 K 11 − α 2 o l d y 2 K 12 − b − f ( x 2 ) + α 1 o l d y 1 K 12 + α 2 o l d y 2 K 22 + b } \begin{aligned} \alpha_2^{new}(K_{11}+K_{22}-2K_{12})=&y_2\{y_2-y_1+\alpha_1^{old}y_1K_{11}+\alpha_2^{old}y_2K_{11}\\&-\alpha_1^{old}y_1K_{12}-\alpha_2^{old}y_2K_{12}\\&+f(x_1)-\alpha_1^{old}y_1K_{11}-\alpha_2^{old}y_2K_{12}-b\\&- f(x_2)+\alpha_1^{old}y_1K_{12}+\alpha_2^{old}y_2K_{22}+b\} \end{aligned} α2new​(K11​+K22​−2K12​)=​y2​{y2​−y1​+α1old​y1​K11​+α2old​y2​K11​−α1old​y1​K12​−α2old​y2​K12​+f(x1​)−α1old​y1​K11​−α2old​y2​K12​−b−f(x2​)+α1old​y1​K12​+α2old​y2​K22​+b}​
整理得:
α 2 n e w ( K 11 + K 22 − 2 K 12 ) = y 2 { f ( x 1 ) − y 1 − ( f ( x 2 ) − y 2 ) + α 2 o l d y 2 ( K 11 + K 22 − 2 K 12 ) } 令 η = ( K 11 + K 22 − 2 K 12 ) E i = f ( x i ) − y i 则 有 : α 2 n e w = α 2 o l d + y 2 ( E 1 − E 2 ) η α 1 n e w = y 1 ( C − α 2 n e w y 2 ) ( E 1 − E 2 ) = y 2 − y 1 + w o l d T ( x 1 − x 2 ) \begin{aligned} \alpha_2^{new}(K_{11}+K_{22}-2K_{12})=&y_2\{f(x_1)-y_1-(f(x_2)-y_2)\\&+\alpha_2^{old}y_2(K_{11}+K_{22}-2K_{12})\}\\ \\ 令\eta=&(K_{11}+K_{22}-2K_{12})\\ E_i=&f(x_i)-y_i \\ \\ 则有:\alpha_2^{new}=&\alpha_2^{old}+\cfrac{y_2(E_1-E_2)}{\eta}\\ \alpha_1^{new}=&y_1(C-\alpha_2^{new}y_2)\\ (E_1-E_2)=&y_2-y_1+w_{old}^T(x_1-x_2) \end{aligned} α2new​(K11​+K22​−2K12​)=令η=Ei​=则有:α2new​=α1new​=(E1​−E2​)=​y2​{f(x1​)−y1​−(f(x2​)−y2​)+α2old​y2​(K11​+K22​−2K12​)}(K11​+K22​−2K12​)f(xi​)−yi​α2old​+ηy2​(E1​−E2​)​y1​(C−α2new​y2​)y2​−y1​+woldT​(x1​−x2​)​

上述就是SMO算法关于 α 1 和 α 2 的 迭 代 式 \alpha_1和\alpha_2的迭代式 α1​和α2​的迭代式,SMO算法已经证明过是具有收敛性的,所以能够求解两个参数。并且,这个迭代式仅与选取的两个参数( α 1 和 α 2 \alpha_1和\alpha_2 α1​和α2​)所对应的样本( x 1 和 x 2 x_1和x_2 x1​和x2​)的预测值、标记值和向量内积有关。这样做一轮迭代仅和两个样本相关,效率是非常高的,所以SMO算法可以称为最快的二次规划求解算法。

两个变量的选择:
注意,上述推导过程我们假设取 α 1 和 α 2 \alpha_1和\alpha_2 α1​和α2​为参数,实际上参数的选取是有讲究的。

  • 第一个变量的选择:违法KKT条件最严重的点,即违背 α i > 0 , y i f ( x i ) = 1 \alpha_i>0,y_if(x_i)=1 αi​>0,yi​f(xi​)=1和 α i = 0 , y i f ( x i ) ≥ 1 \alpha_i=0,y_if(x_i) \geq1 αi​=0,yi​f(xi​)≥1。
  • 第二变量的选择:选择 ∣ E 1 − E 2 ∣ |E_1-E_2| ∣E1​−E2​∣最大化的点。

用SMO算法求出所有 α \alpha α之后, w = ∑ i = 1 m α i y i x i w=\sum_{i=1}^m\alpha_iy_ix_i w=∑i=1m​αi​yi​xi​。

b的求解只于支持向量有关。对于任意支持向量 ( x s , y s ) (x_s,y_s) (xs​,ys​)都有 y s f ( x s ) = 1 y_sf(x_s)=1 ys​f(xs​)=1,那么令 S = { s = i ∣ α i > 0 } S=\{s=i|\alpha_i>0\} S={s=i∣αi​>0}为支持向量的下标集合,则有:

b = 1 ∣ S ∣ ∑ s ∈ S ( y s − w T x s ) \begin{aligned} b=\cfrac{1}{|S|}\sum_{s \in S}(y_s-w^Tx_s) \end{aligned} b=∣S∣1​s∈S∑​(ys​−wTxs​)​

标签:y2,yi,12,sum,支持,线性,alpha,aligned,向量
来源: https://blog.csdn.net/ZHT2016iot/article/details/118363096

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有