机器学习-SVM支持向量机模型详解

SVM

  • SVM设计初衷
  • 有关概念
  • SVM分类
  • hard-margin SVM算法
    • 目的
    • 公式
    • 对偶问题引出
      • 目的
      • 公式推导关键步骤
      • 求解对偶问题
      • KKT条件
  • soft-margin SVM算法
    • 思想
  • 应用场景
  • 代码实现示例
  • 优缺点

SVM设计初衷

解决二分类问题

有关概念

机器学习-SVM支持向量机模型详解_第1张图片
线性可分:上图中+与-分别代表两类数据,而这图中的直线可以分隔这两类数据,这种能够通过一条直线将两类数据分隔开的分类情况,我们称其线性可分
分隔超平面:上述将数据集分隔开来的直线称为分隔超平面
超平面:上述图像由于数据点都在二维平面上,所以分隔超平面就只是一条直线,而当数据点在n维上时,就需要n-1维的某某对象来对数据进行分隔,该对象被称为超平面,也就是分类的决策边界。
间隔:上图中我们发现有多条直线可以将数据分成两类,而我们希望的是遇到不在训练集中的点时,某条直线能够很好的正确分类,此时我们需要找到离分隔超平面最近的点,确保她们离分隔面的距离尽可能远。这里点到分隔面的距离被称为间隔(点相对于分隔面的间隔);而数据集中所有点到分隔面的最小间隔的2倍,称为分类器或者数据集的间隔
支持向量:上述离分隔超平面最近的那些点就被称为支持向量
机器学习-SVM支持向量机模型详解_第2张图片
划分超平面用线性方程表示:
w T x + b = 0 w^Tx+b=0 wTx+b=0
样本空间中任意点x到超平面(w,b)的距离可写为
r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\frac{|w^Tx+b|}{||w||} r=wwTx+b

SVM分类

  • hard-margin SVM 又称最大间隔分类器
  • soft-margin SVM
  • kernel SVM

hard-margin SVM算法

目的

