SVM完整推导笔记

发布于:2023-02-15 ⋅ 阅读:(688) ⋅ 点赞:(0)

SVM

线性模型

一、如何从图形层面找出分类边界?

我们画出一条分类边界,然后将边界向两侧平移接触到一个或同时接触到多个分类点 ( 支持向量 s u p p o r t   v e c t o r ) (支持向量support\ vector) (支持向量support vector) 为止,此时两条平行线之间的距离称作间隔 m a r g i n margin margin,然后我们所要找的边界即为使间隔最大的那两条边界的中线。

二、何为线性可分?

一个训练集 { ( x i , y i ) } i = 1 − N \{(x_i,y_i)\}_{i=1-N} {(xi,yi)}i=1N线性可分是指:
∃ ( w , b ) 使:对于 ∀   i = 1 − N 有: 若  y i = + 1 , 则 w T x i + b ≥ 0 若  y i = − 1 , 则 w T x i + b < 0 即  y i ( w T x i + b ) ≥ 0 \begin{equation} \begin{split} \exists (w,b)使:对于\forall \ i=1-N有:\\ 若\ y_i=+1,则w^Tx_i+b≥0\\ 若\ y_i=-1,则w^Tx_i+b<0\\ 即\ y_i(w^Tx_i+b)≥0 \end{split} \end{equation} (w,b)使:对于 i=1N有: yi=+1,wTxi+b0 yi=1,wTxi+b<0 yi(wTxi+b)0

三、求线性可分数据的划分超平面 ( h y p e r p l a n e ) w T x + b = 0 (hyperplane) \quad w^Tx+b=0\quad (hyperplane)wTx+b=0如何转化为如下凸优化问题?如何从图形形象层面转化为数学语言描述的?

(凸优化问题,二次规划问题(凸优化的一种))
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 − N . \begin{equation} \begin{split} & \min_{w,b} \frac{1}{2}||w||^2\\ & s.t.\quad y_i(w^Tx_i+b)≥1, \quad i=1-N. \end{split} \end{equation} w,bmin21∣∣w2s.t.yi(wTxi+b)1,i=1N.

事实1 w T x + b = 0 与 a w T x + a b = 0 , a ∈ R + w^Tx+b=0与aw^Tx+ab=0,a\in R^+ wTx+b=0awTx+ab=0,aR+ 是同一个平面。即若 ( w , b ) (w,b) (w,b)满足公式 ( 1 ) (1) (1),那么 ( a w , a b ) (aw,ab) (aw,ab)也满足公式 ( 1 ) (1) (1)
事实2:空间一点 x x x到超平面 ( w , b ) (w,b) (w,b)的距离为: d = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ d=\frac{|w^Tx+b|}{||w||} d=∣∣w∣∣wTx+b

我们可以用a去缩放 ( w , b ) − > ( a w , a b ) (w,b)->(aw,ab) (w,b)>(aw,ab),最终使在所有支持向量 x 0 x_0 x0上有 ∣ w T x 0 + b ∣ = 1 |w^Tx_0+b|=1 wTx0+b=1,此时支持向量 x 0 x_0 x0与平面的距离 d = 1 ∣ ∣ w ∣ ∣ d=\frac{1}{||w||} d=∣∣w∣∣1

改变 a a a,划分超平面不变,但 w 和 b w和b wb有所改变,假如原先 ∣ w T x 0 + b ∣ = β |w^Tx_0+b|=\beta wTx0+b=β,那么此处只需令 a = 1 / β a=1/\beta a=1/β即可实现 ∣ w T x 0 + b ∣ = 1 |w^Tx_0+b|=1 wTx0+b=1

所以要想让间隔 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} ∣∣w∣∣2更大,只需 min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 \min\limits_{w,b}\frac{1}{2}||w||^2 w,bmin21∣∣w2;此外,支持向量以外的点到平面的距离必须要 > 1 >1 >1,而且要满足训练样本线性可分(公式(1)),故需满足条件 y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b)≥1 yi(wTxi+b)1

首先 y i ( w T x i + b ) ≥ 0 y_i(w^Tx_i+b)≥0 yi(wTxi+b)0,其次由于 ∣ w T x i + b ∣ ≥ 1 |w^Tx_i+b|≥1 wTxi+b1,故 y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b)≥1 yi(wTxi+b)1

