SVM详解(二)线性支持向量机与软间隔最大化

1. 线性支持向量机

我们介绍了线性可分支持向量机模型,我们适用硬间隔最大化算法学得最好的分离超平面,但是该模型只适用于训练数据集是线性可分的情况,对于线性不可分训练数据集并不适用。通常情况下,线性不可分训练数据集,往往有一些特异点,将这些特异点去除之后,剩下大部分的样本点组成的集合是线性可分的,根据这个特性,我们允许一些特异点不满足函数间隔大于等于 1 1 1(即 y i ( w ⋅ x i + b ) − 1 ≥ 0 y_i({w}\cdot x_i+{b})-1\geq 0 yi(wxi+b)10)的约束条件 ,来使用支持向量机达到分类训练数据集的目的。

为此,我们为训练数据集 T T T的每个样本点 ( x i , y i ) (x_i,y_i) (xi,yi)都引入一个松弛变量 ξ i ≥ = 0 \xi_i \geq = 0 ξi=0 ,使得函数间隔加上松弛变量,能满足间隔大于等于 1 1 1的约束条件,即 y i ( w ⋅ x i + b ) + ξ i − 1 ≥ 0 y_i({w}\cdot x_i+{b})+\xi_i-1\geq 0 yi(wxi+b)+ξi10

y i ( w ⋅ x i + b ) ≥ 1 − ξ i y_i({w}\cdot x_i+{b})\geq 1-\xi_i yi(wxi+b)1ξi

  • 怎么理解这件事情呢,为了方便描述,我们将上面的式子两边同时除以 ∣ ∣ w ∣ ∣ ||w|| w,得到

    y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) + ξ i ∣ ∣ w ∣ ∣ ≥ 1 ∣ ∣ w ∣ ∣ y_i(\frac{{w}\cdot x_i+{b}}{||w||}) + \frac{\xi_i}{||w||}\geq \frac{1}{||w||} yi(wwxi+b)+wξiw1

    如下图所示,红色圆圈和五角星为特异点,白色则为正常的训练数据点

松弛变量

  1. 对于图中的点 1 1 1,其位于间隔边界内部,且能够被正确分类,其距离分离超平面的距离可表示为为 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) y_i(\frac{{w}\cdot x_i+{b}}{||w||}) yi(wwxi+b) ,我们通过对该点添加松弛变量 ξ 1 \xi_1 ξ1,使得 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) + ξ i ∣ ∣ w ∣ ∣ ≥ 1 ∣ ∣ w ∣ ∣ y_i(\frac{{w}\cdot x_i+{b}}{||w||}) + \frac{\xi_i}{||w||}\geq \frac{1}{||w||} yi(wwxi+b)+wξiw1成立,即可以看做是将点沿 w w w所在直线方向朝正确分类的一侧移动至间隔边界上或者间隔边界外。 至少应移动 ξ 1 ∣ ∣ w ∣ ∣ \frac {\xi_1}{||w||} wξ1至间隔边界上,此时有 0 < ξ 1 < 1 0< \xi_1< 1 0<ξ1<1
  2. 对于图中的点 2 2 2,其位于分离超平面上,则其距离分离超平面的距离可表示为为 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) = 0 y_i(\frac{{w}\cdot x_i+{b}}{||w||}) = 0 yi(wwxi+b)=0 ,我们通过对该点添加松弛变量 ξ 2 \xi_2 ξ2,使得 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) + ξ i ∣ ∣ w ∣ ∣ ≥ 1 ∣ ∣ w ∣ ∣ y_i(\frac{{w}\cdot x_i+{b}}{||w||}) + \frac{\xi_i}{||w||}\geq \frac{1}{||w||} yi(wwxi+b)+wξiw1成立,即可以看做是将点沿 w w w所在直线方向朝正确分类的一侧移动至间隔边界上或者间隔边界外。至少应移动 ξ 2 ∣ ∣ w ∣ ∣ \frac {\xi_2}{||w||} wξ2至间隔边界上,此时有 ξ 2 = 1 \xi_2=1 ξ2=1
  3. 对于图中的点 3 3 3,被错误分类,其距离分离超平面的距离可表示为为 − y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) -y_i(\frac{{w}\cdot x_i+{b}}{||w||}) yi(wwxi+b) ,我们通过对该点添加松弛变量 ξ 3 \xi_3 ξ3,使得 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) + ξ i ∣ ∣ w ∣ ∣ ≥ 1 ∣ ∣ w ∣ ∣ y_i(\frac{{w}\cdot x_i+{b}}{||w||}) + \frac{\xi_i}{||w||}\geq \frac{1}{||w||} yi(wwxi+b)+wξiw1成立,即可以看做是将点沿 w w w所在直线方向朝正确分类的一侧移动至间隔边界上或者间隔边界外。至少应移动 ξ 3 ∣ ∣ w ∣ ∣ \frac {\xi_3}{||w||} wξ3至间隔边界上,此时有 ξ 3 > 1 \xi_3>1 ξ3>1
  4. 对于图中的点 4 4 4,其位于间隔边界外部,且能够被正确分类,其距离分离超平面的距离可表示为为 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) y_i(\frac{{w}\cdot x_i+{b}}{||w||}) yi(wwxi+b) ,从图中可知,该点已经满足 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) ≥ 1 ∣ ∣ w ∣ ∣ y_i(\frac{{w}\cdot x_i+{b}}{||w||}) \geq \frac{1}{||w||} yi(wwxi+b)w1成立,此时有 ξ 4 = 0 \xi_4=0 ξ4=0

