SVM(支持向量机)原理及数学推导

决策平面

在样本空间中,超平面可以用以下线性方程描述:

(1) w T x + b = 0 \tag{1} \bold{w^Tx} + b = 0 wTx+b=0(1)

其中 w = [ w 1    w 2    . . .    w m ] \bold w = [w_1 \ \ w_2 \ \ ... \ \ w_m] w=[w1  w2  ...  wm]为平面的法向量,b为位移项,决定了超平面与原点的距离。

假设样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) ,   y i ∈ { + 1 , − 1 } } D=\{(\bold x_1, y_1), (\bold x_2, y_2), ...,(\bold x_m, y_m) , \ y_i \in \{+1, -1\} \} D={(x1,y1),(x2,y2),...,(xm,ym), yi{+1,1}}线性可分,即存在一个决策平面能够将样本分为正类和负类,使得对于任意的样本 ( x i , y i ) (\bold x_i, y_i) (xi,yi)都有

(2) { w T x i + b ≥ 0 ,   y i = + 1 w T x i + b &lt; 0 ,   y i = − 1 \tag{2} \begin{cases} \bold{w^Tx_i}+b \geq 0, \ y_i=+1\\ \\ \bold{w^Tx_i}+b &lt; 0, \ y_i=-1 \end{cases} wTxi+b0, yi=+1wTxi+b<0, yi=1(2)

亦即

(3) y i ( w T x i + b ) ≥ 0 \tag{3} y_i(\bold{w^Tx_i}+b) \geq 0 yi(wTxi+b)0(3)

同时,我们还希望两类样本到直线的距离尽可能大。

样本空间中的任一点xi到平面 w T x + b = 0 \bold{w^Tx}+b=0 wTx+b=0的距离为:

(4) r = ∣ w T x i + b ∣ ∣ ∣ w ∣ ∣ \tag{4} r = \frac{|\bold{w^Tx_i}+b|}{||\bold w||} r=wwTxi+b(4)

如果决策平面能够正确的分类所有样本,则样本空间内的任意点 ( x i , y i ) (\bold{x_i}, y_i) (xi,yi)到决策平面的距离可以表示为:

(5) r = y i ( w T x i + b ) ∣ ∣ w ∣ ∣ \tag{5} r = \frac{y_i(\bold{w^Tx_i}+b)}{||\bold w||} r=wyi(wTxi+b)(5)

样本空间中距离决策平面最近的点为 ( x a , y a ) (\bold{x_a}, y_a) (xa,ya),因为距离受到法向量长度的影响可以缩放,因此为了计算方便,添加约束条件使

(6) y a ( w T x a + b ) = 1 \tag{6} y_a(\bold{w^Tx_a}+b)=1 ya(wTxa+b)=1(6)

因此如果该平面能够区分正类和负类的样本,则应满足对于样本空间内的任一点xi,都有:

(7) y i ( w T x i + b ) ≥ 1 \tag{7} y_i(\bold{w^Tx_i}+b) \geq 1 yi(wTxi+b)1(7)

距离直线最近的两个异类的点到决策平面的距离之和称为“间隔”,根据式 (5) (7) 可以得出,决策平面到正类和负类的最大间隔为:

(8) γ = 2 ∣ ∣ w ∣ ∣ \tag{8} \gamma = \frac{2}{||\bold w||} γ=w2(8)

这两个点所在的与决策平面平行的平面则成为最大间隔边界,而我们要是这个间隔最大化,找到最大间隔边界,因此得到我们的优化问题:

(9) m a x w , b 2 ∣ ∣ w ∣ ∣ s . t .   y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m \tag{9} \underset{\bold w,b}{max} \frac{2}{||\bold w||} \quad s.t. \ y_i(\bold{w^Tx_i}+b) \geq 1, i=1,2,...,m w,bmaxw2s.t. yi(wTxi+b)1,i=1,2,...,m(9)

由于本质上就是要最大化 ∣ ∣ w ∣ ∣ ||w|| w,因此问题可以重写为:

(10) m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t .   y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m \tag{10} \underset{\bold w,b}{min} \frac{1}{2}||\bold w||^2 \quad s.t. \ y_i(\bold{w^Tx_i}+b) \geq 1, i=1,2,...,m w,bmin21w2s.t. yi(wTxi+b)1,i=1,2,...,m(10)

这就是SVM的基本优化问题

对偶问题

式子(9)是一个凸二次规划问题。使用拉格朗日乘数法,对其每条约束添加拉格朗日乘数 α i ≥ 0 \alpha_i \geq 0 αi0,则该问题的拉格朗日函数为:

(11) L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − Σ i = 1 m α i ( y i ( w T x + b ) − 1 ) \tag{11} L(\bold w,b,\bold \alpha)=\frac{1}{2}||\bold w||^2-\Sigma_{i=1}^m \alpha_i(y_i(\bold {w^Tx}+b)-1) L(w,b,α)=21w2Σi=1mαi(yi(wTx+b)1)(11)

对(10)中w和b求偏导,令导数为0,可得:

(12) w = Σ i = 1 m α i y i x i \tag{12} \bold w = \Sigma_{i=1}^m\alpha_i y_i x_i w=Σi=1mαiyixi(12)

(13) 0 = Σ i = 1 m α i y i \tag{13} 0 = \Sigma_{i=1}^m\alpha_i y_i 0=Σi=1mαiyi(13)

将(12)带入(11)中,消去w,b,得到关于 α \alpha α的优化问题:

(14) m a x α   Σ i = i m α i − 1 2 Σ i = 1 m Σ j = 1 m α i α j y i y j x i T x j s . t .   Σ i = 1 m α i y i = 0 α i ≥ 0 ,   i = 1 , 2 , . . . , m \tag{14} \underset{\bold{\alpha}}{max} \ \Sigma_{i=i}^m\alpha_i-\frac{1}{2} \Sigma_{i=1}^m \Sigma_{j=1}^m \alpha_i \alpha_j y_i y_j \bold{x_i^T x_j} \\ s.t. \ \Sigma_{i=1}^m\alpha_i y_i=0\\ \alpha_i \geq 0,\ i = 1,2,...,m αmax Σi=imαi21Σi=1mΣj=1mαiαjyiyjxiTxjs.t. Σi=1mαiyi=0αi0, i=1,2,...,m(14)

其中 α = ( α 1 , α 2 , . . . , α m ) \bold{\alpha}=(\alpha_1,\alpha_2,...,\alpha_m) α=(α1,α2,...,αm)

求解 α \alpha α后,即可进一步求出w,b的值,得到模型:

(14) f ( x ) = w T x + b = Σ i = 1 m α i y i x i T x + b \tag{14} \begin{aligned} f(x) &amp;= \bold {w^Tx}+b \\&amp; = \Sigma_{i=1}^m \alpha_i y_i \bold {x_i^Tx}+b \end{aligned} f(x)=wTx+b=Σi=1mαiyixiTx+b(14)

(9)中的优化不等式中存在不等式约束,因此上述过程还需要KKT(Karush-Kuhn-Tucker)条件:

(15) { α i ≥ 0 ; y i ( w T x + b ) − 1 ≥ 0 α i ( y i ( w T x + b ) − 1 ) = 0 \tag{15} \begin{cases} \alpha_i \geq 0;\\ y_i(\bold{w^Tx}+b) - 1 \geq 0\\ \alpha_i(y_i(\bold{w^Tx}+b)-1) = 0 \end{cases} αi0;yi(wTx+b)10αi(yi(wTx+b)1)=0(15)

根据KKT条件中的 α i ( y i ( w T x + b ) − 1 ) = 0 \alpha_i(y_i(\bold{w^Tx}+b)-1) = 0 αi(yi(wTx+b)1)=0可知,对于任意训练样本 ( x i , y i ) (\bold{x_i}, y_i) (xi,yi),总有 α i = 0 \alpha_i = 0 αi=0 y i ( w T x i + b ) − 1 = 0 y_i(\bold{w^Tx_i}+b)-1=0 yi(wTxi+b)1=0,而 α i = 0 \alpha_i = 0 αi=0意味着对应的样本不会对最终的结果产生影响,只有使 w T x i + b = 1 \bold{w^Tx_i}+b=1 wTxi+b=1的样本才会对最终结果产生影响,而这样的样本正是(4)(5)中出现在最大间隔边界上、使得不等式(6)取得等号的样本。决策平面由这几个样本决定,因此我们将出现在最大间隔边界上的样本 称为支持向量,这也是SVM支持向量机名字的由来。

核函数

之前的讨论中我们都假设样本是线性可分的,但是很多时候并不存在一个决策平面能将样本正确划分。对于这样的问题,可以将样本从原始特征空间映射到一个更高维的特征空间,从而使得样本在新的高维特征空间内线性可分。

ϕ ( x ) \phi(\bold x) ϕ(x)表示将 x \bold x x映射后的特征向量,则新的模型可以表示为:

(16) f ( x ) = w T ϕ ( x ) + b \tag{16} f(x) = \bold{w^T\phi(x)}+b f(x)=wTϕ(x)+b(16)

类似(10),有优化问题

(17) m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t .   y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m \tag{17} \underset{\bold w,b}{min} \frac{1}{2}||\bold w||^2 \quad s.t. \ y_i(\bold{w^Tx_i}+b) \geq 1, i=1,2,...,m w,bmin21w2s.t. yi(wTxi+b)1,i=1,2,...,m(17)

其对偶问题为:
(18) m a x α   Σ i = i m α i − 1 2 Σ i = 1 m Σ j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) s . t .   Σ i = 1 m α i y i = 0 α i ≥ 0 ,   i = 1 , 2 , . . . , m . \tag{18} \underset{\bold{\alpha}}{max} \ \Sigma_{i=i}^m\alpha_i-\frac{1}{2} \Sigma_{i=1}^m \Sigma_{j=1}^m \alpha_i \alpha_j y_i y_j \bold{\phi(x_i)^T \phi(x_j)} \\ s.t. \ \Sigma_{i=1}^m\alpha_i y_i=0\\ \alpha_i \geq 0,\ i = 1,2,...,m. αmax Σi=imαi21Σi=1mΣj=1mαiαjyiyjϕ(xi)Tϕ(xj)s.t. Σi=1mαiyi=0αi0, i=1,2,...,m.(18)

由于(18)的计算中涉及到 ϕ ( x i ) T ϕ ( x j ) \bold{\phi(x_i)^T \phi(x_j)} ϕ(xi)Tϕ(xj),由于映射到高维特征空间后 ϕ ( x i ) \bold{\phi(x_i)} ϕ(xi) ϕ ( x j ) \bold{\phi(x_j)} ϕ(xj)的维度可能很高,因此内积的计算可能会很困难。为了简化计算,我们引入一个函数,使:
(19) κ ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) \tag{19} \kappa(\bold{x_i, x_j}) = \bold{\phi(x_i)^T \phi(x_j)} κ(xi,xj)=ϕ(xi)Tϕ(xj)(19)

