SVM——线性可分支持向量机
目录
一、摘要
二、问题描述
四、最优化问题
五、对偶问题
-
拉格朗日乘子 α \alpha α与原始参数 ω , b \omega,b ω,b的关系
六、总结
一、摘要
支持向量机用于解决二分类问题,对于线性可分的输入数据,我们能够找到无数个超平面将数据完全正确分类,对应于二维特征输入数据,超平面就是直线。但是,为了更好的去预测未知分类问题,SVM使用最大间隔以使正类负类到超平面的距离最大,即鲁棒性最强,这也符合人类直觉。如何得到最大间隔是重中之重,SVM求最大间隔是求解约束最优化问题。通常,我们利用拉格朗日对偶性将原最优化问题转换为其对偶问题进行求解,这样降低了计算难度,同时自然引入核函数。
二、问题描述
已知有数据集 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 x_i xi为输入特征向量, y i = { + 1 , − 1 } y_i=\{+1,-1\} yi={+1,−1}为标签。 y = + 1 y=+1 y=+1代表正例, y = − 1 y=-1 y=−1代表负例,且数据集满足线性可分条件。
学习目标是在特征空间中找到唯一的超平面,将正类与负类完全分开,使得最邻近特征点到超平面的间隔最大。该超平面可表示为方程 ω ⋅ x + b = 0 \omega \cdot x+b=0 ω⋅x+b=0, ω \omega ω对应超平面的法向量, b b b对应超平面的截距,超平面可记为 ( ω , b ) (\omega,b) (ω,b)。
最优化目标是求解出使得间隔最大化的参数 ω \omega ω和 b b b,通过变换得到一个凸二次规划问题(约束最优化问题),最终模型学习到的参数记为 ω ∗ , b ∗ \omega^*,b^* ω∗,b∗,超平面为 ω ∗ ⋅ x + b ∗ = 0 \omega^* \cdot x+b^*=0 ω∗⋅x+b∗=0,决策函数为 f ( x ) = s i g n ( ω ∗ ⋅ x + b ∗ ) f(x)=sign(\omega^* \cdot x+b^*) f(x)=sign(ω∗⋅x+b∗)。
三、函数间隔和几何间隔
1.函数间隔
根据几何知识,点
x
0
(
x
0
1
,
x
0
2
)
x_{0}(x^1_{0},x^2_{0})
x0(x01,x02)到直线
ω
⋅
x
+
b
=
0
\omega \cdot x+b=0
ω⋅x+b=0的距离
d
=
∣
ω
⋅
x
0
+
b
∣
d=\begin{vmatrix}\omega \cdot x_0+b\end{vmatrix}
d=∣∣ω⋅x0+b∣∣.定义超平面
(
ω
,
b
)
(\omega,b)
(ω,b)关于样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的函数间隔为
γ
∧
i
=
y
i
(
ω
⋅
x
i
+
b
)
(1)
{\overset{\wedge}{\gamma}}_i=y_i(\omega \cdot x_i+b)\tag{1}
γ∧i=yi(ω⋅xi+b)(1)
函数间隔
γ
∧
i
{\overset{\wedge}{\gamma}}_i
γ∧i表示了分类的正确性和距离(确信度),当分类正确时,
y
i
y_i
yi和
ω
⋅
x
i
+
b
\omega \cdot x_i+b
ω⋅xi+b同号;当分类错误时,
y
i
y_i
yi和
ω
⋅
x
i
+
b
\omega \cdot x_i+b
ω⋅xi+b异号。
但是,当我们试图将参数 ω \omega ω和 b b b缩放同等倍数 λ \lambda λ时,即 ω → λ ω , b → λ b \omega \rightarrow \lambda\omega,b \rightarrow \lambda b ω→λω,b→λb,超平面 ω ⋅ x + b = 0 → λ ω ⋅ x + λ b = 0 \omega \cdot x+b=0 \rightarrow \lambda\omega \cdot x+\lambda b=0 ω⋅x+b=0→λω⋅x+λb=0并未发生变化,而函数间隔却被缩放了 λ \lambda λ倍。将这样不稳定的函数间隔作为最优化目标显然是不合理的。想象一下,模型学习的过程中,参数 ω \omega ω和 b b b的值在不断变化,假如超平面没有改变,但是函数间隔确被改变了,模型训练发生错误。因此我们想要找到一个稳定的“间隔”去作为最优化目标(即超平面不变,“间隔”也不会变)。
2. 几何间隔
在函数间隔的基础上,我们希望获得稳定的“间隔”,即增加对法向量
ω
\omega
ω的约束,于是我们参考单位向量的思想
e
=
v
∥
v
∥
e=\frac{v}{\begin{Vmatrix}v\end{Vmatrix}}
e=∥v∥v引入
∥
ω
∥
\begin{Vmatrix}\omega\end{Vmatrix}
∥∥ω∥∥,几何间隔定义如下:
γ
i
=
y
i
(
ω
∥
ω
∥
⋅
x
i
+
b
∥
ω
∥
)
(2)
\gamma_i=y_i({\frac{\omega}{\begin{Vmatrix}\omega \end{Vmatrix}}}\cdot x_i+{\frac{b}{\begin{Vmatrix}\omega \end{Vmatrix}}})\tag{2}
γi=yi(∥∥ω∥∥ω⋅xi+∥∥ω∥∥b)(2)
我们来看一下几何间隔的稳定性:
对于SVM模型来说,其“间隔”表示为
γ
=
min
i
=
1
,
⋯
,
N
γ
i
=
min
i
=
1
,
⋯
,
N
y
i
(
ω
∥
ω
∥
⋅
x
i
+
b
∥
ω
∥
)
(3)
\gamma=\underset{i=1,\cdots,N}{\min}\gamma_i=\underset{i=1,\cdots,N}{\min}y_i({\frac{\omega}{\begin{Vmatrix}\omega \end{Vmatrix}}}\cdot x_i+{\frac{b}{\begin{Vmatrix}\omega \end{Vmatrix}}})\tag{3}
γ=i=1,⋯,Nminγi=i=1,⋯,Nminyi(∥∥ω∥∥ω⋅xi+∥∥ω∥∥b)(3)
从上述可以看到,几何间隔可以作为我们的最优化目标,下面重点关注线性可分支持向量机的约束最优化问题。
四、最优化问题
支持向量机的最优化问题即学习目标就是要将“间隔”最大化,定义如下:
max
ω
,
b
γ
s
.
t
.
γ
i
=
y
i
(
ω
∥
ω
∥
⋅
x
i
+
b
∥
ω
∥
)
≥
γ
,
i
=
1
,
2
,
⋯
,
N
\underset{\omega,b}{\max}\gamma \qquad\qquad s.t. \quad \gamma_i=y_i({\frac{\omega}{\begin{Vmatrix}\omega \end{Vmatrix}}}\cdot x_i+{\frac{b}{\begin{Vmatrix}\omega \end{Vmatrix}}}) \ge \gamma, \quad i=1,2,\cdots,N
ω,bmaxγs.t.γi=yi(∥∥ω∥∥ω⋅xi+∥∥ω∥∥b)≥γ,i=1,2,⋯,N
(6)式即为最终的约束最优化问题,通过求解得到其最优化解
ω
∗
,
b
∗
\omega^*,b^*
ω∗,b∗,由此得到最终的超平面与决策函数:
超
平
面
(
ω
∗
,
b
∗
)
:
ω
∗
⋅
x
+
b
∗
=
0
决
策
函
数
f
(
x
)
:
f
(
x
)
=
s
i
g
n
(
ω
∗
⋅
x
+
b
∗
)
超平面(\omega^*,b^*):\quad \omega^* \cdot x+b^*=0 \\ 决策函数f(x):\quad f(x)=sign(\omega^* \cdot x+b^*)
超平面(ω∗,b∗):ω∗⋅x+b∗=0决策函数f(x):f(x)=sign(ω∗⋅x+b∗)
支持向量与间隔边界
支持向量即为使最优化问题(6)式约束条件等号成立的点 x i x_i xi(距离超平面最近的点);间隔边界即为使最优化问题(6)式约束条件等号成立的平面 y i ( ω ⋅ x i + b ) − 1 = 0 y_i(\omega \cdot x_i+b)-1=0 yi(ω⋅xi+b)−1=0;SVM分类器的间隔即为正类负类间隔边界间的距离 2 ∥ ω ∥ \frac{2}{\begin{Vmatrix}\omega \end{Vmatrix}} ∥ω∥2。如下图:
从最优化问题的定义和上图可以看出,最大间隔只与距离超平面最近的点有关,即只与间隔边界上的支持向量有关,而与边界外的点无关。
五、对偶问题
为求解线性可分支持向量机的最优化问题,我们将上一节的最优化问题(6)作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解。对偶问题的复杂度往往要低于原始问题,且在SVM中求解对偶问题可以自然引入核函数,进而推广到非线性分类问题。拉格朗日对偶性参考《统计学习方法》中的附录C。
1.构造拉格朗日函数
对于原始问题(6),为每个约束条件(此问题只有不等式约束,没有等式约束)引进拉格朗日乘子
α
i
≥
0
,
i
=
1
,
2
,
⋯
,
N
\alpha_i \ge 0,\ i=1,2,\cdots,N
αi≥0, i=1,2,⋯,N,定义拉格朗日函数
L
(
ω
,
b
,
α
)
L(\omega,b,\alpha)
L(ω,b,α):
L
(
ω
,
b
,
α
)
=
1
2
∥
ω
∥
2
−
∑
i
=
1
N
α
i
[
y
i
(
ω
⋅
x
i
+
b
)
−
1
]
⇒
L
(
ω
,
b
,
α
)
=
1
2
∥
ω
∥
2
−
∑
i
=
1
N
α
i
y
i
(
ω
⋅
x
i
+
b
)
+
∑
i
=
1
N
α
i
(7)
L(\omega,b,\alpha)=\frac{1}{2}{\begin{Vmatrix} \omega\end{Vmatrix}^2}-{\overset{N}{\underset{i=1}{\sum}}}{\alpha_i[y_i(\omega \cdot x_i+b)-1]} \\ \Rightarrow\quad L(\omega,b,\alpha)=\frac{1}{2}{\begin{Vmatrix} \omega\end{Vmatrix}^2}-{\overset{N}{\underset{i=1}{\sum}}}{\alpha_iy_i(\omega \cdot x_i+b)}+{\overset{N}{\underset{i=1}{\sum}}}\alpha_i \tag{7}
L(ω,b,α)=21∥∥ω∥∥2−i=1∑Nαi[yi(ω⋅xi+b)−1]⇒L(ω,b,α)=21∥∥ω∥∥2−i=1∑Nαiyi(ω⋅xi+b)+i=1∑Nαi(7)
转换为与原始最优化问题等价的形式为:
2.拉格朗日对偶性求解对偶问题
根据拉格朗日对偶性,原始问题的对偶问题为极大极小问题:
max
α
;
α
i
≥
0
m
i
n
ω
,
b
L
(
ω
,
b
,
α
)
(8)
{\underset{\alpha;\alpha_i\ge0}{\max}{\underset{\omega,b}{min}}L(\omega,b,\alpha)}\tag{8}
α;αi≥0maxω,bminL(ω,b,α)(8)
(1)先求
m
i
n
ω
,
b
L
(
ω
,
b
,
α
)
{\underset{\omega,b}{min}}L(\omega,b,\alpha)
ω,bminL(ω,b,α)
(2)再求 m i n ω , b L ( ω , b , α ) {\underset{\omega,b}{min}}L(\omega,b,\alpha) ω,bminL(ω,b,α)对 α \alpha α的极大
(10)式即为原始最优化问题(6)式的的对偶问题。求解对偶问题,可以得到最终的拉格朗日乘子向量 α = ( α 1 , α 2 , ⋯ , α N ) T \alpha={(\alpha_1,\alpha_2,\cdots,\alpha_N)}^T α=(α1,α2,⋯,αN)T。下面来找到拉格朗日乘子 α \alpha α与原始参数 ω , b \omega,b ω,b的关系,还原得到最终的超平面与决策函数。
3.拉格朗日乘子 α \alpha α与原始参数 ω , b \omega,b ω,b的关系
这里主要使用了KKT条件,定理可以参考《统计学习方法》中的附录C。
求解对偶问题得到了最终解
α
∗
=
(
α
1
∗
,
α
2
∗
,
⋯
,
α
N
∗
)
T
\alpha^*={(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)}^T
α∗=(α1∗,α2∗,⋯,αN∗)T,则存在
α
j
>
0
\alpha_j >0
αj>0,并有关系:
ω
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
(11)
\omega^*={\overset{N}{\underset{i=1}{\sum}}}\alpha_i^*y_ix_i \tag{11}
ω∗=i=1∑Nαi∗yixi(11)
b ∗ = y i − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) (12) b^*=y_i-{\overset{N}{\underset{i=1}{\sum}}}\alpha_i^*y_i(x_i \cdot x_j) \tag{12} b∗=yi−i=1∑Nαi∗yi(xi⋅xj)(12)
支持向量
之前我们定义了原始问题的支持向量,而其对偶问题的支持向量则为数据集中 α i > 0 \alpha_i >0 αi>0的样本点 ( x i , y i ) (x_i,y_i) (xi,yi)。因为当 α i > 0 \alpha_i >0 αi>0时,由KKT条件3有 ω ∗ ⋅ x j + b ∗ = ± 1 \omega^*\cdot x_j+b^*=\pm1 ω∗⋅xj+b∗=±1,对应于间隔边界。而对于 α i = 0 \alpha_i=0 αi=0即间隔边界外的样本点,则对最优化没有任何影响,因为根据(11)(12)式的累加形式,'0’不会对最优化参数 ω , b \omega,b ω,b有任何贡献,这与第四节的结论一致。
六、总结
从最简单的线性可分支持向量机模型我们可以看出,只有少部分数据(支持向量)影响分类器的训练,这也即是支持向量机的由来。线性可分支持向量机能够完美分类线性可分的数据集,超平面能够将正类负类完全分开,其学习的过程叫做硬间隔最大化。但是,现实中的数据往往是线性不可分的,采用硬间隔最大化会得到很糟糕的模型,所以,为了处理更一般的情况,引入了软间隔最大化方法与核函数,使支持向量机能够分类非线性数据。
参考
- 李航《统计学习方法》