目录
机器学习算法—支持向量机(support vector machine,SVM)
线性SVM
给定训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋅ ⋅ ⋅ , ( x m , y m ) } , y ∈ { − 1 , + 1 } D=\{(x_1,y_1),(x_2,y_2),\cdot\cdot\cdot,(x_m,y_m)\},y\in\{-1,+1\} D={(x1,y1),(x2,y2),⋅⋅⋅,(xm,ym)},y∈{−1,+1},分类学习的基本思想就是基于训练集D在样本空间寻找一个划分超平面,将不同类别的样本区别开。因此重点就是如何寻找最优的划分超平面。
在样本空间中,划分超平面可通过如下线性方程来描述:
ω
T
x
+
b
=
0
\omega^Tx+b=0
ωTx+b=0样本空间中任一点
x
x
x到超平面
(
ω
,
b
)
(\omega,b)
(ω,b)的距离
γ
\gamma
γ可写成:
γ
=
∣
ω
T
x
+
b
∣
∣
∣
ω
∣
∣
\gamma=\frac{|\omega^Tx+b|} {||\omega||}
γ=∣∣ω∣∣∣ωTx+b∣假设超平面
(
ω
,
b
)
(\omega,b)
(ω,b)能够对样本
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)正确分类,那么有
{
ω
T
x
i
+
b
>
0
,
y
i
=
+
1
ω
T
x
i
+
b
<
0
,
y
i
=
−
1
\begin{cases} \omega^Tx_i+b>0,y_i=+1 \\ \omega^Tx_i+b<0,y_i=-1\end{cases}
{ωTxi+b>0,yi=+1ωTxi+b<0,yi=−1为了增强分类器的鲁棒性,我们令
{
ω
T
x
i
+
b
≥
+
1
,
y
i
=
+
1
ω
T
x
i
+
b
≤
−
1
,
y
i
=
−
1
\begin{cases} \omega^Tx_i+b\geq+1,y_i=+1 \\ \omega^Tx_i+b\leq-1,y_i=-1\end{cases}
{ωTxi+b≥+1,yi=+1ωTxi+b≤−1,yi=−1使得上式等号成立的样例称之为“支持向量(support vector)”。
两个异类支持向量到超平面的距离之和称为间隔(margin)
γ
\gamma
γ:
γ
=
2
∣
∣
ω
∣
∣
\gamma=\frac{2} {||\omega||}
γ=∣∣ω∣∣2
间隔最大化
支持向量机的思想思想就是寻找一超平面,使得间隔最大化。因此可获得支持向量机的基本型为:
m
a
x
ω
,
b
2
∣
∣
ω
∣
∣
s.t.
y
i
(
ω
T
x
i
+
b
)
≥
1
i
=
1
,
2
,
.
.
.
m
.
\begin{array}{} \underset {\omega,b} {max} & \frac{2}{||\omega||} \\ \text{s.t.}& y_i( \omega^Tx_i+b)\geq1 \\ &i=1,2,...m. \end{array}
ω,bmaxs.t.∣∣ω∣∣2yi(ωTxi+b)≥1i=1,2,...m.引入二范数,上述优化问题等价于
m
i
n
ω
,
b
1
2
∣
∣
ω
∣
∣
2
s.t.
y
i
(
ω
T
x
i
+
b
)
≥
1
i
=
1
,
2
,
.
.
.
m
.
\begin{array}{} \underset {\omega,b} {min} & \frac{1}{2} ||\omega||^2 \\ \text{s.t.}& y_i( \omega^Tx_i+b)\geq1 \\ &i=1,2,...m. \end{array}
ω,bmins.t.21∣∣ω∣∣2yi(ωTxi+b)≥1i=1,2,...m.
对偶SVM
拉格朗日函数和对偶形式
拉格朗日函数
定义:
对于优化问题一
m
i
n
u
f
(
u
)
s.t.
g
i
(
u
)
≤
0
,
i
=
1
,
2
,
.
.
.
,
m
h
j
(
u
)
=
0
,
j
=
1
,
2
,
.
.
.
,
n
\begin{array}{} \underset {u} {min} & f(u) \\ \text{s.t.}& g_i(u)\leq0, \ i=1,2,...,m \\ &h_j(u)=0, \ j=1,2,...,n \end{array}
umins.t.f(u)gi(u)≤0, i=1,2,...,mhj(u)=0, j=1,2,...,n
定义其拉格朗日函数为:
L
(
u
,
α
,
β
)
:
=
f
(
u
)
+
∑
i
=
1
m
α
i
g
i
(
u
)
+
∑
j
=
1
n
β
j
h
j
(
u
)
,
其中
α
i
≥
0
L(u,\alpha,\beta):=f(u)+\sum_{i=1}^m\alpha_ig_i(u)+\sum_{j=1}^n\beta_jh_j(u),\text{其中}\alpha_i \geq0
L(u,α,β):=f(u)+i=1∑mαigi(u)+j=1∑nβjhj(u),其中αi≥0对于优化问题一描述的优化问题等价于
m
i
n
u
m
a
x
α
,
β
L
(
u
,
α
,
β
)
s.t.
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
\begin{array}{} \underset {u} {min} \underset {\alpha,\beta} {max}& L(u,\alpha,\beta) \\ \text{s.t.}& \alpha_i \geq0, \ i=1,2,...,m \\ \end{array}
uminα,βmaxs.t.L(u,α,β)αi≥0, i=1,2,...,m证明过程:
KKT条件
利用拉格朗日函数构造等价的优化问题必须满足KKT条件:
- 主问题可行: g i ( u ) ≤ 0 , h j ( u ) = 0 g_i(u)\leq0,\ h_j(u)=0 gi(u)≤0, hj(u)=0
- 对偶问题可行: α i ≥ 0 \alpha_i \geq 0 αi≥0
- 互补松弛(complementary slackness): α i g i ( u ) = 0 \alpha_ig_i(u) = 0 αigi(u)=0
α i g i ( u ) = 0 \alpha_ig_i(u) = 0 αigi(u)=0是在主问题和对偶问题都可行的条件下的最大值。
对偶问题
定义优化问题一的对偶问题为:
m
a
x
α
,
β
m
i
n
u
L
(
u
,
α
,
β
)
s.t.
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
\begin{array}{} \underset {\alpha,\beta} {max} \underset {u} {min} & L(u,\alpha,\beta) \\ \text{s.t.}& \alpha_i \geq0, \ i=1,2,...,m \\ \end{array}
α,βmaxumins.t.L(u,α,β)αi≥0, i=1,2,...,m对偶问题是主问题的下界,即:
m
a
x
α
,
β
m
i
n
u
≤
m
i
n
u
m
a
x
α
,
β
\underset {\alpha,\beta} {max} \underset {u} {min} \leq \underset {u} {min} \underset {\alpha,\beta} {max}
α,βmaxumin≤uminα,βmax
线性支持向量机对偶型
支持向量机基本型:
m
i
n
ω
,
b
1
2
∣
∣
ω
∣
∣
2
s.t.
y
i
(
ω
T
x
i
+
b
)
≥
1
i
=
1
,
2
,
.
.
.
m
.
\begin{array}{} \underset {\omega,b} {min} & \frac{1}{2} ||\omega||^2 \\ \text{s.t.}& y_i( \omega^Tx_i+b)\geq1 \\ &i=1,2,...m. \end{array}
ω,bmins.t.21∣∣ω∣∣2yi(ωTxi+b)≥1i=1,2,...m.这是一个有约束的二次规划问题,引入拉格朗日乘子
α
\alpha
α,当
α
≥
0
\alpha\geq0
α≥0时,可构造拉格朗日函数
L
(
ω
,
b
,
α
)
L(\omega,b,\alpha)
L(ω,b,α):
L
(
ω
,
b
,
α
)
=
1
2
∣
∣
ω
∣
∣
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
ω
T
x
i
+
b
)
)
L(\omega,b,\alpha)=\frac{1} {2} ||\omega||^2+\sum_{i=1}^m \alpha_i(1-y_i( \omega^Tx_i+b))
L(ω,b,α)=21∣∣ω∣∣2+i=1∑mαi(1−yi(ωTxi+b))分别对
ω
,
b
,
α
\omega,b,\alpha
ω,b,α求导等于0可得:
∂
L
∂
ω
=
0
  
⟹
  
ω
=
∑
i
=
1
m
α
i
y
i
x
i
\frac{\partial L}{\partial \omega}=0 \implies \omega=\sum_{i=1}^m\alpha_iy_ix_i
∂ω∂L=0⟹ω=i=1∑mαiyixi
∂
L
∂
b
=
0
  
⟹
  
∑
i
=
1
m
α
i
y
i
=
0
\frac{\partial L}{\partial b}=0\implies \sum_{i=1}^m\alpha_iy_i=0
∂b∂L=0⟹i=1∑mαiyi=0将其代入到上式可得:
m
i
n
α
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
−
∑
i
=
1
m
α
i
s.t.
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
m
.
\begin{array}{} \underset {\alpha} {min} & \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_jx_i^Tx_j -\sum_{i=1}^m\alpha_i\\ \text{s.t.}& \alpha_i\geq 0 ,\quad i=1,2,...m. \end{array}
αmins.t.21∑i=1m∑j=1mαiαjyiyjxiTxj−∑i=1mαiαi≥0,i=1,2,...m.上式即为线性支持向量机对偶型,等价于找到一组合适的参数
α
\alpha
α使得上式成立。
线性支持向量机对偶型中描述的优化问题属于二次规划问题, 包括m个优化变量, m+2项约束。
线性支持向量机的KKT条件如下:
- 主问题可行: 1 − y i ( ω T x i + b ) ≤ 0 1-y_i( \omega^Tx_i+b)\leq0 1−yi(ωTxi+b)≤0;
- 对偶问题可行: α i ≥ 0 \alpha_i\geq 0 αi≥0;
- 互补松弛: α i ( 1 − y i ( ω T x i + b ) ) = 0 \alpha_i(1-y_i( \omega^Tx_i+b))=0 αi(1−yi(ωTxi+b))=0
支持向量
满足
1
−
y
i
(
ω
T
x
i
+
b
)
=
0
1-y_i( \omega^Tx_i+b)=0
1−yi(ωTxi+b)=0,即
y
i
(
ω
T
x
i
+
b
)
=
1
y_i( \omega^Tx_i+b)=1
yi(ωTxi+b)=1的样本称为支持向量;
也可以说,对偶变量
α
i
>
0
\alpha_i>0
αi>0对应的样本称为支持向量。
引理:线性支持向量机中, 支持向量是距离划分超平面最近的样本, 落在最大间隔边界上。
定理:支持向量机的参数
(
ω
,
b
)
(\omega,b)
(ω,b)仅由支持向量决定,与其他样本无关。证明:
线性支持向量机的假设函数
h ( x ) = sign ( ∑ i ∈ S V α i y i x i T x + b ) h(x)=\text{sign}(\sum_{i\in SV}\alpha_iy_ix_i^Tx+b) h(x)=sign(i∈SV∑αiyixiTx+b)
非线性SVM
对于非线性可分问题,在原始的特征空间 R d \R^d Rd不是线性可分的,支持向量机希望通过一个映射: ϕ : R d → R d ~ \phi:\R^d\to \R^{\tilde{d}} ϕ:Rd→Rd~,使得样本在空间 R d ~ \R^{\tilde{d}} Rd~是线性可分的。
核函数
定义核函数:
k
(
x
i
,
x
j
)
=
ϕ
(
x
i
)
T
ϕ
(
x
j
)
k(x_i,x_j)=\phi(x_i)^T\phi(x_j)
k(xi,xj)=ϕ(xi)Tϕ(xj)
支持向量机的基本型和对偶型相应的变为:
常用核函数:
通常,当特征维数d超过样本数m时(文本分类问题通常是这种情况),使用线性核;当特征维数d比较小,样本数m中等时,使用RBF核; 当特征维数d比较小;样本数m特别大时,支持向量机性能通常不如深度神经网络。
软间隔SVM
不管直接在原特征空间, 还是在映射的高维空间,我们都假设样本是线性可分的. 虽然理论上我们总能找到一个高维映射使数据线性可分, 但在实际任务中, 寻找到这样一个合适的核函数通常很难. 此外, 由于数据中通常有噪声存在, 一味追求数据线性可分可能会使模型陷入过拟合的泥沼. 因此, 我们放宽对样本的要求, 即允许有少量样本分类错误.
软间隔支持向量机基本型
m
i
n
ω
,
b
1
2
∣
∣
ω
∣
∣
2
+
C
∑
cost
(
y
i
≠
sign
(
w
T
ϕ
(
x
i
)
+
b
)
)
s.t.
y
i
(
ω
T
x
i
+
b
)
≥
1
,
if
y
i
=
sign
(
w
T
ϕ
(
x
i
)
+
b
)
\begin{array}{} \underset {\omega,b} {min} & \frac{1}{2} ||\omega||^2+C\sum \text{cost}(y_i \neq \text{sign}(w^T\phi(x_i)+b))\\ \text{s.t.}& y_i( \omega^Tx_i+b)\geq1 ,\quad \text{if}\ y_i = \text{sign}(w^T\phi(x_i)+b) \end{array}
ω,bmins.t.21∣∣ω∣∣2+C∑cost(yi̸=sign(wTϕ(xi)+b))yi(ωTxi+b)≥1,if yi=sign(wTϕ(xi)+b)其中,cost()是代价函数,C是个可调节参数用于权衡优化间隔和少量分类错误样本这两个目标,当C较大时,我们希望更多的样本满足大间隔约束;当C较小时,我们允许有一些样本不满足大间隔约束。
引入松弛变量
ξ
i
\xi_i
ξi用于度量样本违背约束的程度。当样本违背约束的程度越大,松弛变量值越大,即:
软间隔支持向量机基本型:
软间隔支持向量机对偶型
m
i
n
α
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
ϕ
(
x
i
)
T
ϕ
(
x
j
)
−
∑
i
=
1
m
α
i
s.t.
∑
i
=
1
m
α
i
y
i
=
0
0
≤
α
i
≤
C
,
i
=
1
,
2
,
.
.
.
m
.
\begin{array}{} \underset {\alpha} {min} & \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\phi(x_i)^T\phi(x_j) -\sum_{i=1}^m\alpha_i\\ \text{s.t.}& \sum_{i=1}^m\alpha_iy_i=0 \\ &\quad \quad\quad\quad \quad0 \leq \alpha_i\leq C ,\quad i=1,2,...m. \end{array}
αmins.t.21∑i=1m∑j=1mαiαjyiyjϕ(xi)Tϕ(xj)−∑i=1mαi∑i=1mαiyi=00≤αi≤C,i=1,2,...m.证明:
支持向量