SVM
SVM设计初衷
解决二分类问题
有关概念
线性可分:上图中+与-分别代表两类数据,而这图中的直线可以分隔这两类数据,这种能够通过一条直线将两类数据分隔开的分类情况,我们称其线性可分。
分隔超平面:上述将数据集分隔开来的直线称为分隔超平面。
超平面:上述图像由于数据点都在二维平面上,所以分隔超平面就只是一条直线,而当数据点在n维上时,就需要n-1维的某某对象来对数据进行分隔,该对象被称为超平面,也就是分类的决策边界。
间隔:上图中我们发现有多条直线可以将数据分成两类,而我们希望的是遇到不在训练集中的点时,某条直线能够很好的正确分类,此时我们需要找到离分隔超平面最近的点,确保她们离分隔面的距离尽可能远。这里点到分隔面的距离被称为间隔(点相对于分隔面的间隔);而数据集中所有点到分隔面的最小间隔的2倍,称为分类器或者数据集的间隔。
支持向量:上述离分隔超平面最近的那些点就被称为支持向量。
划分超平面用线性方程表示:
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0
样本空间中任意点x到超平面(w,b)的距离可写为
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
r=\frac{|w^Tx+b|}{||w||}
r=∣∣w∣∣∣wTx+b∣
SVM分类
- hard-margin SVM 又称最大间隔分类器
- soft-margin SVM
- kernel SVM
hard-margin SVM算法
目的
解决max margin
(
w
,
b
)
(w,b)
(w,b)
s
.
t
{
w
T
x
i
+
b
,
y
i
=
+
1
w
T
x
i
+
b
,
y
i
=
−
1
s.t \begin{cases} w^Tx_i+b, & \text{$y_i=+1$} \\ w^Tx_i+b, & \text{$y_i=-1$} \\ \end{cases}
s.t{wTxi+b,wTxi+b,yi=+1yi=−1
的问题。
公式
其中
m
a
r
g
i
n
(
w
,
b
)
=
m
i
n
d
i
s
t
a
n
c
e
(
w
,
b
,
x
i
)
=
m
i
n
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
,
i
=
1
,
2...
,
N
margin(w,b)=min\,distance(w,b,x_i)=min \frac{|w^Tx+b|}{||w||}, i=1,2...,N
margin(w,b)=mindistance(w,b,xi)=min∣∣w∣∣∣wTx+b∣,i=1,2...,N
从而得到
m
a
x
m
a
r
g
i
n
(
w
,
b
)
=
{
m
a
x
m
i
n
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
=
m
a
x
1
∣
∣
w
∣
∣
m
i
n
∣
w
T
x
i
+
b
∣
,
w
,
b
,
x
i
,
i
=
1...
N
s
.
t
y
i
(
w
T
x
+
b
)
>
0
⟹
∃
r
>
0
,
s
.
t
.
m
i
n
y
i
(
w
T
x
i
+
b
)
=
r
max\,margin(w,b) = \begin{cases} max\,min\frac{|w^Tx+b|}{||w||}=max\,\frac{1}{||w||}\,min|w^Tx_i+b|,w,b,x_i,i=1...N\\ s.t\,y_i(w^Tx+b)>0\Longrightarrow\exists r>0,s.t.min\,y_i(w^Tx_i+b)=r \end{cases}
maxmargin(w,b)={maxmin∣∣w∣∣∣wTx+b∣=max∣∣w∣∣1min∣wTxi+b∣,w,b,xi,i=1...Ns.tyi(wTx+b)>0⟹∃r>0,s.t.minyi(wTxi+b)=r
其中r可以直接归一化为1
从而得到
m
a
x
m
a
r
g
i
n
(
w
,
b
)
=
m
a
x
1
∣
∣
w
∣
∣
s
.
t
y
i
(
w
T
x
i
+
b
)
≥
1
⟹
m
i
n
1
2
w
T
w
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
f
o
r
∀
i
=
1
,
.
.
.
N
max\,margin(w,b)=max\frac{1}{||w||}\,s.t\;y_i(w^Tx_i+b)\geq1\Longrightarrow\;min\frac{1}{2}w^Tw\;s.t.\;y_i(w^Tx_i+b)\geq1,for\forall\,i=1,...N
maxmargin(w,b)=max∣∣w∣∣1s.tyi(wTxi+b)≥1⟹min21wTws.t.yi(wTxi+b)≥1,for∀i=1,...N
其中
y
i
(
w
T
x
+
b
)
≥
1
y_i(w^Tx+b)\geq1
yi(wTx+b)≥1可写成
1
−
y
i
(
w
T
x
+
b
)
≤
0
1-y_i(w^Tx+b)\leq0
1−yi(wTx+b)≤0。
这便是一个凸优化问题,共有N个约束。
对偶问题引出
目的
利用拉格朗日乘数法求解上述受多个条件约束的多元函数极值的问题
公式推导关键步骤
f
(
w
,
b
,
λ
)
=
1
2
w
T
w
+
∑
i
=
1
n
λ
i
(
1
−
y
i
(
w
T
x
+
b
)
)
;
λ
≥
0
,
1
−
y
i
(
w
T
x
+
b
)
≤
0
f(w,b,\lambda)=\frac{1}{2}w^Tw+\sum_{i=1}^n\lambda_i(1-y_i(w^Tx+b));\lambda\geq0,1-y_i(w^Tx+b)\leq0
f(w,b,λ)=21wTw+i=1∑nλi(1−yi(wTx+b));λ≥0,1−yi(wTx+b)≤0
即求
{
m
i
n
w
,
b
m
a
x
λ
f
(
w
,
b
.
λ
)
s
.
t
.
λ
i
≥
0
\begin{cases} \underset{w,b}{min}\;\underset{\lambda}{max}f(w,b.\lambda)\\ s.t.\;\lambda_i\geq0 \end{cases}
⎩⎨⎧w,bminλmaxf(w,b.λ)s.t.λi≥0
上述两个公式为原问题,将其转换为对偶问题
{
m
a
x
λ
m
i
n
w
,
b
f
(
w
,
b
,
λ
)
(
1
)
s
.
t
.
λ
i
≥
0
\begin{cases} \underset{\lambda}{max}\;\underset{w,b}{min}f(w,b,\lambda) \qquad (1)\\ s.t.\;\lambda_i\geq0 \end{cases}
⎩⎨⎧λmaxw,bminf(w,b,λ)(1)s.t.λi≥0
对偶问题与原问题同解。
求解对偶问题
先求
m
i
n
w
,
b
f
(
w
,
b
,
λ
)
\underset{w,b}{min}f(w,b,\lambda)
w,bminf(w,b,λ)
对
b
b
b求偏导
∂
f
∂
b
=
∂
∂
b
[
∑
i
=
1
N
λ
i
−
∑
i
=
1
N
λ
i
y
i
(
w
T
x
i
+
b
)
]
=
∂
∂
b
[
−
∑
i
=
1
N
λ
i
y
i
b
]
=
−
∑
i
=
1
N
λ
i
y
i
=
0
⟹
∑
i
=
1
N
λ
i
y
i
=
Δ
0
\begin{aligned} \frac{\partial\,f}{\partial\,b} = &\frac{\partial}{\partial\,b}[\sum_{i=1}^N\lambda_i-\sum_{i=1}^N\lambda_iy_i(w^Tx_i+b)]\\ =& \frac{\partial}{\partial\,b}[-\sum_{i=1}^N\lambda_iy_ib]\\ =& -\sum_{i=1}^N\lambda_iy_i=0\Longrightarrow\sum_{i=1}^N\lambda_iy_i\overset{\Delta}=0 \end{aligned}
∂b∂f===∂b∂[i=1∑Nλi−i=1∑Nλiyi(wTxi+b)]∂b∂[−i=1∑Nλiyib]−i=1∑Nλiyi=0⟹i=1∑Nλiyi=Δ0
将其代入
f
(
w
,
b
,
λ
)
f(w,b,\lambda)
f(w,b,λ)
f
(
w
,
b
,
λ
)
=
1
2
w
T
w
+
∑
i
=
1
N
λ
i
−
∑
i
=
1
N
λ
i
y
i
(
w
T
x
i
+
b
)
=
1
2
w
T
w
+
∑
i
=
1
N
λ
i
−
∑
i
=
1
N
λ
i
y
i
w
T
x
i
−
∑
i
=
1
N
λ
i
y
i
b
=
1
2
w
T
w
+
∑
i
=
1
N
λ
i
−
∑
i
=
1
N
λ
i
y
i
w
T
x
i
\begin{aligned} f(w,b,\lambda)=&\frac{1}{2}w^Tw+\sum_{i=1}^N\lambda_i-\sum_{i=1}^N\lambda_iy_i(w^Tx_i+b)\\ =&\frac{1}{2}w^Tw+\sum_{i=1}^N\lambda_i-\sum_{i=1}^N\lambda_iy_iw^Tx_i-\sum_{i=1}^N\lambda_iy_ib\\ =&\frac{1}{2}w^Tw+\sum_{i=1}^N\lambda_i-\sum_{i=1}^N\lambda_iy_iw^Tx_i \end{aligned}
f(w,b,λ)===21wTw+i=1∑Nλi−i=1∑Nλiyi(wTxi+b)21wTw+i=1∑Nλi−i=1∑NλiyiwTxi−i=1∑Nλiyib21wTw+i=1∑Nλi−i=1∑NλiyiwTxi
对
w
w
w求偏导(涉及矩阵求导法则)
∂
f
∂
w
=
1
2
2
w
−
∑
i
=
1
N
λ
i
y
i
x
i
=
Δ
0
⟹
w
=
∑
i
=
1
N
λ
i
y
i
x
i
\begin{aligned} \frac{\partial\,f}{\partial\,w}=&\frac{1}{2}2w-\sum_{i=1}^N\lambda_iy_ix_i\overset{\Delta}=0\Longrightarrow\,w=\sum_{i=1}^N\lambda_iy_ix_i \end{aligned}
∂w∂f=212w−i=1∑Nλiyixi=Δ0⟹w=i=1∑Nλiyixi
将其代入
f
(
w
,
b
,
λ
)
f(w,b,\lambda)
f(w,b,λ)
f
(
w
,
b
,
λ
)
=
1
2
(
∑
i
=
1
N
λ
i
y
i
x
i
)
T
(
∑
i
=
1
N
λ
j
y
j
x
j
)
+
∑
i
=
1
N
λ
i
−
∑
i
=
1
N
λ
i
y
i
(
∑
i
=
1
N
λ
j
y
j
x
j
)
T
x
i
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
λ
i
λ
j
y
i
y
j
x
i
T
x
j
+
∑
i
=
1
N
λ
i
\begin{aligned} f(w,b,\lambda)=&\frac{1}{2}(\sum_{i=1}^N\lambda_iy_ix_i)^T(\sum_{i=1}^N\lambda_jy_jx_j)+\sum_{i=1}^N\lambda_i-\sum_{i=1}^N\lambda_iy_i(\sum_{i=1}^N\lambda_jy_jx_j)^Tx_i\\ =&-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^N\lambda_i \end{aligned}
f(w,b,λ)==21(i=1∑Nλiyixi)T(i=1∑Nλjyjxj)+i=1∑Nλi−i=1∑Nλiyi(i=1∑Nλjyjxj)Txi−21i=1∑Nj=1∑NλiλjyiyjxiTxj+i=1∑Nλi
则
(
1
)
(1)
(1)式对偶问题演变成
{
m
a
x
λ
−
1
2
∑
i
=
1
N
∑
j
=
1
N
λ
i
λ
j
y
i
y
j
x
i
T
x
j
+
∑
i
=
1
N
λ
i
s
.
t
.
λ
i
≥
0
∑
i
=
1
N
λ
i
y
i
=
0
\begin{cases} \underset{\lambda}{max}-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^N\lambda_i\\ s.t.\;\lambda_i\geq0\\ \sum_{i=1}^N\lambda_iy_i=0 \end{cases}
⎩⎪⎨⎪⎧λmax−21∑i=1N∑j=1NλiλjyiyjxiTxj+∑i=1Nλis.t.λi≥0∑i=1Nλiyi=0
原问题,对偶问题具有强对偶关系
⟺
\Longleftrightarrow
⟺满足KKT条件。
KKT条件
{
∂
f
∂
w
=
0
;
∂
f
∂
b
=
0
;
∂
f
∂
λ
=
0
λ
i
(
1
−
y
i
(
w
T
x
+
b
)
)
=
0
λ
i
≥
01
−
y
i
(
w
T
x
i
+
b
)
≤
0
\begin{cases} \frac{\partial\,f}{\partial\,w}=0;\frac{\partial\,f}{\partial\,b}=0;\frac{\partial\,f}{\partial\,\lambda}=0\\ \lambda_i(1-y_i(w^Tx+b)) = 0\\ \lambda_i\geq0 1-y_i(w^Tx_i+b)\leq0 \end{cases}
⎩⎪⎨⎪⎧∂w∂f=0;∂b∂f=0;∂λ∂f=0λi(1−yi(wTx+b))=0λi≥01−yi(wTxi+b)≤0
可得
w
∗
=
∑
i
=
1
N
λ
i
y
i
x
i
;
b
∗
=
y
k
−
∑
i
=
0
N
λ
i
y
i
x
i
T
x
k
w^*=\sum_{i=1}^N\lambda_iy_ix_i\;;\;b^*=y_k-\sum_{i=0}^N\lambda_iy_ix_i^Tx_k
w∗=i=1∑Nλiyixi;b∗=yk−i=0∑NλiyixiTxk
即决策函数为
h
(
x
)
=
s
i
g
n
(
(
w
∗
)
T
x
+
b
∗
)
h(x)=sign((w^*)^Tx+b*)
h(x)=sign((w∗)Tx+b∗)
soft-margin SVM算法
思想
允许有一点点错误,即求
m
i
n
1
2
w
T
w
min\frac{1}{2}w^Tw
min21wTw可以演变为求
m
i
n
1
2
w
T
w
+
l
o
s
s
min\frac{1}{2}w^Tw+loss
min21wTw+loss
l
o
s
s
=
m
a
x
(
0
,
1
−
y
i
(
w
T
x
i
+
b
)
)
(
h
i
n
g
e
−
l
o
s
s
)
loss=max(0, 1-y_i(w^Tx_i+b)) \qquad (hinge-loss)
loss=max(0,1−yi(wTxi+b))(hinge−loss)
即soft-margin解决的是
{
m
i
n
1
2
w
T
w
+
C
∑
i
=
1
N
m
a
x
{
0
,
1
−
y
i
(
w
T
x
i
+
b
)
}
s
.
t
.
y
i
(
w
T
x
+
b
)
≥
1
\begin{cases} min\;\frac{1}{2}w^Tw+ C\sum_{i=1}^Nmax\lbrace0,\;1-y_i(w^Tx_i+b)\rbrace\\ s.t.\;y_i(w^Tx+b)\geq1 \end{cases}
{min21wTw+C∑i=1Nmax{0,1−yi(wTxi+b)}s.t.yi(wTx+b)≥1
引入一个变量
ξ
i
=
1
−
y
i
(
w
T
x
i
+
b
)
,
ξ
i
≥
0
\xi_i=1-y_i(w^Tx_i+b),\xi_i\geq0
ξi=1−yi(wTxi+b),ξi≥0将上式变为
{
m
i
n
1
2
w
T
w
+
C
∑
i
=
1
N
ξ
i
s
.
t
.
y
i
(
w
T
x
+
b
)
≥
1
−
ξ
i
,
ξ
i
≥
0
\begin{cases} min\;\frac{1}{2}w^Tw+ C\sum_{i=1}^N\xi_i\\ s.t.\;y_i(w^Tx+b)\geq1-\xi_i,\xi_i\geq0 \end{cases}
{min21wTw+C∑i=1Nξis.t.yi(wTx+b)≥1−ξi,ξi≥0
其求解与hard-margin SVM基本一致,可自行推导。
应用场景
SVM是最接近深度学习的机器学习算法。
- 手写识别数字
- 人脸识别
- 图像分类
- 蛋白质分类
代码实现示例
优缺点
待更新。。。