西瓜书学习第六章---SVM

一、间隔与支持向量

1.1 分类学习的基本思想

分类任务的基本思想是在给定的数据集上用一个超平面 w T x + b = 0 w^{T}x+b=0 wTx+b=0将数据集分为两类,显然在一个线性可分的数据集上,能够做到这种效果的超平面有很多,如下图:
在这里插入图片描述

1.1 有多个可以完成分类任务的超平面

1.2 支持向量机的思想

  1. 相关概念
    支持向量: 距离超平面最近的若干训练样本,如下图在虚线上的正负样本
    间隔: 两个异类的支持向量到超平面的距离之和 γ = 2 ∣ ∣ w ∣ ∣ \gamma =\frac{2}{||w||} γ=∣∣w∣∣2被称为间隔

在这里插入图片描述

1.2 支持向量和间隔的图解
  1. 支持向量机的思想
    支持向量机(SVM)的目的就是在上述诸多超平面中找到一条泛化能力最好的,即离正负样本距离间隔最大的那一个超平面,如图1.2中的那一条黑线就是满足条件的,它对于新的样本点的抗干扰能力是最强的,在图1.1中其他超平面在识别处于正负样本分界线之内的新样本时错误率都会非常高

  2. 数学原理
    3.1 超平面的分类数学原理
    在超平面的表达式 w T x + b = 0 w^{T}x+b=0 wTx+b=0中, w = ( w 1 ; w 2 ; . . . ; w d ) w=(w_{1};w_{2};...;w_{d}) w=(w1;w2;...;wd)是超平面的法向量,它所决定是超平面的方向, b b b是偏置项,决定了超平面和原点之间的距离,所以 w 和 b w和b wb两个参数可以确定一个超平面,而设样本点到超平面的距离 r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\frac{|w^{T}x+b|}{||w||} r=∣∣w∣∣wTx+b
    所以给定一个样本( x i , y i x_{i},y_{i} xi,yi),当一个超平面可以将样本正确分类时,有
    { w T x + b ≥ + 1 , y i = + 1 ; w T x + b ≤ + 1 , y i = − 1 \begin{cases} & \text w^{T}x+b\ge +1, y_{i}=+1;\\ & \text w^{T}x+b\le +1, y_{i}=-1 \end{cases} {wTx+b+1,yi=+1;wTx+b+1,yi=1
    3.2 支持向量机的数学原理
    根据支持向量机的定义,要找到一个最大间隔的划分超平面,等价于求解能让 γ 最大的参数 w 和 b \gamma最大的参数w和b γ最大的参数wb,即
    max ⁡ w , b 2 ∣ ∣ w ∣ ∣ s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . , m \begin{align*} \\\max_{w,b}\frac{2}{||w||} \\s.t. y_{i}\left ( w^{T}x_{i}+b\right) \ge 1,i=1,2,..,m \end{align*} w,bmax∣∣w∣∣2s.t.yi(wTxi+b)1,i=1,2,..,m
    为了求解方便,上式等价于最小化 ∣ ∣ w ∣ ∣ 2 ||w||^{2} ∣∣w2,即等价于
    min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . , m \begin{align*} \\\min_{w,b}\frac{1}{2}||w||^{2} \\s.t. y_{i}\left ( w^{T}x_{i}+b\right) \ge 1,i=1,2,..,m \end{align*} w,bmin21∣∣w2s.t.yi(wTxi+b)1,i=1,2,..,m
    上式便是SVM的数学表达,显然它是一个二次凸优化问题

二、对偶问题

2.1 求解过程

本节主要讲述求解能够使 γ 最大的 w 和 b \gamma最大的w和b γ最大的wb,使用的方法是拉格朗日算子法,能够得到SVM数学表达的对偶问题,即给每个约束条件增加一个拉格朗日乘子 α i ≥ 0 \alpha_{i}\ge0 αi0,所以根据SVM数学表示得到 L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(w,b,\alpha)=\frac{1}{2}||w||^{2}+\sum_{i=1}^{m}\alpha _{i}\left ( 1-y_{i}\left ( w^{T}x_{i+b} \right ) \right ) L(w,b,α)=21∣∣w2+i=1mαi(1yi(wTxi+b))
然后 L L L函数对 w 和 b w和b wb求偏导,可得到
w = ∑ i = 1 m α i y i x i w=\sum_{i=1}^{m} \alpha_{i}y_{i}x_{i} w=i=1mαiyixi
0 = ∑ i = 1 m α i y i 0=\sum_{i=1}^{m}\alpha_{i}y_{i} 0=i=1mαiyi
(详细计算结果见南瓜书对应章节)
将计算得到的 w 和 b 代入到 L w和b代入到L wb代入到L中就可以得到SVM数学表达的对偶问题
max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j \max _{\boldsymbol{\alpha}} \sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j} αmaxi=1mαi21i=1mj=1mαiαjyiyjxiTxj
 s.t.  ∑ i = 1 m α i y i = 0 α i ⩾ 0 , i = 1 , 2 , … , m \begin{array}{ll} \text { s.t. } & \sum_{i=1}^{m} \alpha_{i} y_{i}=0 \\ & \alpha_{i} \geqslant 0, \quad i=1,2, \ldots, m \end{array}  s.t. i=1mαiyi=0αi0,i=1,2,,m
显然,上述对偶问题的本质是一个二次规划问题,现在有很多高效的算法,比如SMO算法(详细介绍可见西瓜书p124)可以来解决二次规划问题,可以根据上述公式求得
f ( x ) = w T x + b = ∑ i = 1 m α i y i x i T x + b \begin{aligned} f(\boldsymbol{x}) &=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b \\ &=\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}+b \end{aligned} f(x)=wTx+b=i=1mαiyixiTx+b

