支持向量机之线性可分支持向量机

支持向量机是一种分类算法,支持向量机可以分为:线性可分支持向量机、线性支持向量机和非线性支持向量机。
在介绍算法之前,先介绍支持向量机的基础超平面与划分超平面

1 超平面与划分超平面

超平面是n维欧氏空间中余维度等于一的线性子空间,也就是必须是(n-1)维度。这是平面中的直线、空间中的平面之推广(n大于3才被称为“超”平面),是纯粹的数学概念,不是现实的物理概念。因为是子空间,所以超平面一定经过原点。

上面的是百度百科中关于超平面的定义,超平面正确的数学表达式应该为 ω T x = 0 \omega^T x=0 ωTx=0,其中 ω 与 x \omega与x ωx都是n维列向量, x x x表示超平面上的点, ω \omega ω表示超平面的法向量,决定了超平面的方向。看到不少博客中将超平面的数学形式写为 ω T x + b = 0 \omega^T x+b=0 ωTx+b=0,这显然是不对的,其实这个表达式表示的是支持向量机里的一个划分超平面(又称为仿射超平面),表达式中的 b b b表示超平面与原点的距离。

为了方便直观理解,以三维空间为例。假设 x , y , z x,y,z x,y,z分别表示三维空间里的三个维度,那么三维空间里的一个划分超平面可以表示为 w 1 x + w 2 y + w 3 z + b = 0 w_1 x +w_2 y+w_3 z + b =0 w1x+w2y+w3z+b=0,这是一个维度为2的平面。当 b = 0 b=0 b=0,这表示一个超平面,且这个超平面显然是经过原点的。(想画个图表示的,手艺太差,自行想象吧 ?,这里有三种特殊情况, x , y , z x,y,z x,y,z分别等于0时也是超平面)。

支持向量机里的划分超平面可以将其所在的空间分为两个半空间,划分超平面法向量所指向的那一面称为正面(即 ω T x + b > 0 \omega^T x+b>0 ωTx+b>0),另外一面称为反面即 ω T x + b < 0 \omega^T x+b<0 ωTx+b<0)。可以用这个性质进行分类,通过验证 ω T x + b \omega^T x+b ωTx+b与样本标签 y y y是否同号来判断分类正确与否。