批注:

  1. s . t . s.t. s.t.的右端的1可以是其他数值,无非是变一下 a a a
  2. 二次规划问题:目标函数是二次项 && 限制条件是一次项
    二次规划问题要么无解(问题不线性可分),要么只有一个极值,即局部极值即最值。

非线性模型

对于线性不可分的训练集,优化问题如下:

引入松弛变量 ξ i \xi_i ξi

先引入松弛变量 ξ i \xi_i ξi,此时可解决训练集非线性可分(决策边界
仍然是线性的,但找不到一条直线分开所有训练集)的情况。

min ⁡ w , b , ξ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i s . t . y i ( w T x i + b ) ≥ 1 − ξ i , i = 1 − N . ξ i ≥ 0 , i = 1 − N \begin{equation} \begin{split} & \min_{w,b,\xi} \frac{1}{2}||w||^2 + C\sum_{i=1}^N \xi _i \\ s.t. \quad & y_i(w^Tx_i+b)≥1 - \xi_i, \quad i=1-N.\\ & \xi _i ≥0, \quad i=1-N \end{split} \end{equation} s.t.w,b,ξmin21∣∣w2+Ci=1Nξiyi(wTxi+b)1ξi,i=1N.ξi0,i=1N

  1. 约束条件增加N个, ξ i \xi_i ξi称作松弛变量
  2. 每个样本点对应一个 ξ i \xi_i ξi ξ i > 1 \xi_i>1 ξi>1:分类错误; ξ i = 1 \xi_i=1 ξi=1:在分类超平面上; ξ i ∈ ( 0 , 1 ) \xi_i \in (0,1) ξi(0,1):分类正确但确信度不是最大; ξ i ≤ 0 \xi_i≤0 ξi0:点在间隔边界上或之外;
  3. 目标函数中需要控制 ξ i \xi_i ξi都要比较小
  4. C ∑ i = 1 N ξ i C\sum_{i=1}^N \xi_i Ci=1Nξi 被称作正则项 r e g u l a t i o n   t e r m regulation\ term regulation term
  5. C C C是事先设定的参数,称作惩罚参数, C > 0 C>0 C>0

引入高维映射函数 ϕ ( x ) \phi(x) ϕ(x)

进一步引入高维映射 ϕ ( x ) \phi(x) ϕ(x)
x − > ϕ ( x ) 低维 − > 高维 x -> \phi(x) \quad低维 -> 高维 x>ϕ(x)低维>高维

那么优化问题变成:
min ⁡ w , b , ξ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i s . t . y i ( w T ϕ ( x i ) + b ) ≥ 1 − ξ i , i = 1 − N . ξ i ≥ 0 , i = 1 − N \begin{equation} \begin{split} & \min_{w,b,\xi} \frac{1}{2}||w||^2 + C\sum_{i=1}^N \xi _i \\ s.t. \quad & y_i(w^T\phi(x_i)+b)≥1 - \xi_i, \quad i=1-N.\\ & \xi_i ≥0, \quad i=1-N \end{split} \end{equation} s.t.w,b,ξmin21∣∣w2+Ci=1Nξiyi(wTϕ(xi)+b)1ξi,i=1N.ξi0,i=1N

一、那么如何选取 / 求出 ϕ ( x ) \phi(x) ϕ(x)? 不用求!

首先 ϕ ( x ) \phi(x) ϕ(x)常是无限维伴随着,你需要求出无限维的 w w w,那么该优化问题无法求解。
那么精髓来了,利用一个有限维的手段做出了无限维的 ϕ ( x ) \phi(x) ϕ(x):
我们可以不知道无限维映射 ϕ ( x ) \phi(x) ϕ(x)的显示表达,我们只要知道一个核函数 K e r n e l   F u n c t i o n Kernel\ Function Kernel Function:
K ( x 1 , x 2 ) = ϕ ( x 1 ) T ϕ ( x 2 ) K(x_1,x_2) = \phi(x_1)^T\phi(x_2) K(x1,x2)=ϕ(x1)Tϕ(x2)

那么上述优化问题仍然可解。

注:核函数的自变量 x 1 , x 2 x_1,x_2 x1,x2是低维向量,核函数的结果是两个无限维向量 ϕ ( x 1 ) , ϕ ( x 2 ) \phi(x_1),\phi(x_2) ϕ(x1),ϕ(x2)的内积(一个数)。

