机器学习-白板推导系列(六)(1)-支持向量机SVM(Support Vector Machine)

6. 支持向量机SVM(Support Vector Machine)

6.1 引言

  1. 简介
    SVM是什么? 先来看看维基百科上对SVM的定义:

    支持向量机(英语:support vector machine,常简称为SVM,又名支持向量网络)是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

    简单点讲,SVM就是一种二类分类模型,他的基本模型是的定义在特征空间上的间隔最大的线性分类器,SVM的学习策略就是间隔最大化

  2. 直观理解
    机器学习-白板推导系列(六)(1)-支持向量机SVM(Support Vector Machine)_第1张图片
    图中有分别属于两类的一些二维数据点和三条直线。如果三条直线分别代表三个分类器的话,请问哪一个分类器比较好?

    我们凭直观感受应该觉得答案是H3。首先H1不能把类别分开,这个分类器肯定是不行的;H2可以,但分割线与最近的数据点只有很小的间隔,如果测试数据有一些噪声的话可能就会被H2错误分类(即对噪声敏感、泛化能力弱)。H3以较大间隔将它们分开,这样就能容忍测试数据的一些噪声而正确分类,是一个泛化能力不错的分类器。

    对于支持向量机来说,数据点若是 p p p维向量,我们用 p − 1 p−1 p1维的超平面来分开这些点。但是可能有许多超平面可以把数据分类。最佳超平面的一个合理选择就是以最大间隔把两个类分开的超平面。因此,SVM选择能够使离超平面最近的数据点的到超平面距离最大的超平面。

  3. 概括

    • SVM有三宝: 间 隔 , 对 偶 , 核 技 巧 \color{red}间隔, 对偶, 核技巧 ,,
    • 从类别上来看,分为三类:
      • 硬 间 隔 \color{red}硬间隔 :hard-margin SVM
      • 软 间 隔 \color{red}软间隔 :soft-margin SVM
      • 核 方 法 \color{red}核方法 :kernel SVM

6.2 硬间隔SVM-模型定义(最大间隔分类器)

