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=1−N线性可分是指:
∃ ( 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=1−N有:若 yi=+1,则wTxi+b≥0若 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∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1−N.
事实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=0与awTx+ab=0,a∈R+ 是同一个平面。即若 ( 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 w和b有所改变,假如原先 ∣ 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∣∣w∣∣2;此外,支持向量以外的点到平面的距离必须要 > 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+b∣≥1,故 y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b)≥1 yi(wTxi+b)≥1
批注:
- s . t . s.t. s.t.的右端的1可以是其他数值,无非是变一下 a a a。
- 二次规划问题:目标函数是二次项 && 限制条件是一次项
二次规划问题要么无解(问题不线性可分),要么只有一个极值,即局部极值即最值。
非线性模型
对于线性不可分的训练集,优化问题如下:
引入松弛变量 ξ 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∣∣w∣∣2+Ci=1∑Nξiyi(wTxi+b)≥1−ξi,i=1−N.ξi≥0,i=1−N
- 约束条件增加N个, ξ i \xi_i ξi称作松弛变量
- 每个样本点对应一个 ξ 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 ξi≤0:点在间隔边界上或之外;
- 目标函数中需要控制 ξ i \xi_i ξi都要比较小
- C ∑ i = 1 N ξ i C\sum_{i=1}^N \xi_i C∑i=1Nξi 被称作正则项 r e g u l a t i o n t e r m regulation\ term regulation term
- 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∣∣w∣∣2+Ci=1∑Nξiyi(wTϕ(xi)+b)≥1−ξi,i=1−N.ξi≥0,i=1−N
一、那么如何选取 / 求出 ϕ ( 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∣∣x1−x2∣∣2)=ϕ(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 Merces′stheorem):
① 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=1−N),有:i=1∑Nj=1∑NcicjK(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∣∣w∣∣2−Ci=1∑Nξi1+ξi−yiwTϕ(xi)−yib≤0,i=1−N.ξi≤0,i=1−N
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 x∈Rnminf(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,ξimin21∥w∥2−Ci=1∑Nξi+i=1∑Nβiξi+i=1∑Nαi(1+ξi−yiwTϕ(xi)−yib). s.t. {αi⩾0,i=1∼Nβi⩾0,i=1∼N
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. αi⩾0,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} ∂w∂L∂b∂L∂ξi∂L=w−i=1∑Nαiyiϕ(xi)=0=−i=1∑Nα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=1∑Nα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=1∑Nαi−21i=1∑Nj=1∑Nα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=1∑Nαi−21i=1∑Nj=1∑NαiαjyiyjK(xi,xjs.t.0≤αi≤C i=1∑Nαiyi=0
第一个约束条件是 α i ≥ 0 , β i ≥ 0 , α i + β i = C 合并而来 \alpha_i\geq0,\beta_i\geq0,\alpha_i+\beta_i=C合并而来 αi≥0,βi≥0,αi+βi=C合并而来
第二个约束来自于上述推导过程
此优化问题可通过 S M O SMO SMO算法求解出 α \alpha α
4、该求参数w和b了,还是说可以不用求直接做出决策?
此时,我们需要求 w 和 b w和b w和b,已知 w = ∑ i = 1 N α i y i ϕ ( x i ) w = \sum\limits_{i=1}^N \alpha_iy_i\phi(x_i) w=i=1∑Nα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=1∑Nα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=1−K,要么α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=yi1−yij=1∑Nα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=1∑Nαi−21i=1∑Nj=1∑NαiαjyiyjK(xi,xjs.t.0≤αi≤C i=1∑Nα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=yi1−yij=1∑Nα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=1∑NαiyiK(xi,x)+b)
完结撒花。