常用核函数:
高斯核 K ( x 1 , x 2 ) = e x p ( − ∣ ∣ x 1 − x 2 ∣ ∣ 2 2 σ 2 ) = ϕ ( x 1 ) T ϕ ( x 2 ) 高斯核 \quad K(x_1,x_2) = exp(-\frac{||x_1-x_2||^2}{2\sigma^2})=\phi(x_1)^T\phi(x_2) 高斯核K(x1,x2)=exp(2σ2∣∣x1x22)=ϕ(x1)Tϕ(x2)

多项式核 K ( x 1 , x 2 ) = ( x 1 T x 2 + 1 ) d = ϕ ( x 1 ) T ϕ ( x 2 ) 多项式核 \quad K(x_1,x_2) = (x_1^Tx_2+1)^d=\phi(x_1)^T\phi(x_2) 多项式核K(x1,x2)=(x1Tx2+1)d=ϕ(x1)Tϕ(x2)

根据证明,高斯核可拆分为无限维度的 ϕ ( x 1 ) T ϕ ( x 2 ) \phi(x_1)^T\phi(x_2) ϕ(x1)Tϕ(x2),我们只需要知道 K K K,并不需要知道 ϕ ( x ) \phi(x) ϕ(x)的具体形式。多项式h核可拆分为有限维度吧。

