SVM主问题就是在空间中存在两类点,找到一个最优的超平面将这两类点完美的分开,这个超平面要求离此超平面最近的点距离最远。
先来定义下函数间隔:
给定数据集
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
(
x
m
,
y
m
)
}
D=\{(x_1,y_1),(x_2,y_2),...(x_m,y_m)\}
D={(x1,y1),(x2,y2),...(xm,ym)},
y
i
∈
{
−
1
,
+
1
}
y_i\in\{-1,+1\}
yi∈{−1,+1}和超平面
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0,定义超平面关于样本
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的函数间隔为:
γ
i
~
=
y
i
(
w
T
x
i
+
b
)
\tilde{\gamma_i} = y_i(w^Tx_i+b)
γi~=yi(wTxi+b)
定义超平面关于数据集的函数间隔为超平面关于数据集中所有样本点的函数间隔的最小值,也即:
γ
~
=
min
1
,
2...
m
γ
i
~
\tilde{\gamma} =\min_{1,2...m}\tilde{\gamma_i}
γ~=1,2...mminγi~
当超平面与数据集的函数间隔大于零时,超平面才能将正负样本完全分开。为什么这么说呢?因为超平面与正负样本的位置关系一共有三种:一种是超平面穿过了正样本,一种是超平面穿过了负样本,还有一种是超平面在正负样本之间。如下图所示:
如上图所示分别有L1、L2、L3三个超平面,实心圆点代表正样本,叉代表负样本。L1穿过正样本,L2在正负样本之间,L3穿过负样本。先来说L1的情况,由于B点为正样本点,所以
y
B
=
1
y_B=1
yB=1。又将B点坐标带入到超平面方程,根据之前介绍的西瓜书SVM支持向量积–超平面的基础知识。把点B坐标带入到
(
w
T
x
i
+
b
)
(w^Tx_i+b)
(wTxi+b),我们有
(
w
T
x
B
+
b
)
<
0
(w^Tx_B+b)<0
(wTxB+b)<0,所以
y
B
(
w
T
x
B
+
b
)
<
0
y_B(w^Tx_B+b)<0
yB(wTxB+b)<0。同理可证,对于L3超平面也可以找到C点使函数间隔小于零。只有像L2这种情况时函数间隔才会恒大于零.因此我们有下面的结论:
- 当超平面穿过正样本的时候, γ ~ < 0 ( 即 m i n ( y i ( w T x i + b ) ) < 0 ) \tilde{\gamma}<0(即min(y_i(w^Tx_i+b))<0) γ~<0(即min(yi(wTxi+b))<0)
- 当超平面在正负样本之间的时候, γ ~ > 0 ( 即 m i n ( y i ( w T x i + b ) ) > 0 ) \tilde{\gamma}>0(即min(y_i(w^Tx_i+b))>0) γ~>0(即min(yi(wTxi+b))>0)
- 当超平面穿过负样本的时候, γ ~ < 0 ( 即 m i n ( y i ( w T x i + b ) ) < 0 ) \tilde{\gamma}<0(即min(y_i(w^Tx_i+b))<0) γ~<0(即min(yi(wTxi+b))<0)
而对于SVM主问题是想找到一个超平可以使正负样本完美分开。这可以分解为两个条件,一个是这个超平面能使正负样本分开,一个是这个超平面要离正负样本都尽可能的远(完美分开)。
假设我们先去求, m a x ( γ ~ ) max(\tilde{\gamma}) max(γ~),因为这样对于上面三种情况,如果存在一个超平面能够把正负样本分开时。求出的 m a x ( γ ~ ) max(\tilde{\gamma}) max(γ~)一定是大于零的(因为其它两种情况 γ ~ < 0 \tilde{\gamma}<0 γ~<0,只有第二种大于零, m a x ( γ ~ ) max(\tilde{\gamma}) max(γ~)当然更会大于零)。这样求 m a x ( γ ~ ) max(\tilde{\gamma}) max(γ~)就能使正负样本分开了,那么如何才能完美分开呢?就是让超平面离正负样本尽可能的远呢?我们先来引出几何间隔。因为当要求 m a x ( γ ~ ) max(\tilde{\gamma}) max(γ~)时候,我们发现当超平面固定后这个值无法求出,为什么呢?因为超平面方程两边同时乘以 λ \lambda λ,那么超平面的函数间隔也会扩大 λ \lambda λ:
λ γ i ~ = y i ( λ w T x i + λ b ) \lambda\tilde{\gamma_i} = y_i(\lambda w^Tx_i+\lambda b) λγi~=yi(λwTxi+λb)
超平面关于数据集的函数间隔也扩大了 λ \lambda λ
λ γ ~ = m i n λ γ i ~ \lambda\tilde{\gamma} =min\tilde{\lambda\gamma_i} λγ~=minλγi~
所以
m
a
x
(
γ
~
)
max(\tilde{\gamma})
max(γ~)也会扩大
λ
\lambda
λ倍,因此固定超平面后
m
a
x
(
γ
~
)
max(\tilde{\gamma})
max(γ~)仍然是无法固定的。这里引出几何间隔的定义,我们有,
几何间隔:超平面关于样本
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的几何间隔为:
γ
i
=
γ
i
~
∣
∣
w
∣
∣
\gamma_i=\frac{\tilde{\gamma_i} }{||w||}
γi=∣∣w∣∣γi~
这样的话当超平方程两边同事乘以
λ
\lambda
λ,由于
γ
i
~
\tilde{\gamma_i}
γi~扩大了
λ
\lambda
λ倍,而
∣
∣
w
∣
∣
||w||
∣∣w∣∣也扩大了
λ
\lambda
λ,因此它们的比值还是不变的,也就是,当超平面固定后,无论如何扩大超平面方程,几何间隔不变。由此就可以找到一个固定值函数的几何间隔来求解了。
我们有关于数据集的几何间隔定义为:
γ
=
min
1
,
2...
m
γ
i
=
m
i
n
γ
~
∣
∣
w
∣
∣
=
m
i
n
∣
w
T
x
i
+
b
∣
∣
∣
w
∣
∣
\gamma=\min_{1,2...m}\gamma_i=min\frac{\tilde{\gamma}}{||w||}=min\frac{|w^Tx_{i}+b|}{||w||}
γ=1,2...mminγi=min∣∣w∣∣γ~=min∣∣w∣∣∣wTxi+b∣
即数据集到超平面的几何间隔为点到超平面几何间隔的最小值。第二个等号成立的条件是,超平面在正负样本之间,因为要想找到一个超平面分开正负样本,只有在正负样本之间。当条件成立时,即超平面在正负样本之间,根据上文论述,此时
y
i
(
w
T
x
i
+
b
)
为
正
值
(
即
γ
~
=
m
i
n
(
y
i
(
w
T
x
i
+
b
)
)
>
0
,
由
于
最
小
的
值
都
大
于
零
)
y_i(w^Tx_i+b)为正值(即\tilde{\gamma}=min(y_i(w^Tx_i+b))>0,由于最小的值都大于零)
yi(wTxi+b)为正值(即γ~=min(yi(wTxi+b))>0,由于最小的值都大于零)。由于
y
i
=
1
或
者
−
1
y_i=1或者-1
yi=1或者−1,所以
y
i
(
w
T
x
i
+
b
)
=
∣
y
i
(
w
T
x
i
+
b
)
∣
=
∣
w
T
x
i
+
b
∣
y_i(w^Tx_{i}+b)=|y_i(w^Tx_{i}+b)|=|w^Tx_{i}+b|
yi(wTxi+b)=∣yi(wTxi+b)∣=∣wTxi+b∣。
由
于
∣
w
T
x
i
+
b
∣
∣
∣
w
∣
∣
由于\frac{|w^Tx_{i}+b|}{||w||}
由于∣∣w∣∣∣wTxi+b∣就是点到超平面的距离,根据西瓜书SVM支持向量积–点到超平面距离的推导
这时我们求
m
a
x
(
γ
)
max(\gamma)
max(γ)也就是求距离超平面几何间隔最小的点(也就是点到超平面的距离最小的点),让这个离着超平面距离最小的点到超平面的距离最大,就能将超平面完美分开了。如下图所示:
假设B点离超平面距离最短,要想使这个最短的距离尽可能大,只能在A点与B点正中间了,因为一旦超平面离着A点近,那么B点就不是离超平面最近的点了,产生矛盾。如果离着B点近,那么仍然还能找到一个超平面使其离B点尽可能远,最终还是在A、B两点正中间。此时通过计算
m
a
x
(
γ
)
max(\gamma)
max(γ)就能够找到一条超平面将数据集完美分开了。
我们将它用数学公式表示为:
max
γ
\max \gamma
maxγ
s
.
t
.
γ
i
>
=
γ
,
i
=
1
,
2
,
.
.
.
,
m
s.t. \ \ \ \ \gamma_i>=\gamma \ \ \ \ ,i=1,2,...,m
s.t. γi>=γ ,i=1,2,...,m
s.t.符号代表约束条件,变形有:
max
γ
~
∣
∣
w
∣
∣
\max \frac{\tilde{\gamma}}{||w||}
max∣∣w∣∣γ~
s
.
t
.
γ
i
~
∣
∣
w
∣
∣
>
=
γ
~
∣
∣
w
∣
∣
,
i
=
1
,
2
,
.
.
.
,
m
s.t. \ \ \ \ \frac{\tilde{\gamma_i}}{||w||}>=\frac{\tilde{\gamma}}{||w||} \ \ \ \ ,i=1,2,...,m
s.t. ∣∣w∣∣γi~>=∣∣w∣∣γ~ ,i=1,2,...,m
即:
max
γ
~
∣
∣
w
∣
∣
\max\frac{\tilde{\gamma}}{||w||}
max∣∣w∣∣γ~
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
=
γ
~
,
i
=
1
,
2
,
.
.
.
,
m
s.t. \ \ \ \ y_i(w^Tx_i+b)>=\tilde{\gamma}\ \ \ \ ,i=1,2,...,m
s.t. yi(wTxi+b)>=γ~ ,i=1,2,...,m
由于超平面方程解不唯一,可以同时扩大任意倍数,但
max
γ
~
∣
∣
w
∣
∣
\max\frac{\tilde{\gamma}}{||w||}
max∣∣w∣∣γ~比值是唯一的,所以最大值唯一。正因为超平面方程解不唯一,因此此优化问题的解(w和b)有无数个,我们只需求出一个就可。所以我们做一下限制,令
γ
~
=
1
\tilde{\gamma}=1
γ~=1这样做不会打破原有的函数关系,因为对于
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
=
γ
~
,
i
=
1
,
2
,
.
.
.
,
m
s.t. \ \ \ \ y_i(w^Tx_i+b)>=\tilde{\gamma}\ \ \ \ ,i=1,2,...,m
s.t. yi(wTxi+b)>=γ~ ,i=1,2,...,m,函数两边同时除以
γ
~
\tilde{\gamma}
γ~,不等式关系不变,而
max
γ
~
∣
∣
w
∣
∣
\max\frac{\tilde{\gamma}}{||w||}
max∣∣w∣∣γ~分子分母同时除以
γ
~
\tilde{\gamma}
γ~,比值也不会变。所以令
γ
~
=
1
\tilde{\gamma}=1
γ~=1不会改变原方程的方程关系,而且可以使解集确定为一个固定解。当然令其等于2或者3…都可以,不过常见的令其等于1.
我们有:
max
γ
~
∣
∣
w
∣
∣
\max\frac{\tilde{\gamma}}{||w||}
max∣∣w∣∣γ~
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
=
1
,
i
=
1
,
2
,
.
.
.
,
m
s.t. \ \ \ \ y_i(w^Tx_i+b)>=1\ \ \ \ ,i=1,2,...,m
s.t. yi(wTxi+b)>=1 ,i=1,2,...,m
一般的我们求最值问题常常去求其最小值,约束条件也是小于关系的比较好,所以可以转化一下:
min
1
2
∣
∣
w
∣
∣
2
\min \frac{1}{2}||w||^2
min21∣∣w∣∣2
s
.
t
.
1
−
y
i
(
w
T
x
i
+
b
)
<
=
0
,
i
=
1
,
2
,
.
.
.
,
m
s.t. \ \ \ \ 1-y_i(w^Tx_i+b)<=0\ \ \ \ ,i=1,2,...,m
s.t. 1−yi(wTxi+b)<=0 ,i=1,2,...,m
这就是SVM主问题的数学表达形式。