通过引入松弛变量的几何意义解释,我们可以认为,松弛变量 ξ i \xi_i ξi表征了样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 如果是特异点的话,需要多少距离,才能被正确分类。

我们需要对每个松弛变量 ξ i \xi_i ξi,支付一个代价 ξ i \xi_i ξi,目标函数由原来的 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2 变成了

1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i , C > 0 [ 1.1 ] \frac{1}{2}||w||^2+C\sum\limits_{i=1}^N\xi_i,\quad C>0 \quad [1.1] 21w2+Ci=1NξiC>0[1.1]

这里的 C ∑ i = 1 N ξ i C\sum\limits_{i=1}^N\xi_i Ci=1Nξi其实就是正则项, C C C 称为惩罚参数,一般由应用问题决定, C C C值大时对误分类的惩罚增大, C C C值小时对误分类的惩罚减小,最小化 [ 1.1 ] [1.1] [1.1] 其实就是使 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2尽可能小即间隔尽量大,同时使误分类点的个数尽量小, C C C则是调和二者的系数。

基于上面的思路,我们得到了线性不可分的线性支持向量机的学习最优化问题:

min ⁡ w , b , ξ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i , [ 1.2 ] \min\limits_{w,b,\xi} \quad \frac{1}{2}||w||^2+C\sum\limits_{i=1}^N\xi_i,\quad [1.2] w,b,ξmin21w2+Ci=1Nξi[1.2]

s . t . y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , ⋯   , N [ 1.3 ] ξ i ≥ 0 , i = 1 , 2 , ⋯   , N [ 1.4 ] \begin{aligned} s.t. \quad &y_i({w}\cdot x_i+{b})\geq 1-\xi_i ,\quad i=1,2,\cdots,N \quad [1.3] \\ &\xi_i \geq 0 ,\quad i=1,2,\cdots,N \quad [1.4]\end{aligned} s.t.yi(wxi+b)1ξii=1,2,,N[1.3]ξi0i=1,2,,N[1.4]

将这个问题作为原始问题,其仍是一个凸二次规划问题。相比于线性可分支持向量机的硬间隔最大化,我们将线性不可分的线性支持向量机学习问题称为软间隔最大化。显然,线性支持向量机是包含线性可分支持向量机的,由于现实中训练数据集往往是线性不可分的,因此线性支持向量机具有更广的适用性。

  • 线性支持向量机定义

    对于给定的线性不可分的训练数据集,通过求解凸二次规划问题,即软间隔最大化问题 [ 1.2 ] ∼ [ 1.4 ] [1.2] \sim [1.4] [1.2][1.4],得到的分离超平面为 w ∗ ⋅ x + b ∗ = 0 w^*\cdot x+b^*=0 wx+b=0

    以及相应的分类决策函数

    f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ = 0 ) f(x) = sign(w^*\cdot x+b^*=0) f(x)=sign(wx+b=0)

    称为线性支持向量机

2. 学习的对偶算法

参照线性可分支持向量机,我们依然通过对偶问题来解线性支持向量机的原始问题 [ 1.2 ] ∼ [ 1.4 ] [1.2] \sim [1.4] [1.2][1.4]