这样就避开了高维向量内积的计算,式(18)可以重写成:
(20) m a x α   Σ i = i m α i − 1 2 Σ i = 1 m Σ j = 1 m α i α j y i y j κ ( x i , x j ) s . t .   Σ i = 1 m α i y i = 0 α i ≥ 0 ,   i = 1 , 2 , . . . , m . \tag{20} \underset{\bold{\alpha}}{max} \ \Sigma_{i=i}^m\alpha_i-\frac{1}{2} \Sigma_{i=1}^m \Sigma_{j=1}^m \alpha_i \alpha_j y_i y_j \kappa(\bold{x_i, x_j}) \\ s.t. \ \Sigma_{i=1}^m\alpha_i y_i=0\\ \alpha_i \geq 0,\ i = 1,2,...,m. αmax Σi=imαi21Σi=1mΣj=1mαiαjyiyjκ(xi,xj)s.t. Σi=1mαiyi=0αi0, i=1,2,...,m.(20)

求解后得到
(21) f ( x ) = w T ϕ ( x ) + b = Σ i = 1 m α i y i κ ( x , x i ) + b \tag{21} \begin{aligned} f(x) &amp;= \bold {w^T\phi(x)}+b \\&amp; = \Sigma_{i=1}^m \alpha_i y_i \kappa(\bold{x, x_i})+b \end{aligned} f(x)=wTϕ(x)+b=Σi=1mαiyiκ(x,xi)+b(21)

