ML模型4-1:SVM之线性可分支持向量机

SVM总述

分类:硬间隔SVM(线性可分SVM)、软间隔SVM 和 核技巧 SVM。

SVM是一个二分类的分类模型。
SVM的学习目标 - 在特征空间中找到一个分类超平面 w T x + b = 0 {w^T}x + b = 0 wTx+b=0,使正例和反例之间的间隔最大(所有点中离超平面最近的点具有最大间距),这样能有较好的泛化能力。

本文主要介绍线性可分SVM。

线性可分SVM

1. 问题引入

分类学习的基本思想 - 基于训练集在样本空间找到一个分类超平面,将不同类别样本分开。

从下图可以看出:存在多个分类超平面将训练样本分开。
在这里插入图片描述

那么我们需要思考:这么多的分类超平面,哪个是最好的呢?或者说哪个泛化能力最强呢?

在解决这个问题之前,我们先介绍几个术语:函数间隔、几何间隔和支持向量。

2. 基本概念

2.1 函数间隔

样本空间中,分类超平面定义为 w T x + b = 0 {w^T}x + b = 0 wTx+b=0

样本空间中任意点x到超平面距离为 d = ∣ w T x + b ∣ ∥ w ∥ d = {{\left| {{w^T}x + b} \right|} \over {\left\| w \right\|}} d=wwTx+b
则在超平面确定的情况下, ∣ w T x + b ∣ \left| {{w^T}x + b} \right| wTx+b 表示点x和超平面的相对距离 w T x + b {{w^T}x + b} wTx+b y y y 是否同号,可以表征分类是否正确。综上我们用函数间隔表征分类的正确性及确信度

γ ^ = y ( w T x + b ) \hat \gamma = y\left( {{w^T}x + b} \right) γ^=y(wTx+b)

上式表示超平面关于样本点 ( x , y ) (x,y) (x,y)的函数间隔。而分类超平面关于整个训练集的函数间隔,定义为超平面关于所有样本点 ( x i , y i ) \left( {{x_i},{y_i}} \right) (xi,yi)的函数间隔的最小值。

2.2 几何间隔

但是选择分类超平面,只有函数间隔还不够。因为当成比例地改变 w w w b b b 时,虽然超平面没有改变,但函数间隔却发生了改变。

例如, 2 x + 2 b = 0 2x + 2b = 0 2x+2b=0 x + b = 0 x+b=0 x+b=0表示的就是同一个超平面 [注意 -此处 x x x可以是多维矩阵]

所以,此处对超平面的法向量 w w w 施加约束,如规范化 ∥ w ∥ = 1 \left\| w \right\| = 1 w=1,使间隔确定化,此时称为几何间隔
γ = γ ^ ∥ w ∥ = y ( w T x + b ) ∥ w ∥ \gamma = {{\hat \gamma } \over {\left\| w \right\|}} = {{y\left( {{w^T}x + b} \right)} \over {\left\| w \right\|}} γ=wγ^=wy(wTx+b)
下述距离均指几何间隔。

2.3 支持向量

通常距离超平面比较远的点,已经被正确分类;反而我们更关心距离超平面比较近的点,这些点更容易被误分类。因此我们让距离超平面比较近的点尽可能远离超平面,这样泛化性能会更好。

距离超平面最近的几个样本点满足 y i ( w T x i + b ) = 1 {y_i}\left( {{w^T}{x_i} + b} \right) = 1 yi(wTxi+b)=1(证明可参见第3节Q1),这些点被称为支持向量,如下图虚线上的点所示。
在这里插入图片描述

3. 模型描述 - 间隔最大化

SVM的核心问题:如何求得一个使几何间隔最大的分类超平面?
max ⁡    w , b γ \mathop {\max\; }\limits_{w,b} \gamma w,bmaxγ s . t . y i ( w T x i + b ) ∥ w ∥ ≥ γ , i = 1 , 2... m s.t.\quad {{{y_i}\left( {{w^T}{x_i} + b} \right)} \over {\left\| w \right\|}} \ge \gamma ,i = 1,2...m s.t.wyi(wTxi+b)γ,i=1,2...m

