支撑向量机(SVM)算法在分类问题中有着重要地位,其主要思想是最大化两类之间的间隔。按照数据集的特点:
- 线性可分问题,如之前的感知机算法处理的问题
- 线性可分,只有一点点错误点,如感知机算法发展出来的 Pocket 算法处理的问题
- 非线性问题,完全不可分,如在感知机问题发展出来的多层感知机和深度学习
假如数据是完全的线性可分的,那么学习到的模型可以称为硬间隔支持向量机。换个说法,硬间隔指的就是完全分类准确,不能存在分类错误的情况。软间隔,就是允许一定量的样本分类错误。
这三种情况对于 SVM 分别有下面三种处理手段:
- hard-margin SVM
- soft-margin SVM
- kernel Method
这里我们先谈硬间隔。在感知机算法中,如果两类线性可分,一般情况下,会存在无穷多条线。在SVM中,一个超平面,不仅能将数据正确分类,而且这个超平面到不同类之间距离最大
数据集为
{
(
x
i
,
y
i
)
}
i
=
0
N
,
x
i
∈
R
p
,
y
i
∈
{
−
1
,
1
}
\left\{(x_{i},y_{i})\right\}_{i=0}^{N},x_{i}\in \mathbb{R}^{p},y_{i}\in \left\{-1,1\right\}
{(xi,yi)}i=0N,xi∈Rp,yi∈{−1,1}
该超平面可以被写作
ω
T
x
+
b
=
0
\omega^{T}x+b=0
ωTx+b=0
正确分类数据可表示为
y
i
(
ω
T
x
i
+
b
)
>
0
,
i
=
1
,
2
,
⋯
,
N
y_{i}(\omega^{T}x_{i}+b)>0,i=1,2,\cdots ,N
yi(ωTxi+b)>0,i=1,2,⋯,N
因此,最大化数据到超平面的间隔就可以被表达为
{
max
margin
(
ω
,
b
)
s
.
t
.
y
i
(
ω
T
x
i
+
b
)
>
0.
i
=
1
,
2
,
⋯
,
N
margin
(
ω
,
b
)
=
min
ω
,
b
x
i
,
i
=
1
,
2
,
⋯
,
N
distance
(
ω
,
b
,
x
i
)
=
min
ω
,
b
x
i
,
i
=
1
,
2
,
⋯
,
N
1
∣
∣
ω
∣
∣
(
ω
T
x
i
+
b
)
\left\{\begin{aligned}&\max \text{margin}(\omega,b)\\ &s.t.y_{i}(\omega^{T}x_{i}+b)>0.i=1,2,\cdots ,N\\ &\begin{aligned} \text{margin}(\omega,b)&=\mathop{\text{min }}\limits_{\substack{\omega,b\\x_{i},i=1,2,\cdots ,N}}\text{distance}(\omega,b,x_{i})\\ &=\mathop{\text{min }}\limits_{\substack{\omega,b\\x_{i},i=1,2,\cdots ,N}} \frac{1}{||\omega||}(\omega^{T}x_{i}+b)\end{aligned} \end{aligned}\right.
⎩
⎨
⎧maxmargin(ω,b)s.t.yi(ωTxi+b)>0.i=1,2,⋯,Nmargin(ω,b)=ω,bxi,i=1,2,⋯,Nmin distance(ω,b,xi)=ω,bxi,i=1,2,⋯,Nmin ∣∣ω∣∣1(ωTxi+b)
这里的margin是指数据集中离超平面最近的点到超平面的距离,因此,上式等价于
{
max
ω
,
b
min
x
i
=
1
,
2
,
⋯
,
N
1
∣
∣
ω
∣
∣
y
i
(
ω
T
x
i
+
b
)
=
max
ω
,
b
1
∣
∣
ω
∣
∣
min
x
i
=
1
,
2
,
⋯
,
N
y
i
(
ω
T
x
i
+
b
)
s
.
t
.
y
i
(
ω
T
x
i
+
b
)
>
0
,
i
=
1
,
2
,
⋯
,
N
\left\{\begin{aligned}&\mathop{\text{max }}\limits_{\omega,b}\mathop{\text{min }}\limits_{x_{i}=1,2,\cdots,N} \frac{1}{||\omega||}y_{i}(\omega^{T}x_{i}+b)=\mathop{\text{max }}\limits_{\omega,b} \frac{1}{||\omega||}\mathop{\text{min }}\limits_{x_{i}=1,2,\cdots,N}y_{i}(\omega^{T}x_{i}+b)\\ &s.t.y_{i}(\omega^{T}x_{i}+b)>0,i=1,2,\cdots ,N\end{aligned}\right.
⎩
⎨
⎧ω,bmax xi=1,2,⋯,Nmin ∣∣ω∣∣1yi(ωTxi+b)=ω,bmax ∣∣ω∣∣1xi=1,2,⋯,Nmin yi(ωTxi+b)s.t.yi(ωTxi+b)>0,i=1,2,⋯,N
这里我们研究
min
x
i
=
1
,
2
,
⋯
,
N
y
i
(
ω
T
+
b
)
\mathop{\text{min }}\limits_{x_{i}=1,2,\cdots,N}y_{i}(\omega^{T}+b)
xi=1,2,⋯,Nmin yi(ωT+b)。
由于
ω
T
x
+
b
=
0
\omega^{T}x+b=0
ωTx+b=0和
a
ω
T
x
+
a
b
=
0
,
a
∈
R
,
a
≠
0
a\omega^{T}x+ab=0,a \in \mathbb{R},a \ne 0
aωTx+ab=0,a∈R,a=0这两个超平面表示的是同一个超平面,因此我们假设
min
x
i
=
1
,
2
,
⋯
,
N
y
i
(
ω
T
x
i
+
b
)
=
a
,
a
∈
R
\mathop{\text{min }}\limits_{x_{i}=1,2,\cdots,N}y_{i}(\omega^{T}x_{i}+b)=a,a \in \mathbb{R}
xi=1,2,⋯,Nmin yi(ωTxi+b)=a,a∈R
令
ω
T
=
ω
^
T
a
,
b
=
b
^
a
\begin{aligned} \omega^{T}=\frac{\hat{\omega}^{T}}{a},b= \frac{\hat{b}}{a}\end{aligned}
ωT=aω^T,b=ab^,因此有
min
x
i
=
1
,
2
,
⋯
,
N
y
i
(
ω
^
T
x
i
+
b
^
)
=
1
\mathop{\text{min }}\limits_{x_{i}=1,2,\cdots,N}y_{i}(\hat{\omega}^{T}x_{i}+\hat{b})=1
xi=1,2,⋯,Nmin yi(ω^Txi+b^)=1
因此我们就可以在数据集线性可分的任何情况下,令
min
x
i
=
1
,
2
,
⋯
,
N
y
i
(
ω
^
T
x
i
+
b
^
)
=
1
\mathop{\text{min }}\limits_{x_{i}=1,2,\cdots,N}y_{i}(\hat{\omega}^{T}x_{i}+\hat{b})=1
xi=1,2,⋯,Nmin yi(ω^Txi+b^)=1,因此最大化数据到超平面的间隔就可以被表达为
{
max
ω
,
b
1
∣
∣
ω
∣
∣
s
.
t
.
min
y
i
(
ω
T
x
i
+
b
)
=
1
,
i
=
1
,
2
,
⋯
,
N
s
.
t
.
y
i
(
ω
T
x
i
+
b
)
>
0
,
i
=
1
,
2
,
⋯
,
N
⇒
{
min
ω
,
b
1
2
ω
T
ω
s
.
t
.
y
i
(
ω
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
⋯
,
N
⏟
N
个约束
\begin{aligned} &\left\{\begin{aligned}&\mathop{\text{max }}\limits_{\omega,b} \frac{1}{||\omega||}\\&s.t.\min y_{i}(\omega^{T}x_{i}+b)=1,i=1,2,\cdots,N\\&s.t.y_{i}(\omega^{T}x_{i}+b) >0,i=1,2,\cdots,N\end{aligned}\right.\\ \Rightarrow &\left\{\begin{aligned}&\mathop{\text{min }}\limits_{\omega,b} \frac{1}{2}\omega^{T}\omega\\&s.t.y_{i}(\omega^{T}x_{i}+b)\geq 1,\underbrace{i=1,2,\cdots,N}_{N个约束}\end{aligned}\right. \end{aligned}
⇒⎩
⎨
⎧ω,bmax ∣∣ω∣∣1s.t.minyi(ωTxi+b)=1,i=1,2,⋯,Ns.t.yi(ωTxi+b)>0,i=1,2,⋯,N⎩
⎨
⎧ω,bmin 21ωTωs.t.yi(ωTxi+b)≥1,N个约束
i=1,2,⋯,N
CSDN话题挑战赛第2期
参赛话题:学习笔记