支持向量机(二)
1. 核函数
在 支持向量机(一) 里,我们介绍了线性可分的情况,但是当数据本身是线性不可分时,原有的 SVM 将无法找到最优的超平面。但是我们可以把每个样本映射到高维空间里,使其线性可分,如下图所示:
原来的样本在二维空间里线性不可分,但是用 ϕ \phi ϕ 函数映射到 3 维空间之后,便可以用一个线性超平面将其分开。
我们可以把这个思想应用到 SVM 里,来解决线性不可分的问题。用
ϕ
(
x
)
\phi(\boldsymbol x)
ϕ(x) 表示将原始样本的特征向量
x
\boldsymbol x
x 映射到高维空间之后的向量,那么原来的目标函数变为:
(1)
min
w
,
b
1
2
∥
w
∥
2
2
\min_{\boldsymbol w,b} \frac{1}{2} \Vert \boldsymbol w \Vert_2^2 \tag{1}
w,bmin21∥w∥22(1)
s
.
t
.
y
i
(
w
T
ϕ
(
x
i
)
+
b
)
≥
1
,
i
=
1
,
2
…
,
m
s.t.\quad y_i(\boldsymbol w^T \phi (\boldsymbol x_i)+b)\ge 1, i = 1,2\dots,m
s.t.yi(wTϕ(xi)+b)≥1,i=1,2…,m 对偶问题为:
(2)
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\max_{\boldsymbol \alpha} \sum_{i=1}^m \alpha_i - \frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m \alpha_i \alpha_j y_i y_j \phi (\boldsymbol x_i)^T \phi (\boldsymbol x_j) \tag{2}
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjϕ(xi)Tϕ(xj)(2)
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
…
,
m
\begin{aligned} s.t.\quad & \sum_{i=1}^m \alpha_i y_i = 0 \\ & \alpha_i \ge 0, \quad i = 1,2,\dots,m \end{aligned}
s.t.i=1∑mαiyi=0αi≥0,i=1,2,…,m 此式子需要计算映射后的高维向量的内积
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\phi (\boldsymbol x_i)^T \phi (\boldsymbol x_j)
ϕ(xi)Tϕ(xj),倘若
ϕ
(
x
i
)
\phi (\boldsymbol x_i)
ϕ(xi) 维度很高甚至是无穷维,则此计算十分费时。如果我们找到一个函数,能直接原向量
x
i
\boldsymbol x_i
xi 计算映射后的向量内积,那就能大大降低计算复杂度,这样的函数便称为核函数,表示如下:
K
(
x
i
,
x
j
)
=
ϕ
(
x
i
)
T
ϕ
(
x
j
)
K(\boldsymbol x_i, \boldsymbol x_j)=\phi (\boldsymbol x_i)^T \phi (\boldsymbol x_j)
K(xi,xj)=ϕ(xi)Tϕ(xj) 常用的核函数有:
- 线性核: K ( x i , x j ) = x i T x j K(x_i,x_j)=x_i^Tx_j K(xi,xj)=xiTxj
- 多项式核: K ( x i , x j ) = ( x i T x j ) d K(x_i,x_j)=(x_i^Tx_j)^d K(xi,xj)=(xiTxj)d
- 高斯核: K ( x i , x j ) = e x p ( − ∥ x i − x j ∥ 2 2 σ 2 ) K(x_i,x_j)=exp(-\frac{\Vert x_i-x_j \Vert^2}{2 \sigma^2}) K(xi,xj)=exp(−2σ2∥xi−xj∥2)
- 拉普拉斯核: K ( x i , x j ) = e x p ( − ∥ x i − x j ∥ σ ) K(x_i,x_j)=exp(-\frac{\Vert x_i-x_j \Vert }{\sigma}) K(xi,xj)=exp(−σ∥xi−xj∥)
- Sigmoid 核: K ( x i , x j ) = t a n h ( β x i T x j + θ ) K(x_i,x_j)=tanh(\beta x_i^Tx_j+\theta) K(xi,xj)=tanh(βxiTxj+θ)
2. 软间隔
前面我们求解 SVM 问题的时候,约束是 y i ( w T ϕ ( x i ) + b ) ≥ 1 , i = 1 , 2 … , m y_i(\boldsymbol w^T \phi (\boldsymbol x_i)+b)\ge 1, i = 1,2\dots,m yi(wTϕ(xi)+b)≥1,i=1,2…,m,即对于所有的样本,都要求他们在分类间隔带的两侧,但是这样的要求太过严格,容易过拟合,易受异常值影响,反而难以得到分类间隔最大的超平面,甚至找不到线性可分的超平面。
若忽视圈出的蓝色的点,可以得到分类间隔较大的分类器,若要把该样本也分类正确,则得到的分类器间隔太小,泛化能力较差。
解决此问题的办法是允许分类器在一些样本上出错,从而仍然保持分类器间隔较大。引入松弛变量
ξ
i
≥
0
\xi_i \ge 0
ξi≥0,将目标函数变为:
(3)
min
w
,
b
1
2
∥
w
∥
2
2
+
C
∑
i
=
1
m
ξ
i
\min_{\boldsymbol w,b} \frac{1}{2} \Vert \boldsymbol w \Vert_2^2 + C\sum_{i=1}^m \xi_i \tag{3}
w,bmin21∥w∥22+Ci=1∑mξi(3)
s
.
t
.
y
i
(
w
T
ϕ
(
x
i
)
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
…
,
m
ξ
i
≥
0
,
i
=
1
,
2
,
…
,
m
\begin{aligned} s.t.\quad & y_i(\boldsymbol w^T \phi (\boldsymbol x_i)+b)\ge 1-\xi_i, i = 1,2\dots,m \\ & \xi_i \ge 0, \quad i = 1,2,\dots,m \end{aligned}
s.t.yi(wTϕ(xi)+b)≥1−ξi,i=1,2…,mξi≥0,i=1,2,…,m 此时我们不再要求
y
i
(
w
T
ϕ
(
x
i
)
+
b
)
≥
1
y_i(\boldsymbol w^T \phi (\boldsymbol x_i)+b)\ge 1
yi(wTϕ(xi)+b)≥1 严格满足,而是允许比 1 小
ξ
i
\xi_i
ξi,当然我们希望
ξ
i
\xi_i
ξi 越小越好,因此把其作为正则项加到目标函数后面,在最大化分类间隔(对应目标函数第一项
1
/
2
∥
w
∥
2
2
1/2 \Vert \boldsymbol w \Vert_2^2
1/2∥w∥22)和把样本都分对(对应目标函数第二项
∑
i
=
1
m
ξ
i
\sum_{i=1}^m \xi_i
∑i=1mξi)之间权衡。此时对偶问题的形式为:
(4)
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\max_{\boldsymbol \alpha} \sum_{i=1}^m \alpha_i - \frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m \alpha_i \alpha_j y_i y_j \phi (\boldsymbol x_i)^T \phi (\boldsymbol x_j) \tag{4}
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjϕ(xi)Tϕ(xj)(4)
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
0
≤
α
i
≤
C
,
i
=
1
,
2
,
…
,
m
\begin{aligned} s.t.\quad & \sum_{i=1}^m \alpha_i y_i = 0 \\ & 0 \le \alpha_i \le C, \quad i = 1,2,\dots,m \end{aligned}
s.t.i=1∑mαiyi=00≤αi≤C,i=1,2,…,m
而 KKT 部分条件为:
α
i
(
y
i
f
(
x
i
)
−
1
+
ξ
i
)
=
0
\alpha_i(y_i f(\boldsymbol x_i)-1+\xi_i)=0
αi(yif(xi)−1+ξi)=0
C
=
α
i
+
μ
i
,
μ
i
ξ
i
=
0
C=\alpha_i+\mu_i, \quad \mu_i \xi_i=0
C=αi+μi,μiξi=0分析如下:
-
若 α i = 0 \alpha_i=0 αi=0,对应样本不是支持向量,对分类平面无影响
-
若 α i > 0 \alpha_i>0 αi>0,则 y i f ( x i ) = 1 − ξ i y_i f(\boldsymbol x_i)=1-\xi_i yif(xi)=1−ξi,是支持向量
- 若 α i < C \alpha_i < C αi<C,则 μ i > 0 \mu_i > 0 μi>0,因而 ξ i = 0 \xi_i=0 ξi=0,恰好在分界边界
- 若
α
i
=
C
\alpha_i = C
αi=C,则
μ
i
=
0
\mu_i = 0
μi=0,则
ξ
i
≥
0
\xi_i \ge 0
ξi≥0
- 若 ξ i ≤ 1 \xi_i \le 1 ξi≤1,该样本在分类间隔带
- 若 ξ i > 1 \xi_i > 1 ξi>1,该样本被错分