首先构建拉格朗日函数,为:

L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i [ y i ( w ⋅ x i + b ) − 1 + ξ i ] − ∑ i = 1 N μ i ξ i = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N α i y i ( w ⋅ x i + b ) + ∑ i = 1 N α i + ∑ i = 1 N ( C − α i − μ i ) ξ i [ 2.1 ] \begin{aligned}L(w,b,\xi,\alpha,\mu) &= \frac{1}{2}||w||^2 +C\sum\limits_{i=1}^N\xi_i- \sum\limits_{i=1}^N\alpha_i[y_i({w}\cdot x_i+{b})-1+\xi_i]-\sum\limits_{i=1}^N\mu_i\xi_i \\&= \frac{1}{2}||w||^2 - \sum\limits_{i=1}^N\alpha_iy_i({w}\cdot x_i+{b})+\sum\limits_{i=1}^N\alpha_i + \sum\limits_{i=1}^N(C-\alpha_i-\mu_i)\xi_i \quad [2.1]\end{aligned} L(w,b,ξ,α,μ)=21w2+Ci=1Nξii=1Nαi[yi(wxi+b)1+ξi]i=1Nμiξi=21w2i=1Nαiyi(wxi+b)+i=1Nαi+i=1N(Cαiμi)ξi[2.1]

其中, α i ≥ 0 , μ i ≥ 0 \alpha_i \geq 0,\mu_i\geq 0 αi0,μi0

根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:

max ⁡ α , μ min ⁡ w , b , ξ L ( w , b , α ) \max\limits_{\alpha,\mu} \min\limits_{w,b,\xi}L(w,b,\alpha) α,μmaxw,b,ξminL(w,b,α)

所以,为了得到对偶问题的解,需要先求 L ( w , b , ξ , α , μ ) L(w,b,\xi,\alpha,\mu) L(w,b,ξ,α,μ) w , b , ξ w,b,\xi w,b,ξ的极小,再求对 α , μ \alpha,\mu α,μ的极大,

( 1 ) (1) (1) min ⁡ w , b , ξ L ( w , b , ξ , α , μ ) \min\limits_{w,b,\xi}L(w,b,\xi,\alpha,\mu) w,b,ξminL(w,b,ξ,α,μ)

将拉格朗日函数 L ( w , b , ξ , α , μ ) L(w,b,\xi,\alpha,\mu) L(w,b,ξ,α,μ) 分别对 w , b w,b w,b 求偏导并令其等于 0 0 0,得到