6.2.1 概述

  • 已知数据 线 性 可 分 \color{red}线性可分 线的训练数据集:
    x i ∈ R p , i = 1 , 2 , ⋯   , N X = ( x 1 , x 1 , ⋯   , x N ) T = ( x 1 T x 2 T ⋮ x N T ) = ( x 11 x 12 ⋯ x 1 p x 21 x 22 ⋯ x 2 p ⋮ ⋮ ⋱ ⋮ x N 1 x N 2 ⋯ x N p ) N × p x_{i}\in \mathbb{R}^{p},i=1,2,\cdots ,N\\ X=(x_{1},x_{1},\cdots ,x_{N})^{T}=\begin{pmatrix} x_{1}^{T}\\ x_{2}^{T}\\ \vdots \\ x_{N}^{T} \end{pmatrix}=\begin{pmatrix} x_{11} & x_{12} & \cdots &x_{1p} \\ x_{21} & x_{22}& \cdots &x_{2p} \\ \vdots & \vdots & \ddots &\vdots \\ x_{N1}& x_{N2} & \cdots & x_{Np} \end{pmatrix}_{N \times p} xiRp,i=1,2,,NX=(x1,x1,,xN)T=x1Tx2TxNT=x11x21xN1x12x22xN2x1px2pxNpN×p
    { ( x i , y i ) } i = 1 N , x i ∈ R p , y i ∈ { + 1 , − 1 } \left \{(x_{i},y_{i})\right \}_{i=1}^{N},x_{i}\in \mathbb {R}^{p},y_{i}\in \{+1,-1\} {(xi,yi)}i=1N,xiRp,yi{+1,1}
    其中 x i x_i xi是一个含有 p p p个元素的列向量; y i y_i yi是标量, y ∈ { + 1 , − 1 } , y i = + 1 y∈\{+1,−1\}, y_i=+1 y{+1,1},yi=+1时表示 x i x_i xi属于正类别, y i = − 1 y_i=−1 yi=1时表示 x i x_i xi属于负类别。
  • 我们知道,SVM就是 寻找最佳超平面的一个合理选择就是以最大间隔把两个类分开的超平面,如下图:机器学习-白板推导系列(六)(1)-支持向量机SVM(Support Vector Machine)_第2张图片
    f ( w ) = s i g n ( w T x + b ) f(w)=sign(w^Tx+b) f(w)=sign(wTx+b)为返回结果,因此其是 判 别 模 型 \color{red}判别模型 ,而非概率模型。则对间隔最大化转化为数学表示:
    { m a x W , b    m a r g i n ( W , b ) s . t .    y i ( W T x i + b ) > 0 , i = 1 , 2 , ⋯   , N (6.2.1) \left\{\begin{matrix} \underset{W,b}{max}\; margin(W,b)\\ s.t.\; y_{i}(W^{T}x_{i}+b)>0,i=1,2,\cdots ,N \end{matrix}\right.\tag{6.2.1} {W,bmaxmargin(W,b)s.t.yi(WTxi+b)>0,i=1,2,,N(6.2.1)

6.2.2 简化数学模型

  1. 具体化间隔距离
    超平面的方程也可以写成一下形式:
    W T x + b = 0 W^Tx+b=0 WTx+b=0
    有了超平面的表达式之后之后,我们就可以计算样本点到平面的距离了。假设 ( x 11 , x 12 , ⋯   , x 1 p ) (x_{11} , x_{12} , \cdots ,x_{1p}) (x11,x12,,x1p)为样本的中的一个点,其中 x 1 i x_{1i} x1i表示为第 i i i个特征变量。那么:
    • 该点到超平面的距离 d i s t a n c e \color{blue}distance distance就可以用如下公式进行计算:
      d i s t a n c e ( W , b , x i ) = ∣ W T x + b ∣ ∥ W ∥ ( 可 以 参 考 初 中 知 识 点 : 点 到 直 线 距 离 d = ∣ A x + B y + C ∣ A 2 + B 2 ) distance(W,b,x_{i})=\frac{\left | W^{T}x+b\right |}{\left \| W\right \|}\\ (可以参考初中知识点:点到直线距离d=\frac{\left | Ax+By+C\right |}{\sqrt{A^{2}+B^{2}}}) distance(W,b,xi)=WWTx+b(线d=A2+B2 Ax+By+C)
    • 则间隔 m a r g i n ( W , b ) margin(W,b) margin(W,b)可以表达为:
      m a r g i n ( W , b ) = m i n x i    d i s t a n c e ( W , b , x i ) = m i n x i ∣ W T x i + b ∣ ∥ W ∥ , i = 1 , 2 , ⋯   , N margin(W,b)=\underset{x_{i}}{min}\; distance(W,b,x_{i})=\underset{x_{i}}{min}\frac{\left | W^{T}x_{i}+b\right |}{\left \| W\right \|},i=1,2,\cdots ,N margin(W,b)=ximindistance(W,b,xi)=ximinWWTxi+b,i=1,2,,N
    • 因此最大间隔可以表达为:
      m a x W , b    m a r g i n ( W , b ) = m a x W , b    m i n x i ∣ W T x i + b ∣ ∥ W ∥ = m a x W , b    m i n x i y i ( W T x i + b ) ∥ W ∥ , i = 1 , 2 , ⋯   , N \\ \underset{W,b}{max}\; margin(W,b)=\underset{W,b}{max}\; \underset{x_{i}}{min}\frac{\left | W^{T}x_{i}+b\right |}{\left \| W\right \|}=\underset{W,b}{max}\; \underset{x_{i}}{min}\frac{y_{i}(W^{T}x_{i}+b)}{\left \| W\right \|},i=1,2,\cdots ,N W,bmaxmargin(W,b)=W,bmaxximinWWTxi+b=W,bmaxximinWyi(WTxi+b),i=1,2,,N
    • 求解支持向量机(公式(6.2.1))就可以转化为以下带约束的优化问题:
      { m a x W , b    m i n x i y i ( W T x i + b ) ∥ W ∥ , i = 1 , 2 , ⋯   , N s . t .    y i ( W T x i + b ) > 0 , i = 1 , 2 , ⋯   , N (6.2.2) \left\{\begin{matrix} \underset{W,b}{max}\; \underset{x_{i}}{min}\frac{y_{i}(W^{T}x_{i}+b)}{\left \| W\right \|},i=1,2,\cdots ,N\\ s.t.\; y_{i}(W^{T}x_{i}+b)>0,i=1,2,\cdots ,N \end{matrix}\right.\tag{6.2.2} {W,bmaxximinWyi(WTxi+b),i=1,2,,Ns.t.yi(WTxi+b)>0,i=1,2,,N(6.2.2)
  2. 优化间隔距离
    • 由于SVM为 判 别 模 型 \color{red}判别模型 ,令 γ = m i n x i    y i ( W T x i + b ) \gamma=\underset{x_{i}}{min}\; y_{i}(W^{T}x_{i}+b) γ=ximinyi(WTxi+b);由约束 y i ( W T x i + b ) > 0 , i = 1 , 2 , ⋯   , N y_{i}(W^{T}x_{i}+b)>0,i=1,2,\cdots ,N yi(WTxi+b)>0,i=1,2,,N
      γ > 0 \gamma >0 γ>0
    • 由于确定同一个超平面的 W , b W,b W,b可以任意放缩,所以这里令 γ = 1 \gamma=1 γ=1。则:
      m a x W , b    m a r g i n ( W , b ) = m a x W , b    m i n x i y i ( W T x i + b ) ∥ W ∥ = m a x W , b 1 ∥ W ∥ m i n x i    y i ( W T x i + b ) ⏟ γ = 1 = m a x W , b 1 ∥ W ∥ \underset{W,b}{max}\; margin(W,b) =\underset{W,b}{max}\; \underset{x_{i}}{min}\frac{y_{i}(W^{T}x_{i}+b)}{\left \| W\right \|}\\ =\underset{W,b}{max}\frac{1}{\left \| W\right \|}\underset{\gamma =1}{\underbrace{\underset{x_{i}}{min}\; y_{i}(W^{T}x_{i}+b)}} =\underset{W,b}{max}\frac{1}{\left \| W\right \|} W,bmaxmargin(W,b)=W,bmaxximinWyi(WTxi+b)=W,bmaxW1γ=1 ximinyi(WTxi+b)=W,bmaxW1
    • max ⁡ W , b 1 ∥ W ∥ \underset{W,b}{\max}{1 \over \Vert W\Vert} W,bmaxW1由求极大值变为求极小值。
      m a x W , b    m a r g i n ( W , b ) = m i n W , b 1 2 W T W ; i = 1 , 2 , ⋯   , N \underset{W,b}{max}\; margin(W,b) =\underset{W,b}{min}\frac{1}{2}W^{T}W; i=1,2,\cdots ,N W,bmaxmargin(W,b)=W,bmin21WTW;i=1,2,,N
    • 则优化问题转化为:
      { m i n W , b 1 2 W T W s . t .    y i ( W T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , N (6.2.3) \color{red}\left\{\begin{matrix} \underset{W,b}{min}\frac{1}{2}W^{T}W \\ s.t.\; y_{i}(W^{T}x_{i}+b)\geq 1,i=1,2,\cdots ,N \end{matrix}\right.\tag{6.2.3} {W,bmin21WTWs.t.yi(WTxi+b)1,i=1,2,,N(6.2.3)
      这是一个带N个约束的凸优化问题。

6.3 硬间隔SVM-模型求解(对偶问题之引出)

6.3.1 拉格朗日和对偶问题

  1. 构建拉格朗日函数
    根据数据 { ( x i , y i ) } i = 1 N , x i ∈ R p , y i ∈ { − 1 , + 1 } \{(x_i,y_i) \}^N_{i=1},x_i \in \mathbb R^p, y_i \in \{ -1, +1 \} {(xi,yi)}i=1NxiRpyi{1,+1}和凸问题的约束模型(公式(6.2.3)),使用拉格朗日乘子法来求解,构建拉格朗日函数:
    L ( W , b , λ ) = 1 2 W T W + ∑ i = 1 N λ i ( 1 − y i ( W T x i + b ) ) λ = ( λ 1 λ 2 ⋯ λ N ) T L(W,b,\lambda )=\frac{1}{2}W^{T}W+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(W^{T}x_{i}+b))\\ \lambda =\begin{pmatrix} \lambda _{1} & \lambda _{2} & \cdots & \lambda _{N} \end{pmatrix}^{T} L(W,b,λ)=21WTW+i=1Nλi(1yi(WTxi+b))λ=(λ1λ2λN)T
    其中 λ i ≥ 0 \lambda_i \ge 0 λi0 (后面解释为什么 λ i \lambda_i λi 要大于等于 0 0 0), 1 − y i ( W T x i + b ) ≤ 0 1-y_i(W^Tx_i+b)\le 0 1yi(WTxi+b)0。则凸问题的约束模型(公式(6.2.3))可以转换成以下优化问题:
    { m i n W , b    m a x λ L ( W , b , λ ) = 1 2 W T W + ∑ i = 1 N λ i ( 1 − y i ( W T x i + b ) ) s . t .    λ i ≥ 0 , i = 1 , 2 , ⋯   , N (6.3.1) \color{red}\left\{\begin{matrix} \underset{W,b}{min}\; \underset{\lambda }{max}L(W,b,\lambda )=\frac{1}{2}W^{T}W+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(W^{T}x_{i}+b))\\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right.\tag{6.3.1} {W,bminλmaxL(W,b,λ)=21WTW+i=1Nλi(1yi(WTxi+b))s.t.λi0,i=1,2,,N(6.3.1)
  2. 有约束模型与无约束模型等价
    对于拉格朗日函数,令 Δ = 1 − y i ( W T x i + b ) \Delta =1-y_i(W^Tx_i+b) Δ=1yi(WTxi+b),则有:
    • Δ = 1 − y i ( W T x i + b ) > 0 \Delta =1-y_{i}(W^{T}x_{i}+b)>0 Δ=1yi(WTxi+b)>0时,由于 λ i ≥ 0 \lambda _{i}\geq 0 λi0,所以 m a x λ L ( W , b , λ ) = ∞ \underset{\lambda }{max}L(W,b,\lambda )=\infty λmaxL(W,b,λ)=
    • Δ = 1 − y i ( W T x i + b ) ≤ 0 \Delta =1-y_{i}(W^{T}x_{i}+b)\leq 0 Δ=1yi(WTxi+b)0时,由于 λ i ≥ 0 \lambda _{i}\geq 0 λi0,所以 m a x λ L ( W , b , λ ) = 1 2 W T W \underset{\lambda }{max}L(W,b,\lambda )=\frac{1}{2}W^{T}W λmaxL(W,b,λ)=21WTW
      因此根据 Δ \Delta Δ的情况,可以有两种结果,此时将其带入无约束模型中: m i n W , b    m a x λ L ( W , b , λ ) = m i n W , b { 1 2 W T W , ∞ } = 1 2 W T W \underset{W,b}{min}\; \underset{\lambda }{max}L(W,b,\lambda )=\underset{W,b}{min}\left \{\frac{1}{2}W^{T}W,\infty \right \}=\frac{1}{2}W^{T}W W,bminλmaxL(W,b,λ)=W,bmin{21WTW,}=21WTW
      这里巧妙的使用最小最大模型自动筛选出了 Δ > 0 \Delta >0 Δ>0 的情况。
  3. λ i ≥ 0 \lambda_i \ge0 λi0的原因
    设问题是 x ∈ R 2 x\in \mathbb {R}^{2} xR2
    { m α i n f ( x ) s . t .    g ( x ) ≤ 0 \left\{\begin{matrix} \underset{\alpha}min{f(x)}\\ s.t.\; g(x)\leq0\end{matrix}\right. {αminf(x)s.t.g(x)0
    • 假设 f ( x ) = x 1 2 + x 2 2 f(x)={x_1}^2+{x_2}^2 f(x)=x12+x22 and g ( x ) = x 1 2 + x 2 2 − 1 g(x)={x_1}^2+{x_2}^2-1 g(x)=x12+x221。那这个时候可以很容易想到 f f f的global minimum就是在 g ( x ) g(x) g(x)的限制里, 如图在图的圆心处,这个时候调用拉格朗日函数,系数就是等于0的。
      机器学习-白板推导系列(六)(1)-支持向量机SVM(Support Vector Machine)_第3张图片
    • 假设 f ( x ) = ( x 1 − 1.1 ) 2 + ( x 2 − 1.1 ) 2 f(x)=({x_1}-1.1)^2+({x_2}-1.1)^2 f(x)=(x11.1)2+(x21.1)2 and g ( x ) = x 1 2 + x 2 2 − 1 g(x)={x_1}^2+{x_2}^2-1 g(x)=x12+x221。这个时候f的最小值就被 f e a s i b l e    r e g i o n feasible\;region feasibleregion限制了, K K T    c o n d i t i o n KKT\;condition KKTcondition下面有一个步骤是需要对 g g g f f f取导数并且让他们平行,如
      − ∇ x f ( x ) = λ ∇ x g ( x ) ;    λ > 0 -\nabla_x f(x)=\lambda\nabla_x g(x);\; \lambda>0 xf(x)=λxg(x);λ>0
      那为什么这里要 λ > 0 \lambda>0 λ>0呢, 如下图所示,最小值会发生在 f e a s i b l e    ; r e g i o n feasible\;;region feasible;region的边缘,而且会发生在 − Δ f -\Delta f Δf Δ g \Delta g Δg方向相同的点上。
      机器学习-白板推导系列(六)(1)-支持向量机SVM(Support Vector Machine)_第4张图片
  4. 对偶关系
    m i n    m a x    L \color{blue}min\; max\; L minmaxL的对偶问题为 m a x    m i n    L \color{blue}max\; min\; L maxminL,有以下结论:
    • 如果:
      m i n    m a x    L ≥ m a x    m i n    L \\ min\; max\; L\geq max\; min\; L minmaxLmaxminL
      可以简单地认为对于L先取最大,再从最大里面取最小就一定大于等于先取最小,再从最小里面取最大。 min ⁡   max ⁡   L \color{blue}\min \ \max\ L min max L是指凤尾,大个里面挑小个, max ⁡   min ⁡   L \color{blue}\max\ \min \ L max min L是指鸡头,小个里面挑大个鸡头再厉害也只是鸡,不会变成凤的,因此凤尾大于等于鸡头,即 “ 凤 尾 ” ≥ “ 鸡 头 ” “凤尾”\geq “鸡头”
    • 如果 m i n    m a x    L min\; max\; L minmaxL 凸 优 化 \color{red}凸优化 问题,则
      m i n    m a x    L = m a x    m i n    L , 为 强 对 偶 关 系 \color{red}min\; max\; L=max\; min\; L,为强对偶关系 minmaxL=maxminL
    • 因此该优化问题可以继续转化:
      { m a x λ    m i n W , b    L ( W , b , λ ) = 1 2 W T W + ∑ i = 1 N λ i ( 1 − y i ( W T x i + b ) ) s . t .    λ i ≥ 0 , i = 1 , 2 , ⋯   , N (6.3.2) \color{red}\left\{\begin{matrix} \underset{\lambda }{max}\; \underset{W,b}{min}\;L(W,b,\lambda )=\frac{1}{2}W^{T}W+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(W^{T}x_{i}+b))\\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right.\tag{6.3.2} {λmaxW,bminL(W,b,λ)=21WTW+i=1Nλi(1yi(WTxi+b))s.t.λi0,i=1,2,,N(6.3.2)

      该优化问题经历了以下转化过程:
      ①    带 约 束 优 化 问 题 { m a x W , b    m a r g i n ( W , b ) = m a x W , b    m i n x i y i ( W T x i + b ) ∥ W ∥ , i = 1 , 2 , ⋯   , N s . t .    y i ( W T x i + b ) > 0 , i = 1 , 2 , ⋯   , N ②    带 约 束 优 化 问 题 { m i n W , b    1 2 W T W s . t .    y i ( W T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , N ③    无 约 束 优 化 问 题 { m i n W , b    m a x λ L ( W , b , λ ) = 1 2 W T W + ∑ i = 1 N λ i ( 1 − y i ( W T x i + b ) ) s . t .    λ i ≥ 0 , i = 1 , 2 , ⋯   , N ④    无 约 束 优 化 问 题 { m a x λ    m i n W , b    L ( W , b , λ ) = 1 2 W T W + ∑ i = 1 N λ i ( 1 − y i ( W T x i + b ) ) s . t .    λ i ≥ 0 , i = 1 , 2 , ⋯   , N ①\; 带约束优化问题\left\{\begin{matrix} \underset{W,b}{max}\; margin(W,b)=\underset{W,b}{max}\; \underset{x_{i}}{min}\frac{y_{i}(W^{T}x_{i}+b)}{\left \| W\right \|},i=1,2,\cdots ,N\\ s.t.\; y_{i}(W^{T}x_{i}+b)>0,i=1,2,\cdots ,N \end{matrix}\right.\\ ②\; 带约束优化问题\left\{\begin{matrix} \underset{W,b}{min}\;\frac{1}{2}W^{T}W\\ s.t.\; y_{i}(W^{T}x_{i}+b)\geq 1,i=1,2,\cdots ,N \end{matrix}\right.\\ ③\; 无约束优化问题\left\{\begin{matrix} \underset{W,b}{min}\; \underset{\lambda }{max}L(W,b,\lambda )=\frac{1}{2}W^{T}W+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(W^{T}x_{i}+b))\\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right.\\ ④\; 无约束优化问题\left\{\begin{matrix} \underset{\lambda }{max}\; \underset{W,b}{min}\;L(W,b,\lambda )=\frac{1}{2}W^{T}W+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(W^{T}x_{i}+b))\\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right. {W,bmaxmargin(W,b)=W,bmaxximinWyi(WTxi+b),i=1,2,,Ns.t.yi(WTxi+b)>0,i=1,2,,N{W,bmin21WTWs.t.yi(WTxi+b)1,i=1,2,,N{W,bminλmaxL(W,b,λ)=21WTW+i=1Nλi(1yi(WTxi+b))s.t.λi0,i=1,2,,N{λmaxW,bminL(W,b,λ)=21WTW+i=1Nλi(1yi(WTxi+b))s.t.λi0,i=1,2,,N

6.3.2 模型求解

由公式(6.3.2),
{ m a x λ    m i n W , b    L ( W , b , λ ) = 1 2 W T W + ∑ i = 1 N λ i ( 1 − y i ( W T x i + b ) ) s . t .    λ i ≥ 0 , i = 1 , 2 , ⋯   , N \left\{\begin{matrix} \underset{\lambda }{max}\; \underset{W,b}{min}\;L(W,b,\lambda )=\frac{1}{2}W^{T}W+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(W^{T}x_{i}+b))\\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right. {λmaxW,bminL(W,b,λ)=21WTW+i=1Nλi(1yi(WTxi+b))s.t.λi0,i=1,2,,N
对其进行求解

  1. b b b求导
    ∂ L ∂ b = ∂ ∑ i = 1 N λ i − ∑ i = 1 N λ i y i ( W T x i + b ) ∂ b = ∂ − ∑ i = 1 N λ i y i b ∂ b = − ∑ i = 1 N λ i y i = 0 \frac{\partial L}{\partial b}=\frac{\partial \sum_{i=1}^{N}\lambda _{i}-\sum_{i=1}^{N}\lambda _{i}y_{i}(W^{T}x_{i}+b)}{\partial b}=\frac{\partial -\sum_{i=1}^{N}\lambda _{i}y_{i}b}{\partial b}=-\sum_{i=1}^{N}\lambda _{i}y_{i}=0 bL=bi=1Nλii=1Nλiyi(WTxi+b)=bi=1Nλiyib=i=1Nλiyi=0
    因此得出 ∑ i = 1 N λ i y i = 0 \sum_{i=1}^{N}\lambda _{i}y_{i}=0 i=1Nλiyi=0

  2. 求解 W W W
    将上一步的结果代入 L ( W , b , λ ) L(W,b,\lambda ) L(W,b,λ)
    L ( W , 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 ⏟ = 0 = 1 2 W T W + ∑ i = 1 N λ i − ∑ i = 1 N λ i y i W T x i ∂ L ∂ W = W − ∑ i = 1 N λ i y i x i = 0 L(W,b,\lambda )=\frac{1}{2}W^{T}W+\sum_{i=1}^{N}\lambda _{i}-\sum_{i=1}^{N}\lambda _{i}y_{i}W^{T}x_{i}-\underset{=0}{\underbrace{\sum_{i=1}^{N}\lambda _{i}y_{i}b}} \\ =\frac{1}{2}W^{T}W+\sum_{i=1}^{N}\lambda _{i}-\sum_{i=1}^{N}\lambda _{i}y_{i}W^{T}x_{i} \\ \frac{\partial L}{\partial W}=W-\sum_{i=1}^{N}\lambda _{i}y_{i}x_{i}=0 L(W,b,λ)=21WTW+i=1Nλii=1NλiyiWTxi=0 i=1Nλiyib=21WTW+i=1Nλii=1NλiyiWTxiWL=Wi=1Nλiyixi=0
    得出: W ∗ = ∑ i = 1 N λ i y i x i (6.3.3) \color{red}W^{*}=\sum_{i=1}^{N}\lambda _{i}y_{i}x_{i}\tag{6.3.3} W=i=1Nλiyixi(6.3.3)
    这里我们可以看出 W ∗ W^{*} W是数据的线性组合。

  3. 得出 m i n W , b    L ( W , b , λ ) \underset{W,b}{min}\;L(W,b,\lambda ) W,bminL(W,b,λ)
    接着将 W ∗ W^{*} W的结果代入 L ( W , b , λ ) L(W,b,\lambda ) L(W,b,λ)
    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 = 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 ∑ j = 1 N λ i λ j y i y j x i T x j + ∑ 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 \underset{W,b}{min}\;L(W,b,\lambda )=\frac{1}{2}(\sum_{i=1}^{N}\lambda _{i}y_{i}x_{i})^{T}(\sum_{j=1}^{N}\lambda _{j}y_{j}x_{j})+\sum_{i=1}^{N}\lambda _{i}-\sum_{i=1}^{N}\lambda _{i}y_{i}(\sum_{j=1}^{N}\lambda _{j}y_{j}x_{j})^{T}x_{i}\\ =\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}-\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}{\color{Red}{x_{j}^{T}x_{i}}}+\sum_{i=1}^{N}\lambda _{i} \\ =\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}-\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}{\color{Red}{x_{i}^{T}x_{j}}}+\sum_{i=1}^{N}\lambda _{i} \\ =-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}+\sum_{i=1}^{N}\lambda _{i} W,bminL(W,b,λ)=21(i=1Nλiyixi)T(j=1Nλjyjxj)+i=1Nλii=1Nλiyi(j=1Nλjyjxj)Txi=21i=1Nj=1NλiλjyiyjxiTxji=1Nj=1NλiλjyiyjxjTxi+i=1Nλi=21i=1Nj=1NλiλjyiyjxiTxji=1Nj=1NλiλjyiyjxiTxj+i=1Nλi=21i=1Nj=1NλiλjyiyjxiTxj+i=1Nλi
    因此该优化问题就相当于:
    { max ⁡ λ   − 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 (6.3.4) \color{red}\begin{cases} \underset{\lambda}{\max} \ -{1\over2}\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\ge 0 \\ \ \ \ \ \ \ \ \ \sum_{i=1}^N \lambda_iy_i=0 \end{cases}\tag{6.3.4} λmax 21i=1Nj=1NλiλjyiyjxiTxj+i=1Nλis.t.  λi0        i=1Nλiyi=0(6.3.4)

6.4 硬间隔SVM-模型求解(对偶问题之KKT条件)

上一节中使用到了对偶问题,这一节中会涉及到对偶问题中的KKT条件。

  1. 已有结论
    • 目标函数
      { max ⁡ λ   − 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} \ -{1\over2}\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\ge 0 \\ \ \ \ \ \ \ \ \ \sum_{i=1}^N \lambda_iy_i=0 \end{cases} λmax 21i=1Nj=1NλiλjyiyjxiTxj+i=1Nλis.t.  λi0        i=1Nλiyi=0
      上节求 min ⁡   L ( w , b , λ ) \min \ L(w, b, \lambda) min L(w,b,λ)的结果
      ∂ L ∂ b = 0 ⇒ ∑ i = 1 N λ i y i = 0 ∂ L ∂ W = 0 ⇒ W ∗ = ∑ i = 1 N λ i y i x i {\partial L\over \partial b} =0 \Rightarrow \sum_{i=1}^N \lambda_iy_i=0\\ {\partial L\over \partial W} =0 \Rightarrow W^{*}=\sum_{i=1}^N\lambda_iy_ix_i bL=0i=1Nλiyi=0WL=0W=i=1Nλiyixi
  2. K K T 条 件 \color{blue}KKT条件 KKT
    • 首先定义该优化问题的KKT条件
      { ∂ L ∂ W = 0 , ∂ L ∂ b = 0 λ i ( 1 − y i ( W T x i + b ) ) = 0 λ i ≥ 0 1 − y i ( W T x i + b ) ≤ 0 (6.4.1) \color{red}\left\{\begin{matrix} \frac{\partial L}{\partial W}=0,\frac{\partial L}{\partial b}=0\\ \lambda _{i}(1-y_{i}(W^{T}x_{i}+b))=0\\ \lambda _{i}\geq 0\\ 1-y_{i}(W^{T}x_{i}+b)\leq 0 \end{matrix}\right.\tag{6.4.1} WL=0,bL=0λi(1yi(WTxi+b))=0λi01yi(WTxi+b)0(6.4.1)
      该优化问题满足上述KKT条件,这是由于以下定理:
      原 问 题 、 对 偶 问 题 具 有 强 对 偶 关 系 ⇔ 满 足 K K T 条 件 \color{red}原问题、对偶问题具有强对偶关系\Leftrightarrow 满足KKT条件 KKT
    • 松 弛 互 补 条 件 \color{blue}松弛互补条件
      KKT条件中 λ i ( 1 − y i ( w T x i + b ) ) = 0 \lambda _{i}(1-y_{i}(w^{T}x_{i}+b))=0 λi(1yi(wTxi+b))=0叫松弛互补条件,即 λ i \lambda _{i} λi 1 − y i ( w T x i + b ) 1-y_{i}(w^{T}x_{i}+b) 1yi(wTxi+b)总有一个为0。
      • 只有支持向量对应的 λ i \lambda _{i} λi才可能有值 ( λ i ≠ 0 ) (\lambda _{i}\neq 0) (λi=0)
      • 其他不在 w ⋅ x + b = 1 w\cdot x+b=1 wx+b=1 w ⋅ x + b = − 1 w\cdot x+b=-1 wx+b=1上的样本点对应的 λ i = 0 \lambda _{i}=0 λi=0
        机器学习-白板推导系列(六)(1)-支持向量机SVM(Support Vector Machine)_第5张图片
  3. 求解 λ \lambda λ
    我们通过求解下式求解 λ \lambda λ
    { max ⁡ λ   − 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} \ -{1\over2}\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\ge 0 \\ \ \ \ \ \ \ \ \ \sum_{i=1}^N \lambda_iy_i=0 \end{cases} λmax 21i=1Nj=1NλiλjyiyjxiTxj+i=1Nλis.t.  λi0        i=1Nλiyi=0
    • 带入所有数据点,通过约束条件代换,并且令偏导数为 0 0 0,可以很容易求出 λ i \lambda_i λi(若 λ i \lambda_i λi为负数,则需要寻找边界点,即 λ i = 0 \lambda_i=0 λi=0,寻找到最值)。这个过程也是支持向量机算法计算量最大的地方!
    • 最终通过 λ i \lambda_i λi是否为 0 0 0,便可知道哪些点是支持向量,进而求出 w ∗ , b ∗ w^*,b^* w,b.
  4. 求解 b ∗ b^{*} b
    因为 ∃ ( x i , y i ) , s . t .    1 − y i ( W T x i + b ) = 0 \exists (x_i,y_i), s.t. \ \ 1-y_i(W^Tx_i+b)=0 (xi,yi),s.t.  1yi(WTxi+b)=0,则:
    y k ( W T x k + b ) = 1 y k 2 ( W T x k + b ) = y k y_k(W^Tx_k+b)=1\\ y_k^2(W^Tx_k+b)=y_k yk(WTxk+b)=1yk2(WTxk+b)=yk
    由于 y k 2 = 1 y^2_k=1 yk2=1,则:
    y k 2 ( W T x k + b ) = y k ( W T x k + b ) = y k b ∗ = y k − W T x y_k^2(W^Tx_k+b)=y_k\\ (W^Tx_k+b)=y_k\\ b^*=y_k-W^Tx yk2(WTxk+b)=yk(WTxk+b)=ykb=ykWTx
    W ∗ = ∑ i = 1 N λ i y i x i W^{*}=\sum_{i=1}^{N}\lambda _{i}y_{i}x_{i} W=i=1Nλiyixi代入 b ∗ b^* b得:
    b ∗ = y k − ∑ i = 1 N λ i y i x i T x k (6.4.2) \color{red}b^*=y_k-\sum_{i=1}^N\lambda_iy_ix_i ^Tx_k\tag{6.4.2} b=yki=1NλiyixiTxk(6.4.2)

由此可知分类决策函数 f ( x ) = s i g n ( W ∗ T x + b ∗ ) f(x)=sign(W^{*T}x+b^*) f(x)=sign(WTx+b),超平面为 W ∗ T x + b ∗ \color{red}W^{*T}x+b^* WTx+b

由于只有在支持向量上才有 λ i ≠ 0 \lambda_i \ne0 λi=0,因此可以看出, W ∗ , b ∗ W^*,b^* W,b的值只和支持向量有关。


6.5 软间隔SVM-模型定义

6.5.1 概述

  1. 定义
    上几节硬间隔SVM的前提条件是数据 线 性 可 分 \color{red}线性可分 线,在真实数据中,包含了很多噪声的数据线性不可分。如图:机器学习-白板推导系列(六)(1)-支持向量机SVM(Support Vector Machine)_第6张图片
    因此需要引入软间隔SVM(Soft-Margin SVM),其主要思想是: 允 许 一 点 点 错 误 \color{red}允许一点点错误
  2. 数学模型
    目标函数用增加一个损失函数来表示,用数学形式表示为:
    m i n W , b    1 2 W T W + l o s s \underset{W,b}{min}\; \frac{1}{2}W^{T}W+loss W,bmin21WTW+loss
  3. Loss函数
    L o s s Loss Loss函数有两种方式:
    • 使用指示函数
      即使用误分类点的个数作为 L o s s Loss Loss
      L o s s = ∑ i = 1 N I { y i ( W T x i + b ) < 1 } Loss=\sum_{i=1}^{N}I\left \{y_{i}(W^{T}x_{i}+b)<1\right \} Loss=i=1NI{yi(WTxi+b)<1}

      其中 I I I为指示函数,若其中内容为真则返回 1 1 1,否则返回 0 0 0 L o s s Loss Loss函数是不连续的,是跳跃的,其数学性质不好。

    • 使用距离来表示
      { 如 果 y i ( W T x i + b ) ≥ 1 , L o s s = 0 如 果 y i ( W T x i + b ) < 1 , L o s s = 1 − y i ( W T x i + b ) \left.\right\{\begin{matrix} 如果y_{i}(W^{T}x_{i}+b)\geq 1,Loss=0\\ 如果y_{i}(W^{T}x_{i}+b)< 1,Loss=1-y_{i}(W^{T}x_{i}+b) \end{matrix} {yi(WTxi+b)1,Loss=0yi(WTxi+b)<1,Loss=1yi(WTxi+b)
      因此可以将 L o s s Loss Loss表示为: L o s s = m a x { 0 , 1 − y i ( W T x i + b ) } (6.5.1) Loss=max\left \{0,1-y_{i}(W^{T}x_{i}+b)\right \}\tag{6.5.1} Loss=max{0,1yi(WTxi+b)}(6.5.1)
      该函数为合页损失函数(hinge loss),令 z = y i ( W T x i + b ) z=y_{i}(W^{T}x_{i}+b) z=yi(WTxi+b),则 L o s s Loss Loss z z z的图像如下:
      机器学习-白板推导系列(六)(1)-支持向量机SVM(Support Vector Machine)_第7张图片

6.5.2 模型定义

  1. 模型定义
    我们选择距离来表示 L o s s Loss Loss,则软间隔SVM的优化问题可以写成:
    { m i n w , b    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 i + b ) ≥ 1 , i = 1 , 2 , ⋯   , N (6.5.2) \left\{\begin{matrix} \underset{w,b}{min}\; \frac{1}{2}w^{T}w+C\sum_{i=1}^{N}max\left \{0,1-y_{i}(w^{T}x_{i}+b)\right \}\\ s.t.\; y_{i}(w^{T}x_{i}+b)\geq 1,i=1,2,\cdots ,N \end{matrix}\right.\tag{6.5.2} {w,bmin21wTw+Ci=1Nmax{0,1yi(wTxi+b)}s.t.yi(wTxi+b)1,i=1,2,,N(6.5.2)

    其中 C C C为超参数。

  2. 模型优化
    引入 ξ i = 1 − y i ( w T x i + b ) , ξ i ≥ 0 , i = 1 , 2 , ⋯   , N \xi _{i}=1-y_{i}(w^{T}x_{i}+b),\xi _{i}\geq 0,i=1,2,\cdots ,N ξi=1yi(wTxi+b),ξi0,i=1,2,,N,则该优化问题转化为:
    { m i n w , b    1 2 w T w + C ∑ i = 1 N ξ i s . t .    y i ( w T x i + b ) ≥ 1 − ξ i , i = 1 , 2 , ⋯   , N (6.5.3) \color{red}\left\{\begin{matrix} \underset{w,b}{min}\; \frac{1}{2}w^{T}w+C\sum_{i=1}^{N}\xi _{i}\\ s.t.\; y_{i}(w^{T}x_{i}+b)\geq 1-\xi _{i},i=1,2,\cdots ,N \end{matrix}\right.\tag{6.5.3} {w,bmin21wTw+Ci=1Nξis.t.yi(wTxi+b)1ξi,i=1,2,,N(6.5.3)

    上面的式子中,常数 C C C可以看作允许的错误⽔平,同时上式为了进⼀步消除 m a x max max符号,对数据集中的每⼀个观测,对数据集中的每⼀个观测,我们可以认为其⼤部分满⾜约束,但是其中部分违反约束,因此这部分约束变成 y i ( w T x i + b ) ≥ 1 − ξ i y_{i}(w^{T}x_{i}+b)\geq 1-\xi _{i} yi(wTxi+b)1ξi

  3. 约束条件改变的解释
    机器学习-白板推导系列(六)(1)-支持向量机SVM(Support Vector Machine)_第8张图片
    如图所示,圆圈类别支持向量上的虚线是 w T x + b = 1 w^Tx+b=1 wTx+b=1 ,假设其间隔带中有点,其所处超平面为 y i ( w T x i + b ) y_i(w^Tx_i+b) yi(wTxi+b) , 即 1 − ξ i 1-\xi_i 1ξi ,那么此超平面与支持向量的超平面距离便为 ξ i \xi_i ξi ,所以需要对约束函数进行改变,以致于每一个点的约束位置不同。
    • 硬间隔中分隔的点的约束条件依然为 ≥ 1 \ge 1 1 ,因为 y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b)\ge 1 yi(wTxi+b)1 ,所以 1 − y i ( w T x i + b ) ≤ 0 1-y_i(w^Tx_i+b) \le 0 1yi(wTxi+b)0 ,所以 ξ i = 0 \xi_i=0 ξi=0
    • 软间隔而允许在间隔带内可以犯错的数据点,其约束函数便是 y i ( w T x i + b ) ≥ 1 − ξ i y_i(w^Tx_i+b)\ge 1-\xi_i yi(wTxi+b)1ξi ,超平面为 y i ( w T x i + b ) y_i(w^Tx_i+b) yi(wTxi+b) , 即 1 − ξ i 1-\xi_i 1ξi

软间隔SVM也是使用拉格朗日乘子法进行求解。可以参考看了这篇文章你还不懂SVM你就来打我。

6.6 总结

6.6.1 SVM优缺点

任何算法都有其优缺点,支持向量机也不例外。

  • 支持向量机的优点是:

    1. 由于SVM是一个凸优化问题,所以求得的解一定是全局最优而不是局部最优。
    2. 不仅适用于线性线性问题还适用于非线性问题(用核技巧)。
    3. 拥有高维样本空间的数据也能用SVM,这是因为数据集的复杂度只取决于支持向量而不是数据集的维度,这在某种意义上避免了“维数灾难”。
    4. 理论基础比较完善(例如神经网络就更像一个黑盒子)。
  • 支持向量机的缺点是:

    1. 二次规划问题求解将涉及m阶矩阵的计算(m为样本的个数), 因此SVM不适用于超大数据集。(SMO算法可以缓解这个问题)
    2. 只适用于二分类问题。(SVM的推广SVR也适用于回归问题;可以通过多个SVM的组合来解决多分类问题)

6.6.2 SVM调参经验

SVM很适合做分类任务,但是如果刚开始接触SVM而不知道如何进行合理的参数选择的话可能得不到满意的结果。下面简介运用SVM的基本步骤,或者说调参经验。

主要参考:

Hsu C W, Chang C C, Lin C J. A practical guide to support vector classification[J]. 2003.

  1. 将原始数据转换为SVM算法期待的格式;
  2. 将数据进行scaling(很重要);
  3. 一般考虑用高斯核RBF(如果特征维度太高,建议直接用线性SVM);
  4. 交叉验证寻找最优的RBF的参数以及参数 C ;
  5. 用上面找到的最优参数在整个训练集上训练。

参考

  1. 看了这篇文章你还不懂SVM你就来打我
  2. 机器学习-白板推导系列(六)-支持向量机SVM(Support Vector Machine)笔记
  3. 支持向量机|机器学习推导系列(七)
  4. 支持向量机(SVM)原理详解

你可能感兴趣的:(机器学习-白板推导,机器学习,支持向量机)