这里的 κ ( ⋅ ) \kappa(\cdot) κ()就是核函数。

常用的核函数有:

  • 线性核 κ ( x i , x j ) = x i T x j \kappa(\bold{x_i, x_j}) = \bold{x_i^T x_j} κ(xi,xj)=xiTxj
  • 多项式核 κ ( x i , x j ) = ( x i T x j ) d \kappa(\bold{x_i, x_j}) = \bold{(x_i^T x_j)}^d κ(xi,xj)=(xiTxj)d
  • 高斯核 κ ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ 2 2 ) \kappa(\bold{x_i, x_j}) = exp(\frac{-\bold{||x_i - x_j||}^2}{2}) κ(xi,xj)=exp(2xixj2)
  • 拉普拉斯核 κ ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ σ ) \kappa(\bold{x_i, x_j}) = exp(\frac{-\bold{||x_i - x_j||}}{\sigma}) κ(xi,xj)=exp(σxixj)
  • Sigmoid核 κ ( x i , x j ) = t a n h ( β x i T x j + θ ) \kappa(\bold{x_i, x_j}) = tanh(\beta \bold{x_i^T x_j}+ \theta) κ(xi,xj)=tanh(βxiTxj+θ)

软间隔SVM

显示任务中很难找到合适的核函数使训练样本在特征空间中线性可分,因此需要允许SVM在一些样本上出错。引入“软间隔”,允许某些样本不满足 y i ( w T x i + b ) ≥ 1 y_i(\bold {w^Tx_i}+b) \ge 1 yi(wTxi+b)1,优化目标可写为:
m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C Σ i = 1 m l 0 / 1 y i ( w T x i + b ) − 1 ) s . t .   y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m \underset{\bold w,b}{min} \frac{1}{2}||\bold w||^2 +C\Sigma_{i=1}^ml_{0/1}y_i(\bold {w^Tx_i}+b)-1) \quad s.t. \ y_i(\bold{w^Tx_i}+b) \geq 1, i=1,2,...,m w,bmin21w2+CΣi=1ml0/1yi(wTxi+b)1)s.t. yi(wTxi+b)1,i=1,2,...,m
其中 C &gt; 0 C&gt;0 C>0,是一个常数, l 0 / 1 l_{0/1} l0/1是0/1损失函数,
l 0 / 1 ( x ) = { 1 , x &lt; 0 0 , o t h e r w i s e l_{0/1}(x)= \begin{cases} 1, x&lt;0 \\ 0, otherwise \end{cases} l0/1(x)={1,x<00,otherwise
由于 l 0 / 1 l_{0/1} l0/1数学性质不好,非凸、非连续,因此常用hinge loss替代。
l h i n g e ( x ) = m a x ( 0 , 1 − x ) l_{hinge}(x)=max(0, 1-x) lhinge(x)=max(0,1x)

损失函数变为:

m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C Σ i = 1 m m a x ( 0 , 1 − y i ( w T x i + b ) ) \underset{\bold w,b}{min} \frac{1}{2}||\bold w||^2 +C\Sigma_{i=1}^m max(0, 1-y_i(\bold {w^Tx_i}+b)) \quad w,bmin21w2+CΣi=1mmax(0,1yi(wTxi+b))

引入松弛变量 ξ i ≥ 0 \xi_i \ge 0 ξi0,目标函数变为:
m i n w , b , ξ i 1 2 ∣ ∣ w ∣ ∣ 2 + C Σ i = 1 m ξ i s . t . y i ( w T x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 , i = 1 , 2 , . . . , m \underset{w,b,\xi_i}{min}\frac{1}{2}||\bold w||^2+C\Sigma_{i=1}^m \xi_i \\ \begin{aligned} s.t. \quad &amp;y_i(\bold {w^Tx_i}+b) \ge 1-\xi_i, \\ &amp;\xi_i \ge 0, i=1,2,...,m \end{aligned} w,b,ξimin21w2+CΣi=1mξis.t.yi(wTxi+b)1ξi,ξi0,i=1,2,...,m
C越大,表示约束越重要,C为无穷大时所有样本均满足约束;C有限是,允许一些样本不满足约束。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值