此处,约束条件表示 γ \gamma γ 是距离超平面最近点的间隔。

考虑函数间隔和几何间隔的关系,可将其改写为:
max ⁡ w , b γ ^ ∥ w ∥ \mathop {\max }\limits_{w,b} {{\hat \gamma } \over {\left\| w \right\|}} w,bmaxwγ^ s . t . y i ( w T x i + b ) ≥ γ ^ , i = 1 , 2.... m s.t.\quad{y_i}\left( {{w^T}{x_i} + b} \right) \ge \hat \gamma ,i = 1,2....m s.t.yi(wTxi+b)γ^,i=1,2....m

上式中函数间隔 γ ^ {\hat \gamma } γ^的取值并不影响最优化问题的解,所以我们不妨取 γ ^ = 1 \hat \gamma = 1 γ^=1。(Q1. 为什么函数间隔的取值不影响最优化问题的解?

下面得到线性可分SVM学习的最优化问题:
max ⁡ w , b 1 ∥ w ∥ ⇔ min ⁡ w , b 1 2 ∥ w ∥ 2 \mathop {\max }\limits_{w,b} {1 \over {\left\| w \right\|}} \Leftrightarrow \mathop {\min }\limits_{w,b} {1 \over 2}{\left\| w \right\|^2} w,bmaxw1w,bmin21w2

s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2... m s.t.\quad{y_i}\left( {{w^T}{x_i} + b} \right) \ge 1,i = 1,2...m s.t.yi(wTxi+b)1,i=1,2...m

4. 模型求解

SVM的最优化问题是一个凸二次规划问题,可以利用拉格朗日对偶性将约束条件融入目标函数中,然后对其对偶函数进行求解。(Q2. 转换成对偶函数有什么好处?
1)优化目标为:
min ⁡ w , b 1 2 ∥ w ∥ 2 \mathop {\min }\limits_{w,b} {1 \over 2}{\left\| w \right\|^2} w,bmin21w2

s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2... m s.t.\quad{y_i}\left( {{w^T}{x_i} + b} \right) \ge 1,i = 1,2...m s.t.yi(wTxi+b)1,i=1,2...m

2)构造拉格朗日函数 - 引入拉格朗日乘子 α i ≥ 0 {\alpha _i} \ge 0 αi0
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i ( y i ( w T x i + b ) − 1 ) , α i ≥ 0 L\left( {w,b,\alpha } \right) = {1 \over 2}{\left\| w \right\|^2} - \sum\limits_{i = 1}^m {{\alpha _i}\left( {{y_i}\left( {{w^T}{x_i} + b} \right) - 1} \right)} ,\quad\quad{\alpha _i} \ge 0 L(w,b,α)=21w2i=1mαi(yi(wTxi+b)1),αi0

3)原始问题转换成对偶问题求解:
min ⁡ w , b max ⁡ α L ( w , b , α ) ⇔ max ⁡ α min ⁡ w , b L ( w , b , α ) \mathop {\min }\limits_{w,b} \mathop {\max }\limits_\alpha L\left( {w,b,\alpha } \right) \Leftrightarrow \mathop {\max }\limits_\alpha \mathop {\min }\limits_{w,b} L\left( {w,b,\alpha } \right) w,bminαmaxL(w,b,α)αmaxw,bminL(w,b,α)

4)对偶问题求解
4.1) - 先求优化函数对于w和b的极小值,求偏导:
∂ L ∂ w = w − ∑ i = 1 m α i y i x i = 0 ⇒ w = ∑ i = 1 m α i y i x i ∂ L ∂ b = ∑ i = 1 m α i y i = 0 ⇒ ∑ i = 1 m α i y i = 0 \begin{aligned} {{\partial L} \over {\partial w}} &= w - \sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} = 0 \Rightarrow w = \sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} \\ {{\partial L} \over {\partial b}} &= \sum\limits_{i = 1}^m {{\alpha _i}{y_i}} = 0 \Rightarrow \sum\limits_{i = 1}^m {{\alpha _i}{y_i}} = 0 \end{aligned} wLbL=wi=1mαiyixi=0w=i=1mαiyixi=i=1mαiyi=0i=1mαiyi=0

