支持向量机算法原理
从几何角度,对于线性可分数据集,支持向量机就是找距离正负样本都最远的超平面,相比于感知机,其解是唯一的,并且不偏不倚,泛化性能更好。
给定线性可分数据集 X X X,支持向量机希望求得数据集 X X X关于超平面的几何间隔 γ \gamma γ达到最大的那个超平面,所以其本质和感知机一样,仍然是求一个超平面。
策略:给定线性可分数据集
X
X
X,设
X
X
X中几何间隔最小的样本为
(
x
m
i
n
,
y
m
i
n
)
(\mathbf{x}_{min},y_{min})
(xmin,ymin),那么支持向量机求超平面的过程可以转化为求带约束条件的优化问题。
max
w
,
b
y
m
i
n
(
w
T
x
m
i
n
+
b
)
∥
w
∥
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
y
m
i
n
(
w
T
x
m
i
n
+
b
)
,
i
=
1
,
2
,
…
,
m
\max_{\mathbf{w} ,b}\frac{y_{min}(\mathbf{w} ^T\mathbf{x} _{min}+b)}{\left \| \mathbf{w} \right \| }\\ s.t.\quad y_{i}(\mathbf{w} ^T\mathbf{x} _{i}+b)\ge y_{min}(\mathbf{w} ^T\mathbf{x} _{min}+b),i=1,2,\dots,m
w,bmax∥w∥ymin(wTxmin+b)s.t.yi(wTxi+b)≥ymin(wTxmin+b),i=1,2,…,m
需要对
w
,
b
\mathbf{w},b
w,b做一定的限制才能使上述优化问题有可解的唯一解。
不妨令
y
m
i
n
(
w
T
x
m
i
n
+
b
)
=
1
y_{min}(\mathbf{w} ^T\mathbf{x} _{min}+b)=1
ymin(wTxmin+b)=1
则上述优化问题转化为
max
w
,
b
1
∥
w
∥
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
…
,
m
\max_{\mathbf{w} ,b}\frac{1}{\left \| \mathbf{w} \right \| }\\ s.t. \quad y_{i}(\mathbf{w} ^T\mathbf{x} _{i}+b)\ge 1,i=1,2,\dots,m
w,bmax∥w∥1s.t.yi(wTxi+b)≥1,i=1,2,…,m
进一步可转化为
min
w
,
b
1
2
∥
w
∥
2
s
.
t
.
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
…
,
m
\min_{\mathbf{w} ,b}\frac{1}{2}\|\mathbf{w}\|^2 \\ s.t. \quad 1-y_{i}(\mathbf{w} ^T\mathbf{x} _{i}+b)\le0,i=1,2,\dots,m
w,bmin21∥w∥2s.t.1−yi(wTxi+b)≤0,i=1,2,…,m
拉格朗日函数:
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
L(\mathbf{w} ,b,\mathbf{\alpha})=\frac{1}{2}\|\mathbf{w}\|^2+\sum_{i=1}^{m}\alpha_i(1-y_{i}(\mathbf{w} ^T\mathbf{x} _{i}+b))
L(w,b,α)=21∥w∥2+i=1∑mαi(1−yi(wTxi+b))
转化为对偶问题:
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
i
s
.
t
.
α
≥
0
∑
i
=
1
m
α
i
y
i
=
0
\max_\mathbf{\alpha}\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\mathbf{x} _{i}^T\mathbf{x} _{i}\\ s.t.\quad \mathbf{\alpha}\ge0\\ \quad \quad \quad \quad \quad \sum_{i=1}^{m}\alpha_iy_i=0
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxis.t.α≥0i=1∑mαiyi=0
根据强对偶性成立的KKT条件:
α
i
≥
0
y
i
(
w
T
x
i
+
b
)
−
1
≥
0
α
i
(
y
i
(
w
T
x
i
+
b
)
−
1
)
=
0
\begin{aligned} \alpha_i\ge0\\ y_{i}(\mathbf{w} ^T\mathbf{x} _{i}+b)-1\ge 0\\ \alpha_i(y_{i}(\mathbf{w} ^T\mathbf{x} _{i}+b)-1)=0 \end{aligned}
αi≥0yi(wTxi+b)−1≥0αi(yi(wTxi+b)−1)=0
支持向量机通常采用拉格朗日对偶求解的原因:
- 无论原问题是何种优化问题,对偶问题恒为凸优化问题,更容易求解(尽管支持向量机的原问题就是凸优化问题)
- 原问题的时间复杂度与特征维数成正比,对偶问题的时间复杂度和数据量成正比,当特征维数远高于数据量时,拉格朗日对偶求解效率更高
- 对偶问题能很自然地引入核函数,进而推广到非线性分类问题(最主要的原因)
软间隔算法原理
在现实任务中,线性不可分的情形才是最常见的,因此需要允许支持向量机犯错。
从数学角度来说,软间隔就是允许部分样本(但要尽可能少)不满足下式的约束条件
min
w
,
b
1
2
∥
w
∥
2
s
.
t
.
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
,
i
=
1
,
2
,
…
,
m
\min_{\mathbf{w} ,b}\frac{1}{2}\|\mathbf{w}\|^2 \\ s.t. \quad 1-y_{i}(\mathbf{w} ^T\mathbf{x} _{i}+b)\le0,i=1,2,\dots,m
w,bmin21∥w∥2s.t.1−yi(wTxi+b)≤0,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
\ell_{0/1}
ℓ0/1是0/1损失函数。
ℓ
0
/
1
(
z
)
=
{
1
,
i
f
z
<
0
0
,
i
f
z
≥
0
\ell_{0/1}(z)=\begin{cases}1,\mathrm{if}\ z \lt 0 \\ 0,\mathrm{if}\ z \ge 0 \end{cases}
ℓ0/1(z)={1,if z<00,if z≥0
C
C
C是一个大于0的常数,用来调节损失的权重。
由于
ℓ
0
/
1
\ell_{0/1}
ℓ0/1非凸非连续,使得优化问题不好解,通常采用hinge(合页)损失来替代
ℓ
0
/
1
\ell_{0/1}
ℓ0/1。
hinge损失:
ℓ
h
i
n
g
e
(
z
)
=
max
(
0
,
1
−
z
)
\ell_{hinge}(z)=\max(0,1-z)
ℓhinge(z)=max(0,1−z)
引入松弛变量
ξ
i
\xi_i
ξi,上述问题等价为
min
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
\min_{\mathbf{w} ,b,\xi_i}\frac{1}{2}\|\mathbf{w}\|^2+C\sum_{i=1}^m \xi_i\\ s.t.\quad y_{i}(\mathbf{w} ^T\mathbf{x} _{i}+b)\ge 1-\xi_i\\ \xi_i\ge 0,i=1,2,\dots,m
w,b,ξimin21∥w∥2+Ci=1∑mξis.t.yi(wTxi+b)≥1−ξiξi≥0,i=1,2,…,m
支持向量回归
相比于线性回归用一条线拟合训练样本,支持向量回归(SVR)采用一个以 f ( x ) = w T x + b f(\mathbf{x})=\mathbf{w}^T\mathbf{x}+b f(x)=wTx+b为中心,宽度为 2 ϵ 2\epsilon 2ϵ的间隔带来拟合训练样本。
SVR的优化问题可以写为:
min
w
,
b
1
2
∥
w
∥
2
+
C
∑
i
=
1
m
ℓ
ϵ
(
f
(
x
i
)
−
y
i
)
\min_{\mathbf{w} ,b}\frac{1}{2}\|\mathbf{w}\|^2 +C\sum_{i=1}^m\ell_{\epsilon}(f(\mathbf{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)=\begin{cases}\ \ \ \ \ \ 0,\ \ \ \ \ \ \ \ \ \mathrm{if}\ |z| \le \epsilon \\ |z| -\epsilon,\ \ \ \ \ \ \mathrm{if}\ z \gt \epsilon \end{cases}
ℓϵ(z)={ 0, if ∣z∣≤ϵ∣z∣−ϵ, if z>ϵ
1
2
∥
w
∥
2
\frac{1}{2}\|\mathbf{w}\|^2
21∥w∥2为L2正则项,引入正则项除了起正则项本身的作用外,也是为了和软间隔支持向量机的优化目标保持形式上的一致,这样就可以导出对偶问题引入核函数。
与软间隔支持向量机类似,SVR优化问题可以表示为:
min
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
\min_{\mathbf{w} ,b,\xi_i}\frac{1}{2}\|\mathbf{w}\|^2+C\sum_{i=1}^m \xi_i\\ s.t.\quad -\epsilon -\xi_i \le f(\mathbf{x} _{i})-y_i \le \epsilon +\xi_i\\ \xi_i\ge 0,i=1,2,\dots,m
w,b,ξimin21∥w∥2+Ci=1∑mξis.t.−ϵ−ξi≤f(xi)−yi≤ϵ+ξiξi≥0,i=1,2,…,m
如果考虑两边采用不同的松弛程度:
min
w
,
b
,
ξ
i
,
ξ
^
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
\min_{\mathbf{w} ,b,\xi_i,\hat\xi_i}\frac{1}{2}\|\mathbf{w}\|^2+C\sum_{i=1}^m (\xi_i+\hat\xi_i)\\ s.t.\quad -\epsilon -\hat\xi_i \le f(\mathbf{x} _{i})-y_i \le \epsilon +\xi_i\\ \xi_i\ge 0,\hat\xi_i\ge 0,i=1,2,\dots,m
w,b,ξi,ξ^imin21∥w∥2+Ci=1∑m(ξi+ξ^i)s.t.−ϵ−ξ^i≤f(xi)−yi≤ϵ+ξiξi≥0,ξ^i≥0,i=1,2,…,m
参考文献:
- 《机器学习》周志华著 清华大学出版社
- Datawhale开源学习课程https://datawhale.feishu.cn/docs/doccndJC2sbSfdziNcahCYCx70W