SVM原理推导(课堂笔记及思路整理)

前言

上数据挖掘课的樊老师讲了三节课,一堆堆的数学符号。这里加以整理,非常感谢樊老师讲的知识。(我不生产知识,我只是知识的搬运工, 开个玩笑嘻嘻)。这里记录一下过程还有我对过程的一些理解。
为避免像上次一样一些网站转载博客而不标注网址,这里我提一下:
本文链接: https://blog.csdn.net/weixin_43850253/article/details/109356427



知识体系

  • hard margin SVM
  • soft margin SVM
  • kernel SVM

其中,线性的有hard margin SVM 和 soft margin SVM, 非线性的有kernel SVM。



hard margin SVM

hard margin SVM要求两个支持向量之间不存在数据点,如果存在的话则要使用soft margin SVM。
这里我们要分割出两个类别,要使得离支持向量最近的点到支持向量的距离最大,这个时候这个线(或平面或者超平面) 的分类效果是最好的。
点到超平面的距离公式如下:
d   =   ∣ w T x i   +   b ∣ ∣ ∣ w ∣ ∣ d ~=~ \frac{|w^Tx_i ~+~ b|}{||w||} d = ∣∣w∣∣wTxi + b


如何推导的话这里推荐一篇博客: SVM 任意点到超平面的距离公式