解决max margin ( w , b ) (w,b) (w,b) s . t { w T x i + b , y i = + 1 w T x i + b , y i = − 1 s.t \begin{cases} w^Tx_i+b, & \text{$y_i=+1$} \\ w^Tx_i+b, & \text{$y_i=-1$} \\ \end{cases} s.t{wTxi+b,wTxi+b,yi=+1yi=−1
的问题。

公式

其中
m a r g i n ( w , b ) = m i n   d i s t a n c e ( w , b , x i ) = m i n ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ , i = 1 , 2... , N margin(w,b)=min\,distance(w,b,x_i)=min \frac{|w^Tx+b|}{||w||}, i=1,2...,N margin(w,b)=mindistance(w,b,xi)=minwwTx+b,i=1,2...,N
从而得到 m a x   m a r g i n ( w , b ) = { m a x   m i n ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ = m a x   1 ∣ ∣ w ∣ ∣   m i n ∣ w T x i + b ∣ , w , b , x i , i = 1... N s . t   y i ( w T x + b ) > 0 ⟹ ∃ r > 0 , s . t . m i n   y i ( w T x i + b ) = r max\,margin(w,b) = \begin{cases} max\,min\frac{|w^Tx+b|}{||w||}=max\,\frac{1}{||w||}\,min|w^Tx_i+b|,w,b,x_i,i=1...N\\ s.t\,y_i(w^Tx+b)>0\Longrightarrow\exists r>0,s.t.min\,y_i(w^Tx_i+b)=r \end{cases} maxmargin(w,b)={maxminwwTx+b=maxw1minwTxi+b,w,b,xi,i=1...Ns.tyi(wTx+b)>0r>0,s.t.minyi(wTxi+b)=r
其中r可以直接归一化为1
从而得到
m a x   m a r g i n ( w , b ) = m a x 1 ∣ ∣ w ∣ ∣   s . t    y i ( w T x i + b ) ≥ 1 ⟹    m i n 1 2 w T w    s . t .    y i ( w T x i + b ) ≥ 1 , f o r ∀   i = 1 , . . . N max\,margin(w,b)=max\frac{1}{||w||}\,s.t\;y_i(w^Tx_i+b)\geq1\Longrightarrow\;min\frac{1}{2}w^Tw\;s.t.\;y_i(w^Tx_i+b)\geq1,for\forall\,i=1,...N maxmargin(w,b)=maxw1s.tyi(wTxi+b)1min21wTws.t.yi(wTxi+b)1,fori=1,...N
其中 y i ( w T x + b ) ≥ 1 y_i(w^Tx+b)\geq1 yi(wTx+b)1可写成 1 − y i ( w T x + b ) ≤ 0 1-y_i(w^Tx+b)\leq0 1yi(wTx+b)0
这便是一个凸优化问题,共有N个约束。

对偶问题引出

目的

利用拉格朗日乘数法求解上述受多个条件约束的多元函数极值的问题

公式推导关键步骤

f ( w , b , λ ) = 1 2 w T w + ∑ i = 1 n λ i ( 1 − y i ( w T x + b ) ) ; λ ≥ 0 , 1 − y i ( w T x + b ) ≤ 0 f(w,b,\lambda)=\frac{1}{2}w^Tw+\sum_{i=1}^n\lambda_i(1-y_i(w^Tx+b));\lambda\geq0,1-y_i(w^Tx+b)\leq0 f(w,b,λ)=21wTw+i=1nλi(1yi(wTx+b));λ0,1yi(wTx+b)0
即求 { m i n w , b    m a x λ f ( w , b . λ ) s . t .    λ i ≥ 0 \begin{cases} \underset{w,b}{min}\;\underset{\lambda}{max}f(w,b.\lambda)\\ s.t.\;\lambda_i\geq0 \end{cases} w,bminλmaxf(w,b.λ)s.t.λi0
上述两个公式为原问题,将其转换为对偶问题
{ m a x λ    m i n w , b f ( w , b , λ ) ( 1 ) s . t .    λ i ≥ 0 \begin{cases} \underset{\lambda}{max}\;\underset{w,b}{min}f(w,b,\lambda) \qquad (1)\\ s.t.\;\lambda_i\geq0 \end{cases} λmaxw,bminf(w,b,λ)(1)s.t.λi0
对偶问题与原问题同解。

求解对偶问题

先求 m i n w , b f ( w , b , λ ) \underset{w,b}{min}f(w,b,\lambda) w,bminf(w,b,λ)
b b b求偏导
∂   f ∂   b = ∂ ∂   b [ ∑ i = 1 N λ i − ∑ i = 1 N λ i y i ( w T x i + b ) ] = ∂ ∂   b [ − ∑ i = 1 N λ i y i b ] = − ∑ i = 1 N λ i y i = 0 ⟹ ∑ i = 1 N λ i y i = Δ 0 \begin{aligned} \frac{\partial\,f}{\partial\,b} = &\frac{\partial}{\partial\,b}[\sum_{i=1}^N\lambda_i-\sum_{i=1}^N\lambda_iy_i(w^Tx_i+b)]\\ =& \frac{\partial}{\partial\,b}[-\sum_{i=1}^N\lambda_iy_ib]\\ =& -\sum_{i=1}^N\lambda_iy_i=0\Longrightarrow\sum_{i=1}^N\lambda_iy_i\overset{\Delta}=0 \end{aligned} bf===b[i=1Nλii=1Nλiyi(wTxi+b)]b[i=1Nλiyib]i=1Nλiyi=0i=1Nλiyi=Δ0
将其代入 f ( w , b , λ ) f(w,b,\lambda) f(w,b,λ)
f ( w , b , λ ) = 1 2 w T w + ∑ i = 1 N λ i − ∑ i = 1 N λ i 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 = 1 2 w T w + ∑ i = 1 N λ i − ∑ i = 1 N λ i y i w T x i \begin{aligned} f(w,b,\lambda)=&\frac{1}{2}w^Tw+\sum_{i=1}^N\lambda_i-\sum_{i=1}^N\lambda_iy_i(w^Tx_i+b)\\ =&\frac{1}{2}w^Tw+\sum_{i=1}^N\lambda_i-\sum_{i=1}^N\lambda_iy_iw^Tx_i-\sum_{i=1}^N\lambda_iy_ib\\ =&\frac{1}{2}w^Tw+\sum_{i=1}^N\lambda_i-\sum_{i=1}^N\lambda_iy_iw^Tx_i \end{aligned} f(w,b,λ)===21wTw+i=1Nλii=1Nλiyi(wTxi+b)21wTw+i=1Nλii=1NλiyiwTxii=1Nλiyib21wTw+i=1Nλii=1NλiyiwTxi
w w w求偏导(涉及矩阵求导法则)
∂   f ∂   w = 1 2 2 w − ∑ i = 1 N λ i y i x i = Δ 0 ⟹   w = ∑ i = 1 N λ i y i x i \begin{aligned} \frac{\partial\,f}{\partial\,w}=&\frac{1}{2}2w-\sum_{i=1}^N\lambda_iy_ix_i\overset{\Delta}=0\Longrightarrow\,w=\sum_{i=1}^N\lambda_iy_ix_i \end{aligned} wf=212wi=1Nλiyixi=Δ0w=i=1Nλiyixi
将其代入 f ( w , b , λ ) f(w,b,\lambda) f(w,b,λ)
f ( w , b , λ ) = 1 2 ( ∑ i = 1 N λ i y i x i ) T ( ∑ i = 1 N λ j y j x j ) + ∑ i = 1 N λ i − ∑ i = 1 N λ i y i ( ∑ i = 1 N λ j y j x j ) T x i = − 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j + ∑ i = 1 N λ i \begin{aligned} f(w,b,\lambda)=&\frac{1}{2}(\sum_{i=1}^N\lambda_iy_ix_i)^T(\sum_{i=1}^N\lambda_jy_jx_j)+\sum_{i=1}^N\lambda_i-\sum_{i=1}^N\lambda_iy_i(\sum_{i=1}^N\lambda_jy_jx_j)^Tx_i\\ =&-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^N\lambda_i \end{aligned} f(w,b,λ)==21(i=1Nλiyixi)T(i=1Nλjyjxj)+i=1Nλii=1Nλiyi(i=1Nλjyjxj)Txi21i=1Nj=1NλiλjyiyjxiTxj+i=1Nλi
( 1 ) (1) (1)式对偶问题演变成
{ 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 N λ i y i = 0 \begin{cases} \underset{\lambda}{max}-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^N\lambda_i\\ s.t.\;\lambda_i\geq0\\ \sum_{i=1}^N\lambda_iy_i=0 \end{cases} λmax21i=1Nj=1NλiλjyiyjxiTxj+i=1Nλis.t.λi0i=1Nλiyi=0
原问题,对偶问题具有强对偶关系 ⟺ \Longleftrightarrow 满足KKT条件。

KKT条件

{ ∂   f ∂   w = 0 ; ∂   f ∂   b = 0 ; ∂   f ∂   λ = 0 λ i ( 1 − y i ( w T x + b ) ) = 0 λ i ≥ 01 − y i ( w T x i + b ) ≤ 0 \begin{cases} \frac{\partial\,f}{\partial\,w}=0;\frac{\partial\,f}{\partial\,b}=0;\frac{\partial\,f}{\partial\,\lambda}=0\\ \lambda_i(1-y_i(w^Tx+b)) = 0\\ \lambda_i\geq0 1-y_i(w^Tx_i+b)\leq0 \end{cases} wf=0;bf=0;λf=0λi(1yi(wTx+b))=0λi01yi(wTxi+b)0
可得
w ∗ = ∑ i = 1 N λ i y i x i    ;    b ∗ = y k − ∑ i = 0 N λ i y i x i T x k w^*=\sum_{i=1}^N\lambda_iy_ix_i\;;\;b^*=y_k-\sum_{i=0}^N\lambda_iy_ix_i^Tx_k w=i=1Nλiyixi;b=yki=0NλiyixiTxk
即决策函数为
h ( x ) = s i g n ( ( w ∗ ) T x + b ∗ ) h(x)=sign((w^*)^Tx+b*) h(x)=sign((w)Tx+b)

soft-margin SVM算法

思想

允许有一点点错误,即求 m i n 1 2 w T w min\frac{1}{2}w^Tw min21wTw可以演变为求 m i n 1 2 w T w + l o s s min\frac{1}{2}w^Tw+loss min21wTw+loss
l o s s = m a x ( 0 , 1 − y i ( w T x i + b ) ) ( h i n g e − l o s s ) loss=max(0, 1-y_i(w^Tx_i+b)) \qquad (hinge-loss) loss=max(0,1yi(wTxi+b))(hingeloss)
即soft-margin解决的是
{ m i n    1 2 w T w + C ∑ i = 1 N m a x { 0 ,    1 − y i ( w T x i + b ) } s . t .    y i ( w T x + b ) ≥ 1 \begin{cases} min\;\frac{1}{2}w^Tw+ C\sum_{i=1}^Nmax\lbrace0,\;1-y_i(w^Tx_i+b)\rbrace\\ s.t.\;y_i(w^Tx+b)\geq1 \end{cases} {min21wTw+Ci=1Nmax{0,1yi(wTxi+b)}s.t.yi(wTx+b)1
引入一个变量 ξ i = 1 − y i ( w T x i + b ) , ξ i ≥ 0 \xi_i=1-y_i(w^Tx_i+b),\xi_i\geq0 ξi=1yi(wTxi+b),ξi0将上式变为
{ m i n    1 2 w T w + C ∑ i = 1 N ξ i s . t .    y i ( w T x + b ) ≥ 1 − ξ i , ξ i ≥ 0 \begin{cases} min\;\frac{1}{2}w^Tw+ C\sum_{i=1}^N\xi_i\\ s.t.\;y_i(w^Tx+b)\geq1-\xi_i,\xi_i\geq0 \end{cases} {min21wTw+Ci=1Nξis.t.yi(wTx+b)1ξi,ξi0
其求解与hard-margin SVM基本一致,可自行推导。

应用场景

SVM是最接近深度学习的机器学习算法。

  1. 手写识别数字
  2. 人脸识别
  3. 图像分类
  4. 蛋白质分类

代码实现示例

优缺点

待更新。。。

你可能感兴趣的:(读书笔记,机器学习)