机器学习算法学习笔记:支持向量机

一、理论篇

1、概述

支持向量机(support vector machines,SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。

支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机、线性支持向量机以及非线性支持向量机。简单模型是复杂模型的基础,也是复杂模型的特殊情况。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。

2、间隔与支持向量

【例子】假如在下面的样本空间中,我们想寻找一个超平面,将不同类别的样本分开。但是我们发现将训练样本分开的超平面可能有很多,选择哪一个好呢?
其实,应选择正中间红色的超平面,因为它容忍性好,鲁棒性高,泛化能力最强。

我们把这个超平面方程定义为: w T x + b = 0 w^Tx+b=0 wTx+b=0
样本空间中任意点 x x x到超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0的距离为 r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\cfrac{|w^Tx+b|}{||w||} r=wwTx+b
假如超平面能够将样本正确分类,即当 y i = + 1 y_i=+1 yi=+1时, w T x i + b > 0 w^Tx_i+b>0 wTxi+b>0;当 y i = − 1 y_i=-1 yi=1时, w T x i + b < 0 w^Tx_i+b<0 wTxi+b<0
根据上面的两种情况,关系式 y i ( w T x i + b ) > 0 y_i(w^Tx_i+b)>0 yi(wTxi+b)>0永远成立。

如果当 w w w b b b变成它们原来的倍数时, w T x + b = 0 w^Tx+b=0 wTx+b=0代表同一个超平面。为了后面能解出唯一解,我们需要缩放权重和偏差的比例。为了便于推导,选择一个合适的缩放比例,得到下面式子:
min ⁡ i = 1 , 2 , . . . , m y i ( w T x i + b ) = 1 \min_{i=1,2,...,m}y_i(w^Tx_i+b)=1 i=1,2,...,mminyi(wTxi+b)=1
证明如下
( b , w ) (b,w) (b,w) ( b / c , w / c ) (b/c,w/c) (b/c,w/c)代表同一个超平面( c > 0 c>0 c>0),令
c = min ⁡ i = 1 , 2 , . . . , m y i ( w T x i + b ) > 0 c=\min_{i=1,2,...,m}y_i(w^Tx_i+b)>0 c=i=1,2,...,mminyi(wTxi+b)>0
( b / c , w / c ) (b/c,w/c) (b/c,w/c)代入上式的 ( b , w ) (b,w) (b,w)
min ⁡ i = 1 , 2 , . . . , m y i ( w T c x i + b c ) = 1 c min ⁡ i = 1 , 2 , . . . , m y i ( w T x i + b ) = c c = 1 \min_{i=1,2,...,m}y_i(\frac{w^T}{c}x_i+\frac{b}{c})=\frac{1}{c}\min_{i=1,2,...,m}y_i(w^Tx_i+b)=\frac{c}{c}=1 i=1,2,...,mminyi(cwTxi+cb)=c1i=1,2,...,mminyi(wTxi+b)=cc=1
由于 ( b , w ) (b,w) (b,w) ( b / c , w / c ) (b/c,w/c) (b/c,w/c)等价,则
min ⁡ i = 1 , 2 , . . . , m y i ( w T x i + b ) = 1 \min_{i=1,2,...,m}y_i(w^Tx_i+b)=1 i=1,2,...,mminyi(wTxi+b)=1
y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b)≥1 yi(wTxi+b)1
如下图所示,距离超平面最近的这几个样本点使得上面式子的等号成立,我们称之为“支持向量”,两个异类支持向量到超平面的距离之和为 γ = 2 ∣ ∣ w ∣ ∣ γ=\cfrac{2}{||w||} γ=w2,我们称之为“间隔”。

我们的目标,就是要找到“最大间隔”的划分超平面,并且满足 y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b)≥1 yi(wTxi+b)1约束的参数 w w w b b b,使得 γ γ γ最大,即
max ⁡ w , b 2 ∣ ∣ w ∣ ∣ \max_{w,b}^{} \cfrac{2}{||w||} w,bmaxw2 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m s.t.y_i(w^Tx_i+b)≥1,i=1,2,...,m s.t.yi(wTxi+b)1i=1,2,...,m
上面的不等式约束可以等价为
min ⁡ w , b 1 2 w T w \min_{w,b}^{}\cfrac{1}{2}w^Tw w,bmin21wTw s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m s.t.y_i(w^Tx_i+b)≥1,i=1,2,...,m s.t.yi(wTxi+b)1i=1,2,...,m
这就是支持向量机的基本型,即SVM的最终优化问题,也被称之为硬间隔SVM原始问题
由于目标函数是一个关于 w w w的二次函数,通常这类问题称作二次规划(QP)。