为了便于表示,将划分超平面 ω T x + b \omega^T x +b ωTx+b称为超平面 ( ω , b ) (\omega,b) (ω,b)。定义函数间隔 γ ′ = y ( ω T x + b ) \gamma'=y(\omega^T x+b) γ=y(ωTx+b),函数间隔可以反应对样本点的分类正确与否,但并不能正常反应点到超平面的距离。样本空间中任意一点 x x x到超平面 ( w , b ) (w,b) (w,b)的几何距离可以表示为:
r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ , r=\frac{|w^Tx+b|}{||w||}, r=wwTx+b,
几何距离可以反应点到超平面的距离,但并不能反应分类的正确与否。可以将函数间隔与几何距离相统一,并定义几何间隔
γ = y ( w T x + b ) ∣ ∣ w ∣ ∣ = γ ′ ∣ ∣ w ∣ ∣ , \gamma=\frac{y(w^Tx+b)}{||w||}=\frac{\gamma'}{||w||}, γ=wy(wTx+b)=wγ,
显然,几何间隔不仅能反应点到超平面的距离,还可以反应模型对样本点的分类正确与否。

2 线性可分支持向量机

我们可以直接使用上一节中得到的几何间隔作为目标函数,使几何间隔最大,即:
max y ( w T x + b ) ∣ ∣ w ∣ ∣ \textrm{max}\quad\frac{y(w^Tx+b)}{||w||} maxwy(wTx+b)
如果有两类样本点分布如下图所示,几何间隔表示两类样本点与分离超平面的距离,称两类样本点中离划分超平面最近的样本点为“支持向量”(support vector), 并且我们令支持向量到划分超平面的函数间隔为1,即 y ( ω T x + b ) ≥ 1 y(\omega^T x+b)\geq1 y(ωTx+b)1
支持向量机之线性可分支持向量机_第1张图片
那么,上面的式子可以转化为:
支持向量机之线性可分支持向量机_第2张图片
显然,最大化 ∣ ∣ w − 1 ∣ ∣ ||w^{-1}|| w1,等价于最小化 ∣ ∣ w 2 ∣ ∣ ||w^2|| w2。所以,SVM的优化函数也等价于:
支持向量机之线性可分支持向量机_第3张图片
上面的目标函数为凸函数,约束条件是仿射的,该问题是一个凸二次规划问题,可以运用拉格朗日函数将上述问题转化为无约束的优化函数,添加拉格朗日乘子 α i ≥ 0 \alpha_i \geq 0 αi0, 此时该问题的优化函数转化为:
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(1-y_i(w^Tx_i+b)) L(w,b,α)=21w2+i=1mαi(1yi(wTxi+b))
L ( w , b , α ) L(w,b,\alpha) L(w,b,α) w w w b b b的偏导为0,可得: w = ∑ i = 1 m α i y i x i ; 0 = ∑ i = 1 m α i y i w=\sum_{i=1}^m\alpha_iy_ix_i;0=\sum_{i=1}^m\alpha_iy_i w=i=1mαiyixi;0=i=1mαiyi;这样就求得了 w w w α \alpha α的函数关系,并将其代回 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)中,可以消去 w w w
φ ( α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) \varphi(\alpha)=\frac{1}{2}||w||^2+\sum_{i=1}^m\alpha_i(1-y_i(w^Tx_i+b)) φ(α)=21w2+i=1mαi(1yi(wTxi+b))
根据L2范式的性质: ∣ ∣ w ∣ ∣ 2 2 = w T w ||w||_2^2=w^T w w22=wTw,及 w = ∑ i = 1 m α i y i x i w=\sum_{i=1}^m\alpha_iy_ix_i w=i=1mαiyixi,上式可以化为:
φ ( α ) = 1 2 ( ∑ i = 1 m α i y i x i ) T ∑ i = 1 m α i y i x i + ∑ i = 1 m α i − ( ∑ i = 1 m α i y i x i ) T ∑ i = 1 m α i y i x i − b ∑ i = 1 m α i y i \varphi(\alpha)=\frac{1}{2}(\sum_{i=1}^m\alpha_iy_ix_i)^T\sum_{i=1}^m\alpha_iy_ix_i+\sum_{i=1}^m\alpha_i-(\sum_{i=1}^m\alpha_iy_ix_i)^T\sum_{i=1}^m\alpha_iy_ix_i-b\sum_{i=1}^m\alpha_i y_i φ(α)=21(i=1mαiyixi)Ti=1mαiyixi+i=1mαi(i=1mαiyixi)Ti=1mαiyixibi=1mαiyi
φ ( α ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 m α i y i x i T ∑ i = 1 m α i y i x i − b ∑ i = 1 m α i y i \varphi(\alpha)=\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\alpha_iy_ix_i^T\sum_{i=1}^m\alpha_iy_ix_i-b\sum_{i=1}^m\alpha_i y_i φ(α)=i=1mαi21i=1mαiyixiTi=1mαiyixibi=1mαiyi
又由于 0 = ∑ i = 1 m α i y i 0=\sum_{i=1}^m\alpha_iy_i 0=i=1mαiyi,所以:
φ ( α ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 m α i y i x i T ∑ i = 1 m α i y i x i \varphi(\alpha)=\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\alpha_iy_ix_i^T\sum_{i=1}^m\alpha_iy_ix_i φ(α)=i=1mαi21i=1mαiyixiTi=1mαiyixi
φ ( α ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j \varphi(\alpha)=\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1,j=1}^m\alpha_i \alpha_j y_i y_j x_i^T x_j φ(α)=i=1mαi21i=1j=1mαiαjyiyjxiTxj
φ ( α ) \varphi(\alpha) φ(α)求极大化的数学形式可以表达为:
max ⁡ ∑ i = 1 m α i − 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j \max \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1,j=1}^m\alpha_i \alpha_j y_i y_j x_i^T x_j maxi=1mαi21i=1j=1mαiαjyiyjxiTxj
s.t. ∑ i = 1 m = 0 i = 1 , 2 , . . . m \textrm{s.t.}\sum_{i=1}^m=0\quad i=1,2,...m s.t.i=1m=0i=1,2,...m
α i ≥ 0 , i = 1 , 2 , . . . m \alpha_i\geq0,i=1,2,...m αi0,i=1,2,...m
该问题是SVM问题的对偶问题,通过求出对应的 α \alpha α,进而可以求出 w 和 b w和b wb,就可得到最终的分类决策函数:
f ( x ) = s i g n ( ∑ i = 1 m α i y i x i T x i + b ) f(x)=sign(\sum_{i=1}^m\alpha_iy_ix_i^Tx_i +b) f(x)=sign(i=1mαiyixiTxi+b)
具体求解 α \alpha α,通常使用的是SMO算法,该算法知识参加西瓜书。
由于原函数是凸函数,满足KKT条件,具体为:
支持向量机之线性可分支持向量机_第4张图片
每一个 α i \alpha_i αi对应着训练样本 ( x i , y i ) (x_i,y_i) (xi,yi),总有 α i = 0 或 y i f ( x i ) = 1 \alpha_i=0或y_if(x_i)=1 αi=0yif(xi)=1
我们可以推出支持向量机的一个重要性质:机器学习最终模型仅与支持向量有关。

你可能感兴趣的:(机器学习算法)