软间隔与支持向量回归
1、算法原理
在现实任务中,线性不可分的情形才是最常见的,对此可以有以下两种方法:
-
将样本映射到更高维的空间中,使得其在该空间上线性可分。
如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分
-
允许支持向量机犯错,对某些无法划分的样本表示宽容,毕竟它们也有可能是一些异常样本。
2、软间隔
从数学角度来说,软间隔就是允许部分样本(但要尽可能少)不满足下式中的约束条件
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
\underset{w,b}{min}\quad \frac{1}{2}||w||^2\\ s.t.\quad y_i(w^Tx_i+b)\ge1,\quad i = 1,2,...,m
w,bmin21∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,...,m
关于上面两个公式的推导可以移步此处。
因此,可以将必须严格执行的约束条件转换为具有一定灵活性的“损失”,合格的损失函数要求如下:
- 当满足约束条件时,损失为0
- 当不满足约束条件时,损失不为0
- (可选)当不满足约束条件时,损失与其违反约束条件的程度成正比
只有满足以上要求,才能保证在最小化(min)损失的过程中,保证不满足约束条件的样本尽可能的少。
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ℓ
0
/
1
(
y
i
(
w
T
x
i
+
b
)
−
1
)
\underset{w,b}{min}\frac{1}{2}||w||^2+C\sum_{i=1}^m\ell_{0/1}(y_i(w^Tx_i+b)-1)
w,bmin21∣∣w∣∣2+Ci=1∑mℓ0/1(yi(wTxi+b)−1)
其中,
ℓ
0
/
1
\ell_{0/1}
ℓ0/1是"0/1损失函数"
ℓ
0
/
1
(
z
)
=
{
1
,
i
f
z
<
0
0
,
i
f
z
≥
0
\ell_{0/1}(z)=\left\{ \begin{aligned} &1,\quad if z<0\\ &0,\quad if z\ge0 \end{aligned} \right.
ℓ0/1(z)={1,ifz<00,ifz≥0
C
>
0
C>0
C>0是一个常数,用来调节损失的权重,显然当
C
→
+
∞
C\rightarrow+\infin
C→+∞时,会迫使所有样本的损失为0,进而退化为严格执行的约束条件,退化为硬间隔(举个不太恰当的例子,C=0.1时,后面和式等于1,若C增大为1,达到同样的损失,后面的和式为0.1),而
1
2
∣
∣
w
∣
∣
2
\frac{1}{2}||w||^2
21∣∣w∣∣2的存在是为了实现原始公式中的作用,即最大化支持向量到直线的距离,因此本式子可以看作支持向量机的一般化形式。
由于
ℓ
0
/
1
\ell_{0/1}
ℓ0/1非凸,非连续,数学性质不好,使得上式不易求解,因此常用一些数学性质较好的“替代损失函数”来替代
ℓ
0
/
1
\ell_{0/1}
ℓ0/1,当然损失函数还得要满足前面说的三点要求,所以软间隔支持向量机通常采用的是hinge(合页)损失来替代
ℓ
0
/
1
\ell_{0/1}
ℓ0/1
h
i
n
g
e
损
失
:
ℓ
h
i
n
g
e
(
z
)
=
m
a
x
(
0
,
1
−
z
)
hinge损失:\ell_{hinge}(z)=max(0,1-z)
hinge损失:ℓhinge(z)=max(0,1−z)
图像如下:
可以看到,当 z < 1 z<1 z<1时,其损失是越来越大的,满足条件2,3,而 z ≥ 1 z\ge1 z≥1时,损失为0,满足条件1。
替换上式可得
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
m
a
x
(
0
,
1
−
y
i
(
w
T
x
i
+
b
)
)
\underset{w,b}{min}\frac{1}{2}||w||^2+C\sum_{i=1}^mmax(0,1-y_i(w^Tx_i+b))
w,bmin21∣∣w∣∣2+Ci=1∑mmax(0,1−yi(wTxi+b))
引入松弛变量
ε
i
\varepsilon_i
εi,上述优化问题便和下述优化问题等价
m
i
n
w
,
b
,
ε
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ε
i
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ε
i
ε
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
\underset{w,b,\varepsilon_i}{min}\quad \frac{1}{2}||w||^2+C\sum_{i=1}^m\varepsilon_i\\ s.t.\quad y_i(w^Tx_i+b)\ge1-\varepsilon_i\\ \varepsilon_i\ge0,i=1,2,...,m
w,b,εimin21∣∣w∣∣2+Ci=1∑mεis.t.yi(wTxi+b)≥1−εiεi≥0,i=1,2,...,m
【证明】:令
m
a
x
(
0
,
1
−
y
i
(
w
T
x
i
+
b
)
)
=
ε
i
显
然
ε
i
≥
0
,
当
1
−
y
i
(
w
T
x
i
+
b
)
>
0
⇒
ε
i
=
1
−
y
i
(
w
T
x
i
+
b
)
,
当
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
⇒
ε
i
=
0
,
所
以
1
−
y
i
(
w
T
x
+
b
)
≤
ε
i
⇒
y
i
(
w
T
x
i
+
b
)
≥
1
−
ε
i
max(0,1-y_i(w^Tx_i+b))=\varepsilon_i\\ 显然\varepsilon_i\ge0,当1-y_i(w^Tx_i+b)>0\Rightarrow\varepsilon_i=1-y_i(w^Tx_i+b),\\ 当1-y_i(w^Tx_i+b)\le0\Rightarrow\varepsilon_i=0,所以\\ 1-y_i(w^Tx+b)\le\varepsilon_i\Rightarrow y_i(w^Tx_i+b)\ge1-\varepsilon_i
max(0,1−yi(wTxi+b))=εi显然εi≥0,当1−yi(wTxi+b)>0⇒εi=1−yi(wTxi+b),当1−yi(wTxi+b)≤0⇒εi=0,所以1−yi(wTx+b)≤εi⇒yi(wTxi+b)≥1−εi
当然直观来看,
ε
i
\varepsilon_i
εi可以看作是某些样本的偏移程度(
1
−
y
i
(
w
T
x
i
+
b
)
1-y_i(w^Tx_i+b)
1−yi(wTxi+b)),其存在允许支持向量机在某些样本上不用严格大于1,而是大于等于一个比1小的数即可,而
m
i
n
min
min使得这些样本尽可能地少。
3、支持向量回归
相比于线性回归用一条线来拟合训练样本,支持向量回归(SVR)是采用一个以 f ( x ) = w T x + b f(x) = w^Tx+b f(x)=wTx+b为中心,宽度为 2 ϵ 2\epsilon 2ϵ的间隔带来拟合训练样本。
落在带子上的样本不计算损失(类比线性回归在线上的点预测误差为0),不在带子上的则以偏离带子的距离作为损失(类比线性回归的均方误差),然后以最小化损失的方式迫使间隔带从样本最密集的地方(中心地带)穿过,进而达到拟合训练样本的目的。
所以要意识到这是个回归问题,所以模型的目的是为了预测某个点,而不是对其进行分类,所以间隔带的目的是尽可能包含更多的样本,所以只能选择最能反应样本特征的位置,即样本最密集的地方穿过。
因此SVR的优化问题可以写为
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ℓ
ϵ
(
f
(
x
i
)
−
y
i
)
\underset{w,b}{min}\frac{1}{2}||w||^2+C\sum_{i=1}^m\ell_{\epsilon}(f(x_i)-y_i)
w,bmin21∣∣w∣∣2+Ci=1∑mℓϵ(f(xi)−yi)
其中
ℓ
ϵ
(
z
)
\ell_{\epsilon}(z)
ℓϵ(z)为
ϵ
\epsilon
ϵ不敏感损失函数(类比均方误差损失)
ℓ
ϵ
(
z
)
=
{
0
,
i
f
∣
z
∣
≤
ϵ
∣
z
∣
−
ϵ
,
i
f
∣
z
∣
>
ϵ
\ell_{\epsilon}(z)= \left\{ \begin{aligned} \quad 0,\quad if|z|\le\epsilon\\ |z|-\epsilon,\quad if|z|>\epsilon \end{aligned} \right.
ℓϵ(z)={0,if∣z∣≤ϵ∣z∣−ϵ,if∣z∣>ϵ
1
2
∣
∣
w
∣
∣
2
\frac{1}{2}||w||^2
21∣∣w∣∣2为L2正则项,此处引入正则项除了起正则化的作用外,也是为了和(软间隔)支持向量机的优化目标保持形式上的一致(不用均方误差也是此目的),这样就可以导出对偶问题引入核函数,
C
C
C为调节损失权重的常数。
同软间隔支持向量机,引入松弛变量
ε
i
\varepsilon_i
εi,令
ℓ
ϵ
(
f
(
x
i
)
−
y
i
)
=
ε
i
\ell_{\epsilon}(f(x_i)-y_i)=\varepsilon_i
ℓϵ(f(xi)−yi)=εi
显然
ε
i
≥
0
\varepsilon_i\ge0
εi≥0,并且
当 ∣ f ( x i ) − y i ∣ ≤ ϵ ⇒ ε i = 0 |f(x_i)-y_i|\le\epsilon\Rightarrow\varepsilon_i=0 ∣f(xi)−yi∣≤ϵ⇒εi=0
当 ∣ f ( x i ) − y i ∣ > ϵ ⇒ ∣ f ( x i ) − y i ∣ − ϵ |f(x_i)-y_i|>\epsilon\Rightarrow|f(x_i)-y_i|-\epsilon ∣f(xi)−yi∣>ϵ⇒∣f(xi)−yi∣−ϵ
所以
∣
f
(
x
i
)
−
y
i
∣
−
ϵ
≤
ε
i
⇒
∣
f
(
x
i
)
−
y
i
∣
≤
ϵ
+
ε
i
−
ϵ
−
ε
i
≤
f
(
x
i
)
−
y
i
≤
ϵ
+
ε
i
|f(x_i)-y_i|-\epsilon\le\varepsilon_i\Rightarrow|f(x_i)-y_i|\le\epsilon+\varepsilon_i\\ -\epsilon-\varepsilon_i\le f(x_i)-y_i\le\epsilon+\varepsilon_i
∣f(xi)−yi∣−ϵ≤εi⇒∣f(xi)−yi∣≤ϵ+εi−ϵ−εi≤f(xi)−yi≤ϵ+εi
那么SVR的优化问题可以改写为
m
i
n
w
,
b
,
ε
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ε
i
s
.
t
.
−
ϵ
−
ε
i
≤
f
(
x
i
)
−
y
i
≤
ϵ
+
ε
i
ε
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
\underset{w,b,\varepsilon_i}{min}\quad \frac{1}{2}||w||^2+C\sum_{i=1}^m\varepsilon_i\\ s.t.\quad -\epsilon-\varepsilon_i\le f(x_i)-y_i\le\epsilon+\varepsilon_i\\ \varepsilon_i\ge0,i=1,2,...,m
w,b,εimin21∣∣w∣∣2+Ci=1∑mεis.t.−ϵ−εi≤f(xi)−yi≤ϵ+εiεi≥0,i=1,2,...,m
如果两边采用不同的松弛程度
m
i
n
w
,
b
,
ε
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
(
ε
i
+
ε
i
^
)
s
.
t
.
−
ϵ
−
ε
i
^
≤
f
(
x
i
)
−
y
i
≤
ϵ
+
ε
i
ε
i
≥
0
,
ε
i
^
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
\underset{w,b,\varepsilon_i}{min}\quad \frac{1}{2}||w||^2+C\sum_{i=1}^m(\varepsilon_i+\hat{\varepsilon_i})\\ s.t.\quad -\epsilon-\hat{\varepsilon_i}\le f(x_i)-y_i\le\epsilon+\varepsilon_i\\ \varepsilon_i\ge0,\hat{\varepsilon_i}\ge 0,i=1,2,...,m
w,b,εimin21∣∣w∣∣2+Ci=1∑m(εi+εi^)s.t.−ϵ−εi^≤f(xi)−yi≤ϵ+εiεi≥0,εi^≥0,i=1,2,...,m
引入松弛程度就是为了解决某些不满足约束条件的样本,而这些样本在带子的左右两边分布并不一定均匀。