{ ∇ w L ( w , b , ξ , α , μ ) = w − ∑ i = 1 N α i y i x i = 0 ∇ b L ( w , b , ξ , α , μ ) = − ∑ i = 1 N α i y i = 0 ∇ ξ i L ( w , b , ξ , α , μ ) = C − α i − μ i = 0 \begin{cases} \nabla_wL(w,b,\xi,\alpha,\mu) = w -\sum\limits_{i=1}^N\alpha_iy_i x_i = 0 \\ \nabla_bL(w,b,\xi,\alpha,\mu) = -\sum\limits_{i=1}^N\alpha_iy_i = 0 \\ \nabla_{\xi_i} L(w,b,\xi,\alpha,\mu) = C-\alpha_i-\mu_i = 0 \end{cases} wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξiL(w,b,ξ,α,μ)=Cαiμi=0

w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 C − α i − μ i = 0 \begin{aligned} &w = \sum\limits_{i=1}^N\alpha_iy_i x_i \\ &\sum\limits_{i=1}^N\alpha_iy_i=0 \\ &C-\alpha_i-\mu_i = 0 \end{aligned} w=i=1Nαiyixii=1Nαiyi=0Cαiμi=0

将上式带入拉格朗日函数 [ 2.1 ] [2.1] [2.1] ,得到

L ( w , b , ξ , α , μ ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i y i [ ( ∑ j = 1 N α j y j x j ) ⋅ x i + b ] + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \begin{aligned}L(w,b,\xi,\alpha,\mu) &= \frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_j(x_i\cdot x_j)- \sum\limits_{i=1}^N\alpha_iy_i[{(\sum\limits_{j=1}^N\alpha_jy_j x_j)}\cdot x_i+{b}]+\sum\limits_{i=1}^N\alpha_i \\&= -\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum\limits_{i=1}^N\alpha_i\end{aligned} L(w,b,ξ,α,μ)=21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi[(j=1Nαjyjxj)xi+b]+i=1Nαi=21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi

min ⁡ w , b , ξ L ( w , b , ξ , α , μ ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \min\limits_{w,b,\xi}L(w,b,\xi,\alpha,\mu) = -\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum\limits_{i=1}^N\alpha_i w,b,ξminL(w,b,ξ,α,μ)=21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi

( 2 ) (2) (2) 由于 min ⁡ w , b , ξ L ( w , b , ξ , α , μ ) \min\limits_{w,b,\xi}L(w,b,\xi,\alpha,\mu) w,b,ξminL(w,b,ξ,α,μ) 中没有参数 μ \mu μ了,因此只需求 min ⁡ w , b , ξ L ( w , b , ξ , α , μ ) \min\limits_{w,b,\xi}L(w,b,\xi,\alpha,\mu) w,b,ξminL(w,b,ξ,α,μ) α \alpha α的极大,即是对偶问题

max ⁡ α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \max\limits_\alpha -\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum\limits_{i=1}^N\alpha_i αmax21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi

s . t . ∑ i = 1 N α i y i = 0 C − α i − μ i = 0 α i ≥ = 0 , i = 1 , 2 , ⋯   , N μ i ≥ = 0 , i = 1 , 2 , ⋯   , N \begin{aligned} s.t.\quad &\sum\limits_{i=1}^N\alpha_iy_i=0 \\ &C-\alpha_i-\mu_i = 0 \\ &\alpha_i \geq =0, \quad i=1,2,\cdots,N \\&\mu_i \geq =0, \quad i=1,2,\cdots,N\end{aligned} s.t.i=1Nαiyi=0Cαiμi=0αi=0,i=1,2,,Nμi=0,i=1,2,,N

该问题等价为

min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i \min\limits_\alpha \quad \frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum\limits_{i=1}^N\alpha_i αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi

s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , ⋯   , N \begin{aligned}s.t. \quad &\sum\limits_{i=1}^N\alpha_iy_i=0 \\ &0\leq \alpha_i \leq C, \quad i=1,2,\cdots,N \end{aligned} s.t.i=1Nαiyi=00αiC,i=1,2,,N

可以看出,线性支持向量机和线性可分支持向量机的对偶算法,就只有对偶变量的不等式约束条件不一样,前者是 0 ≤ α i ≤ C 0\leq \alpha_i \leq C 0αiC ,后者是 0 ≤ α i 0\leq \alpha_i 0αi

原始问题的解应满足 K K T KKT KKT条件,得到:

{ ∇ w L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = w ∗ − ∑ i = 1 N α i ∗ y i x i = 0 ∇ b L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = − ∑ i = 1 N α i ∗ y i = 0 ∇ ξ i L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = C − α i ∗ − μ i ∗ = 0 [ 2.2 ] α i ∗ ( y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ) = 0 [ 2.3 ] y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ≥ 0 μ i ∗ ξ i ∗ = 0 α i ∗ ≥ 0 ξ i ∗ ≥ 0 μ i ∗ ≥ 0 , i = 1 , 2 , ⋯   , N \begin{cases} \nabla_wL(w^*,b^*,\xi^*,\alpha^*,\mu^*) = w^* -\sum\limits_{i=1}^N\alpha_i^*y_i x_i = 0 \\ \nabla_bL(w^*,b^*,\xi^*,\alpha^*,\mu^*) = -\sum\limits_{i=1}^N\alpha_i^*y_i = 0 \\ \nabla_{\xi_i} L(w^*,b^*,\xi^*,\alpha^*,\mu^*) = C-\alpha_i^*-\mu_i^* = 0 \quad[2.2] \\ \alpha_i^*(y_i(w^* \cdot x_i+b^*)-1+\xi_i^*) = 0 \quad[2.3]\\ y_i(w^* \cdot x_i+b^*)-1+\xi_i^* \geq 0 \\ \mu_i^*\xi_i^* = 0\\ \alpha_i^* \geq 0 \\\xi_i^* \geq 0 \\ \mu_i^* \geq 0 ,\quad i=1,2,\cdots,N\end{cases} wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξiL(w,b,ξ,α,μ)=Cαiμi=0[2.2]αi(yi(wxi+b)1+ξi)=0[2.3]yi(wxi+b)1+ξi0μiξi=0αi0ξi0μi0,i=1,2,,N

由此得

w ∗ = ∑ i = 1 N α i ∗ y i x i w^* = \sum\limits_{i=1}^N\alpha_i^*y_i x_i w=i=1Nαiyixi

其中至少有一个 0 < α j < C 0< \alpha_j < C 0<αj<C(用反证法,假设 α ∗ = 0 \alpha^*=0 α=0,则 w ∗ = 0 w^*=0 w=0,很显然 w ∗ = 0 w^*=0 w=0不是原始最优化问题的解,产生矛盾),对此 j j j

y i ( w ∗ ⋅ x j + b ∗ ) − 1 + ξ j ∗ = 0 y_i(w^* \cdot x_j+b^*)-1+\xi_j^*=0 yi(wxj+b)1+ξj=0

C − α j ∗ − μ j ∗ = 0 C-\alpha_j^*-\mu_j^* = 0 Cαjμj=0 ,且 μ j ∗ ξ j ∗ = 0 \mu_j^*\xi_j^* = 0 μjξj=0

由于 0 < α j < C 0< \alpha_j < C 0<αj<C 可知 μ j ∗ = C − α j ∗ \mu_j^*= C-\alpha_j^* μj=Cαj ,由于 μ j ∗ ξ j ∗ = 0 \mu_j^*\xi_j^* = 0 μjξj=0

所以有 ξ j ∗ = 0 \xi_j^* = 0 ξj=0

此时

y i ( w ∗ ⋅ x j + b ∗ ) − 1 = 0 y_i(w^* \cdot x_j+b^*)-1=0 yi(wxj+b)1=0

上式两边同时乘以 y j y_j yj

y j 2 ( w ∗ ⋅ x j + b ∗ ) − y j = 0 y_j^2(w^* \cdot x_j+b^*)-y_j=0 yj2(wxj+b)yj=0 根据 y j 2 = 1 y_j^2=1 yj2=1 可解得

b ∗ = y j − w ∗ ⋅ x j = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^* = y_j-w^* \cdot x_j = y_j-\sum\limits_{i=1}^N\alpha_i^*y_i (x_i\cdot x_j) b=yjwxj=yji=1Nαiyi(xixj)

至此,我们解出了 w ∗ w^* w b ∗ b^* b的值,则最大间隔分离超平面为

∑ i = 1 N α i ∗ y i ( x ⋅ x j ) + b ∗ = 0 \sum\limits_{i=1}^N\alpha_i^*y_i (x\cdot x_j)+b^*=0 i=1Nαiyi(xxj)+b=0

分类决策函数可以写成

f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i ( x ⋅ x j ) + b ∗ ) f(x) = sign\bigg(\sum\limits_{i=1}^N\alpha_i^*y_i (x\cdot x_j)+b^*\bigg) f(x)=sign(i=1Nαiyi(xxj)+b)

综上所述,我们得到了线性支持向量机的对偶学习算法,描述如下

  • 算法2: 线性支持向量机的对偶学习算法

    输入:线性数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)},其中, x i ∈ χ = R n , y i ∈ Y = { − 1 , 1 } , i = 1 , 2 , ⋯   , N ; x_i \in \chi=R^n,y_i \in Y=\{-1,1\},\quad i=1,2,\cdots,N; xiχ=RnyiY={1,1},i=1,2,,N;

    输出:分离超平面和分类决策函数

    ( 1 ) (1) (1)选择惩罚参数 C > 0 C>0 C>0,构造并求解凸二次规划问题:

    min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i \min\limits_\alpha \quad \frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum\limits_{i=1}^N\alpha_i αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi

    s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , ⋯   , N \begin{aligned}s.t. \quad &\sum\limits_{i=1}^N\alpha_iy_i=0 \\ &0\leq \alpha_i \leq C, \quad i=1,2,\cdots,N \end{aligned} s.t.i=1Nαiyi=00αiC,i=1,2,,N

    求得最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T \alpha^* = (\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T α=(α1,α2,,αN)T

    ( 2 ) (2) (2) 计算

    w ∗ = ∑ i = 1 N α i ∗ y i x i w^* = \sum\limits_{i=1}^N\alpha_i^*y_i x_i w=i=1Nαiyixi

    并选择 α ∗ \alpha^* α的一个正分量 a j ∗ > 0 a_j^*>0 aj>0适合条件 0 < α j ∗ < C 0< \alpha_j^* < C 0<αj<C,计算

    b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^* =y_j-\sum\limits_{i=1}^N\alpha_i^*y_i (x_i\cdot x_j) b=yji=1Nαiyi(xixj)

    对任一适合条件 0 < α j ∗ < C 0< \alpha_j^* < C 0<αj<C a j ∗ a_j^* aj ,均能按上式求出 b ∗ b^* b, 但是不同的样本点计算出的 b ∗ b^* b 并不一致,所以一般在所有满足条件的样本点上都计算 b b b,然后求平均值作为 b ∗ b^* b的最终值。

    ( 3 ) (3) (3) 求得分离超平面

    w ∗ ⋅ x + b ∗ = 0 w^* \cdot x+b^*=0 wx+b=0

    分类决策函数

    f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x) = sign(w^* \cdot x+b^*) f(x)=sign(wx+b)

3. 支持向量

在线性不可分的情况下,将对偶问题的解 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T α=(α1,α2,,αN)T中对应于 α i ∗ > 0 \alpha_i^*>0 αi>0的样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的实例 x i x_i xi称为软间隔的支持向量。有上述求解 w ∗ w^* w b ∗ b^* b的过程可知,线性支持向量机仍只与支持向量有关。

求解过程中的 K K T KKT KKT 条件中,需要满足

α i ∗ ( y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ) = 0 \alpha_i^*(y_i(w^* \cdot x_i+b^*)-1+\xi_i^*) = 0 αi(yi(wxi+b)1+ξi)=0,对于支持向量,该式子可写成

y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ = 0 y_i(w^* \cdot x_i+b^*)-1+\xi_i^*= 0 yi(wxi+b)1+ξi=0

y i ( w ∗ ⋅ x i + b ∗ ) = 1 − ξ i ∗ y_i(w^* \cdot x_i+b^*)=1-\xi_i^* yi(wxi+b)=1ξi

根据该式可知软间隔的支持向量 x i x_i xi 要么在间隔边界上,要么在间隔边界与分离超平面之间,要么在分离超平面误分一侧。 若 a i ∗ < C a_i^*<C ai<C,则 ξ i = 0 \xi_i=0 ξi=0 (上面根据 K K T KKT KKT条件求解 b ∗ b^* b时有证明),此时有 y i ( w ∗ ⋅ x i + b ∗ ) = 1 y_i(w^* \cdot x_i+b^*)=1 yi(wxi+b)=1 则支持向量 x i x_i xi恰好落在间隔边界上;若 a i ∗ = C , 0 < ξ i < 1 a_i^* = C, 0< \xi_i<1 ai=C,0<ξi<1,此时有 y i ( w ∗ ⋅ x i + b ∗ ) = 1 − ξ i ∈ ( 0 , 1 ) y_i(w^* \cdot x_i+b^*)=1-\xi_i \in (0,1) yi(wxi+b)=1ξi(0,1),则分类正确, x i x_i xi在间隔边界与分离超平面之间;若 a i ∗ = C , ξ i = 1 a_i^* = C, \xi_i=1 ai=C,ξi=1,此时有 y i ( w ∗ ⋅ x i + b ∗ ) = 0 y_i(w^* \cdot x_i+b^*)=0 yi(wxi+b)=0,则 x i x_i xi在分离超平面上;若 a i ∗ = C , ξ i > 1 a_i^* = C, \xi_i>1 ai=C,ξi>1,此时有 y i ( w ∗ ⋅ x i + b ∗ ) = 1 − ξ i ∈ ( − ∞ , 0 ) y_i(w^* \cdot x_i+b^*)=1-\xi_i \in (-\infty,0) yi(wxi+b)=1ξi(,0) x i x_i xi位于分离超平面误分类一侧。这和我们在开篇引入松弛变量 ξ i \xi_i ξi时的几何解释是一致的。

至此我们完成了线性支持向量机的算法介绍,线性支持向量机可以从多个角度进行解释,感兴趣的同学可以自行查阅相关资料。

当然,还有很多训练数据,属于非线性可分的情况,我们需要找到一个合适的超曲面来实现数据分类,我们如果处理这类数据呢?下一篇,我们将介绍SVM使用核函数处理非线性可分的情况。

本文参考李航老师的《统计学习方法》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

积跬步以至千里。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值