将其代回优化函数 L ( w , b , α ) L\left( {w,b,\alpha } \right) L(w,b,α),消去 w w w:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i ( y i ( w T x i + b ) − 1 ) = 1 2 w T ∑ i = 1 m α i y i x i − ∑ i = 1 m α i y i w T x i − ∑ i = 1 m α i y i b + ∑ i = 1 m α i = − 1 2 w T ∑ i = 1 m α i y i x i + ∑ i = 1 m α i = − 1 2 ( ∑ i = 1 m α i y i x i ) T ∑ i = 1 m α i y i x i + ∑ i = 1 m α i = − 1 2 ∑ i = 1 m α i y i x i T ∑ i = 1 m α i y i x i + ∑ i = 1 m α i = − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j + ∑ i = 1 m α i \begin{aligned} L\left( {w,b,\alpha } \right) &= {1 \over 2}{\left\| w \right\|^2} - \sum\limits_{i = 1}^m {{\alpha _i}\left( {{y_i}\left( {{w^T}{x_i} + b} \right) - 1} \right)} \\ &= {1 \over 2}{w^T}\sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} - \sum\limits_{i = 1}^m {{\alpha _i}{y_i}{w^T}{x_i}} - \sum\limits_{i = 1}^m {{\alpha _i}{y_i}b} + \sum\limits_{i = 1}^m {{\alpha _i}} \\ &= - {1 \over 2}{w^T}\sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} + \sum\limits_{i = 1}^m {{\alpha _i}} \\ &= - {1 \over 2}{\left( {\sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} } \right)^T}\sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} + \sum\limits_{i = 1}^m {{\alpha _i}} \\ &= - {1 \over 2}\sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}^T} \sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} + \sum\limits_{i = 1}^m {{\alpha _i}} \\ &= - {1 \over 2}\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^m {{\alpha _i}{\alpha _j}{y_i}{y_j}{x_i}^T{x_j}} } + \sum\limits_{i = 1}^m {{\alpha _i}} \end{aligned} L(w,b,α)=21w2i=1mαi(yi(wTxi+b)1)=21wTi=1mαiyixii=1mαiyiwTxii=1mαiyib+i=1mαi=21wTi=1mαiyixi+i=1mαi=21(i=1mαiyixi)Ti=1mαiyixi+i=1mαi=21i=1mαiyixiTi=1mαiyixi+i=1mαi=21i=1mj=1mαiαjyiyjxiTxj+i=1mαi


min ⁡ w , b L ( w , b , α ) = − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j + ∑ i = 1 m α i \mathop {\min }\limits_{w,b} L\left( {w,b,\alpha } \right) = - {1 \over 2}\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^m {{\alpha _i}{\alpha _j}{y_i}{y_j}{x_i}^T{x_j}} } + \sum\limits_{i = 1}^m {{\alpha _i}} w,bminL(w,b,α)=21i=1mj=1mαiαjyiyjxiTxj+i=1mαi

4.2) -下式再对拉格朗日乘子 α α α 求极大值
max ⁡ α − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j + ∑ i = 1 m α i \mathop {\max }\limits_\alpha - {1 \over 2}\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^m {{\alpha _i}{\alpha _j}{y_i}{y_j}{x_i}^T{x_j}} } + \sum\limits_{i = 1}^m {{\alpha _i}} αmax21i=1mj=1mαiαjyiyjxiTxj+i=1mαi

s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2... m s.t.\quad \sum\limits_{i = 1}^m {{\alpha _i}{y_i}} = 0,\quad {\alpha _i} \ge 0,i = 1,2...m s.t.i=1mαiyi=0,αi0,i=1,2...m

可以去掉负号,即为等价的极小化问题如下:
min ⁡ α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j − ∑ i = 1 m α i \mathop {\min }\limits_\alpha {1 \over 2}\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^m {{\alpha _i}{\alpha _j}{y_i}{y_j}{x_i}^T{x_j}} } - \sum\limits_{i = 1}^m {{\alpha _i}} αmin21i=1mj=1mαiαjyiyjxiTxji=1mαi

