对于支持向量机的内容,应当从简单到复杂依次学习:
- 线性可分支持向量机
- 线性支持向量机
- 非线性支持向量机
线性可分支持向量机
模型公式
线性可分支持向量机为:
f
(
x
)
=
s
i
g
n
(
w
x
+
b
)
f(x)=sign(wx+b)
f(x)=sign(wx+b)
x
∈
R
n
,
w
∈
R
n
,
b
∈
R
x\in R^{n},w\in R^{n},b\in R
x∈Rn,w∈Rn,b∈R
实际上,线性可分支持向量机的模型表达式和感知机是一样的,只不过对于模型参数的求解方式不一样,导致模型的泛化性能也不一样。
感知机利用误分类损失最小的策略得到分离超平面,线性可分支持向量机利用间隔最大化的策略得到分离超平面。线性可分支持向量机只适合处理线性可分数据集;
线性可分支持向量机的模型公式比较简单,重点在于通过间隔最大化来推导相应的模型优化算法,所以先了解一下函数间隔与几何间隔的概念
函数间隔与几何间隔
函数间隔
定义样本点
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi)到超平面
w
x
+
b
=
0
wx+b=0
wx+b=0 的函数间隔为:
γ
^
i
=
y
i
(
w
x
i
+
b
)
\widehat{\gamma }_{i}=y_{i}(wx_{i}+b)
γ
i=yi(wxi+b)
其中
w
w
w 和
b
b
b 是模型参数,当样本点
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi) 被超平面正确分类时,函数间隔取值为正;当样本点
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi) 被超平面分错时,函数间隔取值为负;比如:
图中的三个样本点和感知机中的案例保持一致:
[
3
,
3
]
[3,3]
[3,3]、
[
4
,
3
]
[4,3]
[4,3] 为正样本,标记为红色;
[
1
,
1
]
[1,1]
[1,1]为负样本,标记为绿色。
x
1
+
x
2
−
4
=
0
x_{1}+x_{2}-4=0
x1+x2−4=0 是分离超平面。现在计算一下每个样本点到超平面的函数间隔:
γ
^
[
3
,
3
]
=
1
×
(
3
+
3
−
4
)
=
2
\widehat{\gamma }_{[3,3]}=1\times (3+3-4)=2
γ
[3,3]=1×(3+3−4)=2
γ
^
[
4
,
3
]
=
1
×
(
4
+
3
−
4
)
=
3
\widehat{\gamma }_{[4,3]}=1\times (4+3-4)=3
γ
[4,3]=1×(4+3−4)=3
γ
^
[
1
,
1
]
=
−
1
×
(
1
+
1
−
4
)
=
2
\widehat{\gamma }_{[1,1]}=-1\times (1+1-4)=2
γ
[1,1]=−1×(1+1−4)=2
由上面的计算结果可知:3个样本点的函数间隔都是正的,表明超平面将每个样本点都完全正确地分开了。当分离超平面的表达式固定时,离超平面越远的样本点,其函数间隔的绝对值就越大;
定义训练数据集
T
T
T 到超平面
w
x
+
b
=
0
wx+b=0
wx+b=0 的函数间隔为:
γ
^
=
m
i
n
{
γ
^
i
}
=
m
i
n
{
y
i
(
w
x
i
+
b
)
}
,
i
∈
{
1
,
2
,
.
.
.
,
N
}
\widehat{\gamma }=min\left \{ \widehat{\gamma }_{i}\right \}=min\left \{ y_{i}(wx_{i}+b)\right \},i\in \left \{ 1,2,...,N \right \}
γ
=min{γ
i}=min{yi(wxi+b)},i∈{1,2,...,N}
其中,
N
N
N为训练集的样本数量,在上面的例子中,训练数据集共有3个样本点,每个样本点的函数间隔分别为 :2,3,2。所以训练数据集
T
T
T 的函数间隔为样本函数间隔的最小值 2
几何间隔
定义样本点
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi) 到超平面
w
x
+
b
=
0
wx+b=0
wx+b=0 的几何间隔为:
γ
i
=
γ
^
i
∣
∣
w
∣
∣
2
=
y
i
(
w
x
i
+
b
)
∣
∣
w
∣
∣
2
\gamma_{i}=\frac{\widehat{\gamma }_{i}}{||w||_{2}}=\frac{y_{i}(wx_{i}+b)}{||w||_{2}}
γi=∣∣w∣∣2γ
i=∣∣w∣∣2yi(wxi+b)
简言之就是,在函数间隔的基础上除以模型权值向量的 L2 范数;继续看之前的例子:
w
=
[
1
,
1
]
⇒
∣
∣
w
∣
∣
2
=
1
2
+
1
2
=
2
w=[1,1]\Rightarrow ||w||_{2}=\sqrt{1^{2}+1^{2}}=\sqrt{2}
w=[1,1]⇒∣∣w∣∣2=12+12=2
γ
[
3
,
3
]
=
2
2
,
γ
[
4
,
3
]
=
3
2
,
γ
[
1
,
1
]
=
2
2
\gamma_{[3,3]}=\frac{2}{\sqrt{2}},\gamma_{[4,3]}=\frac{3}{\sqrt{2}},\gamma_{[1,1]}=\frac{2}{\sqrt{2}}
γ[3,3]=22,γ[4,3]=23,γ[1,1]=22
定义训练数据集
T
T
T 到超平面
w
x
+
b
=
0
wx+b=0
wx+b=0 的几何间隔为:
γ
=
m
i
n
{
γ
i
}
=
m
i
n
{
y
i
(
w
x
i
+
b
)
∣
∣
w
∣
∣
2
}
,
i
∈
{
1
,
2
,
.
.
.
,
N
}
\gamma=min\left \{ \gamma_{i}\right \}=min\left \{ \frac{y_{i}(wx_{i}+b)}{||w||_{2}}\right \},i\in \left \{ 1,2,...,N \right \}
γ=min{γi}=min{∣∣w∣∣2yi(wxi+b)},i∈{1,2,...,N}
据此定义,上面的例子中训练数据集
T
T
T 的几何间隔为样本几何间隔的最小值:
2
\sqrt{2}
2
函数间隔与几何间隔是一种带符号的距离
间隔关系
函数间隔和几何间隔的关系如下:
γ
=
γ
^
∣
∣
w
∣
∣
2
\gamma=\frac{\widehat{\gamma }}{||w||_{2}}
γ=∣∣w∣∣2γ
由此可知,无论是样本范畴还是训练集的范畴,当权值向量的 L2 范数为 1 时,函数间隔等于几何间隔
优化算法
线性可分支持向量机是通过最大化训练集的几何间隔来得到模型参数的。几何间隔最大化可以转化为不等式约束条件下的目标函数最小化问题。下面先来看一下带约束条件的最小化问题:
其中,
f
(
x
)
f(x)
f(x) 是目标函数,第一行式子表达的含义是:通过调整自变量
x
x
x 的取值使得目标函数取到最小值;
s
.
t
.
s.t.
s.t.是subject to的缩写,翻译为:受限于 ...
的条件。
s
.
t
.
s.t.
s.t. 后面是最优化问题的约束条件,这里列出了两个约束条件,一个是不等式约束,另一个是等式约束。
线性可分支持向量机的原始最优化问题其实是不等式约束条件下的目标函数最小化问题。下面将通过几何间隔最大化推导出该问题的具体形式;
线性可分支持向量机模型的参数学习策略是最大化训练集数据与超平面的几何间隔,直观地也可以理解:离超平面最近的样本点要尽可能离超平面远一些,这样其他的样本点被分类正确的置信度会更高,对于新的样本点也会有更好的分类预测能力。比如例子:
图中的 x 1 = 2 x_{1}=2 x1=2, ( 1 × x 1 + 0 × x 2 − 2 = 0 ) (1\times x_{1}+0\times x_{2}-2=0) (1×x1+0×x2−2=0) 是将正负样本点完全正确地分开的一个分离超平面,离它最近的两个样本点是 [ 1 , 1 ] [1,1] [1,1] 和 [ 3 , 3 ] [3,3] [3,3],这两个样本点到超平面的几何间隔为 1。但这个超平面并不是训练集几何间隔最大的分离超平面,下面继续看这个例子:
图中 x 1 + x 2 − 4 = 0 x_{1}+x_{2}-4=0 x1+x2−4=0 是使训练集几何间隔最大的分离超平面,其中 [ 1 , 1 ] [1,1] [1,1] 和 [ 3 , 3 ] [3,3] [3,3] 是离超平面最近的样本点,几何间隔为 2 \sqrt{2} 2;
从上面两幅图的变化可知,线性可分支持向量机的模型优化过程是找到一个超平面
(
w
,
b
)
(w,b)
(w,b),使训练集到超平面的几何间隔最大,用数学公式表示为:
m
a
x
{
w
,
b
}
γ
max_{\left \{w,b\right\}}\gamma
max{w,b}γ
s
.
t
.
γ
i
≥
γ
,
i
∈
{
1
,
2
,
.
.
.
,
N
}
s.t.\gamma_{i}\geq\gamma,i\in \left \{ 1,2,...,N \right \}
s.t.γi≥γ,i∈{1,2,...,N}
公式中的目标函数是训练集
T
T
T 到超平面
w
x
+
b
=
0
wx+b=0
wx+b=0 的几何间隔,由于训练数据是已知的,所以目标函数是关于模型参数
w
w
w 和
b
b
b 的函数;公式的第二行是最优化问题的约束条件,意思是每个样本点到超平面的几何间隔至少为
γ
\gamma
γ;
根据几何间隔与函数间隔的关系式,将上述最优化问题转化为如下形式:
m
a
x
{
w
,
b
}
γ
^
∣
∣
w
∣
∣
2
max_{\left \{w,b\right\}}\frac{\widehat{\gamma}}{||w||_{2}}
max{w,b}∣∣w∣∣2γ
s
.
t
.
γ
^
i
∣
∣
w
∣
∣
2
≥
γ
^
∣
∣
w
∣
∣
2
,
i
∈
{
1
,
2
,
.
.
.
,
N
}
s.t.\frac{\widehat{\gamma}_{i}}{||w||_{2}}\geq\frac{\widehat{\gamma}}{||w||_{2}},i\in \left \{ 1,2,...,N \right \}
s.t.∣∣w∣∣2γ
i≥∣∣w∣∣2γ
,i∈{1,2,...,N}
化简约束条件:
m
a
x
{
w
,
b
}
γ
^
∣
∣
w
∣
∣
2
max_{\left \{w,b\right\}}\frac{\widehat{\gamma}}{||w||_{2}}
max{w,b}∣∣w∣∣2γ
s
.
t
.
γ
^
i
≥
γ
^
,
i
∈
{
1
,
2
,
.
.
.
,
N
}
s.t.\widehat{\gamma}_{i}\geq\widehat{\gamma},i\in \left \{ 1,2,...,N \right \}
s.t.γ
i≥γ
,i∈{1,2,...,N}
将样本函数间隔的表达式代入约束条件:
m
a
x
{
w
,
b
}
γ
^
∣
∣
w
∣
∣
2
max_{\left \{w,b\right\}}\frac{\widehat{\gamma}}{||w||_{2}}
max{w,b}∣∣w∣∣2γ
s
.
t
.
y
i
(
w
x
i
+
b
)
≥
γ
^
,
i
∈
{
1
,
2
,
.
.
.
,
N
}
s.t.y_{i}(wx_{i}+b)\geq\widehat{\gamma},i\in \left \{ 1,2,...,N \right \}
s.t.yi(wxi+b)≥γ
,i∈{1,2,...,N}
到目前,训练集到超平面的函数间隔不是很明确,所以需要对问题的形式做进一步的转化,通过同比例缩放消除目标函数以及约束条件中的函数间隔:
- 对于目标函数:将分子和分母同时除以函数间隔,分值(几何间隔)不变;
- 对于约束条件:不等式两边同时除以函数间隔,不等式关系不变;
函数间隔归一化后为:
m
a
x
{
w
,
b
}
1
∣
∣
w
∣
∣
2
max_{\left \{w,b\right\}}\frac{1}{||w||_{2}}
max{w,b}∣∣w∣∣21
s
.
t
.
y
i
(
w
x
i
+
b
)
≥
1
,
i
∈
{
1
,
2
,
.
.
.
,
N
}
s.t.y_{i}(wx_{i}+b)\geq1,i\in \left \{ 1,2,...,N \right \}
s.t.yi(wxi+b)≥1,i∈{1,2,...,N}
当看到这个式子时会发现:函数间隔除以自身变为 1 没有问题,但目标函数的分母部分和约束条件的左侧怎么还是原来的形式?
其实现在的 w w w 和 b b b 表示的是缩放后 w w w 和 b b b,两种情况下的 w w w 和 b b b 对应同一个超平面,比如 x 1 + x 2 − 4 = 0 x_{1}+x_{2}-4=0 x1+x2−4=0 与 0.5 x 1 + 0.5 x 2 − 2 = 0 0.5x_{1}+0.5x_{2}-2=0 0.5x1+0.5x2−2=0 指的是同一个超平面;
替换目标函数,将原问题转化为带约束条件的最小化问题:
m
i
n
{
w
,
b
}
1
2
∣
∣
w
∣
∣
2
2
min_{\left \{w,b\right \}}\frac{1}{2}||w||_{2}^{2}
min{w,b}21∣∣w∣∣22
s
.
t
.
−
y
i
(
w
x
i
+
b
)
+
1
≤
0
,
i
∈
{
1
,
2
,
.
.
.
,
N
}
s.t.-y_{i}(wx_{i}+b)+1\leq0,i\in \left \{ 1,2,...,N \right \}
s.t.−yi(wxi+b)+1≤0,i∈{1,2,...,N}
通过构造拉格朗日函数得到问题的解:
L
(
w
,
b
,
a
)
=
1
2
∣
∣
w
∣
∣
2
2
+
∑
i
=
1
N
α
i
(
1
−
y
i
(
w
x
i
+
b
)
)
L(w,b,a)=\frac{1}{2}||w||_{2}^{2}+\sum_{i=1}^{N}\alpha_{i}(1-y_{i}(wx_{i}+b))
L(w,b,a)=21∣∣w∣∣22+i=1∑Nαi(1−yi(wxi+b))
α
i
≥
0
,
−
y
i
(
w
x
i
+
b
)
+
1
≤
0
,
i
∈
{
1
,
2
,
.
.
.
,
N
}
\alpha_{i}\geq0,-y_{i}(wx_{i}+b)+1\leq0,i\in \left \{1,2,...,N\right\}
αi≥0,−yi(wxi+b)+1≤0,i∈{1,2,...,N}
其中,
α
\alpha
α为拉格朗日乘子;
先关于
α
\alpha
α最大化拉格朗日函数
m
a
x
{
α
}
L
(
w
,
b
,
a
)
max_{\left \{\alpha\right \}}L(w,b,a)
max{α}L(w,b,a) 得到问题的解集合,在该解集合内关于
w
,
b
w,b
w,b最小化得到问题的解:
m
i
n
{
w
,
b
}
m
a
x
{
α
}
L
(
w
,
b
,
a
)
=
m
i
n
{
w
,
b
}
1
2
∣
∣
w
∣
∣
2
2
min_{\left \{w,b\right \}}max_{\left \{\alpha\right \}}L(w,b,a)=min_{\left \{w,b\right \}}\frac{1}{2}||w||_{2}^{2}
min{w,b}max{α}L(w,b,a)=min{w,b}21∣∣w∣∣22
α
i
≥
0
,
−
y
i
(
w
x
i
+
b
)
+
1
≤
0
,
i
∈
{
1
,
2
,
.
.
.
,
N
}
\alpha_{i}\geq0,-y_{i}(wx_{i}+b)+1\leq0,i\in \left \{1,2,...,N\right\}
αi≥0,−yi(wxi+b)+1≤0,i∈{1,2,...,N}
原始问题为
m
i
n
{
w
,
b
}
m
a
x
{
α
}
L
(
w
,
b
,
a
)
min_{\left \{w,b\right \}}max_{\left \{\alpha\right \}}L(w,b,a)
min{w,b}max{α}L(w,b,a),对偶问题为
m
a
x
{
α
}
m
i
n
{
w
,
b
}
L
(
w
,
b
,
a
)
max_{\left \{\alpha\right \}}min_{\left \{w,b\right \}}L(w,b,a)
max{α}min{w,b}L(w,b,a),当拉格朗日函数求和项的各部分均为 0 时(即
α
i
(
1
−
y
i
(
w
x
i
+
b
)
)
=
0
\alpha_{i}(1-y_{i}(wx_{i}+b))=0
αi(1−yi(wxi+b))=0),原始问题和对偶问题有相同的最优值:
至此,问题变成:
将
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α)展开得到:
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
2
+
∑
i
=
1
N
α
i
(
1
−
y
i
(
w
x
i
+
b
)
)
L(w,b,\alpha)=\frac{1}{2}||w||_{2}^{2}+\sum_{i=1}^{N}\alpha_{i}(1-y_{i}(wx_{i}+b))
L(w,b,α)=21∣∣w∣∣22+i=1∑Nαi(1−yi(wxi+b))
=
1
2
∣
∣
w
∣
∣
2
2
−
∑
i
=
1
N
α
i
y
i
(
w
x
i
)
−
∑
i
=
1
N
α
i
y
i
b
+
∑
i
=
1
N
α
i
=\frac{1}{2}||w||_{2}^{2}-\sum_{i=1}^{N}\alpha_{i}y_{i}(wx_{i})-\sum_{i=1}^{N}\alpha_{i}y_{i}b+\sum_{i=1}^{N}\alpha_{i}
=21∣∣w∣∣22−i=1∑Nαiyi(wxi)−i=1∑Nαiyib+i=1∑Nαi
=
1
2
(
w
w
)
−
∑
i
=
1
N
α
i
y
i
(
w
x
i
)
−
∑
i
=
1
N
α
i
y
i
b
+
∑
i
=
1
N
α
i
=\frac{1}{2}(ww)-\sum_{i=1}^{N}\alpha_{i}y_{i}(wx_{i})-\sum_{i=1}^{N}\alpha_{i}y_{i}b+\sum_{i=1}^{N}\alpha_{i}
=21(ww)−i=1∑Nαiyi(wxi)−i=1∑Nαiyib+i=1∑Nαi
关于
w
,
b
w,b
w,b最小化目标函数
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α),令相关参数的梯度为0:
∂
L
∂
w
=
w
−
∑
i
=
1
N
α
i
y
i
x
i
=
0
\frac{\partial L}{\partial w}=w-\sum_{i=1}^{N}\alpha_{i}y_{i}x_{i}=0
∂w∂L=w−i=1∑Nαiyixi=0
∂
L
∂
b
=
−
∑
i
=
1
N
α
i
y
i
=
0
\frac{\partial L}{\partial b}=-\sum_{i=1}^{N}\alpha_{i}y_{i}=0
∂b∂L=−i=1∑Nαiyi=0
得到
w
=
∑
i
=
1
N
α
i
y
i
x
i
w=\sum_{i=1}^{N}\alpha_{i}y_{i}x_{i}
w=∑i=1Nαiyixi与
∑
i
=
1
N
α
i
y
i
=
0
\sum_{i=1}^{N}\alpha_{i}y_{i}=0
∑i=1Nαiyi=0,将其代入
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α)为:
现在,目标函数已经变成了拉格朗日函数关于
(
w
,
b
)
(w,b)
(w,b)的最小值(目标函数中不含参数
w
w
w 和
b
b
b),下一步关于
α
\alpha
α最大化目标函数:
目标函数转为最小化问题:
m
i
n
{
α
}
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
x
j
)
−
∑
i
=
1
N
α
i
min_{\left \{ \alpha \right \}}\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}x_{j})-\sum_{i=1}^{N}\alpha_{i}
min{α}21i=1∑Nj=1∑Nαiαjyiyj(xixj)−i=1∑Nαi
基于条件
α
i
(
1
−
y
i
(
w
x
i
+
b
)
)
=
0
\alpha_{i}(1-y_{i}(wx_{i}+b))=0
αi(1−yi(wxi+b))=0,选择某个
α
j
>
0
\alpha_{j}>0
αj>0,则有:
1
−
y
j
(
w
x
j
+
b
)
=
0
1-y_{j}(wx_{j}+b)=0
1−yj(wxj+b)=0
由于
y
j
y_{j}
yj 的平方为 1 ,令等式两边同时乘以
y
j
y_{j}
yj 为:
y
j
−
(
w
x
j
+
b
)
=
0
y_{j}-(wx_{j}+b)=0
yj−(wxj+b)=0
即有:
b
=
y
j
−
w
x
j
=
y
j
−
∑
i
=
1
N
α
i
y
i
(
x
i
x
j
)
b=y_{j}-wx_{j}=y_{j}-\sum_{i=1}^{N}\alpha_{i}y_{i}(x_{i}x_{j})
b=yj−wxj=yj−i=1∑Nαiyi(xixj)
算法流程总结为:
支持向量
通过参数解
(
w
,
b
)
(w,b)
(w,b)可以确定间隔边界(两个超平面):
H
1
:
w
∗
x
+
b
∗
=
1
,
H
2
:
w
∗
x
+
b
∗
=
−
1
H_{1}:w^{*}x+b^{*}=1,H_{2}:w^{*}x+b^{*}=-1
H1:w∗x+b∗=1,H2:w∗x+b∗=−1
支持向量是指距离超平面最近的样本特征向量,即间隔边界上的特征向量;
从条件 α i ( 1 − y i ( w x i + b ) ) = 0 \alpha_{i}(1-y_{i}(wx_{i}+b))=0 αi(1−yi(wxi+b))=0看出,线性可分支持向量机的模型参数通过训练集的每个样本和其对应的拉格朗日乘子计算而来,有多少个训练样本,就有多少个拉格朗日乘子;其中拉格朗日乘子大于零的样本特征向量就是支持向量
线性支持向量机
问题定义
现实世界中的数据大多是线性不可分的,这时就无法使用线性可分支持向量机的求解方式来得到模型参数,比如:
此时,新的样本数据集很难找到一个超平面将两类数据完全正确地分类,因此线性可分支持向量机的最优化算法也就不适用。
对于线性不可分的数据集,允许极少数的训练样本越过间隔边界甚至是分离超平面,这样可以解决线性不可分的问题,一定程度上也提升了模型的泛化能力。由此得到线性支持向量机的原始最优化问题:
m
i
n
{
w
,
b
,
ξ
}
1
2
∣
∣
w
∣
∣
2
2
+
C
∑
i
=
1
N
ξ
i
min_{\left\{w,b,\xi\right\}}\frac{1}{2}||w||_{2}^{2}+C\sum_{i=1}^{N}\xi_{i}
min{w,b,ξ}21∣∣w∣∣22+Ci=1∑Nξi
s
.
t
.
y
i
(
w
x
i
+
b
)
≥
1
−
ξ
i
,
ξ
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
s.t.y_{i}(wx_{i}+b)\geq1-\xi_{i},\xi_{i}\geq0,i=1,2,...,N
s.t.yi(wxi+b)≥1−ξi,ξi≥0,i=1,2,...,N
最小化的目标函数由两部分组成,第一部分是线性可分支持向量最小化的目标函数,第二部分是新加入的代价函数,其中系数
C
>
0
C > 0
C>0,称为惩罚系数;
ξ
i
\xi_{i}
ξi为松弛变量;
约束条件限制了样本函数间隔的下限:当松弛变量为 0 时,样本函数间隔的下限为 1 ;当松弛变量增大时,样本越过间隔边界被误分类的风险也会变大。惩罚系数 C C C 越大,最优化求解的松弛变量就越小;
类似线性可分支持向量机,线性支持向量机的算法流程为:
折页损失
合页损失是以函数间隔为自变量的函数,函数图像如下:
其中,当
z
>
0
z>0
z>0时,
[
z
]
+
=
z
[z]_{+}=z
[z]+=z,否则,
[
z
]
+
=
0
[z]_{+}=0
[z]+=0;即:当函数间隔大于 1 时,折页损失为零,否则折页损失为
1
−
y
(
w
x
+
b
)
1-y(wx+b)
1−y(wx+b);
类似地,容易得到感知机的折页损失图像:
当函数间隔大于零时,感知机损失为零,否则感知机损失为
−
y
(
w
x
+
b
)
-y(wx+b)
−y(wx+b);有了折页损失的定义,可以得到线性支持向量机的等价最优化问题:
m
i
n
{
w
,
b
}
∑
i
=
1
N
[
1
−
y
i
(
w
x
i
+
b
)
]
+
+
λ
∣
∣
w
∣
∣
2
2
min_{\left\{w,b\right\}}\sum_{i=1}^{N}[1-y_{i}(wx_{i}+b)]_{+}+\lambda ||w||_{2}^{2}
min{w,b}i=1∑N[1−yi(wxi+b)]++λ∣∣w∣∣22
其中,目标函数的第一项为经验风险,第二项为正则化项,
λ
\lambda
λ 为正则化系数
非线性支持向量机
问题定义
非线性支持向量机用来解决非线性分类问题,本质是将特征向量映射到新的特征空间中,从而使得数据在新的特征空间中线性可分,然后利用线性支持向量机的方法求解模型参数;
如上图所示的二维特征空间中,正样本 [1,1]、[1.5,0.5]、[-1,1]、[-1.5,0.5]、[-1,-1]、[1,-1] 用红色标记;负样本 [0.5,0.5]、 [-0.5,0.5]、 [-0.5,-0.5]、 [0.5,-0.5] 用绿色标记;
很明显,无法找到一个超平面(直线)将正负样本分开;但却可以用一个超曲面(曲线)将正负样本正确地分开。因此,把这样的问题叫做非线性可分问题;
对于上面的例子,分离超曲面是一个单位圆,对应的分类模型如下:
f
(
x
)
=
s
i
g
n
(
x
1
2
+
x
2
2
−
1
)
f(x)=sign(x_{1}^{2}+x_{2}^{2}-1)
f(x)=sign(x12+x22−1)
这个模型的表达式和线性支持向量机的形式是类似的,区别在于符号函数的输入量。直观地理解为:圆外的点被预测为正例,圆内的点被预测为负例;
实际二维特征空间中的超曲面可能是一个椭圆,也可能是其他的曲线。显然,需要先将非线性问题转化为线性问题,然后再利用线性支持向量机的方法进行求解
特征变换
对于每一个二维特征向量
x
x
x ,我们使用如下的映射函数将其转换为二维特征向量
z
z
z :
x
=
[
x
1
,
x
2
]
T
⇒
z
=
ϕ
(
x
)
=
[
x
1
2
,
x
2
2
]
T
x=[x_{1},x_{2}]^{T}\Rightarrow z=\phi (x)=[x_{1}^{2},x_{2}^{2}]^{T}
x=[x1,x2]T⇒z=ϕ(x)=[x12,x22]T
原来的样本点在新的特征空间中被转换成如下形式:
图中只能看到3个样本点,这是因为部分样本点经过特征变换之后,位置重合了,每个样本点的具体映射情况如下:
[0.5,0.5]、[-0.5,0.5]、[-0.5,-0.5]、[0.5,-0.5] ==> [0.25,0.25]
[1,1]、[-1,1]、[-1,-1]、[1,-1] ==> [1,1]
[1.5,0.5]、[-1.5,0.5] ==> [2.25,0.25]
除了样本点,原来的单位圆也变成了一条直线,正负样本被这条直线完全正确地分开了;
因此,现在只需要在新的特征空间中学习线性支持向量机就可以了。具体来说,就是把线性支持向量机求解算法中的特征向量先进行特征变换,然后再求解模型参数;
将所有的特征向量进行特征变换,得到非线性支持向量机的求解算法:
将线性支持向量机模型公式中的特征向量作相同的特征变换,得到非线性支持向量机的表达式:
f
(
x
)
=
s
i
g
n
(
w
ϕ
(
x
)
+
b
)
f(x)=sign(w\phi (x)+b)
f(x)=sign(wϕ(x)+b)
将之前线性支持向量机的模型参数解代入上面的表达式,得到:
f
(
x
)
=
s
i
g
n
(
w
∗
ϕ
(
x
)
+
b
∗
)
=
s
i
g
n
(
∑
i
=
1
N
α
i
∗
y
i
(
ϕ
(
x
i
)
ϕ
(
x
)
)
+
b
∗
)
f(x)=sign(w^{*}\phi (x)+b^{*})=sign(\sum_{i=1}^{N}\alpha_{i}^{*}y_{i}(\phi (x_{i})\phi (x))+b^{*})
f(x)=sign(w∗ϕ(x)+b∗)=sign(i=1∑Nαi∗yi(ϕ(xi)ϕ(x))+b∗)
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
(
ϕ
(
x
i
)
ϕ
(
x
j
)
)
,
0
<
α
j
∗
<
C
b^{*}=y_{j}-\sum_{i=1}^{N}\alpha_{i}^{*}y_{i}(\phi (x_{i})\phi (x_{j})),0<\alpha_{j}^{*}<C
b∗=yj−i=1∑Nαi∗yi(ϕ(xi)ϕ(xj)),0<αj∗<C
核函数
观察发现,最小化的目标函数和非线性支持向量机的模型表达式都含有向量内积的部分。因此,我们把这一部分作为一个整体,由此引出核函数的定义:
K
(
x
,
y
)
=
ϕ
(
x
)
ϕ
(
y
)
K(x,y)=\phi (x)\phi (y)
K(x,y)=ϕ(x)ϕ(y)
特征向量映射的结果是一个向量;核函数是映射函数的内积,结果是一个标量。根据核函数的定义,非线性支持向量机的最优化问题和模型表达式可以写成如下形式:
常用的核函数有多项式核函数和高斯核函数;
多项式核函数与高斯核函数
多项式核函数为:
K
(
x
,
y
)
=
(
x
y
+
1
)
p
K(x,y)=(xy+1)^{p}
K(x,y)=(xy+1)p
高斯核函数为:
K
(
x
,
y
)
=
e
x
p
(
−
∣
∣
x
−
y
∣
∣
2
2
2
σ
2
)
K(x,y)=exp(-\frac{||x-y||_{2}^{2}}{2\sigma ^{2}})
K(x,y)=exp(−2σ2∣∣x−y∣∣22)
容易发现,线性支持向量机的核函数 K ( x , y ) K(x,y) K(x,y) 是特征向量 x x x 和 y y y 的内积