2.2 KTT 条件

在2.1中所求解得到的 α i \alpha_{i} αi就是SVM原型中样本( x i , y i x_{i},y_{i} xi,yi)的拉格朗日乘子,而且由于原式中有不等式的约束条件,所以在求解上述对偶问题时要遵循KTT 条件,即要满足如下不等式
{ α i ⩾ 0 y i f ( x i ) − 1 ⩾ 0 α i ( y i f ( x i ) − 1 ) = 0 … \left\{\begin{array}{l} \alpha_{i} \geqslant 0 \\ y_{i} f\left(\boldsymbol{x}_{i}\right)-1 \geqslant 0 \\ \alpha_{i}\left(y_{i} f\left(\boldsymbol{x}_{i}\right)-1\right)=0 \ldots \end{array}\right. αi0yif(xi)10αi(yif(xi)1)=0
所以根据上式能够看出SVM的一个性质,即在训练完毕之后,只需要保留支持向量就行,因为最早的模型只和支持向量有关系

三、核函数

3.1 核函数的作用

核函数 κ ( ⋅ , ⋅ ) \kappa \left ( \cdot , \cdot \right ) κ(,)的作用概括来说就是能够将低维的非线性可分的数据集变为高维的线性可分的数据集,如下图
在这里插入图片描述

3.1 非线性可分的异或问题经过变化之后成为了线性可分问题
可以证明,原始空间如果是有限维,那么一定有一个高维线性可分的特征空间对之对应

3.2 核函数作用的数学体现

  1. 符号定义
    ϕ ( x ) \phi(x) ϕ(x) : x x x映射之后的特征向量
    κ ( ⋅ , ⋅ ) \kappa \left ( \cdot , \cdot \right ) κ(,):核函数的数学定义
    f ( x ) = w T ϕ ( x ) + b f(x)=w^{T}\phi(x)+b f(x)=wTϕ(x)+b:在映射空间的超平面模型表达

  2. 计算过程
    第一步:首先将SVM原型改写为
    min ⁡ w , b 1 2 ∥ w ∥ 2  s.t.  y i ( w T ϕ ( x i ) + b ) ⩾ 1 , i = 1 , 2 , … , m \begin{aligned} \min _{w, b} & \frac{1}{2}\|w\|^{2} \\ \text { s.t. } & y_{i}\left(w^{\mathrm{T}} \phi\left(x_{i}\right)+b\right) \geqslant 1, \quad i=1,2, \ldots, m \end{aligned} w,bmin s.t. 21w2yi(wTϕ(xi)+b)1,i=1,2,,m
    则能够得到对偶问题

    max ⁡ ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) \operatorname{max} \sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \phi\left(x_{i}\right)^{\mathrm{T}} \phi\left(x_{j}\right) maxi=1mαi21i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)

     s.t.  ∑ i = 1 m α i y i = 0 α i ⩾ 0 , i = 1 , 2 , … , m \begin{array}{ll} \text { s.t. } & \sum_{i=1}^{m} \alpha_{i} y_{i}=0 \\ & \alpha_{i} \geqslant 0, \quad i=1,2, \ldots, m \end{array}  s.t. i=1mαiyi=0αi0,i=1,2,,m
    第二步:使用核函数来对公式进行改写,(即 κ ( x i , x j ) = ⟨ ϕ ( x i ) , ϕ ( x j ) ⟩ = ϕ ( x i ) T ϕ ( x j ) \kappa\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\left\langle\phi\left(\boldsymbol{x}_{i}\right), \phi\left(\boldsymbol{x}_{j}\right)\right\rangle=\phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi\left(\boldsymbol{x}_{j}\right) κ(xi,xj)=ϕ(xi),ϕ(xj)=ϕ(xi)Tϕ(xj)),可以得到如下改写:

    max ⁡ α ∑ i = 1 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 .  \max _{\boldsymbol{\alpha}} \sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \kappa\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right) s.t. \sum_{i=1}^{m} \alpha_{i} y_{i}=0 \\ \alpha_{i} \geqslant 0, \quad i=1,2, \ldots, m \text {. } αmaxi=1mαi21i=1mj=1mαiαjyiyjκ(xi,xj)s.t.i=1mαiyi=0αi0,i=1,2,,m
    第三步:计算最终结果,可得
    f ( x ) = w T ϕ ( x ) + b = ∑ i = 1 m α i y i ϕ ( x i ) T ϕ ( x ) + b = ∑ i = 1 m α i y i κ ( x , x i ) + b \begin{aligned} f(\boldsymbol{x}) &=\boldsymbol{w}^{\mathrm{T}} \phi(\boldsymbol{x})+b \\ &=\sum_{i=1}^{m} \alpha_{i} y_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi(\boldsymbol{x})+b \\ &=\sum_{i=1}^{m} \alpha_{i} y_{i} \kappa\left(\boldsymbol{x}, \boldsymbol{x}_{i}\right)+b \end{aligned} f(x)=wTϕ(x)+b=i=1mαiyiϕ(xi)Tϕ(x)+b=i=1mαiyiκ(x,xi)+b