K ( x 1 , x 2 ) K(x_1,x_2) K(x1,x2)能写成 ϕ ( x 1 ) T ϕ ( x 2 ) \phi(x_1)^T\phi(x_2) ϕ(x1)Tϕ(x2)的充要条件( M e r c e s ′ s t h e o r e m Merces's theorem Mercesstheorem):
K ( x 1 , x 2 ) = K ( x 2 , x 1 ) ( 交换性 ) K(x_1,x_2) = K(x_2,x_1) \quad (交换性) K(x1,x2)=K(x2,x1)(交换性)
∀ c i , x i ( i = 1 − N ) , 有 : ∑ i = 1 N ∑ j = 1 N c i c j K ( x i , x j ) ≥ 0 ( 半正定性 ) \forall c_i,x_i (i=1-N),有:\sum\limits_{i=1}^N \sum\limits_{j=1}^N c_ic_jK(x_i,x_j) ≥0 \quad(半正定性) ci,xi(i=1N),:i=1Nj=1NcicjK(xi,xj)0(半正定性)

二、如何求优化问题(式( 4 4 4))(利用核函数 K K K)?

1、先根据对偶理论中原问题 ( p r i m e   p r o b l e m ) (prime\ problem) (prime problem)形式,转化一下优化问题(4):
min ⁡ w , b , ξ 1 2 ∣ ∣ w ∣ ∣ 2 − C ∑ i = 1 N ξ i s . t . 1 + ξ i − y i w T ϕ ( x i ) − y i b ≤ 0 , i = 1 − N . ξ i ≤ 0 , i = 1 − N \begin{equation} \begin{split} & \min_{w,b,\xi} \frac{1}{2}||w||^2 - C\sum_{i=1}^N \xi _i \\ s.t. \quad & 1+\xi_i-y_iw^T\phi(x_i)-y_ib \leq 0 , \quad i=1-N.\\ & \xi_i \leq 0, \quad i=1-N \end{split} \end{equation} s.t.w,b,ξmin21∣∣w2Ci=1Nξi1+ξiyiwTϕ(xi)yib0,i=1N.ξi0,i=1N

P问题:
min ⁡ x ∈ R n f ( x ) s . t . c i ( x ) ⩽ 0 , i = 1 , 2 , ⋯   , k h j ( x ) = 0 , j = 1 , 2 , ⋯   , l \min\limits_{x \in \mathbf{R}^{n}} f(x) \\s.t. \quad c_{i}(x) \leqslant 0, \quad i=1,2, \cdots, k\\ \quad \quad h_{j}(x)=0, \quad j=1,2, \cdots, l xRnminf(x)s.t.ci(x)0,i=1,2,,khj(x)=0,j=1,2,,l

2、将原问题转为对偶问题 ( d u a l   p r o b l e m ) (dual\ problem) (dual problem)
max ⁡ α , β θ ( α , β ) = max ⁡ α , β min ⁡ w , b , ξ i 1 2 ∥ w ∥ 2 − C ∑ i = 1 N ξ i + ∑ i = 1 N β i ξ i + ∑ i = 1 N α i ( 1 + ξ i − y i w T ϕ ( x i ) − y i b ) .  s.t.  { α i ⩾ 0 , i = 1 ∼ N β i ⩾ 0 , i = 1 ∼ N \begin{equation} \begin{split} & \max_{\alpha,\beta} \theta(\alpha, \beta)=\max_{\alpha,\beta} \min_{w, b , \xi_{i}} \frac{1}{2}\|w\|^{2}-C\sum_{i=1}^{N} \xi_{i}+\sum_{i=1}^{N} \beta_{i} \xi_{i}+\sum_{i=1}^{N} \alpha_{i}\left(1+\xi_{i}-y_{i} w^T\phi\left(x_{i}\right)-y_{i} b\right).\\ & \text { s.t. }\left\{\begin{array}{l} \alpha_{i} \geqslant 0 ,\quad i=1 \sim N \\ \beta_{i} \geqslant 0 ,\quad i=1 \sim N \end{array}\right. \end{split} \end{equation} α,βmaxθ(α,β)=α,βmaxw,b,ξimin21w2Ci=1Nξi+i=1Nβiξi+i=1Nαi(1+ξiyiwTϕ(xi)yib). s.t. {αi0,i=1Nβi0,i=1N

D问题:
max ⁡ α , β θ D ( α , β ) = max ⁡ α , β min ⁡ x L ( x , α , β )  s.t.  α i ⩾ 0 , i = 1 , 2 , ⋯   , k \begin{array}{c} \max\limits_{\alpha, \beta} \theta_{D}(\alpha, \beta)=\max \limits_{\alpha, \beta} \min\limits_{x} L(x, \alpha, \beta) \\ \text { s.t. } \alpha_{i} \geqslant 0, \quad i=1,2, \cdots, k \end{array} α,βmaxθD(α,β)=α,βmaxxminL(x,α,β) s.t. αi0,i=1,2,,k

那么欲求对偶问题的解,先求 min ⁡ w , b , ξ i L ( w , b , ξ i , α , β ) \min\limits_{w,b,\xi_i}L(w,b,\xi_i,\alpha,\beta) w,b,ξiminL(w,b,ξi,α,β),那么需要求偏导:
∂ L ∂ w = w − ∑ i = 1 N α i y i ϕ ( x i ) = 0 ∂ L ∂ b = − ∑ i = 1 N α i y i = 0 ∂ L ∂ ξ i = − C + β i + α i = 0 \begin{equation} \begin{split} \frac{\partial L}{\partial w} &= w - \sum_{i=1}^N \alpha_iy_i\phi(x_i)= 0 \\ \frac{\partial L}{\partial b} &= - \sum_{i=1}^N \alpha_iy_i = 0 \\ \frac{\partial L}{\partial \xi_i} &= -C + \beta_i + \alpha_i= 0 \end{split} \end{equation} wLbLξiL=wi=1Nαiyiϕ(xi)=0=i=1Nαiyi=0=C+βi+αi=0

所以 w = ∑ i = 1 N α i y i ϕ ( x i ) α i + β i = C 所以w = \sum_{i=1}^N \alpha_iy_i\phi(x_i) \\ \alpha_i+\beta_i=C 所以w=i=1Nαiyiϕ(xi)αi+βi=C

将上述代入式子 ( 6 ) (6) (6):
在这里插入图片描述

θ ( α , β ) = min ⁡ L = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) \theta(\alpha,\beta) = \min L = \sum\limits_{i=1}^{N}\alpha_i - \frac{1}{2}\sum\limits_{i=1}^{N}\sum\limits_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j) θ(α,β)=minL=i=1Nαi21i=1Nj=1NαiαjyiyjK(xi,xj)

3、将对偶问题(6)变成
max ⁡ α θ ( α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j s . t . 0 ≤ α i ≤ C       ∑ i = 1 N α i y i = 0 \max_\alpha \theta(\alpha) = \sum\limits_{i=1}^{N}\alpha_i - \frac{1}{2}\sum\limits_{i=1}^{N}\sum\limits_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j \\ s.t.\qquad 0\leq\alpha_i\leq C \\ \qquad \ \ \ \ \ \sum_{i=1}^N\alpha_iy_i=0 αmaxθ(α)=i=1Nαi21i=1Nj=1NαiαjyiyjK(xi,xjs.t.0αiC     i=1Nαiyi=0

第一个约束条件是 α i ≥ 0 , β i ≥ 0 , α i + β i = C 合并而来 \alpha_i\geq0,\beta_i\geq0,\alpha_i+\beta_i=C合并而来 αi0,βi0,αi+βi=C合并而来
第二个约束来自于上述推导过程
此优化问题可通过 S M O SMO SMO算法求解出 α \alpha α

4、该求参数w和b了,还是说可以不用求直接做出决策?
此时,我们需要求 w 和 b w和b wb,已知 w = ∑ i = 1 N α i y i ϕ ( x i ) w = \sum\limits_{i=1}^N \alpha_iy_i\phi(x_i) w=i=1Nαiyiϕ(xi),那么我们还是需要求 ϕ ( x ) \phi(x) ϕ(x),对吗?不对。
因为我们决策时,类别 y y y
y = s i g n ( w T ϕ ( x ) + b ) = s i g n ( ∑ i = 1 N α i y i K ( x i , x ) + b ) y=sign(w^T \phi(x)+b) = sign(\sum_{i=1}^N \alpha_iy_iK(x_i,x)+b) y=sign(wTϕ(x)+b)=sign(i=1NαiyiK(xi,x)+b)

所以无需通过 ϕ ( x ) \phi(x) ϕ(x) w w w,利用 K ( x i , x ) K(x_i,x) K(xi,x)即可,然后求出 b b b即可。

5、那么如何求 b b b
根据 K K T KKT KKT的对偶互补条件: ∀ i = 1 − K , 要么 α i ∗ = 0 , 要么 c i ( x ∗ ) = 0 \forall i=1-K,要么\alpha_i^*=0,要么c_i(x^*)=0 i=1K,要么αi=0,要么ci(x)=0
取一个 0 < α i < C 0<\alpha_i<C 0<αi<C,根据式子(5),两个约束条件变为等式,据此得到:
b = 1 − y i ∑ j = 1 N α i y i K ( x i , x j ) y i b = \frac{1-y_i\sum\limits_{j=1}^{N}\alpha_iy_iK(x_i,x_j) }{y_i} b=yi1yij=1NαiyiK(xi,xj)

三、 S V M SVM SVM算法整体流程

1、训练流程
输入N个训练样本 ( x i , y i ) {(x_i,y_i)} (xi,yi),解优化问题,解得 α \alpha α:
max ⁡ α θ ( α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j s . t . 0 ≤ α i ≤ C       ∑ i = 1 N α i y i = 0 \max_\alpha \theta(\alpha) = \sum\limits_{i=1}^{N}\alpha_i - \frac{1}{2}\sum\limits_{i=1}^{N}\sum\limits_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j \\ s.t.\qquad 0\leq\alpha_i\leq C \\ \qquad \ \ \ \ \ \sum_{i=1}^N\alpha_iy_i=0 αmaxθ(α)=i=1Nαi21i=1Nj=1NαiαjyiyjK(xi,xjs.t.0αiC     i=1Nαiyi=0

取一个 0 < α i < C 0<\alpha_i<C 0<αi<C,计算 b b b
b = 1 − y i ∑ j = 1 N α i y i K ( x i , x j ) y i b = \frac{1-y_i\sum\limits_{j=1}^{N}\alpha_iy_iK(x_i,x_j) }{y_i} b=yi1yij=1NαiyiK(xi,xj)

注:现实中取所有满足 α i ∈ ( 0 , C ) \alpha_i \in (0,C) αi(0,C) α i \alpha_i αi,求出 b b b的平均值

2、测试流程
输入测试样本 x x x
y = s i g n ( w T ϕ ( x ) + b ) = s i g n ( ∑ i = 1 N α i y i K ( x i , x ) + b ) y=sign(w^T \phi(x)+b) = sign(\sum_{i=1}^N \alpha_iy_iK(x_i,x)+b) y=sign(wTϕ(x)+b)=sign(i=1NαiyiK(xi,x)+b)

完结撒花。


网站公告

今日签到

点亮在社区的每一天
去签到