支持向量机SVM——间隔最大化
本文主要参考《机器学习》、《统计学习方法》。
支持向量机主要分类三类:线性可分支持向量机(数据线性可分时),线性支持向量机(数据近似线性可分),非线性支持向量机(数据线性不可分)。这里先考虑最简单的情况,即当数据线性可分时。
1.超平面
对于2分类的逻辑回归而言,假设特征数为2,那么我们训练模型的过程通过梯度下降不断更新参数迫近全局最优解,拟合出一条直线作为决策边界,使得以这个决策边界划分出来的分类结果误差最低。
当特征数量超过2,这个时候我们用来分割不同类别的“线”就成为了一个面,简称超平面(hyperplane),超即是多维的意思(二维就是一条线,三维就是一个面,多维就是超平面)。划分超平面可用如下线性方程表示:
w
T
x
+
b
=
0
w^{T}x+b=0
wTx+b=0
其中
w
=
(
w
1
,
w
2
,
.
.
.
,
w
d
)
T
w=(w_1,w_2,...,w_d)^T
w=(w1,w2,...,wd)T是法向量,
b
b
b是位移。(向量一般用列向量表示)
如果我们要用一条直线来将下面这张图中的两种类别(“+”和“-”)分开,可看到可分离的直线是有多条的,如下图所示:
直观上我们应该选红色的这条线,感觉它是“最能”分开这两种类的。因为如果选择黑色的线,那么可能存在一些点刚好越过黑色的线,导致被错误分类,但是红线的容错率会更好,也就不容易出错。
例如下面这种情况,如果我选择绿色的线,如果新来一个需要预测的样本(蓝色的点)本来属于“+”,但是却会被分到“-”这一类,但是红线就不会,即红线所产生的分类结果是最鲁棒的,对未见示例的泛化能力最强。
红色的这条决策边界就是通过间隔最大化求得的,并且是唯一。在了解间隔最大化之前先了解一下函数间隔和几何间隔的概念。
2.函数间隔和几何间隔
一般来说,一个点距离超平面的远近可以表示分类预测的确信程度。例如图中A、B、C三个点,都在超平面的正类一侧,但是点A距离超平面较远,就比较确信预测是正确的,而C距离超平面较近,所以预测C为正类就不那么确信。
(1)函数间隔:对于给定训练集和超平面(w,b),定义超平面(w,b)关于样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的函数间隔为:
r
i
^
=
y
i
(
w
T
x
i
+
b
)
\hat{r_i}=y_i(w^Tx_i+b)
ri^=yi(wTxi+b)
定义超平面
(
w
,
b
)
(w,b)
(w,b)关于训练集的函数间隔为超平面关于训练集中所有样本点的函数间隔的最小值:
r
^
=
m
i
n
(
i
=
1
,
.
.
,
N
)
r
i
^
\hat{r}=min_{(i=1,..,N)}\hat{r_i}
r^=min(i=1,..,N)ri^
可以看到当
w
,
b
w,b
w,b成比例变化时,超平面没有改变但是函数间隔变了,因此可以对
w
,
b
w,b
w,b做相应的约束,就得到了几何间隔。
(2)几何间隔:对于给定训练集和超平面(w,b),定义超平面(w,b)关于样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的集合间隔为:
r
i
=
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
{r_i}=\frac{y_i(w^Tx_i+b)}{||w||}
ri=∣∣w∣∣yi(wTxi+b)
定义超平面
(
w
,
b
)
(w,b)
(w,b)关于训练集的函数间隔为超平面关于训练集中所有样本点的几何间隔的最小值:
r
=
m
i
n
(
i
=
1
,
.
.
,
N
)
r
i
{r}=min_{(i=1,..,N)}r_i
r=min(i=1,..,N)ri
这里的几何间隔就是点到平面的距离公式,因为y为1或-1,且当前数据集线性可分,所以和 ∣ w T x i + b ∣ ∣ ∣ w ∣ ∣ \frac{|w^{T}x_i+b|}{||w||} ∣∣w∣∣∣wTxi+b∣是等价的。
3.间隔最大化
因为当
w
,
b
w,b
w,b成比例变化时,函数间隔也会成比例变化,而几何间隔是不变的,所以要考虑几何间隔最大化,即我们要求解间隔最大化的超平面的问题就变成了求解如下带约束的优化问题:
{
m
a
x
w
,
b
r
s
.
t
.
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
≥
r
,
i
=
1
,
2
,
.
.
,
N
\begin{cases}max_{w,b}\quad r\\s.t. \quad\frac{y_i(w^Tx_i+b)}{||w||}\geq r, i=1,2,..,N\end{cases}
{maxw,brs.t.∣∣w∣∣yi(wTxi+b)≥r,i=1,2,..,N
上面的约束条件表示对于训练集中所有样本关于超平面的几何距离都至少是r。又因为函数间隔和几何间隔之间存在这样的关系:
r
=
r
^
∣
∣
w
∣
∣
r=\frac{\hat{r}}{||w||}
r=∣∣w∣∣r^,所以上面的优化问题可以写成如下形式:
{
m
a
x
w
,
b
r
^
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
r
^
,
i
=
1
,
2
,
.
.
,
N
\begin{cases}max_{w,b}\quad \frac{\hat{r}}{||w||}\\s.t. \quad{y_i(w^Tx_i+b)}\geq \hat{r}, i=1,2,..,N\end{cases}
{maxw,b∣∣w∣∣r^s.t.yi(wTxi+b)≥r^,i=1,2,..,N
又因为当
w
,
b
w,b
w,b成比例变为
λ
w
,
λ
b
\lambda w,\lambda b
λw,λb,函数间隔变为
λ
r
^
\lambda \hat{r}
λr^(
λ
>
0
\lambda>0
λ>0),虽然改变了函数间隔但是不等式约束依然满足,并且超平面也没有变,所以
r
^
\hat{r}
r^的取值并不影响目标函数的优化,因此为了方便计算可以令
r
^
=
1
\hat{r}=1
r^=1,并且由于最大化
r
^
∣
∣
w
∣
∣
\frac{\hat{r}}{||w||}
∣∣w∣∣r^和最小化
∣
∣
w
∣
∣
2
2
\frac{||w||^2}{2}
2∣∣w∣∣2是等价的,所以优化问题可以写成如下形式:
{
m
i
n
w
,
b
∣
∣
w
∣
∣
2
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
,
N
\begin{cases}min_{w,b}\quad \frac{||w||^2}{2}\\s.t. \quad{y_i(w^Tx_i+b)}\geq 1, i=1,2,..,N\end{cases}
{minw,b2∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,..,N
并且使得上面等式成立的点也被称为支持向量(support vector)