3.3 常用的核函数

在进行映射的过程中,选择合适的核函数是非常重要的,下面是常用的一些核函数

名称表达式参数
线性核 κ ( x i , x j ) = x i T x j \kappa\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j} κ(xi,xj)=xiTxj
多项式核 κ ( x i , x j ) = ( x i T x j ) d \kappa\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\left(\boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j}\right)^{d} κ(xi,xj)=(xiTxj)d d ≥ 1 d\ge1 d1为多项式的次数
高斯核 κ ( x i , x j ) = exp ⁡ ( − ∣ x i − x j ∣ 2 2 σ 2 ) \kappa\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\exp \left(-\frac{\left|\boldsymbol{x}_{i}-\boldsymbol{x}_{j}\right|^{2}}{2 \sigma^{2}}\right) κ(xi,xj)=exp(2σ2xixj2) σ > 0 \sigma>0 σ>0为高斯核的带宽
拉普拉斯核 κ ( x i , x j ) = exp ⁡ ( − ∣ x i − x j ∣ σ ) \kappa\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\exp \left(-\frac{\left|\boldsymbol{x}_{i}-\boldsymbol{x}_{j}\right|}{\sigma}\right) κ(xi,xj)=exp(σxixj) σ > 0 \sigma>0 σ>0
Sigmoid核 κ ( x i , x j ) = tanh ⁡ ( β x i T x j + θ ) \kappa\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\tanh \left(\beta \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j}+\theta\right) κ(xi,xj)=tanh(βxiTxj+θ)tanh为双曲正切函数, β > 0 \beta>0 β>0, θ < 0 \theta<0 θ<0

除了上述列出的核函数之外,还可以对两个或者更多的核函数进行几何变换得到新的核函数

四、软间隔和正则化

迄今为止我们所讨论的都是理想情况下,存在一个超平面可以将样本集完美的划分开,但是在实际生活中往往不存在如何完美的数据集,所以应该允许一些错误的出现,否则即使存在一个超平面对数据集进行了完美的划分,也可能是过拟合导致的,泛化能力依旧有问题,于是规定了软间隔的概念

4.1 软间隔的概念

与前面的硬间隔相对应,软间隔允许若干样本可以不满足硬间隔中的约束条件,但是这样的样本在最大化的过程中是要控制在一定数量之中的,所以原本SVM的数学模型可以改写为
min ⁡ w , b 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ℓ 0 / 1 ( y i ( w T x i + b ) − 1 ) \min _{\boldsymbol{w}, b} \frac{1}{2}\|\boldsymbol{w}\|^{2}+C \sum_{i=1}^{m} \ell_{0 / 1}\left(y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)-1\right) w,bmin21w2+Ci=1m0/1(yi(wTxi+b)1)

