目录
1.支持向量机和感知机
感知机:通过误分类点距离之和最小,寻找一个分类超平面,将不同类别的数据分隔在超平面两侧,这样的超平面有无数个。
支持向量机:最大化几何间隔寻找分类超平面,通俗点说就是最大化数据集中离超平面最近的点的距离,这样的超平面只有一个。
2.线性可分SVM之硬间隔最大化
(1)函数间隔和几何间隔
定义样本点
(
x
i
,
y
i
)
(\mathbf{x}^{i},y^{i})
(xi,yi)关于超平面
(
w
,
b
)
(\mathbf{w},b)
(w,b)的函数间隔为:
γ
i
′
=
y
i
(
w
T
x
i
+
b
)
\gamma _{i}^{'}=y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)
γi′=yi(wTxi+b)
函数间隔的值只能代表正确性和确信度,不能量化的代表准确度,因为当超平面的参数
w
,
b
\mathbf{w},b
w,b成比例增加或减少时,函数间隔值改变,但是超平面不变。
因此,将函数间隔加上法向量
w
\mathbf{w}
w的约束,可以得到几何间隔,几何间隔表示了点到超平面的带符号距离:
γ
i
=
γ
i
′
∣
∣
w
∣
∣
2
=
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
2
\gamma _{i}=\frac{\gamma _{i}^{'}}{||\mathbf{w}||_{2}}=\frac{y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)}{||\mathbf{w}||_{2}}
γi=∣∣w∣∣2γi′=∣∣w∣∣2yi(wTxi+b)
以上是样本点
(
x
i
,
y
i
)
(\mathbf{x}^{i},y^{i})
(xi,yi)关于超平面
(
w
,
b
)
(\mathbf{w},b)
(w,b)的函数间隔和集合间隔。
数据集关于超平面的函数间隔和几何间隔,是所有样本中的最小值:
γ
′
=
min
i
=
1
,
2
,
3
,
.
.
,
m
γ
i
′
γ
=
min
i
=
1
,
2
,
3
,
.
.
,
m
γ
i
\gamma ^{'}=\min_{i=1,2,3,..,m}\gamma _{i}^{'}\\ \gamma =\min_{i=1,2,3,..,m}\gamma _{i}
γ′=i=1,2,3,..,mminγi′γ=i=1,2,3,..,mminγi
(2)目标函数推导
SVM的目的是找到这样一个超平面,使距离超平面最近的点最远,即最大化超平面
(
w
,
b
)
(\mathbf{w},b)
(w,b)关于所有样本的几何间隔,用数学表示为:
max
w
γ
=
γ
′
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
2
⩾
γ
′
∣
∣
w
∣
∣
2
\max_{\mathbf{w}}\gamma =\frac{\gamma ^{'}}{||\mathbf{w}||_{2}}\\ s.t.\frac{y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)}{||\mathbf{w}||_{2}}\geqslant \frac{\gamma ^{'}}{||\mathbf{w}||_{2}}
wmaxγ=∣∣w∣∣2γ′s.t.∣∣w∣∣2yi(wTxi+b)⩾∣∣w∣∣2γ′
约束条件不等号两遍同乘
∣
∣
w
∣
∣
2
||\mathbf{w}||_{2}
∣∣w∣∣2得:
max
w
γ
=
γ
′
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
⩾
γ
′
\max_{\mathbf{w}}\gamma =\frac{\gamma ^{'}}{||\mathbf{w}||_{2}}\\ s.t.y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)\geqslant \gamma ^{'}
wmaxγ=∣∣w∣∣2γ′s.t.yi(wTxi+b)⩾γ′
当
w
,
b
\mathbf{w},b
w,b等比例改变时,
γ
′
\gamma ^{'}
γ′的值会变,但是超平面不会变,因此,固定
γ
′
\gamma ^{'}
γ′为
1
1
1,则上述条件变为:
max
w
1
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
−
1
⩾
0
\max_{\mathbf{w}}\frac{1}{||\mathbf{w}||_{2}}\\ s.t.y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)-1\geqslant 0
wmax∣∣w∣∣21s.t.yi(wTxi+b)−1⩾0
极大化
1
∣
∣
w
∣
∣
2
\frac{1}{||\mathbf{w}||_{2}}
∣∣w∣∣21等价于极小化
∣
∣
w
∣
∣
2
2
||\mathbf{w}||_{2}^{2}
∣∣w∣∣22,最终目标函数变为:
min
w
1
2
∣
∣
w
∣
∣
2
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
−
1
⩾
0
\min_{\mathbf{w}}\frac{1}{2}||\mathbf{w}||_{2}^{2}\\ s.t.y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)-1\geqslant 0
wmin21∣∣w∣∣22s.t.yi(wTxi+b)−1⩾0
(3)目标函数优化
有约束的最优化问题,使用拉格朗日乘子法。
首先,构造拉格朗日函数:
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
2
−
∑
i
=
1
m
α
i
[
y
i
(
w
T
x
i
+
b
)
−
1
]
L(\mathbf{w},b,\alpha )=\frac{1}{2}||\mathbf{w}||_{2}^{2}-\sum_{i=1}^{m}\alpha ^{i}[y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)-1]
L(w,b,α)=21∣∣w∣∣22−i=1∑mαi[yi(wTxi+b)−1]
其中,
α
i
⩾
0
\alpha ^{i}\geqslant0
αi⩾0。
有上式可知,原始问题为:
min
w
,
b
max
α
i
⩾
0
L
(
w
,
b
,
α
)
\min_{\mathbf{w},b}\max_{\alpha ^{i}\geqslant 0}L(\mathbf{w},b,\alpha )
w,bminαi⩾0maxL(w,b,α)
原始问题的对偶问题为:
max
α
i
⩾
0
min
w
,
b
L
(
w
,
b
,
α
)
\max_{\alpha ^{i}\geqslant 0}\min_{\mathbf{w},b}L(\mathbf{w},b,\alpha )
αi⩾0maxw,bminL(w,b,α)
原始问题转化成了对偶问题,首先求内层极小值:
min
w
,
b
L
(
w
,
b
,
α
)
\min_{\mathbf{w},b}L(\mathbf{w},b,\alpha )
w,bminL(w,b,α)
损失函数首先对
w
,
b
\mathbf{w},b
w,b分别求导:
∂
L
∂
w
=
w
−
∑
i
=
1
m
α
i
y
i
x
i
=
0
⇒
w
=
∑
i
=
1
m
α
i
y
i
x
i
∂
L
∂
b
=
−
∑
i
=
1
m
α
i
y
i
=
0
⇒
∑
i
=
1
m
α
i
y
i
=
0
\frac{\partial L}{\partial \mathbf{w}}=\mathbf{w}-\sum_{i=1}^{m}\alpha ^{i}y^{i}\mathbf{x}^{i}=0\Rightarrow \mathbf{w}=\sum_{i=1}^{m}\alpha ^{i}y^{i}\mathbf{x}^{i}\\ \frac{\partial L}{\partial b}=-\sum _{i=1}^{m}\alpha ^{i}y^{i}=0\Rightarrow \sum _{i=1}^{m}\alpha ^{i}y^{i}=0
∂w∂L=w−i=1∑mαiyixi=0⇒w=i=1∑mαiyixi∂b∂L=−i=1∑mαiyi=0⇒i=1∑mαiyi=0
将上两式带入原式得:
min
w
,
b
L
(
w
,
b
,
α
)
=
1
2
w
T
w
−
∑
i
=
1
m
α
i
y
i
w
T
x
i
−
∑
i
=
1
m
α
i
y
i
b
+
∑
i
=
1
m
α
i
=
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
(
x
i
)
T
x
j
−
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
(
x
i
)
T
x
j
+
∑
i
=
1
m
α
i
=
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
(
x
i
)
T
x
j
+
∑
i
=
1
m
α
\begin{aligned} \min_{\mathbf{w},b}L(\mathbf{w},b,\alpha ) &= \frac{1}{2}\mathbf{w^{T}w}-\sum_{i=1}^{m}\alpha ^{i}y^{i}\mathbf{w}^{T}\mathbf{x}^{i}-\sum_{i=1}^{m}\alpha ^{i}y^{i}b+\sum_{i=1}^{m}\alpha ^{i}\\ &= \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}(\mathbf{x^{i}})^{T}\mathbf{x}^{j}-\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}(\mathbf{x^{i}})^{T}\mathbf{x}^{j}+\sum_{i=1}^{m}\alpha ^{i}\\ &=-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}(\mathbf{x^{i}})^{T}\mathbf{x}^{j}+\sum_{i=1}^{m}\alpha \end{aligned}
w,bminL(w,b,α)=21wTw−i=1∑mαiyiwTxi−i=1∑mαiyib+i=1∑mαi=21i=1∑mj=1∑mαiαjyiyj(xi)Txj−i=1∑mj=1∑mαiαjyiyj(xi)Txj+i=1∑mαi=−21i=1∑mj=1∑mαiαjyiyj(xi)Txj+i=1∑mα
更新目标函数:
max
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
(
x
i
)
T
x
j
+
∑
i
=
1
m
α
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
α
i
⩾
0
\max_{\alpha ^{i}}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}(\mathbf{x^{i}})^{T}\mathbf{x}^{j}+\sum_{i=1}^{m}\alpha \\ s.t.\sum_{i=1}^{m}\alpha ^{i}y^{i}=0\\ \alpha ^{i}\geqslant 0
αimax−21i=1∑mj=1∑mαiαjyiyj(xi)Txj+i=1∑mαs.t.i=1∑mαiyi=0αi⩾0
(4)目标函数求解
a.求
w
\mathbf{w}
w
上述约束优化问题中,只有参数
α
\alpha
α未知,可以用SMO算法求出
α
\alpha
α的值
α
i
∗
\alpha ^{i*}
αi∗,进而可求得:
w
∗
=
∑
i
=
1
m
α
i
∗
y
i
x
i
\mathbf{w}^{*}=\sum_{i=1}^{m}\alpha ^{i*}y^{i}\mathbf{x}^{i}
w∗=i=1∑mαi∗yixi
b.求
b
b
b
通过以下两个公式:
y
i
(
(
w
∗
)
T
x
i
+
b
)
−
1
=
0
α
i
∗
⩾
0
y^{i}((\mathbf{w}^{*})^{T}\mathbf{x}^{i}+b)-1= 0\\ \alpha ^{i*}\geqslant 0
yi((w∗)Txi+b)−1=0αi∗⩾0
可以找到所有的支持向量(距离超平面最近的点),计算出每个支持向量的偏置:
b
i
∗
=
y
i
−
(
w
∗
)
T
x
i
(
y
i
为
正
负
1
)
b^{i*}=y^{i}-(\mathbf{w}^{*})^{T}\mathbf{x}^{i}(y^{i}为正负1)
bi∗=yi−(w∗)Txi(yi为正负1)
取平均值作为超平面的偏置:
b
∗
=
1
∣
D
∣
∑
x
i
∈
D
b
i
∗
b^{*}=\frac{1}{|D|}\sum_{\mathbf{x}^{i}\in D}b^{i*}
b∗=∣D∣1xi∈D∑bi∗
其中,
D
D
D为支持向量的集合,
∣
D
∣
|D|
∣D∣为支持向量的数量。
最终,可得分类超平面:
(
w
i
∗
)
T
x
+
b
∗
=
0
(\mathbf{w}^{i*})^{T}\mathbf{x}+b^{*}=0
(wi∗)Tx+b∗=0
分类决策函数:
f
(
x
)
=
s
i
g
n
[
(
w
i
∗
)
T
x
+
b
∗
]
f(\mathbf{x})=sign[(\mathbf{w}^{i*})^{T}\mathbf{x}+b^{*}]
f(x)=sign[(wi∗)Tx+b∗]
(5)硬间隔最大化的支持向量
在线性可分情况下,与分离超平面最近的点称为支持向量。
根据KKT条件中的松弛互补条件:
α
i
[
y
i
(
w
T
x
i
+
b
)
−
1
]
=
0
\alpha ^{i}[y^{i}(\mathbf{w}^{T}\mathbf{x}^{i}+b)-1]= 0
αi[yi(wTxi+b)−1]=0
当
α
i
>
0
\alpha ^{i}>0
αi>0时,可行解落在约束边界上,且:
y
i
(
w
T
x
i
+
b
)
−
1
=
0
y^{i}(\mathbf{w}^{T}\mathbf{x}^{i}+b)-1= 0
yi(wTxi+b)−1=0
可以以此找出支持向量。
2.线性SVM之软间隔最大化
(1)软间隔最大化
有时候,数据集是线性可分的,但是由于异常点的存在,导致超平面线性不可分,或者严重影响了模型的预测效果。这时候,可以使SVM对数据集中的每一个样本
(
x
i
,
y
i
)
(\mathbf{x}^{i},y^{i})
(xi,yi)引入一个松弛变量
ξ
i
⩾
0
\xi ^{i}\geqslant 0
ξi⩾0,使间隔可以通过松弛变量调整大小,引入松弛变量的几何间隔被称为软间隔,数学表示为:
y
i
(
w
T
x
i
+
b
)
⩾
1
−
ξ
i
y^{i}(\mathbf{w}^{T}\mathbf{x}^{i}+b)\geqslant 1-\xi ^{i}
yi(wTxi+b)⩾1−ξi
软间隔最大化用数学表示为:
min
w
1
2
∣
∣
w
∣
∣
2
2
+
C
∑
i
=
1
m
ξ
i
s
.
t
.
y
i
(
w
T
x
i
+
b
)
⩾
1
−
ξ
i
ξ
i
⩾
0
\min_{\mathbf{w}}\frac{1}{2}||\mathbf{w}||_{2}^{2}+C\sum_{i=1}^{m}\xi ^{i}\\ s.t.y^{i}(\mathbf{w^{T}x^{i}}+b)\geqslant 1-\xi ^{i}\\ \xi ^{i}\geqslant 0
wmin21∣∣w∣∣22+Ci=1∑mξis.t.yi(wTxi+b)⩾1−ξiξi⩾0
其中,
C
C
C为惩罚系数,它的值越大对误分类的惩罚越大。
(2)目标函数优化
构造拉格朗日函数:
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
1
2
∣
∣
w
∣
∣
2
2
+
C
∑
i
=
1
m
ξ
i
−
∑
i
=
1
m
α
i
[
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
]
−
∑
i
=
1
m
μ
i
ξ
i
L(\mathbf{w},b,\xi ,\alpha ,\mu )=\frac{1}{2}||\mathbf{w}||_{2}^{2}+C\sum_{i=1}^{m}\xi ^{i}-\sum_{i=1}^{m}\alpha ^{i}[y^{i}(\mathbf{w^{T}x^{i}}+b)- 1+\xi ^{i}]-\sum_{i=1}^{m}\mu^{i}\xi ^{i}
L(w,b,ξ,α,μ)=21∣∣w∣∣22+Ci=1∑mξi−i=1∑mαi[yi(wTxi+b)−1+ξi]−i=1∑mμiξi
原始问题:
min
w
,
b
,
ξ
max
α
⩾
0
,
μ
⩾
0
L
(
w
,
b
,
ξ
,
α
,
μ
)
\min_{\mathbf{w},b,\xi }\max_{\alpha \geqslant 0,\mu \geqslant 0} L(\mathbf{w},b,\xi ,\alpha ,\mu )
w,b,ξminα⩾0,μ⩾0maxL(w,b,ξ,α,μ)
对偶问题:
max
α
⩾
0
,
μ
⩾
0
min
w
,
b
,
ξ
L
(
w
,
b
,
ξ
,
α
,
μ
)
\max_{\alpha \geqslant 0,\mu \geqslant 0} \min_{\mathbf{w},b,\xi }L(\mathbf{w},b,\xi ,\alpha ,\mu )
α⩾0,μ⩾0maxw,b,ξminL(w,b,ξ,α,μ)
求内层极小值:
∂
L
∂
w
=
w
−
∑
i
=
1
m
α
i
y
i
x
i
⇒
w
=
∑
i
=
1
m
α
i
y
i
x
i
∂
L
∂
b
=
−
∑
i
=
1
m
α
i
y
i
=
0
⇒
∑
i
=
1
m
α
i
y
i
=
0
∂
L
∂
ξ
=
C
−
α
i
−
μ
i
=
0
\begin{aligned} \frac{\partial L}{\partial \mathbf{w}} &=\mathbf{w}-\sum_{i=1}^{m} \alpha ^{i}y^{i}\mathbf{x}^{i}\Rightarrow \mathbf{w}=\sum_{i=1}^{m} \alpha ^{i}y^{i}\mathbf{x}^{i}\\ \frac{\partial L}{\partial b} &= -\sum_{i=1}^{m}\alpha ^{i}y^{i}=0\Rightarrow \sum_{i=1}^{m}\alpha ^{i}y^{i}=0\\ \frac{\partial L}{\partial \xi } &=C-\alpha ^{i}-\mu ^{i}=0 \end{aligned}
∂w∂L∂b∂L∂ξ∂L=w−i=1∑mαiyixi⇒w=i=1∑mαiyixi=−i=1∑mαiyi=0⇒i=1∑mαiyi=0=C−αi−μi=0
将上三式带入
L
L
L得:
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
1
2
∣
∣
w
∣
∣
2
2
+
C
∑
i
=
1
m
ξ
i
−
∑
i
=
1
m
α
i
[
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
]
−
∑
i
=
1
m
μ
i
ξ
i
=
1
2
∣
∣
w
∣
∣
2
2
+
(
C
−
α
i
−
μ
i
)
∑
i
=
1
m
ξ
i
−
∑
i
=
1
m
α
i
[
y
i
(
w
T
x
i
+
b
)
−
1
]
=
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
(
x
i
)
T
x
j
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
(
x
i
)
T
x
j
−
∑
i
=
1
m
α
i
y
i
b
+
∑
i
=
1
m
α
i
=
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
(
x
i
)
T
x
j
+
∑
i
=
1
m
α
i
\begin{aligned} L(\mathbf{w},b,\xi ,\alpha ,\mu )&=\frac{1}{2}||\mathbf{w}||_{2}^{2}+C\sum_{i=1}^{m}\xi ^{i}-\sum_{i=1}^{m}\alpha ^{i}[y^{i}(\mathbf{w^{T}x^{i}}+b)- 1+\xi ^{i}]-\sum_{i=1}^{m}\mu^{i}\xi ^{i}\\ &= \frac{1}{2}||\mathbf{w}||_{2}^{2}+(C-\alpha ^{i}-\mu ^{i})\sum_{i=1}^{m}\xi ^{i}-\sum_{i=1}^{m}\alpha ^{i}[y^{i}(\mathbf{w^{T}x^{i}}+b)- 1]\\ &=\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}\mathbf{(x^{i})^{T}x^{j}}-\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}\mathbf{(x^{i})^{T}x^{j}}-\sum_{i=1}^{m}\alpha ^{i}y^{i}b+\sum_{i=1}^{m}\alpha ^{i}\\ &=-\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}\mathbf{(x^{i})^{T}x^{j}}+\sum_{i=1}^{m}\alpha ^{i} \end{aligned}
L(w,b,ξ,α,μ)=21∣∣w∣∣22+Ci=1∑mξi−i=1∑mαi[yi(wTxi+b)−1+ξi]−i=1∑mμiξi=21∣∣w∣∣22+(C−αi−μi)i=1∑mξi−i=1∑mαi[yi(wTxi+b)−1]=21i=1∑mj=1∑mαiαjyiyj(xi)Txj−21i=1∑mj=1∑mαiαjyiyj(xi)Txj−i=1∑mαiyib+i=1∑mαi=−21i=1∑mj=1∑mαiαjyiyj(xi)Txj+i=1∑mαi
问题优化为:
max
α
−
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
C
−
α
i
−
μ
i
=
0
α
i
,
μ
i
⩾
0
\max_{\alpha }-\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}\mathbf{(x^{i})^{T}x^{j}}+\sum_{i=1}^{m}\alpha ^{i}\\ s.t. \sum_{i=1}^{m}\alpha ^{i}y^{i}=0\\ C-\alpha ^{i}-\mu ^{i}=0\\ \alpha ^{i},\mu ^{i}\geqslant 0
αmax−21i=1∑mj=1∑mαiαjyiyj(xi)Txj+i=1∑mαis.t.i=1∑mαiyi=0C−αi−μi=0αi,μi⩾0
最优化取反,约束条件后两项合并,问题进一步优化为:
min
α
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
\min_{\alpha }\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}\mathbf{(x^{i})^{T}x^{j}}-\sum_{i=1}^{m}\alpha ^{i}\\ s.t. \sum_{i=1}^{m}\alpha ^{i}y^{i}=0\\ 0\leqslant \alpha ^{i}\leqslant C
αmin21i=1∑mj=1∑mαiαjyiyj(xi)Txj−i=1∑mαis.t.i=1∑mαiyi=00⩽αi⩽C
(3)目标函数求解
同线性可分SVM硬间隔最大化的求解方法。
(4)软间隔最大化的支持向量
软间隔最大化的支持向量的间隔距离为:
ξ
∣
∣
w
∣
∣
2
2
\frac{\xi }{||\mathbf{w}||_{2}^{2}}
∣∣w∣∣22ξ
根据KKT条件中的松弛互补条例:
α
i
[
y
i
(
w
T
x
i
+
b
)
−
1
]
=
0
\alpha ^{i}[y^{i}(\mathbf{w}^{T}\mathbf{x}^{i}+b)-1]= 0
αi[yi(wTxi+b)−1]=0
支持向量的寻找分为以下几种情况:
A.如果
α
=
0
\alpha=0
α=0,那么:
y
i
(
w
T
x
i
+
b
)
−
1
⩾
0
y^{i}(\mathbf{w}^{T}\mathbf{x}^{i}+b)-1\geqslant 0
yi(wTxi+b)−1⩾0
样本在间隔边界或被正确分类。
B.如果
0
<
α
<
C
0<\alpha<C
0<α<C,则:
y
i
(
w
T
x
i
+
b
)
−
1
=
0
ξ
i
=
0
y^{i}(\mathbf{w}^{T}\mathbf{x}^{i}+b)-1= 0\\\xi ^{i}=0
yi(wTxi+b)−1=0ξi=0
样本在间隔边界。
C.如果
α
=
C
\alpha =C
α=C,则此样本为异常点,需要分情况讨论:
a.当
0
<
ξ
<
1
0<\xi <1
0<ξ<1,异常点被正确分类,但是位于超平面和自己类别的间隔边界之间。
b.当
ξ
=
1
\xi =1
ξ=1,异常点在分离超平面上,无法被正确分类。
c.当
ξ
>
1
\xi >1
ξ>1,异常点在超平面的另一侧,也就是说,这个点不能被正常分类。
(5)合页损失函数
线性SVM的另一种解释为:
min
w
,
b
[
1
−
y
i
(
w
T
x
i
+
b
)
]
+
λ
∣
∣
w
∣
∣
2
2
\min_{\mathbf{w},b}[1-y^{i}(\mathbf{w^{T}x^{i}}+b)]+\lambda ||\mathbf{w}||_{2}^{2}
w,bmin[1−yi(wTxi+b)]+λ∣∣w∣∣22
令:
L
=
[
z
]
+
=
[
1
−
y
i
(
w
T
x
i
+
b
)
]
+
L=[z]_{+}=[1-y^{i}(\mathbf{w^{T}x^{i}}+b)]_{+}
L=[z]+=[1−yi(wTxi+b)]+
其中:
[
z
]
+
=
{
z
,
z
>
0
0
,
z
⩽
0
[z]_{+}=\left\{\begin{matrix} z,z>0\\ 0,z\leqslant 0 \end{matrix}\right.
[z]+={z,z>00,z⩽0
函数
L
L
L被称为合页损失函数,它表示如果样本被正确分类且间隔距离大于1,损失为0;否则,损失为:
1
−
y
i
(
w
T
x
i
+
b
)
1-y^{i}(\mathbf{w^{T}x^{i}}+b)
1−yi(wTxi+b)
3.非线性SVM之核函数
(1)从低维到高维
考虑只含两个变量的多项式:
h
(
x
1
,
x
2
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
θ
3
x
1
2
+
θ
4
x
2
2
+
θ
5
x
1
x
2
h(x_{1},x_{2})=\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+\theta _{3}x_{1}^{2}+\theta _{4}x_{2}^{2}+\theta _{5}x_{1}x_{2}
h(x1,x2)=θ0+θ1x1+θ2x2+θ3x12+θ4x22+θ5x1x2
该多项式在二维空间不可分,但是,如果令:
x
3
=
1
2
,
x
4
=
x
2
2
,
x
5
=
x
1
x
2
x_{3}=_{1}^{2},x_{4}=x_{2}^{2},x_{5}=x_{1}x_{2}
x3=12,x4=x22,x5=x1x2
则不等式变为:
h
(
x
)
=
θ
1
x
1
+
θ
2
x
2
+
θ
3
x
3
+
θ
4
x
4
+
θ
5
x
5
h(x)=\theta _{1}x_{1}+\theta _{2}x_{2}+\theta _{3}x_{3}+\theta _{4}x_{4}+\theta _{5}x_{5}
h(x)=θ1x1+θ2x2+θ3x3+θ4x4+θ5x5
此时,多项式在五维空间线性可分。
(2)核函数的引入
当数据在低维不可分时,SVM通过核函数数将数据映射到高维,使数据在高维可分,此时,约束优化问题变为:
min
α
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
∑
i
=
1
m
α
i
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
0
⩽
α
i
⩽
C
\min_{\alpha }\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}K(\mathbf{x}^{i},\mathbf{x}^{j})\sum_{i=1}^{m}\alpha ^{i}\\ s.t. \sum_{i=1}^{m}\alpha ^{i}y^{i}=0\\ 0\leqslant \alpha ^{i}\leqslant C
αmin21i=1∑mj=1∑mαiαjyiyjK(xi,xj)i=1∑mαis.t.i=1∑mαiyi=00⩽αi⩽C
其中,
K
(
x
i
,
x
j
)
=
Φ
(
x
i
)
⋅
Φ
(
x
j
)
K(\mathbf{x}^{i},\mathbf{x}^{j})=\Phi(\mathbf{x}^{i})\cdot \Phi(\mathbf{x}^{j})
K(xi,xj)=Φ(xi)⋅Φ(xj)为核函数。
(3)常用核函数
a.线性核函数
K
(
x
i
,
x
j
)
=
(
x
i
)
T
x
j
K(\mathbf{x}^{i},\mathbf{x}^{j})=(\mathbf{x}^{i})^{T}\mathbf{x}^{j}
K(xi,xj)=(xi)Txj
本质为线性SVM,可通过核函数将其归类到此。
b.多项式核函数
K
(
x
i
,
x
j
)
=
[
α
(
x
i
)
T
x
j
+
β
]
γ
K(\mathbf{x}^{i},\mathbf{x}^{j})=[\alpha (\mathbf{x}^{i})^{T}\mathbf{x}^{j}+\beta ]^{\gamma }
K(xi,xj)=[α(xi)Txj+β]γ
其中,
α
,
β
,
γ
,
\alpha ,\beta ,\gamma ,
α,β,γ,需要调参。
多项式核函数是最常用的线性不可分核函数之一。
c.高斯核函数
K
(
x
i
,
x
j
)
=
exp
[
−
γ
∣
∣
x
i
−
x
j
∣
∣
2
]
K(\mathbf{x}^{i},\mathbf{x}^{j})=\exp[-\gamma ||\mathbf{x}^{i}-\mathbf{x}^{j}||^{2}]
K(xi,xj)=exp[−γ∣∣xi−xj∣∣2]
d.tanh核函数
K
(
x
i
,
x
j
)
=
tanh
(
α
(
x
i
)
T
x
j
+
γ
)
K(\mathbf{x}^{i},\mathbf{x}^{j})=\tanh(\alpha (\mathbf{x}^{i})^{T}\mathbf{x}^{j}+\gamma )
K(xi,xj)=tanh(α(xi)Txj+γ)
(4)SVM算法流程
输入:
m
m
m个样本,每个样本有
n
n
n维特征和一个二类别标签
y
y
y。
输出:样本的预测值。
a.选择适当的核函数
K
(
x
i
,
x
j
)
K(\mathbf{x}^{i},\mathbf{x}^{j})
K(xi,xj)和惩罚系数
C
>
0
C>0
C>0,构造约束优化问题:
min
α
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
∑
i
=
1
m
α
i
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
0
⩽
α
i
⩽
C
\min_{\alpha }\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}K(\mathbf{x}^{i},\mathbf{x}^{j})\sum_{i=1}^{m}\alpha ^{i}\\ s.t. \sum_{i=1}^{m}\alpha ^{i}y^{i}=0\\ 0\leqslant \alpha ^{i}\leqslant C
αmin21i=1∑mj=1∑mαiαjyiyjK(xi,xj)i=1∑mαis.t.i=1∑mαiyi=00⩽αi⩽C
b.用SMO算法得到
α
\alpha
α的值
α
∗
\alpha ^{*}
α∗。
c.求解系数
w
\mathbf{w}
w:
w
∗
=
∑
i
=
1
m
α
i
∗
y
i
Φ
(
x
i
)
\mathbf{w}^{*}=\sum_{i=1}^{m}\alpha ^{i*}y^{i}\Phi (\mathbf{x}^{i})
w∗=i=1∑mαi∗yiΦ(xi)
d.通过
0
<
α
i
<
0
0<\alpha ^{i}<0
0<αi<0找到所有的支持向量,通过
y
i
[
(
w
∗
)
T
Φ
(
x
i
)
+
b
]
=
1
y^{i}[(\mathbf{w}^{*})^{T}\Phi (\mathbf{x}^{i})+b]=1
yi[(w∗)TΦ(xi)+b]=1计算出所有的支持向量的偏置:
b
i
∗
=
y
i
−
(
w
∗
)
T
Φ
(
x
i
)
b^{i*}=y^{i}-(\mathbf{w}^{*})^{T}\Phi (\mathbf{x}^{i})
bi∗=yi−(w∗)TΦ(xi)
去平均值作为超平面的偏置:
b
∗
=
1
∣
D
∣
∑
x
i
∈
D
b
i
∗
b^{*}=\frac{1}{|D|}\sum_{x^{i}\in D}b^{i*}
b∗=∣D∣1xi∈D∑bi∗
e.最终,得分类超平面:
(
w
∗
)
T
x
+
b
∗
=
0
(\mathbf{w}^{*})^{T}\mathbf{x}+b^{*}=0
(w∗)Tx+b∗=0
分类决策函数:
f
(
x
)
=
s
i
g
n
[
(
w
∗
)
T
x
+
b
∗
]
f(x)=sign[(\mathbf{w}^{*})^{T}\mathbf{x}+b^{*}]
f(x)=sign[(w∗)Tx+b∗]
4.SOM算法简介
SMO中每次优化两个变量,将除这两个变量之外的变量都视为常量。
5.SVM线性支持回归
SVM不仅可用来分类,也可以用来进行回归。
6.sklearn实现SVM
(1)数据预处理
导入数据集,划分数据集,数据标准化
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
digits = load_digits()
x,y=digits.data,digits.target
std = StandardScaler()
x = std.fit_transform(x)
x_train,x_test,y_train,y_test = train_test_split(x,y)
print(x_train.shape,x_test.shape)
输出:
(1347, 64) (450, 64)
(2)预测和评价
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
model = SVC(kernel='linear')
model.fit(x_train,y_train)
y_pred=model.predict(x_test)
print(accuracy_score(y_pred,y_test))
输出:
0.9822222222222222