支持向量机
我们对支持向量机的理解,可以用二维来说明,比如需要找一条最优的直线(超平面)将两类点分开:
不过这里需要定义一下说明是最优,那就是:
如下有5个蓝色样本,标记为y =1,紫色有5个样本,标记为 y=-1,共10个样本:
{
(
x
₁
,
y
₁
)
,
(
x
₂
,
y
₂
)
.
.
.
.
.
.
.
.
.
(
x
10
,
y
10
)
}
\{(x₁ ,y₁) , (x₂,y₂) .........(x_{10},y_{10}) \}
{(x₁,y₁),(x₂,y₂).........(x10,y10)} 。
平面(分割线)为
w
T
⋅
x
+
b
⋅
1
=
0
w^T\cdot x+b\cdot 1=0
wT⋅x+b⋅1=0
样本点到超平面的距离即为 x i x_i xi在向量 w w w的投影再加上b,即 w T ⋅ x + b ⋅ 1 w^T\cdot x+b\cdot 1 wT⋅x+b⋅1,不过我们知道这个投影值可能是负的,我们再加一个符号纠正项即可: y i × y ( x i ) y_i\times y(x_i) yi×y(xi)
点到平面距离定义
所以我们可以定义出任意样本点的距离,为超平面(w, b)关于训练数据集的函数间隔 y i ⋅ y ( x i ) y_i\cdot y(x_i) yi⋅y(xi)
但是这样简单定义的距离存在的问题是:
考虑到 x = x 0 + w T ⋅ r x=x_0 + w^T \cdot r x=x0+wT⋅r,其中 x 0 x_0 x0为分割直线上的点,恰好使得法向量 w w w方向的投影值为-b:
我们只需要将法向量归一化即可,即有:
x
=
x
0
+
w
∣
∣
w
∣
∣
⋅
r
x=x_0 + \frac{w}{||w||} \cdot r
x=x0+∣∣w∣∣w⋅r
其中
r
r
r即为投影距离。
所以我们可以算出距离函数
r
i
r_i
ri:
r
i
=
y
(
x
i
)
∣
∣
w
∣
∣
r_i=\frac{y(x_i)}{||w||}
ri=∣∣w∣∣y(xi)
加上之前的符号修正,即有:
r
i
=
y
i
⋅
y
(
x
i
)
∣
∣
w
∣
∣
r_i=\frac{y_i\cdot y(x_i)}{||w||}
ri=∣∣w∣∣yi⋅y(xi)
凸优化训练
我们的目的就是找到使得最近的点
i
i
i到直线具有最大间距:
γ
=
m
a
x
[
w
,
b
]
{
r
i
}
\gamma =max_{[w,b]}\{r_i\}
γ=max[w,b]{ri}
所以对于任意点
i
i
i,我们会有
r
i
≥
γ
r_i ≥ \gamma
ri≥γ,即
y
i
⋅
y
(
x
i
)
∣
∣
w
∣
∣
≥
γ
\frac{y_i\cdot y(x_i)}{||w||}≥ \gamma
∣∣w∣∣yi⋅y(xi)≥γ
两边同除
γ
\gamma
γ得:
由于我们之前就注意到,对于[w,b],他们同时扩大相同的倍数,并不会改变分类结果,所以对于缩小
∣
∣
w
∣
∣
||w||
∣∣w∣∣还是
∣
∣
w
∣
∣
⋅
γ
||w||\cdot \gamma
∣∣w∣∣⋅γ倍,其实也不会改变分类结果
对于这个新的 w w w而言, γ \gamma γ越大,它的长度就越小
所以我们取得最大的
γ
\gamma
γ,等价于新的
w
w
w模长将最小,即有
m
i
n
{
w
2
}
min\{w^2\}
min{w2},为了便于后面二次函数求导结果好看,我们加了一项,得到:
这是一个含有不等式约束的凸二次规划问题,可以对其使用拉格朗日乘子法得到其对偶问题:
后续即可推导结果
更多参考文章:
Svm算法原理及实现
支持向量机(SVM)——原理篇