参考视频:《机器学习公式详解》 第六章 支持向量机 和 软间隔与支持向量回归
一、预备概念
1. 算法原理
几何角度:对于线性可分的数据集,SVM就是找 距离正负样本都最远的超平面,相比于感知机,其解是唯一的,且不偏不倚,泛化性能更好。
假设来一个新样本误差过大,其被标注为负样本,却落在了超平面的正样本空间里。对于感知机来说,这个样本就是正样本,导致划分错误;但是SVM是找距离正负样本都最远的超平面,有一定的缓冲空间,所以泛化性能较好。
2. 超平面
n维空间的超平面为n-1维
注:(二维)点到超平面距离公式
r
r
r 的推导过程
3. 几何间隔
3.1 样本点到超平面的几何间隔
对于给定的数据集
X
X
X 和超平面
w
T
x
+
b
=
0
\mathbf{w}^T\mathbf{x}+b=0
wTx+b=0,定义数据集
X
X
X中任意一个 样本点
(
x
i
,
y
i
)
,
y
∈
{
−
1
,
1
}
,
i
=
1
,
2
,
.
.
.
,
m
(\mathbf{x}_i, y_i), y\in\{-1, 1\}, i=1,2,...,m
(xi,yi),y∈{−1,1},i=1,2,...,m(假设:正样本 1,负样本 -1)关于超平面的几何间隔为:
γ
i
=
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
\gamma_i=\frac{y_i(\mathbf{w}^T\mathbf{x}_i+b)}{||w||}
γi=∣∣w∣∣yi(wTxi+b)
特性
正确分类 | 错误分类 |
---|---|
正样本:
y
i
=
1
,
w
T
x
i
+
b
>
0
y_i=1, \mathbf{w}^T\mathbf{x}_i+b>0
yi=1,wTxi+b>0 负样本: y i = − 1 , w T x i + b < 0 y_i=-1, \mathbf{w}^T\mathbf{x}_i+b<0 yi=−1,wTxi+b<0 | 假设正样本正确,负样本跑到正空间 正样本: y i = 1 , w T x i + b > 0 y_i=1, \mathbf{w}^T\mathbf{x}_i+b>0 yi=1,wTxi+b>0 负样本: y i = − 1 , w T x i + b > 0 y_i=-1, \mathbf{w}^T\mathbf{x}_i+b>0 yi=−1,wTxi+b>0 |
正样本都在正空间,负样本都在负空间 | 正负样本不完全在对应的正负空间内 |
γ
i
>
0
\gamma_i>0
γi>0 几何间隔此时等价于点到超平面的距离 | γ i < 0 \gamma_i<0 γi<0 |
3.2 数据集到超平面的几何间隔
对于给定的数据集
X
X
X 和超平面
w
T
x
+
b
=
0
\mathbf{w}^T\mathbf{x}+b=0
wTx+b=0,定义 数据集
X
X
X关于超平面的集合间隔为:数据集
X
X
X中所有样本点的几何间隔最小值
γ
=
min
i
=
1
,
2
,
.
.
.
,
m
γ
i
\gamma=\min_{i=1,2,...,m}\gamma_i
γ=i=1,2,...,mminγi
即所有样本点到超平面几何间隔中最小的那个距离。
二、支持向量机
几何间隔最大的超平面一定是正中央的超平面,将其转化为数学问题:
2.1 约束优化问题
1. 凸优化问题
2. 更一般的约束优化问题
(1)主问题(Lagrange 乘子法):求 min f ( x ) \min f(x) minf(x)
(2)Language 对偶问题:在约束条件下求对偶函数最大值的优化问题
SVM的主问题(凸函数):
min
w
,
b
1
2
∣
∣
w
∣
∣
2
\min_{\mathbf{w},b} \frac{1}{2}||\mathbf{w}||^2
w,bmin21∣∣w∣∣2
s.t.
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
.
.
.
,
m
\operatorname{s.t.} 1-y_i(\mathbf{w}^T\mathbf{x}_i+b)≤0, i=1,2,...,m
s.t.1−yi(wTxi+b)≤0,i=1,2,...,m
其转为对偶问题,找到一个点,使得:
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
y_i(\mathbf{w}^T\mathbf{x}_i+b)≥1, i=1,2,...,m
yi(wTxi+b)≥1,i=1,2,...,m
- KKT 条件:
3. 对应SVM
方法一:
-
SVM的主问题(凸函数):
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 \min_{\mathbf{w},b} \frac{1}{2}||\mathbf{w}||^2 w,bmin21∣∣w∣∣2
s.t. 1 − y i ( w T x i + b ) ≤ 0 , i = 1 , 2 , . . . , m \operatorname{s.t.} 1-y_i(\mathbf{w}^T\mathbf{x}_i+b)≤0, i=1,2,...,m s.t.1−yi(wTxi+b)≤0,i=1,2,...,m -
Lagrange 函数:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = i m α i ( 1 − y i ( w T x i + b ) ) L(\mathbf{w},b,\mathbf{\alpha})=\frac{1}{2}||\mathbf{w}||^2+\sum_{i=i}^m\alpha_i(1-y_i(\mathbf{w}^T\mathbf{x}_i+b)) L(w,b,α)=21∣∣w∣∣2+i=i∑mαi(1−yi(wTxi+b))
= 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = i m α i − ∑ i = 1 m α i y i w T x i − b ∑ i = 1 m α i y i =\frac{1}{2}||\mathbf{w}||^2+\sum_{i=i}^m\alpha_i-\sum_{i=1}^m\alpha_iy_i\mathbf{w}^T\mathbf{x}_i-b\sum_{i=1}^m\alpha_iy_i =21∣∣w∣∣2+i=i∑mαi−i=1∑mαiyiwTxi−bi=1∑mαiyi- 若将
w
,
b
\mathbf{w},b
w,b合并为
w
^
=
(
w
;
b
)
\hat \mathbf{w}=(\mathbf{w}; b)
w^=(w;b),显然上式是关于
w
^
\hat \mathbf{w}
w^的凸函数(二阶导数大于零,凸函数),直接求一阶导数令其为0,然后代回即可求得min,也即 Lagrange对偶函数
- 若将
w
,
b
\mathbf{w},b
w,b合并为
w
^
=
(
w
;
b
)
\hat \mathbf{w}=(\mathbf{w}; b)
w^=(w;b),显然上式是关于
w
^
\hat \mathbf{w}
w^的凸函数(二阶导数大于零,凸函数),直接求一阶导数令其为0,然后代回即可求得min,也即 Lagrange对偶函数
方法二:
2.2 SVM 常用 Lagrange 对偶求解的原因
三、软间隔
3.1 算法原理
现实中,相信不可分的情形更常见,因此需要SVM犯错。
软间隔即允许部分样本(尽可能少)不满足 下列式子中的约束:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
\min_{\mathbf{w},b} \frac{1}{2}||\mathbf{w}||^2
w,bmin21∣∣w∣∣2
s.t.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
\operatorname{s.t.} y_i(\mathbf{w}^T\mathbf{x}_i+b)≥1, i=1,2,...,m
s.t.yi(wTxi+b)≥1,i=1,2,...,m
所以可将“必须严格执行的约束条件”转化为具有一定灵活的“损失”,进而最小化损失。该损失函数要求如下:
- 满足约束条件,损失为0
- 不满足约束条件,损失大于0
- (可选)不满足约束条件,损失与其违反约束条件的程度成正比【正则化】
得软间隔:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ℓ
0
/
1
[
y
i
(
w
T
x
i
+
b
)
−
1
]
\min_{\mathbf{w},b} \frac{1}{2}||\mathbf{w}||^2+C\sum_{i=1}^m\ell_{0/1}[y_i(\mathbf{w}^T\mathbf{x}_i+b)-1]
w,bmin21∣∣w∣∣2+Ci=1∑mℓ0/1[yi(wTxi+b)−1]
其中,
ℓ
0
/
1
(
z
)
\ell_{0/1}(z)
ℓ0/1(z)是“0/1损失函数”:
ℓ
0
/
1
(
z
)
=
{
1
,
z
<
0
0
,
z
≥
0
\ell_{0/1}(z)=\left\{\begin{matrix}1, z < 0 \\ 0, z ≥ 0\end{matrix}\right.
ℓ0/1(z)={1,z<00,z≥0
C
C
C 是一个常数,用来调节损失的权重。当
C
→
+
∞
C\rightarrow+∞
C→+∞时,会使得所有样本的损失为0,进而退化为严格执行的约束条件,即 硬间隔。因此,本式可看做SVM的一般化形式。
又因为该损失函数非凸、非连续,最优化问题不好解,通常使用替代损失函数的方式来解决:hinge(合页)损失。
ℓ
h
i
n
g
e
(
z
)
=
max
(
0
,
1
−
z
)
\ell_{hinge}(z)=\max(0,1-z)
ℓhinge(z)=max(0,1−z)
则替换可得软间隔式子为:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
max
(
0
,
1
−
y
i
(
w
T
x
i
+
b
)
)
\min_{\mathbf{w},b} \frac{1}{2}||\mathbf{w}||^2+C\sum_{i=1}^m\max(0,1-y_i(\mathbf{w}^T\mathbf{x}_i+b))
w,bmin21∣∣w∣∣2+Ci=1∑mmax(0,1−yi(wTxi+b))
除了合页损失,还有指数损失 e − z e^{-z} e−z 和对率损失 log ( 1 + e − z ) \log(1+e^{-z}) log(1+e−z) 等。
引入“松弛变量”
ξ
i
=
max
(
0
,
1
−
y
i
(
w
T
x
i
+
b
)
)
⩾
0
\xi_i=\max(0,1-y_i(\mathbf{w}^T\mathbf{x}_i+b))\geqslant0
ξi=max(0,1−yi(wTxi+b))⩾0,则上述优化问题与下列优化问题等价:
min
w
,
b
,
ξ
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
\min_{\mathbf{w},b,\xi_i} \frac{1}{2}||\mathbf{w}||^2+C\sum_{i=1}^m\xi_i
w,b,ξimin21∣∣w∣∣2+Ci=1∑mξi
s.t.
y
i
(
w
T
x
i
+
b
)
⩾
1
−
ξ
i
,
ξ
i
⩾
0
,
i
=
1
,
2
,
.
.
.
,
m
\operatorname{s.t.} y_i(\mathbf{w}^T\mathbf{x}_i+b)\geqslant1-\xi_i, \xi_i\geqslant0, i=1,2,...,m
s.t.yi(wTxi+b)⩾1−ξi,ξi⩾0,i=1,2,...,m
“松弛”就是允许SVM在一定程度上犯错,需要比1小一点点( 1 − ξ i 1-\xi_i 1−ξi),小的程度就是 ξ i \xi_i ξi。若样本越界,则越偏离边界, ξ i \xi_i ξi越大,损失就越大。
四、支持向量回归(SVR)
线性回归 | 支持向量回归 |
---|---|
用一条线拟合训练样本 | 以一条线 f ( x ) = w T x + b f(x)=\mathbf{w}^T\mathbf{x}+b f(x)=wTx+b为中心,宽度为 2 ϵ 2\epsilon 2ϵ的隔离带来拟合训练样本 |
线上的点预测误差为0 | 落在带子上的样本不计损失 |
均方误差 | 不在带子上的样本以偏离带子的距离作为损失 |
均方误差 | 不在带子上的样本以偏离带子的距离作为损失 |
最小化损失 | 最小化损失使隔离带从样本最密集的地方(中心地带)穿过 |
因此SVR的优化问题可以写为
min
w
,
b
,
ξ
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ℓ
ϵ
[
f
(
x
i
)
−
y
i
]
\min_{\mathbf{w},b,\xi_i} \frac{1}{2}||\mathbf{w}||^2+C\sum_{i=1}^m\ell_\epsilon[f(\mathbf{x}_i)-y_i]
w,b,ξimin21∣∣w∣∣2+Ci=1∑mℓϵ[f(xi)−yi]
其中
l
ϵ
(
z
)
l_\epsilon(z)
lϵ(z)为
ϵ
\epsilon
ϵ不敏感损失函数(类比均方误差损失)
ℓ ϵ ( z ) = { 0 , ∣ z ∣ ≤ ϵ ∣ z ∣ − ϵ , ∣ z ∣ > ϵ \ell_\epsilon(z)=\left\{\begin{matrix}0, |z| ≤ \epsilon \\ |z|-\epsilon, |z| >\epsilon\end{matrix}\right. ℓϵ(z)={0,∣z∣≤ϵ∣z∣−ϵ,∣z∣>ϵ
用绝对值的形式而不用平方形式,且不用均方误差。这里用 ϵ \epsilon ϵ不敏感损失函数是SVR强行往SVM上靠,就可以用SVM的工具(对偶、核函数)。
1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||\mathbf{w}||^2 21∣∣w∣∣2 是L2正则项(计算L2范数),该项除了防止过拟合外,也为了和(软间隔)SVM的优化目标在形式上保持一致(不用均方误差也是这个目的),这样就可以导出对偶问题引入核函数,C为调节损失权重的常数。【损失函数分为结构化风险(正则项)和经验风险两部分】
同软间隔支持向量机,因此松弛变量
ξ
i
\xi_i
ξi,令
ℓ
ϵ
(
f
(
x
i
)
−
y
i
)
=
ξ
i
\ell_\epsilon(f(\mathbf{x}_i)-y_i)=\xi_i
ℓϵ(f(xi)−yi)=ξi
显然
ξ
i
≥
0
\xi_i≥0
ξi≥0,且
- 当 ∣ f ( x i ) − y i ∣ ≤ ϵ ⇒ ξ i = 0 |f(\mathbf{x}_i)-y_i|≤\epsilon\Rightarrow\xi_i=0 ∣f(xi)−yi∣≤ϵ⇒ξi=0
- 当 ∣ f ( x i ) − y i ∣ > ϵ ⇒ ξ i = ∣ f ( x i ) − y i ∣ − ϵ |f(\mathbf{x}_i)-y_i|>\epsilon\Rightarrow\xi_i=|f(\mathbf{x}_i)-y_i|-\epsilon ∣f(xi)−yi∣>ϵ⇒ξi=∣f(xi)−yi∣−ϵ
所以
∣
f
(
x
i
)
−
y
i
∣
−
ϵ
≤
ξ
i
⇒
∣
f
(
x
i
)
−
y
i
∣
≤
ϵ
+
ξ
i
|f(\mathbf{x}_i)-y_i|-\epsilon≤\xi_i\Rightarrow|f(\mathbf{x}_i)-y_i|≤\epsilon+\xi_i
∣f(xi)−yi∣−ϵ≤ξi⇒∣f(xi)−yi∣≤ϵ+ξi
⇒
−
ϵ
−
ξ
i
≤
∣
f
(
x
i
)
−
y
i
∣
≤
ϵ
+
ξ
i
\Rightarrow-\epsilon-\xi_i≤|f(\mathbf{x}_i)-y_i|≤\epsilon+\xi_i
⇒−ϵ−ξi≤∣f(xi)−yi∣≤ϵ+ξi
综上,可写为如下形式:
此即为SVR和软间隔最终推导出的损失函数形式(和SVM几乎完全一样)。