线性可分支持向量机
SVM学习的思想是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。
两类样本的情况,离分类面最近的样本到分类面的距离称为分类间隔,最优超平面又叫最大间隔超平面。
支持向量就是决定最大间隔超平面的数据点。
一、函数间隔和几何间隔
超平面wx+b=0 完全由(w,b)决定。
线性可分支持向量机利用间隔最大化求最优分离超平面,这时解是唯一的。
1.1, 函数间隔
在超平面wx+b=0确定的情况下,|wx+b|能够表示点x到距离超平面的远近,而通过观察 wx+b 的符号与类标记y的符号是否一致可判断分类是否正确,所以,可以用*( y(wx+b) )*的正负性来判定或表示分类的正确性。于此,我们便引出了函数间隔(functional margin)的概念。
函数间隔: 定义超平面(w, b)关于样本点
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi)的函数间隔为:
γ
i
^
=
y
i
(
ω
⋅
x
i
+
b
)
\hat{\gamma_i} = y_i(\omega \cdot x_i + b)
γi^=yi(ω⋅xi+b)
注意到:
选择分离超平面时,只要成比例地改变w和b, 例如将它们改为cw和cb(c是常数),超平面并没有改变,但函数间隔却成为原来的c倍。
要选择最大间隔的超平面,还需要对法向量
ω
\omega
ω加上某些约束,比如规范化,使得间隔是确定的。
这时函数间隔成为几何间隔(geometric margin)。
此时,上述常数
c
=
1
∣
∣
ω
∣
∣
c = \frac {1}{||\omega||}
c=∣∣ω∣∣1。
怎样才能使分类间隔最大呢?先计算分类间隔,然后优化求解。
1.2 如何计算几何间隔呢?
先看一个点到超平面的间隔(也就是距离)。
第一种视角:
考虑二维空间中点到直线的“间隔”:
点(x0, y0)到直线 ax + by + c = 0的距离公式:
d
=
∣
a
x
0
+
b
y
0
+
c
∣
a
2
+
b
2
d = \dfrac{|ax_0 + by_0 + c|}{\sqrt{a^2 + b^2}}
d=a2+b2∣ax0+by0+c∣
扩展到 n 维空间中:
d
n
=
∣
a
1
x
1
+
a
2
x
2
+
.
.
.
+
a
n
x
n
+
c
∣
a
1
2
+
a
2
2
+
.
.
.
+
a
n
2
d^n = \dfrac{|a_1x_1 + a_2x_2 + ... + a_nx_n + c|}{\sqrt{a_1^2 + a_2^2 +...+ a_n^2}}
dn=a12+a22+...+an2∣a1x1+a2x2+...+anxn+c∣
然后表示成向量形式:
D
=
1
∣
∣
ω
∣
∣
∣
ω
⋅
x
+
b
∣
D = \dfrac{1}{||\omega||}|\omega \cdot x + b|
D=∣∣ω∣∣1∣ω⋅x+b∣
其中,
∣
∣
ω
∣
∣
||\omega||
∣∣ω∣∣ 是向量w的二范数,w = {w1,w2,w3,…,wn}。
第二种视角:
https://blog.csdn.net/yjn03151111/article/details/46746839
向量知识: ω T ω = ∣ ∣ ω ∣ ∣ 2 \omega^T\omega = ||\omega||^2 ωTω=∣∣ω∣∣2
假设任意一个样本x,在分类超平面
ω
T
x
+
b
=
0
\omega^T x + b = 0
ωTx+b=0上的投影记为
x
0
x_0
x0,x到分类平面的距离记为d(d >= 0)。
w是垂直于超平面的法向量,法向量的方向(单位向量)是法向量除以它的模长:
ω
∣
∣
ω
∣
∣
\frac {\omega}{||\omega||}
∣∣ω∣∣ω,可以得到:
x
−
x
0
=
d
⋅
ω
∣
∣
ω
∣
∣
⇒
x
=
x
0
+
d
⋅
ω
∣
∣
ω
∣
∣
x - x_0 = d \cdot {\dfrac {\omega}{||\omega||}} \quad \Rightarrow x = x_0 + d\cdot {\dfrac {\omega}{||\omega||}}
x−x0=d⋅∣∣ω∣∣ω⇒x=x0+d⋅∣∣ω∣∣ω
两边同时左乘
ω
T
\omega^T
ωT:
ω
T
x
−
ω
T
x
0
=
d
⋅
ω
T
ω
∣
∣
ω
∣
∣
=
d
∣
∣
ω
∣
∣
d
∣
∣
ω
∣
∣
=
ω
T
x
−
ω
T
x
0
−
b
+
b
=
ω
T
x
−
(
ω
T
x
0
+
b
)
+
b
\omega^T x - \omega^T x_0 = d\cdot {\dfrac {\omega^T\omega}{||\omega||}} = d\,||\omega|| \\ d\,||\omega|| = \omega^T x - \omega^T x_0 - b + b = \omega^T x - (\omega^T x_0 + b) + b
ωTx−ωTx0=d⋅∣∣ω∣∣ωTω=d∣∣ω∣∣d∣∣ω∣∣=ωTx−ωTx0−b+b=ωTx−(ωTx0+b)+b
又由于x0在超平面
ω
T
x
0
+
b
=
0
\omega^T x_0 + b = 0
ωTx0+b=0上,代入得
d
=
∣
ω
T
x
+
b
∣
∣
∣
ω
∣
∣
d = \dfrac{|\omega^T x + b|}{||\omega||}
d=∣∣ω∣∣∣ωTx+b∣ (d >= 0)
第三种视角:
https://www.jianshu.com/p/097ab4f0d4d4
设X1是决策边界上的一点,那么任意点X到决策边界的距离D,是向量X X1长度在垂直于决策边界方向上的投影,既 d i s t = X − X 1 = ∣ ∣ X − X 1 ∣ ∣ c o s ( α ) dist = X - X_1 = ||X - X_1||cos(\alpha) dist=X−X1=∣∣X−X1∣∣cos(α),alpha为向量X X1与垂直于决策边界方向的夹角。
两个向量相乘等于向量长度的乘积再与向量夹角余弦值的乘积,由于w是决策边界的法向量,
所以w与X - X_1 的夹角就是上式中的alpha,于是:
ω
(
X
−
X
1
)
=
∣
∣
ω
∣
∣
∗
∣
∣
X
−
X
1
∣
∣
c
o
s
(
α
)
ω
∣
∣
ω
∣
∣
(
X
−
X
1
)
=
∣
X
−
X
1
∣
∣
∗
c
o
s
(
α
)
=
d
i
s
t
\omega(X - X_1) = ||\omega|| * ||X - X_1||cos(\alpha) \\ \dfrac {\omega}{||\omega||}(X - X_1) = |X - X_1|| * cos(\alpha) = dist
ω(X−X1)=∣∣ω∣∣∗∣∣X−X1∣∣cos(α)∣∣ω∣∣ω(X−X1)=∣X−X1∣∣∗cos(α)=dist
所以 d i s t = ω ∣ ∣ ω ∣ ∣ ( X − X 1 ) = ω T X − ω T X 1 ∣ ∣ ω ∣ ∣ dist = \dfrac {\omega}{||\omega||}(X - X_1) = \dfrac {\omega^T X - \omega^T X_1}{||\omega||} dist=∣∣ω∣∣ω(X−X1)=∣∣ω∣∣ωTX−ωTX1
又由于X1在超平面
ω
T
X
1
+
b
=
0
\omega^T X_1 + b = 0
ωTX1+b=0,代入得
d
i
s
t
=
1
∣
∣
ω
∣
∣
(
ω
T
X
+
b
)
dist = \dfrac {1}{||\omega||} (\omega^T X + b)
dist=∣∣ω∣∣1(ωTX+b)
为了确保距离非负,我们在
ω
T
X
+
b
\omega^T X + b
ωTX+b外面加一个绝对值符号。
1.3 几何间隔和函数间隔的关系
记 y∈{−1,1} 为分类标签,间隔公式乘以类别标签,所以
∣
w
T
x
+
b
∣
=
y
i
(
w
T
x
+
b
)
|w^Tx+b| = y_i (w^Tx+b)
∣wTx+b∣=yi(wTx+b),我们可以以此消去上式的绝对值。于是
N 个样本 Xi 和分类超平面的几何间隔的表达式:
γ
=
y
i
(
w
T
x
i
+
b
)
∥
ω
∥
,
i
=
1
,
2
,
.
.
.
,
N
\gamma = \dfrac {y_i(w^Tx_i+b)}{\|\omega\|}, \ i=1,2,...,N
γ=∥ω∥yi(wTxi+b), i=1,2,...,N
由函数间隔的表达式:
γ
^
=
y
i
(
ω
⋅
x
i
+
b
)
\hat{\gamma} = y_i(\omega \cdot x_i + b)
γ^=yi(ω⋅xi+b) 可知,
γ
=
y
f
(
x
)
∥
ω
∥
=
γ
^
∥
ω
∥
\gamma = \dfrac {yf(x)}{\|\omega\|} = \dfrac { \hat{\gamma} }{ \|\omega\| }
γ=∥ω∥yf(x)=∥ω∥γ^
几何间隔就是函数间隔除以||w||
二、最大化分类间隔
这里要解释 m a r g i n = m i n 1 2 ∥ ω ∥ 2 margin = min \, \dfrac {1}{2} \| \omega \|^2 margin=min21∥ω∥2 是怎么来的。
第一种视角:
根据上面的几何间隔公式,求解能使间隔最大化的参数w和b,即求解以下优化函数:
max
w
,
b
γ
=
m
a
x
{
y
i
(
w
T
x
i
+
b
)
∥
w
∥
∣
i
=
1
,
2
,
.
.
.
,
n
}
\max_{w,b}\ \gamma = max\left\{\frac{y_i(w^Tx_i+b)}{\|w\|}\big|\ i=1,2,...,n\right\}
maxw,b γ=max{∥w∥yi(wTxi+b)∣∣ i=1,2,...,n}
最大分类间隔的目标函数写成:
{
max
w
,
b
y
0
(
w
T
x
0
+
b
)
∥
w
∥
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
y
0
(
w
T
x
0
+
b
)
,
i
=
1
,
2
,
.
.
.
,
N
\left\{ \begin{aligned} & \max_{w,b}\ \frac{y_0(w^Tx_0+b)}{\|w\|} \\ & s.t.\quad y_i(w^Tx_i+b)\geq y_0(w^Tx_0+b), \ i=1,2,...,N \end{aligned} \right.
⎩⎪⎨⎪⎧w,bmax ∥w∥y0(wTx0+b)s.t.yi(wTxi+b)≥y0(wTx0+b), i=1,2,...,N
我们令
w
^
=
w
/
y
0
(
w
T
x
0
+
b
)
,
b
^
=
b
/
y
0
(
w
T
x
0
+
b
)
\bm{\hat{w}={w}\ /\ {y_0(w^Tx_0+b)}, \, \hat{b}={b}\ /\ {y_0(w^Tx_0+b)}}
w^=w / y0(wTx0+b),b^=b / y0(wTx0+b) ;
则优化函数可写成:
1
/
∥
w
^
∥
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
N
{1}\ /\ {\|\hat{w}\|} \quad s.t. \, \ y_i(w^Tx_i+b)\geq1, \ i=1,2,...,N
1 / ∥w^∥s.t. yi(wTxi+b)≥1, i=1,2,...,N
再用w替换
ω
^
\hat{\omega}
ω^,并且利用
max
w
1
/
∥
w
∥
a
n
d
max
w
1
/
∥
w
∥
2
\max_{w}{1}\ /\ {\|w\|} \quad and \quad \max_{w}{1}\ /\ {\|w\|^2}
maxw1 / ∥w∥andmaxw1 / ∥w∥2 等价的原理,可以得到以下下等价的优化问题:
{
max
w
,
b
1
∥
w
∥
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
N
\left\{ \begin{aligned} & \max_{w,b}\ \frac{1}{\|w\|^2} \\ & s.t. \ y_i(w^Tx_i+b)\geq 1, \ i=1,2,...,N \end{aligned} \right.
⎩⎪⎨⎪⎧w,bmax ∥w∥21s.t. yi(wTxi+b)≥1, i=1,2,...,N
第二种视角:
对一个数据点进行分类,当这个点和超平面之间的间隔越大的时候,分类正确的把握越大。对于一个包含n个点的数据集,我们可以很自然地定义它的间隔为所有这n个点的间隔中最小的那个。
要正确划分训练数据集{x1,x2,…xn},满足y=1时,所有点的间隔
γ
>
=
d
m
i
n
\gamma>=d_{min}
γ>=dmin,y=-1时,所有点的间隔
γ
<
=
d
m
i
n
\gamma<=d_{min}
γ<=dmin ,写成下面的公式:
{ ( ω T x i + b ) / ∣ ∣ ω ∣ ∣ ≥ d m i n ∀ y i = 1 ( ω T x i + b ) / ∣ ∣ ω ∣ ∣ ≤ − d m i n ∀ y i = − 1 \left\{\begin{array}{ll} (\boldsymbol{\omega}^T\boldsymbol{x}_i+b)/||\boldsymbol{\omega}||\geq d_{min}& \forall~ y_i=1\\(\boldsymbol{\omega}^T\boldsymbol{x}_i+b)/||\boldsymbol{\omega}||\leq -d_{min} & \forall~y_i=-1\end{array}\right. {(ωTxi+b)/∣∣ω∣∣≥dmin(ωTxi+b)/∣∣ω∣∣≤−dmin∀ yi=1∀ yi=−1
两边先除以d, 然后w和b都成比例缩放,令 ω ′ = ω d m i n ∣ ∣ ω ∣ ∣ , b ′ = b d m i n ∣ ∣ ω ∣ ∣ \omega' = \dfrac {\omega}{d_{min} ||{\omega}||}, b' = \dfrac {b}{d_{min} ||{\omega}||} ω′=dmin∣∣ω∣∣ω,b′=dmin∣∣ω∣∣b 得到:
{ ( ω ′ T x i + b ′ ) ≥ 1 ∀ y i = 1 ( ω ′ T x i + b ′ ) ≤ − 1 ∀ y i = − 1 \left\{\begin{array}{ll} (\boldsymbol{\omega'}^T \boldsymbol{x_i}+b') \geq 1& \forall~ y_i=1\\(\boldsymbol{\omega'}^T\boldsymbol{x}_i+b') \leq -1 & \forall~y_i=-1\end{array}\right. {(ω′Txi+b′)≥1(ω′Txi+b′)≤−1∀ yi=1∀ yi=−1
只有当
x
i
x_i
xi是决策面
ω
T
x
+
b
=
0
\omega^T x + b = 0
ωTx+b=0 所对应的支持向量时,等于1或-1的情况才会出现。
此时有
y
i
(
ω
T
x
i
+
b
)
=
1
y_i(\omega^T x_i + b) = 1
yi(ωTxi+b)=1
代入之前 1.3 中的间隔公式
γ
=
y
i
(
w
T
x
i
+
b
)
∥
ω
∥
\gamma = \dfrac {y_i(w^Tx_i+b)}{\|\omega\|}
γ=∥ω∥yi(wTxi+b),得到:
支持向量到超平面的距离为
1
∣
∣
ω
∣
∣
\dfrac {1}{|| \boldsymbol{\omega} ||}
∣∣ω∣∣1,两侧的距离加起来就是
2
∥
ω
∥
\dfrac {2}{\Vert \omega \Vert}
∥ω∥2。
我们希望距离越大越好,也就是说
1
∥
ω
∥
\dfrac {1}{\|\omega\|}
∥ω∥1越大越好,同时对于数据集中数据的分布满足
y
(
ω
T
x
+
b
)
≥
1
y(\omega^T x + b) \geq 1
y(ωTx+b)≥1。因此,我们得到了如下的优化问题:
{
max
1
∥
ω
∥
s
.
t
.
y
i
(
ω
T
x
i
+
b
)
⩾
1
,
i
=
1
,
2
,
.
.
.
,
n
\left \{ \begin{matrix} \begin{aligned} & \max \, \frac{1}{\Vert \omega \Vert} \\ & s.t. \quad y_i(\omega^T x_i + b) \geqslant 1 ,\quad i=1,2,...,n \end{aligned} \end{matrix} \right.
⎩⎪⎨⎪⎧max∥ω∥1s.t.yi(ωTxi+b)⩾1,i=1,2,...,n