3、优化问题

3.1 拉格朗日乘子法

最优规划分为无约束规划和约束规划两种,其表现形式如下所示:
无约束规划 min ⁡ x f ( x ) \min_{x}^{}f(x) xminf(x)
约束规划:
min ⁡ x f ( x ) \min_{x}^{} f(x) xminf(x) s . t . ① g i ( x ) ≤ 0 , i = 1 , 2 , . . . , k s.t.①g_i(x)≤0,i=1,2,...,k s.t.gi(x)0i=1,2,...,k ② h i ( x ) = 0 , i = 1 , 2 , . . . , l ②h_i(x)=0,i=1,2,...,l hi(x)=0i=1,2,...,l
约束规划比无约束规划问题难,而拉格朗日量可以将约束规划转换成无约束规划,具体定义如下:(拉格朗日函数)
L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i g i ( x ) + ∑ i = 1 l β i h i ( x ) L(x,α,β)=f(x)+\sum_{i=1}^kα_ig_i(x)+\sum_{i=1}^lβ_ih_i(x) L(x,α,β)=f(x)+i=1kαigi(x)+i=1lβihi(x)
拉格朗日量是 x , α , β x,α,β x,α,β的函数, α ≥ 0 α≥0 α0
如果对于 L L L只在 α , β α,β α,β(没有包括 x x x)上求最大值 θ θ θ,那么 θ θ θ其实是 x x x的一个函数,记作 θ ( x ) θ(x) θ(x)
θ ( x ) = max ⁡ α , β : α i ≥ 0 L ( x , α , β ) θ(x)=\max_{α,β:α_i≥0}L(x,α,β) θ(x)=α,β:αi0maxL(x,α,β)
我们会发现,其实无约束最小化 θ ( x ) θ(x) θ(x)等价于有约束最小化 f ( x ) f(x) f(x),具体证明如下。
情况1:当 x x x违反边界条件( g i ( x ) > 0 , h i ( x ) ≠ 0 g_i(x)>0,h_i(x)≠0 gi(x)>0,hi(x)=0)时
θ ( x ) = max ⁡ α , β : α i ≥ 0 L ( x , α , β ) = max ⁡ α , β : α i ≥ 0 [ f ( x ) + ∑ i = 1 k α i g i ( x ) + ∑ i = 1 l β i h i ( x ) ] = ∞ θ(x)=\max_{α,β:α_i≥0}L(x,α,β)=\max_{α,β:α_i≥0}[f(x)+\sum_{i=1}^kα_ig_i(x)+\sum_{i=1}^lβ_ih_i(x)]=∞ θ(x)=α,β:αi0maxL(x,α,β)=α,β:αi0max[f(x)+i=1kαigi(x)+i=1lβihi(x)]=
情况2:当 x x x满足边界条件( g i ( x ) ≤ 0 , h i ( x ) = 0 g_i(x)≤0,h_i(x)=0 gi(x)0,hi(x)=0)时
θ ( x ) = max ⁡ α , β : α i ≥ 0 L ( x , α , β ) = max ⁡ α , β : α i ≥ 0 [ f ( x ) + ∑ i = 1 k α i g i ( x ) ] = f ( x ) θ(x)=\max_{α,β:α_i≥0}L(x,α,β)=\max_{α,β:α_i≥0}[f(x)+\sum_{i=1}^kα_ig_i(x)]=f(x) θ(x)=α,β:αi0maxL(x,α,β)=α,β:αi0max[f(x)+i=1kαigi(x)]=f(x)
综上所述,
θ ( x ) = { ∞ g i ( x ) > 0 , h i ( x ) ≠ 0 f ( x ) g i ( x ) ≤ 0 , h i ( x ) = 0 θ(x)=\begin{cases} ∞& \text{$g_i(x)>0,h_i(x)≠0$}\\ f(x)& \text{$g_i(x)≤0,h_i(x)=0$}\\ \end{cases} θ(x)={f(x)gi(x)>0,hi(x)=0gi(x)0,hi(x)=0
因此,无约束最小化 θ ( x ) θ(x) θ(x)等价于有约束最小化 f ( x ) f(x) f(x),其数学表达形式如下所示:
约束规划 f ( x ) f(x) f(x) min ⁡ x f ( x ) \min_{x}^{} f(x) xminf(x) s . t . ① g i ( x ) ≤ 0 , i = 1 , 2 , . . . , k s.t.①g_i(x)≤0,i=1,2,...,k s.t.gi(x)0i=1,2,...,k ② h i ( x ) = 0 , i = 1 , 2 , . . . , l ②h_i(x)=0,i=1,2,...,l hi(x)=0i=1,2,...,l
无约束规划 θ ( x ) θ(x) θ(x)
min ⁡ x θ ( x ) = min ⁡ x max ⁡ α , β : α i ≥ 0 L ( x , α , β ) \min_{x}^{}θ(x)=\min_x\max_{α,β:α_i≥0}L(x,α,β) xminθ(x)=xminα,β:αi0maxL(x,α,β)
结论:对于一个约束规划问题,将其用拉格朗日量转换成容易求解的无约束规划问题即可,两者是等价的。

3.2 原始和对偶问题

上面介绍的无约束规划形式被叫作“原始形式(Primal)”,与其对应的是“对偶形式(Dual)”。
原始问题:先在 α α α β β β上求最大值,再在 x x x上求最小值。
min ⁡ x θ P ( x ) = min ⁡ x max ⁡ α , β : α i ≥ 0 L ( x , α , β ) \min_{x}^{}θ_P(x)=\min_x\max_{α,β:α_i≥0}L(x,α,β) xminθP(x)=xminα,β:αi0maxL(x,α,β)
对偶问题:先在 x x x上求最小值,再在 α α α β β β上求最大值。
max ⁡ α , β : α i ≥ 0 θ D ( x ) = max ⁡ α , β : α i ≥ 0 min ⁡ x L ( x , α , β ) \max_{α,β:α_i≥0}^{}θ_D(x)=\max_{α,β:α_i≥0}\min_xL(x,α,β) α,β:αi0maxθD(x)=α,β:αi0maxxminL(x,α,β)
下面的不等式恒成立:(最大的最小值永远大于或等于最小的最大值)
min ⁡ x θ P ( x ) ≥ max ⁡ α , β : α i ≥ 0 θ D ( x ) \min_{x}^{}θ_P(x)≥\max_{α,β:α_i≥0}^{}θ_D(x) xminθP(x)α,β:αi0maxθD(x)
min ⁡ x max ⁡ α , β : α i ≥ 0 L ( x , α , β ) ≥ max ⁡ α , β : α i ≥ 0 min ⁡ x L ( x , α , β ) \min_x\max_{α,β:α_i≥0}L(x,α,β)≥\max_{α,β:α_i≥0}\min_xL(x,α,β) xminα,β:αi0maxL(x,α,β)α,β:αi0maxxminL(x,α,β)
原始与对偶关系的证明:【略】
上面的不等式具有的特性被称为弱对偶性,即对偶问题的最优解永远小于或等于原始问题的最优解。在实际问题中,如果有以下3个额外条件,则有强对偶等式:
min ⁡ x max ⁡ α , β : α i ≥ 0 L ( x , α , β ) = max ⁡ α , β : α i ≥ 0 min ⁡ x L ( x , α , β ) \min_x\max_{α,β:α_i≥0}L(x,α,β)=\max_{α,β:α_i≥0}\min_xL(x,α,β) xminα,β:αi0maxL(x,α,β)=α,β:αi0maxxminL(x,α,β)
其中3个条件是
{ ① 原始问题的目标函数是凸函数 ② 原始问题有解 ③ 线性限制条件 \begin{cases} ①& \text{原始问题的目标函数是凸函数}\\ ②& \text{原始问题有解}\\ ③& \text{线性限制条件}\\ \end{cases} 原始问题的目标函数是凸函数原始问题有解线性限制条件
强对偶条件意味着原始问题和对偶问题的最优解是一样的。假设 x ∗ x^* x α ∗ α^* α β ∗ β^* β是最优解,它们满足KKT条件

原始可行性条件 g i ( x ∗ ) ≤ 0 , i = 1 , 2 , . . . , k g_i(x^*)≤0,i=1,2,...,k gi(x)0i=1,2,...,k h i ( x ∗ ) = 0 , i = 1 , 2 , . . . , l h_i(x^*)=0,i=1,2,...,l hi(x)=0i=1,2,...,l
对偶可行性条件 α i ∗ ≥ 0 , i = 1 , 2 , . . . , k α_i^*≥0,i=1,2,...,k αi0i=1,2,...,k
驻点条件 ∂ L ( x ∗ , α ∗ , β ∗ ) ∂ x ( i ) = 0 , i = 1 , 2 , . . . , m \frac{∂L(x^*,α^*,β^*)}{∂x^{(i)}}=0,i=1,2,...,m x(i)L(x,α,β)=0i=1,2,...,m
互补松弛条件 α i ∗ g i ( x ∗ ) = 0 , i = 1 , 2 , . . . , k α_i^*g_i(x^*)=0,i=1,2,...,k αigi(x)=0i=1,2,...,k

结论:如果满足强对偶条件,则可以不好解的原始问题转换成好解的对偶问题,再用KKT条件求解

4、硬间隔SVM

回顾硬间隔SVM原始问题:
min ⁡ w , b 1 2 w T w \min_{w,b}^{}\cfrac{1}{2}w^Tw w,bmin21wTw s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m s.t.y_i(w^Tx_i+b)≥1,i=1,2,...,m s.t.yi(wTxi+b)1i=1,2,...,m
支持向量机的基本型属于一个凸二次规划问题,我们通过使用拉格朗日乘子法转化为无约束规划问题,即对每一条约束添加拉格朗日乘子 α i ≥ 0 α_i≥0 αi0,则该问题的拉格朗日函数可以写为

L ( w , b , α ) L(w,b,α) L(w,b,α) w w w b b b的偏导为零可得

将上面两个式子代入 L ( w , b , α ) L(w,b,α) L(w,b,α),将 w w w b b b消去,可得

【原问题转化为对偶问题】

所以

由此可以求出最优解 α ∗ α^* α,求出该值后将其带入可以得到:

根据上面的推导得到硬间隔SVM对偶问题:
min ⁡ α ( 1 2 ∑ i = 1 m ∑ k = 1 m α i α k y ( i ) y ( k ) x ( i ) ( x ( k ) ) T − ∑ i = 1 m α i ) \min_{α}(\cfrac{1}{2}\sum_{i=1}^m\sum_{k=1}^mα_iα_ky^{(i)}y^{(k)}x^{(i)}(x^{(k)})^T-\sum_{i=1}^mα_i) αmin(21i=1mk=1mαiαky(i)y(k)x(i)(x(k))Ti=1mαi) s . t . ∑ i = 1 m α i y ( i ) = 0 , α i ≥ 0 , i = 1 , 2 , . . . , m s.t.\sum_{i=1}^mα_iy^{(i)}=0,α_i≥0,i=1,2,...,m s.t.i=1mαiy(i)=0αi0i=1,2,...,m

SVM的原始问题和对偶问题都是二次规划问题,但是求解的变量个数和约束条件个数都不同。

SVM原始问题对偶问题
求解变量 min ⁡ w , b 1 2 w T w \min_{w,b}^{}\cfrac{1}{2}w^Tw w,bmin21wTw s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m s.t.y_i(w^Tx_i+b)≥1,i=1,2,...,m s.t.yi(wTxi+b)1i=1,2,...,m min ⁡ α ( 1 2 ∑ i = 1 m ∑ k = 1 m α i α k y ( i ) y ( k ) x ( i ) ( x ( k ) ) T − ∑ i = 1 m α i ) \min_{α}(\cfrac{1}{2}\sum_{i=1}^m\sum_{k=1}^mα_iα_ky^{(i)}y^{(k)}x^{(i)}(x^{(k)})^T-\sum_{i=1}^mα_i) αmin(21i=1mk=1mαiαky(i)y(k)x(i)(x(k))Ti=1mαi) s . t . ∑ i = 1 m α i y ( i ) = 0 , α i ≥ 0 , i = 1 , 2 , . . . , m s.t.\sum_{i=1}^mα_iy^{(i)}=0,α_i≥0,i=1,2,...,m s.t.i=1mαiy(i)=0αi0i=1,2,...,m
变量个数 n + 1 n+1 n+1 m m m
约束条件个数 m m m m + 1 m+1 m+1

m m m是向量个数而 n n n是维度,如果数据在低维度下线性不可分,需要转到高维度空间中,那么 n n n可能是非常大的。求解原始问题会很低效,因此会将其转换成对偶问题,后者需要求解的变量个数为 m m m,只跟数据个数有关。

KKT一般问题SVM问题
拉格朗日量 L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i g i ( x ) + ∑ i = 1 l β i h i ( x ) L(x,α,β)=f(x)+\sum_{i=1}^kα_ig_i(x)+\sum_{i=1}^lβ_ih_i(x) L(x,α,β)=f(x)+i=1kαigi(x)+i=1lβihi(x) L ( b , w , α ) = w T w 2 + ∑ i = 1 m α i [ 1 − y ( i ) ( w T x ( i ) + b ) ] L(b,w,α)=\frac{w^Tw}{2}+\sum_{i=1}^mα_i[1-y^{(i)}(w^Tx^{(i)}+b)] L(b,w,α)=2wTw+i=1mαi[1y(i)(wTx(i)+b)]
原始可行性 g i ( x ∗ ) ≤ 0 , i = 1 , 2 , . . . , k g_i(x^*)≤0,i=1,2,...,k gi(x)0i=1,2,...,k h i ( x ∗ ) = 0 , i = 1 , 2 , . . . , l h_i(x^*)=0,i=1,2,...,l hi(x)=0i=1,2,...,l y ( i ) ( w T x ( i ) + b ) ≥ 1 , i = 1 , 2 , . . . , m y^{(i)}(w^Tx^{(i)}+b)≥1,i=1,2,...,m y(i)(wTx(i)+b)1i=1,2,...,m
对偶可行性 α i ∗ ≥ 0 , i = 1 , 2 , . . . , k α_i^*≥0,i=1,2,...,k αi0i=1,2,...,k α i ≥ 0 , i = 1 , 2 , . . . , m α_i≥0,i=1,2,...,m αi0i=1,2,...,m
驻点 ∂ L ( x ∗ , α ∗ , β ∗ ) ∂ x ( i ) = 0 , i = 1 , 2 , . . . , m \frac{∂L(x^*,α^*,β^*)}{∂x^{(i)}}=0,i=1,2,...,m x(i)L(x,α,β)=0i=1,2,...,m ∂ L ( b , w , α ) ∂ b = 0 , ∂ L ( b , w , α ) ∂ w = 0 \frac{∂L(b,w,α)}{∂b}=0,\frac{∂L(b,w,α)}{∂w}=0 bL(b,w,α)=0wL(b,w,α)=0
互补松弛 α i ∗ g i ( x ∗ ) = 0 , i = 1 , 2 , . . . , k α_i^*g_i(x^*)=0,i=1,2,...,k αigi(x)=0i=1,2,...,k α i [ 1 − y ( i ) ( w T x ( i ) + b ) ] = 0 , i = 1 , 2 , . . . , m α_i[1-y^{(i)}(w^Tx^{(i)}+b)]=0,i=1,2,...,m αi[1y(i)(wTx(i)+b)]=0i=1,2,...,m

注意由原始可行性、对偶可行性和互补松弛三个条件推出的关系式:
{ ① y ( i ) ( w T x ( i ) + b ) ≥ 1 ② α i ≥ 0 ③ α i [ 1 − y ( i ) ( w T x ( i ) + b ) ] = 0 \begin{cases} ①& \text{$y^{(i)}(w^Tx^{(i)}+b)≥1$}\\ ②& \text{$α_i≥0$}\\ ③& \text{$α_i[1-y^{(i)}(w^Tx^{(i)}+b)]=0$}\\ \end{cases} y(i)(wTx(i)+b)1αi0αi[1y(i)(wTx(i)+b)]=0
由上式可知,
(1)如果①式中取严格大于号,意味着 x ( i ) x^{(i)} x(i)没有落在边界上,即不是支持向量SV,要使③式成立,那么 α i = 0 α_i=0 αi=0
(2)如果②式中取严格大于号,要使③式成立,那么 y ( i ) ( w T x ( i ) + b ) = 1 y^{(i)}(w^Tx^{(i)}+b)=1 y(i)(wTx(i)+b)=1,即 x ( i ) x^{(i)} x(i)是支持向量SV,落在了边界上。

5、软间隔SVM

线性不可分有两种情况,按照程度可分为两类:
在这里插入图片描述
(1)线性轻度不可分【解决方法:引入软间隔SVM】;
(2)线性重度不可分【解决方法:引入核函数(+软间隔SVM)】。

硬间隔SVM要求所有的数据都要分类正确,在此前提下再最小化 w T w w^Tw wTw。但是在现实中,很难找到这样完美的数据集。为了缓解这个问题,引入了软间隔SVM,它会容忍一些错误的发生,将发生错误的情况加入目标函数中,希望能得到一个分类错误情况越少越好的结果。

SVM原始问题
硬间隔 min ⁡ w , b 1 2 w T w \min_{w,b}^{}\cfrac{1}{2}w^Tw w,bmin21wTw s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m s.t.y_i(w^Tx_i+b)≥1,i=1,2,...,m s.t.yi(wTxi+b)1i=1,2,...,m
软间隔 min ⁡ w , b 1 2 w T w + C ∑ i = 1 m ξ i \min_{w,b}^{}\cfrac{1}{2}w^Tw+C\sum_{i=1}^mξ_i w,bmin21wTw+Ci=1mξi s . t . ① y i ( w T x i + b ) ≥ 1 − ξ i , ② ξ i ≥ 0 , i = 1 , 2 , . . . , m s.t.①y_i(w^Tx_i+b)≥1-ξ_i,②ξ_i≥0,i=1,2,...,m s.t.yi(wTxi+b)1ξiξi0i=1,2,...,m

硬间隔SVM和软间隔SVM的区别就是后者多了 ξ ξ ξ(松弛变量)和 C C C(惩罚因子, C > 0 C>0 C0)。当进行完SVM后会有一个缓冲带,在硬间隔SVM中没有数据点在缓冲带里面,但在软间隔SVM中则不一样。如果定义“数据点进入缓冲带这一现象”为违规,那么软间隔SVM分类有3种不同现象:
①分类正确;②分类正确但违规;③分类错误(一定违规)。而参数 ξ ξ ξ用于衡量数据违规的程度。
为了简化分析,令 u i = y i ( w T x i + b ) u_i=y_i(w^Tx_i+b) ui=yi(wTxi+b),则 u i ≥ 1 − ξ i u_i≥1-ξ_i ui1ξi
(1)当 ξ i = 0 ξ_i=0 ξi=0时, u i ≥ 1 u_i≥1 ui1,该点没有违规且分类正确(该点到分隔线的距离大于或等于最大间隔);
(2)当 0 < ξ i ≤ 1 0<ξ_i≤1 0<ξi1时, u i ≥ u_i≥ ui小于1的正数,该点违规但分类正确(该点到分隔线的距离小于最大间隔);
(3)当 ξ i > 1 ξ_i>1 ξi>1时, u i ≥ u_i≥ ui负数,该点违规且分类错误(只有 u i > 0 u_i>0 ui>0才代表分类正确)。

上图用 ξ ξ ξ来记录违规数据距离边界的距离,并将这个距离纳入最优化的标准中。
但我们不希望 ξ ξ ξ太大,因为这意味着有某个数据分类错得太离谱,因此需要用 C C C来惩罚太大的 ξ ξ ξ
惩罚参数 C C C控制缓冲带的宽度(最大间隔的长度)。
①值大的 C C C对误分类的惩罚增大,代表“宁可边界窄一点,也要违规甚至出错的数据少点”, C C C无穷大就是硬间隔SVM的情况。
②值小的 C C C误分类的惩罚减小,代表“宁可边界宽一点,即使牺牲分类精度也无所谓。
最小化目标函数包含两层含义:一方面使间隔尽量大,另一方面使误分类点的个数尽量小, C C C是调和二者的系数。

【原问题转化为对偶问题】

SVM对偶问题
硬间隔 min ⁡ α ( 1 2 ∑ i = 1 m ∑ k = 1 m α i α k y ( i ) y ( k ) x ( i ) ( x ( k ) ) T − ∑ i = 1 m α i ) \min_{α}(\cfrac{1}{2}\sum_{i=1}^m\sum_{k=1}^mα_iα_ky^{(i)}y^{(k)}x^{(i)}(x^{(k)})^T-\sum_{i=1}^mα_i) αmin(21i=1mk=1mαiαky(i)y(k)x(i)(x(k))Ti=1mαi) s . t . ∑ i = 1 m α i y ( i ) = 0 , α i ≥ 0 , i = 1 , 2 , . . . , m s.t.\sum_{i=1}^mα_iy^{(i)}=0,α_i≥0,i=1,2,...,m s.t.i=1mαiy(i)=0αi0i=1,2,...,m
软间隔 min ⁡ α ( 1 2 ∑ i = 1 m ∑ k = 1 m α i α k y ( i ) y ( k ) x ( i ) ( x ( k ) ) T − ∑ i = 1 m α i ) \min_{α}(\cfrac{1}{2}\sum_{i=1}^m\sum_{k=1}^mα_iα_ky^{(i)}y^{(k)}x^{(i)}(x^{(k)})^T-\sum_{i=1}^mα_i) αmin(21i=1mk=1mαiαky(i)y(k)x(i)(x(k))Ti=1mαi) s . t . ∑ i = 1 m α i y ( i ) = 0 , 0 ≤ α i ≤ C , i = 1 , 2 , . . . , m s.t.\sum_{i=1}^mα_iy^{(i)}=0,0≤α_i≤C,i=1,2,...,m s.t.i=1mαiy(i)=00αiCi=1,2,...,m

推导过程如下
(1)构造拉格朗日函数:
在这里插入图片描述
(2)对 w , b , ξ w,b,ξ w,b,ξ求偏导:
在这里插入图片描述

(3)将三个式子带入 L L L中:
在这里插入图片描述
(4)对上式求关于 α α α的极大:
在这里插入图片描述

(5)整理(消去 μ i μ_i μi,只留下 α i α_i αi),得到对偶问题:
在这里插入图片描述
【硬间隔和软间隔SVM两者的对偶问题的唯一的区别就是 α i α_i αi的取值范围不同】

【软间隔支持向量机KKT条件】
在这里插入图片描述
在这里插入图片描述

6、核函数

线性不可分有两种情况,按照程度可分为两类:
在这里插入图片描述
(1)线性轻度不可分【解决方法:引入软间隔SVM】;
(2)线性重度不可分【解决方法:引入核函数(+软间隔SVM)】。

Q:若不存在一个能正确划分两类样本的超平面, 怎么办?
A:将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。

设样本 x x x映射后的向量为 φ ( x ) φ(x) φ(x),划分超平面为 f ( x ) = w T φ ( x ) + b f(x)=w^Tφ(x)+b f(x)=wTφ(x)+b

存在的问题
(1)维度灾难
上面式子方框的地方要使用映射后的样本向量做内积;假如最初的特征是 n n n维的,我们把它映射到 n 2 n^2 n2维,然后再计算。这样需要的时间从原来的的 O ( n ) O(n) O(n),变成了 O ( n 2 ) O(n^2) O(n2)
(2)如何选择合理的非线性转换?

解决的办法:引入核函数(核技巧)
基本想法:不显式地设计核映射,而是设计核函数。

我们可以构造核函数使得运算结果等同于非线性映射,同时运算量要远远小于非线性映射。
常用核函数:
在这里插入图片描述
核函数的注意事项
(1)核函数选择成为SVM的最大变数;
(2)经验:文本数据使用线性核,情况不明使用高斯核;
(3)核函数的性质:
①核函数的线性组合仍为核函数;
②核函数的直积仍为核函数;

③设 K ( x 1 , x 2 ) K(x_1,x_2) K(x1,x2)为核函数,则对于任意函数 g ( x ) g(x) g(x)

转换函数无穷无尽,可以从低维 x x x空间转到高维 z z z空间(多项式核)甚至无穷维度 z z z空间(高斯径向基函数核)。但维度越高,得到的SVM越容易过拟合数据。

【核函数举例】
假设定义两个向量: x = ( x 1 , x 2 , x 3 ) , y = ( y 1 , y 2 , y 3 ) x=(x1,x2,x3), y=(y1,y2,y3) x=(x1,x2,x3),y=(y1,y2,y3)
定义高维映射方程: φ ( x ) = ( x 1 x 1 , x 1 x 2 , x 1 x 3 , x 2 x 1 , x 2 x 2 , x 2 x 3 , x 3 x 1 , x 3 x 2 , x 3 x 3 ) φ(x)=(x1x1,x1x2,x1x3,x2x1,x2x2,x2x3,x3x1,x3x2,x3x3) φ(x)=(x1x1,x1x2,x1x3,x2x1,x2x2,x2x3,x3x1,x3x2,x3x3)
假设 x = ( 1 , 2 , 3 ) , y = ( 4 , 5 , 6 ) x=(1,2,3),y=(4,5,6) x=(1,2,3),y=(4,5,6)
φ ( x ) = ( 1 , 2 , 3 , 2 , 4 , 6 , 3 , 6 , 9 ) φ(x)=(1,2,3,2,4,6,3,6,9) φ(x)=(1,2,3,2,4,6,3,6,9)
φ ( y ) = ( 16 , 20 , 24 , 20 , 25 , 36 , 24 , 30 , 36 ) φ(y)=(16,20,24,20,25,36,24,30,36) φ(y)=(16,20,24,20,25,36,24,30,36)
求内积 < φ ( x ) , φ ( y ) > = 16 + 40 + 72 + 40 + 100 + 180 + 72 + 180 + 324 = 1024 <φ(x),φ(y)>=16+40+72+40+100+180+72+180+324=1024 <φ(x),φ(y)>=16+40+72+40+100+180+72+180+324=1024
定义核函数: K ( x , y ) = ( < x , y > ) 2 K(x,y)=(<x,y>)^2 K(x,y)=(<x,y>)2
K ( x , y ) = ( 4 + 10 + 18 ) 2 = 1024 K(x,y)=(4+10+18)^2=1024 K(x,y)=(4+10+18)2=1024
同样的结果,使用核方法计算容易得多。

7、序列最小优化(SMO)算法

8、模型选择

(1)多项式核函数: K ( x , x ′ ) = ( ζ + γ x T x ′ ) Q K(x,x')=(ζ+γx^Tx')^Q K(x,x)=(ζ+γxTx)Q
(2)高斯径向基函数核: K ( x , x ′ ) = e x p ( − γ × ∣ ∣ x − x ′ ∣ ∣ 2 ) K(x,x')=exp(-γ×||x-x'||^2) K(x,x)=exp(γ×xx2)
在使用SVM时,根据不同的数据特征,一般都会使用软间隔SVM加上一个核函数。多项式核首先需要设定多项式次数 Q Q Q来控制模型,之后还要调节参数 γ γ γ ζ ζ ζ。当参数比较多时,选择起来比较麻烦,因此通常会选用高斯径向基函数核。软间隔SVM里的超参数 C C C和高斯径向基函数核里的超参数 γ γ γ用(交叉)验证数据集来调节。

高斯径向基函数核的超参数 γ γ γ值越大,越容易产生过拟合。
软间隔SVM里的超参数 C C C值越大,越容易产生过拟合。

sklearn中提供了两种调参方法:网格追踪法和随机追踪法。

9、总结

SVM分类遇到的3类数据:
类型①:线性可分(在理论上存在,在实际中罕见,引出硬间隔SVM);
类型②:线性轻度不可分(存在少量异常值,引出软间隔SVM);
类型③:线性重度不可分(不可能线性分类,必须要提升维度,引出空间转换)。

在类型①数据中,硬间隔SVM本着“分离平面到数据间隔越远越好”的原则,由以下3步推导完成。
(1)推导出最近点到超平面的距离的表达式,将其定义为间隔。
(2)最大化间隔得到一个约束规划问题,用分类正确而且点都在间隔之内当约束条件。
(3)通过数学技巧将困难的约束规划问题转换成容易的凸二次规划问题。

该凸二次规划问题是硬间隔SVM原始问题,接着利用拉格朗日量推出其对偶问题,并且根据强对偶关系,发现“对偶问题的最优解”和“原始问题的最优解”一致。从表面上看,对偶问题要比原始问题复杂,但推导硬间隔SVM对偶问题的原因有3个:
(1)原始问题的解和数据的维度有关,而对偶问题的解只和数据的个数有关,通常在低维度线性重度不可分的情况下会转换到高维度(甚至无限维度),那么对偶问题的计算负担会小很多。
(2)对偶问题的解含有内积表达式,而核技巧在“不触碰高维空间”的情况下计算高维向量内积最在行。
(3)在现实中,软间隔SVM最常用,而它和硬间隔SVM对偶问题只差一个上界限制条件,前者可以由后者快速推导出。

软间隔SVM用于处理类型②的线性轻度不可分数据,将数据由低维升到高维空间的转换函数用于处理类型③的线性重度不可分数据,但是处理完后可能数据还是线性不可分的,只不过从重度变为轻度了,最后还要用软间隔SVM来处理。

为了避免犯数据窥探的错误,以及能处理所有种类(线性可分或线性不可分)的数据,可以使用空间转换函数加上软间隔SVM。使用空间转换函数加上软间隔SVM是将一个强鲁棒性的线性模型和采用核函数做非线性转换进行结合。从算法角度来看:
①当用转换函数将数据从低维空间提升到高维空间时,可以用核技巧来降低计算量。
②软间隔SVM在数据很大时直接用二次规划很慢,可以用序列最小优化(SMO)来降低计算量。

要计算软间隔SVM和核函数里的超参数,就用网格追踪法或随机追踪法选取最小的(交叉)验证误差对应的超参数。

下面是SVM的总结图:
在这里插入图片描述

【SVM的优点】
• 训练好的模型的算法复杂度是由支持向量的个数决定的,而不是由数据的维度决定的。所以SVM不太容易产生多拟合;
• SVM训练出来的模型完全依赖于支持向量,即使训练集里面所有非支持向量的点都被去除,重复训练过程,结果仍然会得到完全一样的模型。
• 一个SVM如果训练得出的支持向量个数比较小,SVM训练出的模型比较容易被泛化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值