s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2... m s.t.\quad \sum\limits_{i = 1}^m {{\alpha _i}{y_i}} = 0,\quad {\alpha _i} \ge 0,i = 1,2...m s.t.i=1mαiyi=0,αi0,i=1,2...m

4.3) - 一般用SMO算法对 α \alpha α求极小

5)由对偶问题的解求原始问题的解
5.1) - 假设已通过SMO算法得到对偶最优化问题的解 α ∗ {\alpha ^*} α。则根据4.1)小节,可得:
w ∗ = ∑ i = 1 m α i ∗ y i x i {w^*} = \sum\limits_{i = 1}^m {{\alpha _i}^*{y_i}{x_i}} w=i=1mαiyixi

5.2) - 对于任意支持向量 ( x s , y s ) \left( {{x_s},{y_s}} \right) (xs,ys),有
y s ( w T x s + b ) = 1 ⇒ w T x s + b = y s ⇒ b = y s − w T x s {y_s}\left( {{w^T}{x_s} + b} \right) = 1 \Rightarrow {w^T}{x_s} + b = {y_s} \Rightarrow b = {y_s} - {w^T}{x_s} ys(wTxs+b)=1wTxs+b=ysb=yswTxs


b ∗ = y s − w T x s = y s − ∑ i = 1 m α i ∗ y i x i T x s \begin{aligned} {b^*} &= {y_s} - {w^T}{x_s} \\ &= {y_s} - \sum\limits_{i = 1}^m {{\alpha _i}^*{y_i}{x_i}^T{x_s}} \end{aligned} b=yswTxs=ysi=1mαiyixiTxs

理论上每个支持向量求得的 b ∗ {b^*} b 都可以作为最终结果,但为了增强算法的健壮性,一般对所有支持向量所求得的 b ∗ {b^*} b 取平均作为最终结果(软间隔情况)。(对于严格线性可分的SVM, 求得的 b ∗ {b^*} b 都是相同的)

5. 拓展 - 其他知识点

软间隔SVM,松弛变量
非线性分类问题 - 核函数
SMO序列最小最优化算法

Q&A

Q1. 为什么函数间隔的取值不影响最优化问题的解?

我们知道,当成比例地改变 w w w b b b 时,超平面并没有改变: λ w T x + λ b = 0 ⇔ w T x + b = 0 \lambda {w^T}x + \lambda b = 0 \Leftrightarrow {w^T}x + b = 0 λwTx+λb=0wTx+b=0

假设将 w w w b b b 按比例地改变为 λ w \lambda w λw λ b \lambda b λb ,则函数间隔为 λ γ ^ \lambda \hat \gamma λγ^,最优化问题如下:

max ⁡ w , b λ γ ^ ∥ λ w ∥ = γ ^ ∥ w ∥ \mathop {\max }\limits_{w,b} {{\lambda \hat \gamma } \over {\left\| {\lambda w} \right\|}} = {{\hat \gamma } \over {\left\| w \right\|}} w,bmaxλwλγ^=wγ^ s . t . y i ( λ w T x i + λ b ) ≥ λ γ ^ ⇔ y i ( w T x i + b ) ≥ γ ^ , i = 1 , 2... N s.t.\quad{y_i}\left( {\lambda {w^T}{x_i} + \lambda b} \right) \ge \lambda \hat \gamma \Leftrightarrow {y_i}\left( {{w^T}{x_i} + b} \right) \ge \hat \gamma ,i = 1,2...N s.t.yi(λwTxi+λb)λγ^yi(wTxi+b)γ^,i=1,2...N

也就是说成比例的改变函数间隔 γ ^ \hat \gamma γ^ 的取值(成比例地改变 w w w b b b - 不会影响待求的超平面),没有改变最优化问题。

Q2. 转换成对偶函数有什么好处?

对偶问题更容易求解,更高效;
对偶问题求解时,引入了核函数,进而推广到非线性分类问题。

Ref

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值