然后我们的目标就变为了如下
m a x w , b   m i n x i ∣ w T x i   +   b ∣ ∣ ∣ w ∣ ∣ max_{w, b} ~ min_{x_i} \frac{|w^Tx_i ~+~ b|}{||w||} \\ maxw,b minxi∣∣w∣∣wTxi + b
⇒ m a x w , b 1 ∣ ∣ w ∣ ∣   m i n x i ∣ w T x i   +   b ∣ ⇒ max_{w, b} \frac{1}{||w||} ~ min_{x_i} |w^Tx_i ~+~ b| \\ maxw,b∣∣w∣∣1 minxiwTxi + b
{ m a x w , b 1 ∣ ∣ w ∣ ∣   m i n x i   y i ( w T x i   +   b ) s t .     y i ( w T x i   +   b )   >   0 \left\{ \begin{array}{l} max_{w, b} \frac{1}{||w||} ~ min_{x_i} ~y_i(w^Tx_i ~+~ b) \\ st. ~~~ y_i (w^Tx_i ~+~ b) ~>~ 0 \end{array} \right. {maxw,b∣∣w∣∣1 minxi yi(wTxi + b)st.   yi(wTxi + b) > 0

故 ∃r > 0, st. yi(wTxi + b) = r
⇒ { m a x 1 ∣ ∣ w ∣ ∣   m i n x i   r s t .     y i ( w T x i   +   b )   >   r ⇒ \left\{ \begin{array}{l} max \frac{1}{||w||} ~ min_{x_i} ~ r \\ st. ~~~ y_i (w^Tx_i ~+~ b) ~>~ r \end{array} \right. {max∣∣w∣∣1 minxi rst.   yi(wTxi + b) > r

再令 r = 1,
⇒ { m a x 1 ∣ ∣ w ∣ ∣ s t .     y i ( w T x i   +   b )   ≥   1 ⇒ \left\{ \begin{array}{l} max \frac{1}{||w||} \\ st. ~~~ y_i (w^Tx_i ~+~ b) ~≥~ 1 \end{array} \right. {max∣∣w∣∣1st.   yi(wTxi + b)  1
⇒ { m i n   1 2 w T w s t .     y i ( w T x i   +   b )   ≥   1 ⇒ \left\{ \begin{array}{l} min~ \frac{1}{2} w^T w \\ st. ~~~ y_i (w^Tx_i ~+~ b) ~≥~ 1 \end{array} \right. {min 21wTwst.   yi(wTxi + b)  1

再得出原问题:
⇒ { m i n   1 2 w T w s t .     1 − y i ( w T x i   +   b )   ≤   0 ⇒ \left\{ \begin{array}{l} min~ \frac{1}{2} w^T w \\ st. ~~~ 1 - y_i (w^Tx_i ~+~ b) ~≤~ 0 \end{array} \right. {min 21wTwst.   1yi(wTxi + b)  0

此时我们用一下拉格朗日乘子,将约束条件去掉:
⇒ { m i n w , b   m a x α   1 2 w T w   +   ∑ i = 1 N α i ( 1   −   y i ( w T x i   +   b ) ) s t .     α i > 0 ⇒ \left\{ \begin{array}{l} min_{w, b} ~ max_{α} ~ \frac{1}{2} w^T w ~+~ \sum_{i=1}^{N}{α_i(1 ~-~ y_i(w^Tx_i ~+~ b))} \\ st. ~~~ α_i > 0 \end{array} \right. {minw,b maxα 21wTw + i=1Nαi(1  yi(wTxi + b))st.   αi>0

接下来这一步涉及对偶问题,必须在满足KTT条件的时候进行。

⇒ { m a x α   m i n w , b   1 2 w T w   +   ∑ i = 1 N α i ( 1   −   y i ( w T x i   +   b ) ) s t .     α i > 0 ⇒ \left\{ \begin{array}{l} max_{α} ~ min_{w, b} ~ \frac{1}{2} w^T w ~+~ \sum_{i=1}^{N}{α_i(1 ~-~ y_i(w^Tx_i ~+~ b))} \\ st. ~~~ α_i > 0 \end{array} \right. {maxα minw,b 21wTw + i=1Nαi(1  yi(wTxi + b))st.   αi>0

min max L ≥ max min L
这里插入此题满足的KKT条件(如果想了解KKT条件,可以看后边的不等式约束优化问题的部分):
⇒ { ∂ L ∂ w = 0 , ∂ L ∂ b = 0 , ∂ L ∂ α = 0 α i ( 1   −   y i ( w T x i + b ) ) = 0 α i > 0 1   −   y i ( w T x i   +   b )   ≤   0 ⇒ \left\{ \begin{array}{l} \frac{\partial{L}}{\partial{w}} = 0, \frac{\partial{L}}{\partial{b}} = 0, \frac{\partial{L}}{\partial{α}} = 0 \\ α_i(1 ~-~ y_i(w^Tx_i + b)) = 0 \\ α_i > 0 \\ 1 ~-~ y_i(w^Tx_i ~+~ b) ~≤~ 0 \end{array} \right. wL=0,bL=0,αL=0αi(1  yi(wTxi+b))=0αi>01  yi(wTxi + b)  0
其中, α i (1 - y i (wTx i + b)) = 0 是 松弛互补条件。


然后我们回到上面那个式子
{ m i n w , b   m a x α   1 2 w T w   +   ∑ i = 1 N α i ( 1   −   y i ( w T x i   +   b ) ) s t .     α i > 0 \left\{ \begin{array}{l} min_{w, b} ~ max_{α} ~ \frac{1}{2} w^T w ~+~ \sum_{i=1}^{N}{α_i(1 ~-~ y_i(w^Tx_i ~+~ b))} \\ st. ~~~ α_i > 0 \end{array} \right. {minw,b maxα 21wTw + i=1Nαi(1  yi(wTxi + b))st.   αi>0

对目标函数进行展开得到:
m i n w , b L   =   1 2 w T w + ∑ i = 1 N α i ( 1   −   y i ( w T x i   +   b ) )   =   1 2 w T w + ∑ i = 1 N α i − ∑ i = 1 N α i   y i   w T x i   −   ∑ i = 1 N α i   y i   b min_{w, b}L ~=~ \frac{1}{2} w^Tw + \sum_{i=1}^{N}{α_i (1 ~-~y_i(w^Tx_i ~+~ b))} \\ ~=~ \frac{1}{2} w^Tw + \sum_{i=1}^{N}{α_i} - \sum_{i=1}^{N}{α_i~y_i~w^Tx_i} ~-~ \sum_{i=1}^{N}{α_i~y_i~b} minw,bL = 21wTw+i=1Nαi(1  yi(wTxi + b)) = 21wTw+i=1Nαii=1Nαi yi wTxi  i=1Nαi yi b

令L对b的偏导为0,即

∂ L ∂ b   =   − ∑ i = 1 N α i   y i = 0 \frac{\partial{L}}{\partial{b}} ~=~ - \sum_{i=1}^{N}{α_i~y_i} = 0 bL = i=1Nαi yi=0
⇒ ∑ i = 1 N α i   y i = 0 ⇒ \sum_{i=1}^{N}{α_i~y_i} = 0 i=1Nαi yi=0

令L对w偏导为0, 即
∂ L ∂ w   =   w − ∑ i = 1 N α i   y i   x i = 0 \frac{\partial{L}}{\partial{w}} ~=~ w - \sum_{i=1}^{N}{α_i~y_i~x_i} = 0 wL = wi=1Nαi yi xi=0
⇒ w ∗ = ∑ i = 1 N α i ∗   y i   x i ⇒ w^* = \sum_{i=1}^{N}{α_i^*~y_i~x_i} w=i=1Nαi yi xi

我们再将上述带入到原来的目标方程中,得到
m i n w , b L ( w ∗ , b ∗ ) = 1 2 ( ∑ i = 1 N α i   y i   x i ) T   ∑ j = 1 N α j   y j   x j   +   ∑ i = 1 N α i   −   ∑ i = 1 N ( α i   y i ( ∑ j = 1 N α j   y j   x j ) T x i ) min_{w, b} L(w^*, b^*) \\ = \frac{1}{2} ( \sum_{i=1}^{N}{α_i~y_i~x_i})^T ~ \sum_{j=1}^{N}{α_j~y_j~x_j} ~+~ \sum_{i=1}^{N}α_i ~-~ \sum_{i=1}^{N} (α_i~y_i( \sum_{j=1}^{N}α_j~y_j~x_j)^Tx_i) minw,bL(w,b)=21(i=1Nαi yi xi)T j=1Nαj yj xj + i=1Nαi  i=1N(αi yi(j=1Nαj yj xj)Txi)
  = 1 2 ( ∑ i = 1 N ∑ j = 1 N α i   α j   y i   y j   x i T   x j   −   ∑ i = 1 N ∑ j = 1 N α i   α j   y i   y j   x j T   x i + ∑ i = 1 N α i              = − 1 2 ∑ i = 1 N ∑ j = 1 N α i   α j   y i   y j   x i T   x j + ∑ i = 1 N α i                                                         ~= \frac{1}{2} ( \sum_{i=1}^{N} \sum_{j=1}^{N} α_i~α_j~y_i~y_j~x_i^T~x_j ~-~ \sum_{i=1}^{N} \sum_{j=1}^{N} α_i~α_j~y_i~y_j~x_j^T~x_i +\sum_{i=1}^{N} α_i ~~~~~~~~~~\\ ~= -\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} α_i~α_j~y_i~y_j~x_i^T~x_j + \sum_{i=1}^{N} α_i ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  =21(i=1Nj=1Nαi αj yi yj xiT xj  i=1Nj=1Nαi αj yi yj xjT xi+i=1Nαi           =21i=1Nj=1Nαi αj yi yj xiT xj+i=1Nαi                                                       


在上面合并的过程中,值得一提的是 x iT x j = x jT x i, 不明白的读者可以自行举个例子试一下就知道了。从原理上就是两个向量响应的位置相乘,得到一个个标量,再加起来,每一个标量都是相同的,故加起来也是相同的,因此两者必定相等。

接着由上式得到去约束的原问题为
{ m a x α   − 1 2 ∑ i = 1 N ∑ j = 1 N α i   α j   y i   y j   x i T   x j + ∑ i = 1 N α i s t .     α i > 0 ,    i = 1 , 2 , . . . , N \left\{ \begin{array}{l} max_α ~-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} α_i~α_j~y_i~y_j~x_i^T~x_j + \sum_{i=1}^{N} α_i \\ st. ~~~ α_i > 0, ~~i = 1, 2, ..., N \end{array} \right. {maxα 21i=1Nj=1Nαi αj yi yj xiT xj+i=1Nαist.   αi>0,  i=1,2,...,N
⇒ { m i n α    1 2 ∑ i = 1 N ∑ j = 1 N α i   α j   y i   y j   x i T   x j + ∑ i = 1 N α i s t .     α i > 0 ,    i = 1 , 2 , . . . , N ⇒ \left\{ \begin{array}{l} min_α ~~\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} α_i~α_j~y_i~y_j~x_i^T~x_j + \sum_{i=1}^{N} α_i \\ st. ~~~ α_i > 0, ~~i = 1, 2, ..., N \end{array} \right. {minα  21i=1Nj=1Nαi αj yi yj xiT xj+i=1Nαist.   αi>0,  i=1,2,...,N



然后我们再考虑一下 b*
由KTT条件中的 1 - yi (wTxi + b) ≤ 0 ,我们可以得到

∃(xk, yk), st.
1 - yk (wTxk + b) = 0
⇒ 1 = yk (wTxk + b)
两边同时乘以 yk, 注意到二分类问题我们y的取值只有 +1和-1,故有
⇒ yk = yk2 (wTxk + b)
⇒ yk = wTxk + b

我们进而可以推出
b ∗   =   y k − w T x k                           = y k − ( ∑ i = 1 N α i   y i   x i ) T   x k   = y k − ∑ i = 1 N α i   y i   x i T   x k       b^* ~=~ y_k - w^Tx_k ~~~~~~~~~~~~~~~~~~~~~~~\\ ~= y_k - (\sum_{i=1}^{N} α_i~y_i~x_i)^T~ x_k \\ ~= y_k - \sum_{i=1}^{N} α_i~y_i~x_i^T~ x_k ~~~~~ b = ykwTxk                        =yk(i=1Nαi yi xi)T xk =yki=1Nαi yi xiT xk     
最后一步转换是因为 α 和 y 都为标量。

故到这里我们知道
{ w ∗   =   ∑ i = 1 N α i ∗   y i   x i b ∗    =   y k − ∑ i = 1 N α i   y i   x i T   x k \left\{ \begin{array}{l} w^* ~=~ \sum_{i=1}^{N} α_i^*~y_i~x_i \\ b^* ~~=~ y_k - \sum_{i=1}^{N} α_i~y_i~x_i^T~ x_k \end{array} \right. {w = i=1Nαi yi xib  = yki=1Nαi yi xiT xk

最后得到最优超平面方程
f ( x )   =   s i g n ( w ∗ T x   +   b ∗ ) f(x) ~=~ sign(w^{*T}x ~+~ b^*) f(x) = sign(wTx + b)
其中,sign函数是
s i g n ( x ) = { 1 ,      i f    x   > 0 0 ,      i f    x   = 0 − 1 ,   i f    x   < 0 sign(x) = \left\{ \begin{array}{l} 1, ~~~~if ~~x ~ > 0\\ 0, ~~~~if ~~x ~ = 0\\ -1, ~if ~~x ~ < 0 \end{array} \right. sign(x)= 1,    if  x >00,    if  x =01, if  x <0



soft margin SVM

尽管我们已经有了hard margin SVM, 但是现实生活中并不总能保证支持向量中间没有数据点,这时候就得考虑一下soft margin SVM了。
我们有这样一种思路,如果数据点出现在支持向量中间,那么我们就对齐进行乘法,即像这种形式:
min 1/2 * wT w + loss_function

我们针对loss_function来思考一下第一种思路。


思路1

我们来加个指示函数 q, 令 z = yi (wT xi + b)
q   =   { 1 ,      i f    z   < 1 0 ,      i f    o t h e r w i s s e q~=~ \left\{ \begin{array}{l} 1, ~~~~if ~~z ~ < 1 \\ 0, ~~~~if ~~otherwisse \end{array} \right. q = {1,    if  z <10,    if  otherwisse
即此时
l o s s _ f u n c t i o n   =   ∑ i = 1 N q { y i ( w T x i   +   b ) < 1 } loss\_function ~=~ \sum_{i=1}^{N}{q\{ y_i(w^Tx_i ~+~ b) <1\}} loss_function = i=1Nq{yi(wTxi + b)<1}
但是我们会发现一个问题,这样的函数 q 并不可微,原因是当 z = 1 的时候函数突变了,故函数并不连续。


思路2

我们有另一种想法,就是如果里支持向量越远那么惩罚项应该越大,故此时我们有第二种思路。
if yi (wT xi + b) ≥ 1, loss = 0
if yi (wT xi + b) < 1, loss = 1 - yi(wTxi + b)

令 ξ i = 1 - yi (wTx i + b),
故原问题为
{ m i n 1 2 w T w   +   c ∑ i = 1 N m a x { 0 , ξ i } s t .     y i ( w T x i   +   b ) ≥ 1 − ξ i ξ i   ≥   0 \left\{ \begin{array}{l} min \frac{1}{2} w^Tw ~+~ c \sum_{i=1}^{N}max\{0, ξ_i \} \\ st. ~~~ y_i(w^Tx_i ~+~ b) ≥ 1 - ξ_i \\ ξ_i ~≥~ 0 \end{array} \right. min21wTw + ci=1Nmax{0,ξi}st.   yi(wTxi + b)1ξiξi  0
⇒ { m i n 1 2 w T w   +   c ∑ i = 1 N ξ i s t .     y i ( w T x i   +   b ) ≥ 1 − ξ i    , ξ i   ≥   0 ⇒ \left\{ \begin{array}{l} min \frac{1}{2} w^Tw ~+~ c \sum_{i=1}^{N}ξ_i \\ st. ~~~y_i(w^Tx_i ~+~ b) ≥ 1 - ξ_i ~~, \\ ξ_i ~≥~ 0 \end{array} \right. min21wTw + ci=1Nξist.   yi(wTxi + b)1ξi  ,ξi  0

因此应用拉格朗日乘子消掉约束条件得到 目标函数L 为
L = 1 2 w T w   +   C ∑ i = 1 N ξ i + ∑ i = 1 N α i ( 1   −   y i ( w T x i   +   b )   −   ξ i )   +   ∑ i = 1 N μ i   ξ i L = \frac{1}{2} w^Tw ~+~ C \sum_{i=1}^{N}ξ_i + \sum_{i=1}^{N}α_i(1~-~y_i(w^Tx_i~+~b)~-~ ξ_i) ~+~ \sum_{i=1}^{N} μ_i~ξ_i L=21wTw + Ci=1Nξi+i=1Nαi(1  yi(wTxi + b)  ξi) + i=1Nμi ξi
其中,α_i 和 μ_i 都是拉格朗日乘子。
我们对 w, b, ξ_i 偏导可得
w = ∑ i = 1 N α i   y i   x i 0 = ∑ i = 1 N a i   y i     C   =   a i   +   μ i       w = \sum_{i=1}^{N}{α_i~y_i~x_i} \\ 0 = \sum_{i=1}^{N}{a_i~y_i} ~~~\\ C ~=~ a_i ~+~ μ_i ~~~~~ w=i=1Nαi yi xi0=i=1Nai yi   C = ai + μi     
其中 第一条式子和第二条式子计算过程与硬间隔差不多。然后第三条式子的计算:
∂ L ∂ ξ i = 0   +   C   −   α i   −   μ i   =   0 \frac{\partial{L}}{\partial{ξ_i }} = 0 ~+~ C ~-~ α_i ~-~ μ_i ~=~ 0 ξiL=0 + C  αi  μi = 0
⇒ C = α i   +   μ i                           ⇒ C = α_i ~+~ μ_i ~~~~~~~~~~~~~~~~~~~~~~~~~ C=αi + μi                         

然后把上述结果带入到函数L中,得到
m i n w , b , ξ i L ( w , b , α , ξ , μ )                                                                                       = 1 2 w T w   +   C ∑ i = 1 N ξ i + ∑ i = 1 N α i ( 1   −   y i ( w T x i   +   b )   −   ξ i )   −   ∑ i = 1 N μ i   ξ i           = 1 2 w T w + ∑ i = 1 N α i ( 1   −   y i ( w T x i   +   b ) ) + C ∑ i = 1 N ξ i   −   ∑ i = 1 N α i   ξ i − ∑ i = 1 N μ i   ξ i   = − 1 2 ∑ i = 1 N α i   y i   x i T ∑ i = 1 N α i   y i   x i   + ∑ i = 1 N α i   + ∑ i = 1 N C ξ i   −   ∑ i = 1 N α i   ξ i − ∑ i = 1 N μ i   ξ i   = − 1 2 ∑ i = 1 N α i   y i   x i T ∑ i = 1 N α i   y i   x i   + ∑ i = 1 N α i   + ∑ i = 1 N ( C   −   μ i   −   μ i ) ξ i                   = ∑ i = 1 N α i   −   1 2 ∑ i = 1 N ∑ j = 1 N α i   α j   y i   y j   x i T x j                                                              min_{w, b, ξ_i} L(w, b, α, ξ, μ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\ ~= \frac{1}{2} w^Tw ~+~ C \sum_{i=1}^{N}ξ_i + \sum_{i=1}^{N}α_i(1~-~y_i(w^Tx_i~+~b)~-~ ξ_i) ~-~ \sum_{i=1}^{N} μ_i~ξ_i ~~~~~~~\\ ~= \frac{1}{2} w^Tw + \sum_{i=1}^{N}α_i(1~-~y_i(w^Tx_i~+~b)) + C\sum_{i=1}^{N}{ξ_i } ~-~ \sum_{i=1}^{N}{α_i~ξ_i} - \sum_{i=1}^{N} μ_i~ξ_i \\ ~= -\frac{1}{2}\sum_{i=1}^{N}α_i~y_i~x_i^T\sum_{i=1}^N{α_i~y_i~x_i} ~+ \sum_{i=1}^{N}α_i ~+ \sum_{i=1}^{N}{Cξ_i } ~-~ \sum_{i=1}^{N}{α_i~ξ_i} - \sum_{i=1}^{N} μ_i~ξ_i \\ ~= -\frac{1}{2}\sum_{i=1}^{N}α_i~y_i~x_i^T\sum_{i=1}^N{α_i~y_i~x_i} ~+ \sum_{i=1}^{N}α_i ~+ \sum_{i=1}^{N}{(C ~-~ μ_i ~-~ μ_i)ξ_i} ~~~~~~~~~~~~~~~\\ ~= \sum_{i=1}^{N}α_i ~-~ \frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}α_i~α_j~y_i~y_j~x_i^Tx_j ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ minw,b,ξiL(w,b,α,ξ,μ)                                                                                    =21wTw + Ci=1Nξi+i=1Nαi(1  yi(wTxi + b)  ξi)  i=1Nμi ξi        =21wTw+i=1Nαi(1  yi(wTxi + b))+Ci=1Nξi  i=1Nαi ξii=1Nμi ξi =21i=1Nαi yi xiTi=1Nαi yi xi +i=1Nαi +i=1NCξi  i=1Nαi ξii=1Nμi ξi =21i=1Nαi yi xiTi=1Nαi yi xi +i=1Nαi +i=1N(C  μi  μi)ξi                =i=1Nαi  21i=1Nj=1Nαi αj yi yj xiTxj                                                            

插一句,这里u i ξ i前面的是符号,是为了和后面可以和 C 消掉,因为C = αi + μi 。不知道对不对,还请大佬指教。

所以
m a x α , μ m i n w , b , ξ L ( w , b , α , ξ , μ )                             = m a x α , μ ∑ i = 1 N α i   −   1 2 ∑ i = 1 N ∑ j = 1 N α i   α j   y i   y j   x i T   x j   = m a x α ∑ i = 1 N α i   −   1 2 ∑ i = 1 N ∑ j = 1 N α i   α j   y i   y j   x i T   x j max_{α,μ}min_{w,b,ξ}L(w,b,α,ξ,μ) ~~~~~~~~~~~~~~~~~~~~~~~~~ \\ ~= max_{α,μ} \sum_{i=1}^{N}α_i ~-~ \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}α_i~α_j~y_i~y_j~x_i^T~x_j \\ ~= max_{α} \sum_{i=1}^{N}α_i ~-~ \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}α_i~α_j~y_i~y_j~x_i^T~x_j \\ maxα,μminw,b,ξL(w,b,α,ξ,μ)                          =maxα,μi=1Nαi  21i=1Nj=1Nαi αj yi yj xiT xj =maxαi=1Nαi  21i=1Nj=1Nαi αj yi yj xiT xj

然后又因为
α i   ≥   0             μ i   ≥   0             C   =   α i   +   μ i α_i ~≥~ 0 ~~~~~~~~~~~\\ μ_i ~≥~ 0 ~~~~~~~~~~~\\ C ~=~ α_i ~+~ μ_i αi  0           μi  0           C = αi + μi
消去μ_i 可得等价约束条件为:
0   ≤   α i   ≤   C ,    i   =   1 , 2 , . . . , m 0 ~≤~ α_i ~≤~ C, ~~i ~=~ 1,2,...,m 0  αi  C,  i = 1,2,...,m



这里满足的 KTT 条件为:
{ α i   ≥   0 ,   μ i   ≥   0 , y i f ( x i )   −   1   +   ξ i   ≥   0 , α i ( y i f ( x i )   −   1   +   ξ i )   =   0 , ξ i   ≥   0 ,    μ i   ξ i   =   0 \left\{ \begin{array}{l} α_i ~≥~ 0, ~μ_i ~≥~ 0 ,\\ y_if(x_i) ~-~ 1 ~+~ ξ_i ~≥~ 0, \\ α_i(y_if(x_i) ~-~ 1 ~+~ ξ_i) ~=~ 0, \\ ξ_i ~≥~ 0, ~~μ_i~ξ_i ~=~ 0 \end{array} \right. αi  0, μi  0,yif(xi)  1 + ξi  0,αi(yif(xi)  1 + ξi) = 0,ξi  0,  μi ξi = 0
最终,原问题是
{ m i n α   1 2 ∑ i = 1 N ∑ j = 1 N α i   α j   y i   y j   x i T   x j   −   ∑ i = 1 N α i s . t . ∑ i = 1 N α i α j = 0 , 0 ≤ α i ≤ C \left\{ \begin{array}{l} min_{α} ~ \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}α_i~α_j~y_i~y_j~x_i^T~x_j ~-~ \sum_{i=1}^{N}α_i \\ s.t. \sum_{i=1}^{N}α_i α_j = 0, \\ 0 ≤ α_i ≤ C \end{array} \right. minα 21i=1Nj=1Nαi αj yi yj xiT xj  i=1Nαis.t.i=1Nαiαj=0,0αiC




Kernel SVM

经过上面对硬间隔(hard margin, 也称线性可分)和软间隔(soft margin)的学习,我们可以用SVM解决线性问题。但是非线性问题该怎么办呢?比如著名的异或问题。
前辈们想到一个好办法,把原来的数据映射(变换)到一个更高的维度,使得原来的数据可以通过超平面来划分。
这就把解决线性问题的模型拓展到了非线性的领域里去了,这种变换对应的函数称为核函数,该操作也叫核技巧(kernel trick)。

因为有些问题并不一定可以有效地求出核函数具体的表达形式,但是我们可以通过直接用核函数替换内积 xiT xj直接求出,即 要计算xiT xj,只要计算 K(xi, xj)即可,其中,K代表核函数。
前辈们总结了一些常用的核函数:

  • 多项式核: k(xi, xj) = (xiT xj + 1) d ,其中有些参考书是 k(xi, xj) = (xiT xj) d,
    ,其中, d ≥ 1为多项式的次数
  • 高斯核:
    k ( x i , x j )   =   e − ∣ ∣ x i   −   x j ∣ ∣ 2 2 σ 2 k(x_i, x_j) ~=~ e^{-\frac{|| x_i ~-~ x_j||^2}{2σ^2}} k(xi,xj) = e2σ2∣∣xi  xj2
    其中,σ > 0 为高斯核的带宽(width)
  • Sigmoid核:
    k ( x i , x j )   =   t a n h ( β   x i T   x j   +   θ ) k(x_i, x_j) ~=~ tanh(β~x_i^T~x_j ~+~ θ ) k(xi,xj) = tanh(β xiT xj + θ)
    其中,tanh为双曲正切函数,β > 0, θ < 0


  • 拉普拉斯核:
    k ( x i , x j )   =   e − ∣ ∣ x i   −   x j ∣ ∣ σ k(x_i, x_j) ~=~ e^{-\frac{|| x_i ~-~ x_j||}{σ}} k(xi,xj) = eσ∣∣xi  xj∣∣
    其中,σ > 0 为高斯核的带宽(width)



不等式约束优化问题

还没结束呢,朋友们。由于这里涉及到不等式的优化问题,这里我们稍微来研究一下这个KKT条件。

等式约束优化问题

我们先来看看满足条件是的等号的情况,这里举个例子
{ m i n f ( x ) s . t .     g ( x ) = 0 \left\{ \begin{array}{l} min f(x) \\ s.t. ~~~g(x) = 0 \end{array} \right. {minf(x)s.t.   g(x)=0
备注:f(x)一般是损失函数,而 g ( x ) = 0 g(x)=0 g(x)=0则代表需要满足的条件。

这里我们用拉格朗日乘子法,
⇒ L ( x , λ )   =   f ( x )   +   λ g ( x ) ⇒ L(x, λ) ~=~ f(x) ~+~ λg(x) L(x,λ) = f(x) + λg(x)
所以原问题是
m i n L ( x , λ )   =   f ( x )   +   λ g ( x ) min L(x, λ) ~=~ f(x) ~+~ λg(x) minL(x,λ) = f(x) + λg(x)
我们分别对x, λ求偏导, 得到
∇ x L = ∇ x f ( x )   +   λ g ( x ) = 0 ∇ λ L = g ( x ) = 0                        ∇_xL = ∇_xf(x) ~+~ λg(x) = 0 \\ ∇_λL = g(x) = 0 ~~~~~~~~~~~~~~~~~~~~~~ xL=xf(x) + λg(x)=0λL=g(x)=0                      
因此
λ   =   − ∇ x f ( x ) ∇ x g ( x ) λ ~=~ -\frac{∇ _xf(x)}{∇ _xg(x)} λ = xg(x)xf(x)




不等式约束优化问题

看完这个例子之后,我们来看看不等式约束优化问题.

{ m i n f ( x ) s . t .    g ( x ) ≤ 0 \left\{ \begin{array}{l} min f(x) \\ s.t. ~~ g(x) ≤ 0 \end{array} \right. {minf(x)s.t.  g(x)0
可行域 k = {x ∈ Rn | g(x) ≤ 0}
假设x* 满足约束条件,分两种情况来讨论:

  • g(x*) < 0, 最优解位于可行域 K 的内部,称为内部解, 此时约束是无效的
  • g(x*) = 0, 最优解位于约束边界,简称边界条件。
    ∃ λ, ∇xf = -λ∇xg, 由于 f(x) 和 g(x)梯度相反,故 λ > 0,
    此时 λ g(x) 恒等于 0, 这个也是松弛互补条件

故这个问题的KKT条件即为:
{ ∇ x f = 0 ,    ∇ λ f = 0 g ( x ) ≤ 0 λ g ( x ) = 0 λ ≥ 0 \left\{ \begin{array}{l} ∇_x f = 0, ~~∇_λ f = 0 \\ g(x) ≤ 0 \\ λg(x) = 0 \\ λ ≥ 0 \end{array} \right. xf=0,  λf=0g(x)0λg(x)=0λ0
另外这个讲解不错,值得一看: Karush-Kuhn-Tucker (KKT)条件




结语

由于公式繁多,难免错漏,欢迎读者批评指正。SVM作为机器学习很火的一个算法,觉得还是很值得花点时间学习的。


参考书籍: 《机器学习》,周志华, 清华大学出版社

你可能感兴趣的:(人工智能,支持向量机,机器学习,算法)