ℓ 0 / 1 \ell_{0 / 1} 0/1是损失函数,其表达式为
ℓ 0 / 1 ( z ) = { 1 ,  if  z < 0 0 ,  otherwise  \ell_{0 / 1}(z)=\left\{\begin{array}{ll} 1, & \text { if } z<0 \\ 0, & \text { otherwise } \end{array}\right. 0/1(z)={1,0, if z<0 otherwise 
所以根据上式中能够看出,C越大,由于整个式子要趋于最小化,所以损失函数这一项就必须越小,相当于要求所以样本都满足SVM原式中的约束条件,反之,C为一个合适的取值时,就允许若干样本不满足约束

4.2 常用的损失函数

由于4.1中使用的0/1损失函数的数学性质并不好,所以通常使用一些连续的凸函数且取值都是0/1损失函数的上界,下表是常用的替代损失函数

名称表达式
hinge损失函数 ℓ hinge  ( z ) = max ⁡ ( 0 , 1 − z ) \ell_{\text {hinge }}(z)=\max (0,1-z) hinge (z)=max(0,1z)
指数损失 ℓ e x p ( z ) = exp ⁡ ( − z ) \ell_{e x p}(z)=\exp (-z) exp(z)=exp(z)
对率损失 ℓ log ⁡ ( z ) = log ⁡ ( 1 + exp ⁡ ( − z ) ) \ell_{\log }(z)=\log (1+\exp (-z)) log(z)=log(1+exp(z))

下图是三种损失函数的函数图像:
在这里插入图片描述

4.1 常见替代损失函数的图像

在引入新的损失函数之后,定义松弛变量 ξ i ≥ 0 \xi _{i}\ge 0 ξi0,则可以得到如下公式,这个公式也是软间隔SVM的表达式
min ⁡ w , b , ξ i 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ i \min _{\boldsymbol{w}, b, \xi_{i}} \frac{1}{2}\|\boldsymbol{w}\|^{2}+C \sum_{i=1}^{m} \xi_{i} minw,b,ξi21w2+Ci=1mξi

 s.t.  y i ( w T x i + b ) ⩾ 1 − ξ i ξ i ⩾ 0 , i = 1 , 2 , … , m . \begin{array}{ll} \text { s.t. } & y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right) \geqslant 1-\xi_{i} \\ & \xi_{i} \geqslant 0, i=1,2, \ldots, m . \end{array}  s.t. yi(wTxi+b)1ξiξi0,i=1,2,,m.

则可以得到软间隔SVM的对偶问题:
max ⁡ α ∑ i = 1 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 0 ⩽ α i ⩽ C , i = 1 , 2 , … , m \begin{aligned} \max _{\boldsymbol{\alpha}} & \sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j} \\ \text { s.t. } & \sum_{i=1}^{m} \alpha_{i} y_{i}=0 \\ & 0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2, \ldots, m \end{aligned} αmax s.t. i=1mαi21i=1mj=1mαiαjyiyjxiTxji=1mαiyi=00αiC,i=1,2,,m
且上式要满足的KTT 条件为
{ α i ⩾ 0 , μ i ⩾ 0 y i f ( x i ) − 1 + ξ i ⩾ 0 α i ( y i f ( x i ) − 1 + ξ i ) = 0 ξ i ⩾ 0 , μ i ξ i = 0 \left\{\begin{array}{l} \alpha_{i} \geqslant 0, \quad \mu_{i} \geqslant 0 \\ y_{i} f\left(\boldsymbol{x}_{i}\right)-1+\xi_{i} \geqslant 0 \\ \alpha_{i}\left(y_{i} f\left(\boldsymbol{x}_{i}\right)-1+\xi_{i}\right)=0 \\ \xi_{i} \geqslant 0, \mu_{i} \xi_{i}=0 \end{array}\right. αi0,μi0yif(xi)1+ξi0αi(yif(xi)1+ξi)=0ξi0,μiξi=0

五、支持向量回归

支持向量回归简称SVR,是SVM在回归问题的一种运用,主要目的是学到一个类似于在分类问题中的 w T x + b = 0 w^{T}x+b=0 wTx+b=0的模型,如下图
在这里插入图片描述

5.1 支持向量的回归图,红色是间隔带

在上图中,如果训练样本落入到间隔带中,那就是预测正确,这就是SVR的基本思想,具体的计算思想和支持向量机是类似的,都是根据拉格朗日算子法将问题转换为对偶问题,在KTT 条件约束下进行计算求得模型,具体计算过程见西瓜书p135

六、核方法

核方法的基本概念就是指一系列的基于核函数的学习方法,其最基本也是使用最广泛的就是前面几章提到的用核函数将非线性数据集转换为线性可分的数据集,西瓜书上的本节主要是介绍了一种利用核函数将线性分类器转换为非线性分类器的方法,详细推导过程见西瓜书p139,这里不赘述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值