文章目录
0 前言
这篇博客中公式比较多,可能比较乏味,但是有些细节还是很有意思的,所以做了笔记以供后续查阅,如果遇到不懂得,建议先当做定理记住往下看,通读全文有个大概的了解,再回过头来思考,可能就会明白。由于水平有限,可能会有错误,欢迎指正。
1 线性可分和线性不可分
线性可分指的是可以用一个线性函数将两类样本分开(注意这里是线性函数),比如在二维空间中的直线,三维空间中的平面以及高维空间中的超平面。这里指的可分是没有一丝误差的分开,线性不可分指的就是部分样本用线性分类面划分时会产生分类错误的现象。
2 支持向量与间隔
下图中两个平行虚线之间的距离叫做间隔(Margin),两个平行虚线插到的向量叫做支持向量(Support Vector)。
定义:
(1)、训练数据和标签(x1,y1),(x2,y2)…(xN,yN).其中x表示向量(可能很多维),y为标签∈{+1,-1}。
(2)、线性模型
对于参数(W,b),其中W也是一个向量,维度和(1)的x维度一样,b为常数。
W
T
X
W^{T}X
WTX+b=0表示一个超平面(Hyperplane)。
(3)、一个训练集线性可分是指对训练集{[xi,yi]}, 其中i=1~N,∃(W,b)使得对∀的
i=1~N,有
(a)若yi=+1,则WTXi+b≥0
(b)若yi=-1,则WTXi+b<0
则有
y
i
[
W
T
X
i
+
b
]
≥
0
(1)
y_i[W^{T}X_i+b]≥0 \tag{1}
yi[WTXi+b]≥0(1)
3 支持向量机的优化问题(凸优化问题,二次规划问题):
最小化(如果看不懂,就先当公式记着,往下看,后面会有解释):
1
2
∣
∣
W
∣
∣
2
(2)
\frac{1}{2}||W||^{2} \tag{2}
21∣∣W∣∣2(2)
等于
1
2
{1\over2}
21(w12+w22+…+wm2).
限制条件(Subject to):
y
i
[
W
T
x
i
+
b
]
≥
0.
y_i[W^Tx_i+b]≥ 0.
yi[WTxi+b]≥0.其中(i=1~N).
4 二次规划(Quadratic Programming):
(1)、目标函数(Objective Function)二次项
(2)、限制条件一次项
这种情况下,要么无解,要么只有一个极小值。
事实1:
W
T
W^{T}
WTX+b=0与a
W
T
W^{T}
WTX+ab=0是同一平面,a∈
R
+
R^{+}
R+。若(W,b)满足公式1,则(aW,ab)也满足公式1.
事实2:点到平面的距离公式。
平面:W1x+W2y+b=0.
则(x0,y0)到此平面的距离公式为:
d
=
∣
W
1
x
0
+
W
2
y
0
+
b
∣
W
1
2
+
W
2
2
d= \frac{|W_1x_0+W_2y_0+b|}{\sqrt{W_1^2+W_2^2}}
d=W12+W22∣W1x0+W2y0+b∣
在高维情况下,向量x0到超平面
W
T
W^{T}
WTx+b=0的距离:
d
=
∣
W
T
x
0
+
b
∣
∣
∣
W
∣
∣
d= \frac{|W^Tx_0+b|}{||W||}
d=∣∣W∣∣∣WTx0+b∣
其中||W||等于
w
1
1
+
w
2
2
+
.
.
.
+
w
m
2
\sqrt{w_1^1+w_2^2+...+w_m^2}
w11+w22+...+wm2
我们可以用a去缩放
(
W
,
b
)
−
−
>
(
a
W
,
a
b
)
(W,b)-->(aW,ab)
(W,b)−−>(aW,ab)
最终使在支持向量x0上有:
∣
W
T
x
0
+
b
∣
=
1
|W^Tx_0+b|=1
∣WTx0+b∣=1
此时支持向量与平面距离:
d
=
1
∣
∣
W
∣
∣
d=\frac{1}{||W||}
d=∣∣W∣∣1
在这里可以看到,SVM就是要最大化
d
d
d,其实就是最小化
∣
∣
W
∣
∣
2
||W||^2
∣∣W∣∣2,而公式(2)乘上
1
2
\frac{1}{2}
21变成最小化
1
2
∣
∣
W
∣
∣
2
\frac{1}{2}||W||^2
21∣∣W∣∣2,只是为了后期求导方便,对结果没有影响。
5 SVM处理非线性
在SVM中可能会存在一些噪声使优化问题不可解,解决办法就是利用松弛变量允许一些点不满足原先的要求,即约束条件中增加一个松弛项参数,变成
①最小化:
1
2
∣
∣
W
∣
∣
2
+
C
∑
i
=
1
n
ε
i
.
(3)
{1\over2}||W||^2+C\sum_{i=1}^{n}\varepsilon_i.\tag{3}
21∣∣W∣∣2+Ci=1∑nεi.(3)
限制条件:
(1)、
y
i
[
W
T
x
i
+
b
]
≥
1
−
ε
i
.
y_i[W^Tx_i+b]≥1-\varepsilon_i.
yi[WTxi+b]≥1−εi.(i=1~N).
其中公式(3)中的
C
∑
i
=
1
n
ε
i
C\sum_{i=1}^{n}\varepsilon_i
C∑i=1nεi叫做正则项(Regulation Term),
ε
i
\varepsilon_i
εi叫做松弛变量(Slack Variable),C为事先是定的参数(我理解为超参数)。
(2)、
ε
i
≥
0.
\varepsilon_i≥0.
εi≥0.
可以看到,
ε
i
\varepsilon_i
εi为无穷大时,限制条件(1)肯定成立,所以在最小化的时候将
ε
i
\varepsilon_i
εi加入到目标函数,防止
ε
i
\varepsilon_i
εi特别大。这样在优化的时候就会使Margin尽可能大,每个
ε
i
\varepsilon_i
εi尽可能的小。
②高维映射
φ
(
x
)
\varphi(x)
φ(x).
x
−
>
φ
(
x
)
x->\varphi(x)
x−>φ(x)其中x为低维数据,
φ
(
x
)
\varphi(x)
φ(x)为高维数据.
这么做的原因是在现实任务中,有些样本空间也许不存在一个超平面可以把数据线性分开,例如下图中的异或问题,所以将低维映射成高维,再找一个超平面就可以将数据线性分开,下面为将一个低维数据映射成高维数据后,原本线性不可分变为线性可分的例子。
在上图中x1=[0,0]T
∈
\in
∈C1,x2=[1,1]T
∈
\in
∈C1,x3=[1,0]T
∈
\in
∈C2,x4=[0,1]T
∈
\in
∈C2,此时是找不到一条直线将这两类分开,将x进行
φ
(
x
)
\varphi(x)
φ(x)的映射可得:
x
=
[
a
,
b
]
T
−
>
φ
(
x
)
=
[
a
2
,
b
2
,
a
,
b
,
a
b
]
T
.
x=[a,b]^T ->\varphi(x)=[a^2,b^2,a,b,ab]^T.
x=[a,b]T−>φ(x)=[a2,b2,a,b,ab]T.
此时
φ
(
x
1
)
=
[
0
,
0
,
0
,
0
,
0
]
T
∈
C
1
,
φ
(
x
2
)
=
[
1
,
1
,
1
,
1
,
1
]
T
∈
C
1
,
φ
(
x
3
)
=
[
1
,
0
,
1
,
0
,
0
]
T
∈
C
2
,
φ
(
x
4
)
=
[
0
,
1
,
0
,
1
,
0
]
T
∈
C
2
.
\varphi(x_1)=[0,0,0,0,0]^T\in C_1,\varphi(x_2)=[1,1,1,1,1]^T\in C_1,\varphi(x_3)=[1,0,1,0,0]^T \in C_2,\varphi(x_4)=[0,1,0,1,0]^T\in C_2.
φ(x1)=[0,0,0,0,0]T∈C1,φ(x2)=[1,1,1,1,1]T∈C1,φ(x3)=[1,0,1,0,0]T∈C2,φ(x4)=[0,1,0,1,0]T∈C2.当
W
=
[
−
1
,
−
1
,
−
1
,
−
1
,
6
]
T
W=[-1,-1,-1,-1,6]^T
W=[−1,−1,−1,−1,6]T,b=1时(W,b不唯一),此时
W
T
φ
(
x
1
)
+
b
=
1
∈
C
1
W^T\varphi(x_1)+b=1\in C_1
WTφ(x1)+b=1∈C1,
W
T
φ
(
x
2
)
+
b
=
3
∈
C
1
W^T\varphi(x_2)+b=3\in C_1
WTφ(x2)+b=3∈C1,
W
T
φ
(
x
3
)
+
b
=
−
1
∈
C
2
W^T\varphi(x_3)+b=-1\in C_2
WTφ(x3)+b=−1∈C2,
W
T
φ
(
x
4
)
+
b
=
−
1
∈
C
2
W^T\varphi(x_4)+b=-1\in C_2
WTφ(x4)+b=−1∈C2
就可以被线性分开。
结论:如果原始空间是有限维,即属性有限,那么一定存在一个高维特征空间使样本线性可分,换句话说,在低维空间线性不可分的数据到高维空间里面将会以很大的概率被线性分开,这就是SVM引入
φ
(
x
)
\varphi(x)
φ(x)将低维数据映射成高维数据的原因。
这就迎来了新的问题,当
φ
(
x
)
\varphi(x)
φ(x)为无限维时,超平面的W也要为无限维,所以就引入了核函数。
6 核函数
引入核函数的原因就是可以不知道无限维映射
φ
(
x
)
\varphi(x)
φ(x)的显示表达式的情况下,只要知道一个核函数(Kernel Function)
K
(
x
1
,
x
2
)
=
φ
(
x
1
)
T
φ
(
x
2
)
.
K(x_1, x_2)=\varphi(x_1)^T\varphi(x_2).
K(x1,x2)=φ(x1)Tφ(x2).
SVM的优化问题仍然可解.
6.1 常用核函数
6.1.1 高斯核
K ( x 1 , x 2 ) = e − ∣ ∣ x 1 − x 2 ∣ ∣ 2 2 σ 2 = φ ( x 1 ) T φ ( x 2 ) . K(x_1,x_2)=e^{-{||x_1-x_2||^2}\over{2\sigma^2}}=\varphi(x_1)^T\varphi(x_2). K(x1,x2)=e2σ2−∣∣x1−x2∣∣2=φ(x1)Tφ(x2).
6.1.2 多项式核:
K ( x 1 , x 2 ) = ( x 1 T x 2 + 1 ) d = φ ( x 1 ) T φ ( x 2 ) . K(x_1,x_2)=(x_1^Tx_2+1)^d=\varphi(x_1)^T\varphi(x_2). K(x1,x2)=(x1Tx2+1)d=φ(x1)Tφ(x2).其中d表示多项式阶数。
6.1.3 K ( x 1 , x 2 ) K(x_1,x_2) K(x1,x2)能写成 φ ( x 1 ) T φ ( x 2 ) \varphi(x_1)^T\varphi(x_2) φ(x1)Tφ(x2)的充要条件(Mercer’s Theorem):
1.K(x1,x2)=K(x2,x1)(交换性).
2.∀Ci(常数),xi(向量),有:
∑
i
=
1
n
∑
j
=
1
n
C
i
C
j
K
(
x
i
,
x
j
)
≥
0.
\sum_{i=1}^{n}\sum_{j=1}^{n}C_iC_jK(x_i,x_j)≥0.
i=1∑nj=1∑nCiCjK(xi,xj)≥0.这个叫做半正定性.
满足这两个条件时就可以将低维特征进行高维映射,优化问题将变为:
最小化:
1
2
∣
∣
W
∣
∣
2
+
C
∑
i
=
1
n
ε
i
.
{1 \over 2} ||W||^2+C\sum_{i=1}^{n}\varepsilon_i.
21∣∣W∣∣2+C∑i=1nεi.
限制条件:
y
i
[
W
T
φ
(
x
i
)
+
b
]
≥
1
−
ε
i
.
y_i[W^T\varphi(x_i)+b]≥1-\varepsilon_i.
yi[WTφ(xi)+b]≥1−εi.(i=1~N)
就是将原限制条件的
x
i
x_i
xi替换为
φ
(
x
i
)
\varphi(x_i)
φ(xi).
7 优化理论相关知识:
7.1 原问题(Prime Problem):
最小化:f(w).
限制条件:
gi(w)≤0,(i=1~K).
hi(w)=0,(i=1~M).
这是非常具有普适性的,当函数f(w)变为-f(w)时,这个就变成了最大化的问题,限制条件加个负号也可以改变成≥的。
7.2 对偶问题(Dual Problem):
①定义:
L
(
ω
,
α
,
β
)
L(\omega,\alpha,\beta)
L(ω,α,β)
L
(
ω
,
α
,
β
)
=
f
(
w
)
+
∑
i
=
1
k
α
i
g
i
(
w
)
+
∑
i
=
1
m
β
i
h
i
(
w
)
L(\omega,\alpha,\beta)=f(w)+\sum_{i=1}^{k}\alpha_ig_i(w)+\sum_{i=1}^{m}\beta_ih_i(w)
L(ω,α,β)=f(w)+i=1∑kαigi(w)+i=1∑mβihi(w)
这里的
α
i
\alpha_i
αi和
β
i
\beta_i
βi的维度原问题
g
i
g_i
gi和
h
i
h_i
hi是一样的。也可以写为向量的形式:
=
f
(
w
)
+
α
T
g
(
w
)
+
β
T
h
(
w
)
.
=f(w)+\alpha^Tg(w)+\beta^Th(w).
=f(w)+αTg(w)+βTh(w).
②对偶问题定义:
最大化:
θ
(
α
,
β
)
=
i
n
f
{
L
(
ω
,
α
,
β
)
}
\theta(\alpha,\beta)=inf{\{L(\omega,\alpha,\beta)}\}
θ(α,β)=inf{L(ω,α,β)},
i
n
f
{
}
inf\{\}
inf{}是求{}里函数的最小值,表示在限定
α
,
β
\alpha,\beta
α,β的情况下,遍历所有的
ω
\omega
ω求
L
(
ω
,
α
,
β
)
L(\omega,\alpha,\beta)
L(ω,α,β)的最小值。就是每确定一个
α
,
β
\alpha,\beta
α,β都可以遍历
ω
\omega
ω求出函数
L
(
ω
,
α
,
β
)
L(\omega,\alpha,\beta)
L(ω,α,β)最小值,然后在这些最小值里面确定一个
θ
(
α
,
β
)
\theta(\alpha,\beta)
θ(α,β)最大值,而
θ
(
α
,
β
)
\theta(\alpha,\beta)
θ(α,β)也只是和
α
,
β
\alpha,\beta
α,β这两个参数有关,这里有点绕,就是从一些确定的最小值里面找最大值。
限制条件:
α
i
≥
0.
\alpha_i≥0.
αi≥0.(i=1~K)
原问题与对偶问题的关系:
定理:如果
ω
∗
\omega^*
ω∗是原问题的解,而
α
∗
,
β
∗
\alpha^*,\beta^*
α∗,β∗是对偶问题的解,则有:
f
(
ω
∗
)
≥
θ
(
α
∗
,
β
∗
)
.
f(\omega^*)≥\theta(\alpha^*,\beta^*).
f(ω∗)≥θ(α∗,β∗).
因为:
θ
(
α
∗
,
β
∗
)
=
i
n
f
{
L
(
ω
,
α
∗
,
β
∗
)
}
≤
L
(
ω
∗
,
α
∗
,
β
∗
)
:
\theta(\alpha^*,\beta^*)=inf\{L(\omega,\alpha^*,\beta^*)\}≤L(\omega^*,\alpha^*,\beta^*):
θ(α∗,β∗)=inf{L(ω,α∗,β∗)}≤L(ω∗,α∗,β∗):
L
(
ω
∗
,
α
∗
,
β
∗
)
=
f
(
ω
∗
)
+
∑
i
=
1
K
α
i
∗
g
i
(
w
∗
)
+
∑
i
=
1
M
β
i
∗
h
i
(
w
∗
)
.
L(\omega^*,\alpha^*,\beta^*)=f(\omega^*)+\sum_{i=1}^{K}\alpha_i^*g_i(w^*)+\sum_{i=1}^{M}\beta_i^*h_i(w^*).
L(ω∗,α∗,β∗)=f(ω∗)+i=1∑Kαi∗gi(w∗)+i=1∑Mβi∗hi(w∗).
其中
α
i
∗
≥
0
,
g
i
∗
≤
0
,
∑
i
=
1
M
β
i
∗
h
i
(
w
∗
)
=
0
,
\alpha_i^*≥0,g_i^*≤0,\sum_{i=1}^{M}\beta_i^*h_i(w^*)=0,
αi∗≥0,gi∗≤0,∑i=1Mβi∗hi(w∗)=0,所以
L
(
ω
∗
,
α
∗
,
β
∗
)
≤
f
(
ω
∗
)
.
L(\omega^*,\alpha^*,\beta^*)≤f(\omega^*).
L(ω∗,α∗,β∗)≤f(ω∗).
定义:
G
=
f
(
ω
∗
)
−
θ
(
α
∗
,
β
∗
)
≥
0.
G
G=f(\omega^*)-\theta(\alpha^*,\beta^*)≥0.G
G=f(ω∗)−θ(α∗,β∗)≥0.G叫做原问题与对偶问题的间距(Duality Gap).对于某些特定优化问题,可以证明G=0.
7.3 强对偶定理:
若 f ( w ) f(w) f(w)为凸函数,且 g ( w ) = A W + b , h ( w ) = C W + d g(w)=AW+b,h(w)=CW+d g(w)=AW+b,h(w)=CW+d, g ( w ) g(w) g(w)和 h ( w ) h(w) h(w)都为线性函数,则此优化问题的原问题与对偶问题的间距为0,即:
f ( w ∗ ) = θ ( α ∗ , β ∗ ) . f(w^*)=\theta(\alpha^*,\beta^*). f(w∗)=θ(α∗,β∗).
8 KKT条件
当想要 L ( ω ∗ , α ∗ , β ∗ ) = f ( ω ∗ ) L(\omega^*,\alpha^*,\beta^*)=f(\omega^*) L(ω∗,α∗,β∗)=f(ω∗)时,对∀的i=1~K, α i ∗ = 0 \alpha_i^*=0 αi∗=0或 g i ∗ ( w ∗ ) = 0. g_i^*(w^*)=0. gi∗(w∗)=0.
9 SVM的优化原问题化为对偶问题:
9.1 SVM原问题:
最小化:
1
2
∣
∣
W
∣
∣
2
+
C
∑
i
=
1
n
ε
i
.
{1\over2}||W||^2+C\sum_{i=1}^{n}\varepsilon_i.
21∣∣W∣∣2+Ci=1∑nεi.
限制条件:
①
y
i
[
W
T
φ
(
x
i
)
+
b
]
≥
1
−
ε
i
.
y_i[W^T\varphi(x_i)+b]≥1-\varepsilon_i.
yi[WTφ(xi)+b]≥1−εi.
②
ε
i
≥
0.
\varepsilon_i≥0.
εi≥0.
此时SVM的原问题要和原问题的限制条件做对应,对SVM的原问题进行改造:
最小化:
1
2
∣
∣
W
∣
∣
2
−
C
∑
i
=
1
n
ε
i
.
{1\over2}||W||^2-C\sum_{i=1}^{n}\varepsilon_i.
21∣∣W∣∣2−Ci=1∑nεi.
限制条件:
①
1
+
ε
i
−
y
i
W
T
φ
(
x
i
)
−
y
i
b
≤
0.
1+\varepsilon_i-y_iW^T\varphi(x_i)-y_ib≤0.
1+εi−yiWTφ(xi)−yib≤0.(就是
ε
i
\varepsilon_i
εi加个负号,然后移到等式一边)
②
ε
i
≤
0.
\varepsilon_i≤0.
εi≤0.
注意:此时原问题的gi(w)≤0对应这里的①和②,没有hi(w)=0.
9.2 SVM的对偶问题:
最大化:
θ
(
α
,
β
)
=
i
n
f
{
1
2
∣
∣
w
∣
∣
2
−
C
∑
i
=
1
N
ε
i
+
∑
i
=
1
N
β
i
ε
i
+
∑
i
=
1
N
α
i
[
1
+
ε
i
−
y
i
W
T
φ
(
x
i
)
−
y
i
b
]
}
\theta(\alpha,\beta)=inf\{\frac{1}{2}||w||^2-C\sum_{i=1}^{N}\varepsilon_i+\sum_{i=1}^{N}\beta_i\varepsilon_i+\sum_{i=1}^{N}\alpha_i[1+\varepsilon_i-y_iW^T\varphi(x_i)-y_ib]\}
θ(α,β)=inf{21∣∣w∣∣2−Ci=1∑Nεi+i=1∑Nβiεi+i=1∑Nαi[1+εi−yiWTφ(xi)−yib]}
大括号里的值就等于
L
(
ω
,
ε
i
,
b
)
L(\omega,\varepsilon_i,b)
L(ω,εi,b).原问题的参数w对应到SVM的原问题参数就为
ω
,
ε
i
\omega,\varepsilon_i
ω,εi和b.前两项就是照抄最小化原函数,后面两项是对偶问题的
∑
i
=
1
K
α
i
∗
g
i
(
w
∗
)
\sum_{i=1}^{K}\alpha_i^*g_i(w^*)
∑i=1Kαi∗gi(w∗),没有
∑
i
=
1
m
β
i
h
i
(
w
)
.
\sum_{i=1}^{m}\beta_ih_i(w).
∑i=1mβihi(w).
对
L
(
ω
,
ε
i
,
b
)
L(\omega,\varepsilon_i,b)
L(ω,εi,b)进行求导得:
∂
L
∂
ω
=
0
−
>
ω
=
∑
i
=
1
N
α
i
y
i
φ
(
x
i
)
.
\frac{\partial{L}}{\partial{\omega} }=0->\omega=\sum_{i=1}^{N}\alpha_iy_i\varphi(x_i).
∂ω∂L=0−>ω=i=1∑Nαiyiφ(xi).
∂
L
∂
ε
i
=
0
−
>
β
i
+
α
i
=
C
.
\frac{\partial{L}}{\partial{\varepsilon_i} }=0->\beta_i+\alpha_i=C.
∂εi∂L=0−>βi+αi=C.
∂
L
∂
b
=
0
−
>
∑
i
=
1
N
α
i
β
i
.
\frac{\partial{L}}{\partial{b} }=0->\sum_{i=1}^{N}\alpha_i\beta_i.
∂b∂L=0−>i=1∑Nαiβi.
其中:
若
f
(
w
)
=
1
2
∣
∣
w
∣
∣
2
f(w)=\frac{1}{2}||w||^2
f(w)=21∣∣w∣∣2,则
∂
F
∂
ω
=
ω
\frac{\partial{F}}{\partial{\omega} }=\omega
∂ω∂F=ω.
若
f
(
w
)
=
W
T
X
,
f(w)=W^TX,
f(w)=WTX,则
∂
F
∂
W
=
X
.
\frac{\partial{F}}{\partial{W} }=X.
∂W∂F=X.
将求导得到的值带入
θ
(
α
,
β
)
\theta(\alpha,\beta)
θ(α,β),
θ
(
α
,
β
)
=
∑
i
=
1
N
α
i
+
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
1
N
α
i
y
i
w
T
φ
(
x
i
)
\theta(\alpha,\beta)=\sum_{i=1}^{N}\alpha_i+\frac{1}{2}||w||^2-\sum_{i=1}^{N}\alpha_iy_iw^T\varphi(x_i)
θ(α,β)=i=1∑Nαi+21∣∣w∣∣2−i=1∑NαiyiwTφ(xi)
其中:
1
2
∣
∣
w
∣
∣
2
=
1
2
w
T
w
=
1
2
(
∑
i
=
1
N
α
i
y
i
φ
(
x
i
)
)
T
(
∑
j
=
1
N
α
j
y
j
φ
(
x
j
)
)
\frac{1}{2}||w||^2=\frac{1}{2}w^Tw=\frac{1}{2}(\sum_{i=1}^{N}\alpha_iy_i\varphi(x_i))^T(\sum_{j=1}^{N}\alpha_jy_j\varphi(x_j))
21∣∣w∣∣2=21wTw=21(i=1∑Nαiyiφ(xi))T(j=1∑Nαjyjφ(xj))
=
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
φ
(
x
i
)
T
φ
(
x
j
)
.
=\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j\varphi(x_i)^T\varphi(x_j).
=21i=1∑Nj=1∑Nαiαjyiyjφ(xi)Tφ(xj).
注意:此时的
φ
(
x
i
)
T
φ
(
x
j
)
=
K
(
x
i
,
x
j
)
.
\varphi(x_i)^T\varphi(x_j)=K(x_i,x_j).
φ(xi)Tφ(xj)=K(xi,xj).
其中:
−
∑
i
=
1
N
α
i
y
i
w
T
φ
(
x
i
)
-\sum_{i=1}^{N}\alpha_iy_iw^T\varphi(x_i)
−i=1∑NαiyiwTφ(xi)
=
−
∑
i
=
1
N
α
i
y
i
(
∑
j
=
1
N
α
j
y
j
φ
(
x
j
)
)
T
= -\sum_{i=1}^{N}\alpha_iy_i(\sum_{j=1}^{N}\alpha_jy_j\varphi(x_j))^T
=−i=1∑Nαiyi(j=1∑Nαjyjφ(xj))T
=
−
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
φ
(
x
j
)
T
φ
(
x
i
)
.
=-\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j\varphi(x_j)^T\varphi(x_i).
=−i=1∑Nj=1∑Nαiαjyiyjφ(xj)Tφ(xi).
注意:此时也有
φ
(
x
j
)
T
φ
(
x
i
)
=
K
(
x
i
,
x
j
)
.
\varphi(x_j)^T\varphi(x_i)=K(x_i,x_j).
φ(xj)Tφ(xi)=K(xi,xj).
所以:
θ
(
α
,
β
)
=
θ
(
α
)
=
∑
i
=
1
N
α
i
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
j
α
j
y
i
y
j
K
(
x
i
,
x
j
)
.
\theta(\alpha,\beta)=\theta(\alpha)=\sum_{i=1}^{N}\alpha_i-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_j\alpha_jy_iy_jK(x_i,x_j).
θ(α,β)=θ(α)=i=1∑Nαi−21i=1∑Nj=1∑NαjαjyiyjK(xi,xj).
此时的限制条件为:
①0≤
α
i
\alpha_i
αi≤C.
②
∑
i
=
1
N
α
i
y
i
=
0.
\sum_{i=1}^{N}\alpha_iy_i=0.
∑i=1Nαiyi=0.
这里的
β
\beta
β是不出现的,限制条件①是由
α
i
\alpha_i
αi≥0,
β
\beta
β≥0,和
α
i
\alpha_i
αi+
β
i
\beta_i
βi=C合成的条件。
这是一个凸优化问题,同时使用SMO算法求解。
由于
ω
=
∑
i
=
1
N
α
i
y
i
φ
(
x
i
)
\omega=\sum_{i=1}^{N}\alpha_iy_i\varphi(x_i)
ω=∑i=1Nαiyiφ(xi),这样看来,想要求出
ω
\omega
ω好像还是要求出
φ
(
x
i
)
\varphi(x_i)
φ(xi),其实不用:
在测试时:
若
{
W
T
φ
(
x
i
)
+
b
≥
0
,
则
y
=
+
1
W
T
φ
(
x
i
)
+
b
<
0
,
则
y
=
−
1
(2)
若 \begin{cases} W^T\varphi(x_i)+b≥0,& 则y=+1\\ W^T\varphi(x_i)+b<0,& 则y=-1 \end{cases} \tag{2}
若{WTφ(xi)+b≥0,WTφ(xi)+b<0,则y=+1则y=−1(2)
求等式(2)中的
W
T
φ
(
x
)
W^T\varphi(x)
WTφ(x):
W
T
φ
(
x
)
=
∑
i
=
1
N
[
α
i
y
i
φ
(
x
i
)
]
T
φ
(
x
)
W^T\varphi(x)=\sum_{i=1}^{N}[\alpha_iy_i\varphi(x_i)]^T\varphi(x)
WTφ(x)=i=1∑N[αiyiφ(xi)]Tφ(x)
=
∑
i
=
1
N
α
i
y
i
φ
(
x
i
)
T
φ
(
x
)
=\sum_{i=1}^{N}\alpha_iy_i\varphi(x_i)^T\varphi(x)
=i=1∑Nαiyiφ(xi)Tφ(x)
=
∑
i
=
1
N
α
i
y
i
K
(
x
i
,
x
)
=\sum_{i=1}^{N}\alpha_iy_iK(x_i,x)
=i=1∑NαiyiK(xi,x)
求等式(2)中的b:
将KKT条件翻译过来:
∀的i=1~N,
①要么
β
i
=
0
,
要么
ε
i
=
0.
\beta_i=0,要么\varepsilon_i=0.
βi=0,要么εi=0.
②要么
α
i
=
0
\alpha_i=0
αi=0,要么
1
+
ε
i
−
y
i
W
T
φ
(
x
i
)
−
y
i
b
=
0.
1+\varepsilon_i-y_iW^T\varphi(x_i)-y_ib=0.
1+εi−yiWTφ(xi)−yib=0.
注意:KKT条件里的
α
i
∗
=
0
\alpha_i^*=0
αi∗=0对应这里的
α
i
=
0
\alpha_i=0
αi=0和
β
i
=
0
\beta_i=0
βi=0,KKT条件里的
g
i
∗
(
w
∗
)
=
0
g_i^*(w^*)=0
gi∗(w∗)=0对应这里的
ε
i
=
0
\varepsilon_i=0
εi=0和
1
+
ε
i
−
y
i
W
T
φ
(
x
i
)
−
y
i
b
=
0.
1+\varepsilon_i-y_iW^T\varphi(x_i)-y_ib=0.
1+εi−yiWTφ(xi)−yib=0.
取一个0<
α
i
<
C
−
>
β
i
\alpha_i<C->\beta_i
αi<C−>βi=C-
α
i
>
0.
\alpha_i>0.
αi>0.
此时
β
i
≠
0
−
>
ε
i
=
0.
\beta_i≠0->\varepsilon_i=0.
βi=0−>εi=0.
α
i
≠
0
−
>
1
+
ε
i
−
y
i
W
T
φ
(
x
i
)
−
y
i
b
=
0.
\alpha_i≠0->1+\varepsilon_i-y_iW^T\varphi(x_i)-y_ib=0.
αi=0−>1+εi−yiWTφ(xi)−yib=0.
b
=
1
−
y
i
W
T
φ
(
x
i
)
y
i
=
1
−
y
i
∑
j
=
1
N
α
i
y
i
K
(
x
i
,
x
j
)
y
i
b=\frac{1-y_iW^T\varphi(x_i)}{y_i}=\frac{1-y_i\sum_{j=1}^{N}\alpha_iy_iK(x_i,x_j)}{y_i}
b=yi1−yiWTφ(xi)=yi1−yi∑j=1NαiyiK(xi,xj)
此时可以取0<
α
i
\alpha_i
αi<C中的多个
α
i
\alpha_i
αi来求多个b,然后求一个b的平均值作为最终的结果b.
10 总结SVM的算法:
10.1 训练流程:
输入{(xi,yi)},i=1~N
(解优化问题)
最大化:
θ
(
α
)
=
∑
i
=
1
N
α
i
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
j
α
j
y
i
y
j
K
(
x
i
,
x
j
)
.
\theta(\alpha)=\sum_{i=1}^{N}\alpha_i-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_j\alpha_jy_iy_jK(x_i,x_j).
θ(α)=i=1∑Nαi−21i=1∑Nj=1∑NαjαjyiyjK(xi,xj).
限制条件:
①0≤
α
i
\alpha_i
αi≤C.
②
∑
i
=
1
N
α
i
y
i
=
0.
\sum_{i=1}^{N}\alpha_iy_i=0.
∑i=1Nαiyi=0.
算b,找一个0<
α
i
\alpha_i
αi<C,
b
=
1
−
y
i
∑
j
=
1
N
α
i
y
i
K
(
x
i
,
x
j
)
y
i
b=\frac{1-y_i\sum_{j=1}^{N}\alpha_iy_iK(x_i,x_j)}{y_i}
b=yi1−yi∑j=1NαiyiK(xi,xj)
10.2 测试流程:
输入:测试样本X.
若
{
∑
i
−
1
N
α
i
y
i
K
(
x
i
,
x
)
+
b
≥
0
,
则
y
=
+
1
∑
i
−
1
N
α
i
y
i
K
(
x
i
,
x
)
+
b
<
0
,
则
y
=
−
1
(3)
若 \begin{cases} \sum_{i-1}^{N}\alpha_iy_iK(x_i,x)+b≥0,& 则y=+1\\ \sum_{i-1}^{N}\alpha_iy_iK(x_i,x)+b<0,& 则y=-1 \end{cases} \tag{3}
若{∑i−1NαiyiK(xi,x)+b≥0,∑i−1NαiyiK(xi,x)+b<0,则y=+1则y=−1(3)
仔细看这里的训练和测试都只含K(xi,x),所有的
φ
(
x
i
)
\varphi(x_i)
φ(xi)都被消掉了。
参考:
1、浙江大学机器学习
2、西瓜书
3、https://blog.csdn.net/weixin_42764932/article/details/111357865