支持向量机
一、算法思想
支持向量机(support vector machines,SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的学习策略就是间隔最大化,可形式化为求解凸二次规划问题。SVM的学习算法是求解凸二次规划的最优算法。
二、算法推导
1、硬间隔最大优化求解
(1)目标函数
如图1所示平面中有一些散点,现在想要通过一条直线将这些散点分为两类,如左上角的散点为一类,右下角的散点为一类。这样的直线有很多条,但是为了提高其分类的质量,想要找一条最优的直线来对这些点进行分割。那么怎样判断这条直线的好与不好呢?直观的想法是找一条直线,使得这条直线到两个类中的边界点的距离最大。根据图1,假设存在这样一条最优的直线,把这条直线记为(公式1):
表示该点由两个特征来进行表示。
注意 :
ω
{\bf{\omega }}
ω与
x
{\bf{x}}
x都是向量。记左上角的直线为直线1,中间的直线为为直线2,右下角的直线为直线3,直线1与直线3之间的距离为
d
d
d。在直线1与直线3上分别取两个点记为
p
1
\bf{p_1}
p1 与
p
2
\bf{p_2}
p2.分别将其带入到公式(1)中可得(公式2公式3):
两式相减可得(公式4):
由图可得,在三角形OAB中
p
1
−
p
2
{\bf{p_1}-\bf{p_2}}
p1−p2 为方向向量
B
A
→
\overrightarrow {BA}
BA. 由上式以及向量的乘积运算可得(公式5):
在三角形ABC中,有以下关系(公式6):
因此可得(公式7):
将公式7带入到公式5中可得(公式8):
因此可得(公式9):
对于左上部分的点有:
对于右下部分的点有:
对于左上部分的点定义为
+
1
+1
+1 类即
y
i
=
1
y_i=1
yi=1, 右下部分的点定义为
−
1
-1
−1 类即
y
i
=
−
1
y_i=-1
yi=−1.则这些点满足一下约束条件:
因此SVM模型的求解最大分割超平面问题又可以表示为以下约束最优化问题(公式10):
(2)目标函数求解
准备知识,对于有约束的优化问题可以采用拉个朗日乘数法进行求解。由于原问题为凸二次规划问题,不好求解需要将原问题转换为对偶问题进行求解。下面举例说明原问题与拉格朗日对偶问题之间的关系。定义原问题为:
定义其拉格朗日函数为:
将式子中的累加写成矩阵的形式为(公式11):
原问题的对偶问题写作(公式12):
公式12是先对
L
L
L 求关于
ω
\omega
ω 的最小值,之后求使得
θ
\theta
θ最大的
α
\alpha
α ,
β
\beta
β.
定理: 如果
ω
∗
{\omega ^*}
ω∗ 是原问题的最优解,
α
∗
{\alpha ^*}
α∗,
β
∗
{\beta ^*}
β∗ 是对偶问题的最优解,则有:
证明:
由于:
因此可得:
定义: 原问题与对偶问题之间的间距为:
定理: (强对偶定理),若
f
(
ω
)
f({\omega})
f(ω) 是凸函数,并且约束条件:
g
(
ω
)
g(\omega )
g(ω) 与
h
(
ω
)
h(\omega )
h(ω)为线性函数(仿射函数)(即:
g
(
ω
)
=
A
ω
+
b
g(\omega ) = A\omega + b
g(ω)=Aω+b,
h
(
ω
)
=
C
ω
+
d
h(\omega ) = C\omega + d
h(ω)=Cω+d),则有间距
G
=
0
G=0
G=0.
即:
f
(
ω
∗
)
−
θ
(
α
∗
,
β
∗
)
=
0
f({\omega ^*}) - \theta ({\alpha ^*},{\beta ^*}) = 0
f(ω∗)−θ(α∗,β∗)=0进一步可得:
因此:
可得:
α
i
=
0
{\alpha _i} = 0
αi=0 或
g
(
ω
)
=
0
g(\omega ) = 0
g(ω)=0, 即KKT条件。回到SVM所定义的优化问题中,如公式10,满足强对偶定理,因此可以将原问题转换为对偶问题进行参数求解。
原问题的拉格朗日函数为:
第一步: 先求使
L
L
L 取得最小值的
ω
\omega
ω 与
b
b
b.对
L
L
L 求偏导可得:
因此,可得:
因此,拉格朗日函数的最小值为:
第二步: 求第一步所求的函数中取得最大值时的
α
\alpha
α。
该方法,可通过SMO(sequential minimal optimization)序列最小化优化算法来进行求解。通过该方法求得的
α
\alpha
α的最优解为:
第三步: 求
ω
∗
{\omega ^*}
ω∗ 与
b
∗
{b^*}
b∗. SVM硬间隔优化问题的满足的KKT条件为:
KKT条件包含三个条件,由第二个条件可得(公式13):
当第一个条件中的
α
i
∗
=
0
\alpha _i^* = 0
αi∗=0时公式13没有意义。因此,可得:
进一步的:
可得:
2、软间隔最大优化求解
近似线性可分就是在线性可分的情况下加入一些噪声。举个例子进行说明。将噪声点
x
6
x_6
x6 与
x
7
x_7
x7 分别带入上超平面与下超平面方程可得:
因此,对于噪声点应当满足:
综上,对于正确分类的点有:
对于错误分类的点有:
对于噪声点有:
因此,对于正确分类但含存在一些噪声,应满足:
其中,
ε
i
{\varepsilon _i}
εi 为松弛变量,这里希望
ε
i
{\varepsilon _i}
εi越小越好
- 当 ε i = 0 {\varepsilon _i=0} εi=0时 y i ( ω x i + b ) ≥ 1 {y_i}(\omega {x_i} + b) \ge 1 yi(ωxi+b)≥1,此时正确分类。
- 当 0 < ε i < 1 {0<\varepsilon _i<1} 0<εi<1时 y i ( ω x i + b ) ≥ 1 − ε i {y_i}(\omega {x_i} + b) \ge 1 - {\varepsilon _i} yi(ωxi+b)≥1−εi,此时存在噪声.
- 当 ε i > 1 \varepsilon _i>1 εi>1时 y i ( ω x i + b ) < 0 {y_i}(\omega {x_i} + b) < 0 yi(ωxi+b)<0,此时为错误分类。
因此软间隔的最终优化问题变为(公式14):
其中,
C
C
C 为惩罚因子,
ε
i
\varepsilon _i
εi 为松弛变量。两者的变化时相反的,使两者的乘积维持在一定度。因此,可得到以下两点:
- 当 C ↑ C \uparrow C↑ 时 ε i ↓ {\varepsilon _i}\downarrow εi↓ ,噪声减小,超平面向内侧移动,间隔减小。
- 当 C ↓ C \downarrow C↓ 时 ε i ↑ {\varepsilon _i} \uparrow εi↑,噪声增大,超平面向外侧移动,间隔增大。
公式14的求解与应间隔的求解相同。化简之后的结果为:
根据SMO优化算法求得
α
{\bf{\alpha }}
α的最优解为:
由互补松弛条件可得:
下面分情况进行讨论:
- 当 α i = 0 {\alpha _i}=0 αi=0时 ω = ∑ i = 1 n α i y i x i = 0 \omega = \sum\limits_{i = 1}^n {{\alpha _i}{y_i}{x_i} = 0} ω=i=1∑nαiyixi=0,则不是支持向量;
- 当 0 < α i < C 0 < {\alpha _i} < C 0<αi<C时,由 β i = C − α i {\beta _i} = C - {\alpha _i} βi=C−αi 可得: β i > 0 {\beta _i} >0 βi>0,由互补松弛条件可得 ε i = 0 {\varepsilon _i} = 0 εi=0, y i ( ω x i + b ) = 1 {y_i}(\omega {x_i} + b) = 1 yi(ωxi+b)=1
- 当
α
i
=
C
{\alpha _i} = C
αi=C时,可得
β
i
=
0
{\beta _i} = 0
βi=0,由互补松弛条件可得:
对于第一种情况样本在边界与超平面之间,为噪声点;对于第二种情况,样本在超平面上;对于第三种情况,样本在边界的另一侧,即分类错误的点。
由上述讨论可得,对于软间隔参数中的 ω \omega ω,与硬间隔中的求解方法一样;对于参数 b b b 由互补条件可得:
两边同时乘以 y i y_i yi以及采用约束条件: y i 2 = 1 y_i^2 = 1 yi2=1可得:
如果选择, ε i > 0 {\varepsilon _i} > 0 εi>0, 由于无法确定其具体值,因此,无法求得 b b b. 因此,需要满足 ε i = 0 {\varepsilon _i} = 0 εi=0,可求得 b = y i − ω x i b = {y_i} - \omega {x_i} b=yi−ωxi,此时, 0 < α i < C 0 < {\alpha _i} < C 0<αi<C.
3、非线性可分求解
核函数的主要作用是将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。下图显示原来在二维空间不可分的两类样本点,在映射到三维空间后变为线性可分 : 但回到原来的二维空间中,决策边界就变成非线性的了:
假设一个二维到三维的映射有:
则
ϕ
(
a
)
\phi ({\bf{a}})
ϕ(a) 与
ϕ
(
b
)
\phi ({\bf{b}})
ϕ(b)的内积为:
可以看出转换后向量的内积等于原向量内积的平方。其中核函数为:
称为二次多项核函数。因此,软间隔SVM基本型为:
找到一个核函数:
将其转化到高维空间,因此对应的核函数的对偶型为:
求解后的分类超平面为:
其中,SV 为支持向量的集合。
常见的核函数如下表所示: