Contents
对于一个二分类问题
y
∈
{
1
,
−
1
}
y \in \{1, -1\}
y∈{1,−1} 我们希望用一个超平面
w
T
x
+
b
=
0
w^Tx + b = 0
wTx+b=0 来区分样本
h
(
x
)
=
s
i
g
n
(
w
T
x
+
b
)
h(x) = sign\left(w^Tx + b\right)
h(x)=sign(wTx+b)
Fisher 准则
样本空间中总有一个方向
w
w
w 使属于不同类别的样本在这一方向上的投影
z
=
w
T
x
z = w^Tx
z=wTx 分开得最好。对于类别
k
∈
{
1
,
−
1
}
k \in \{1, -1\}
k∈{1,−1} 定义下标集
η
k
=
{
i
∣
y
(
i
)
=
k
}
\eta_k = \{i|y^{(i)} = k\}
ηk={i∣y(i)=k}
由此定义样本均值
m
~
k
=
1
∣
η
k
∣
∑
i
∈
η
k
z
i
\widetilde m_k = \frac{1}{|\eta_k|}\sum\limits_{i \in \eta_k} z_i
m
k=∣ηk∣1i∈ηk∑zi
以及样本类内离散度
S
~
k
=
∑
i
∈
η
k
(
z
i
−
m
~
k
)
2
\widetilde S_k = \sum\limits_{i \in \eta_k} \left(z_i - \widetilde m_k\right)^2
S
k=i∈ηk∑(zi−m
k)2
我们希望每个类别的
S
k
S_k
Sk 尽量小,同时样本间的差距尽量大。由此构造准则函数
J
(
w
)
=
(
m
~
1
−
m
~
−
1
)
2
S
~
1
+
S
~
−
1
J(w) = \frac{\left(\widetilde m_1 - \widetilde m_{-1}\right)^2}{\widetilde S_1 + \widetilde S_{-1}}
J(w)=S
1+S
−1(m
1−m
−1)2
类似的可以在原样本空间中定义
符号 | 定义 | 备注 |
---|---|---|
m k m_k mk | 1 ∣ η k ∣ ∑ i ∈ η k x ( i ) \frac{1}{\vert\eta_k\vert}\sum\limits_{i \in \eta_k} x^{(i)} ∣ηk∣1i∈ηk∑x(i) | 样本均值向量 |
S k S_k Sk | ∑ i ∈ η k ( x ( i ) − m k ) ( x ( i ) − m k ) T \sum\limits_{i \in \eta_k} \left(x^{(i)} - m_k\right)\left(x^{(i)} - m_k\right)^T i∈ηk∑(x(i)−mk)(x(i)−mk)T | 样本类内离散度矩阵 |
S w S_w Sw | S 1 + S − 1 S_1 + S_{-1} S1+S−1 | 总类内离散度矩阵 |
S b S_b Sb | ( m 1 − m − 1 ) ( m 1 − m − 1 ) T \left(m_1 - m_{-1}\right)\left(m_1 - m_{-1}\right)^T (m1−m−1)(m1−m−1)T | 样本类间离散度矩阵 |
可以证明
J
(
w
)
=
w
T
S
b
w
T
w
T
S
w
w
J(w) = \frac{w^TS_bw^T}{w^TS_ww}
J(w)=wTSwwwTSbwT
应用广义瑞利商的性质可以证明1
w
∗
=
S
w
−
1
(
m
1
−
m
−
1
)
w^* = S_w^{-1}\left(m_1 - m_{-1}\right)
w∗=Sw−1(m1−m−1)
计算阈值时,可以采用经验公式
b
=
−
1
2
(
m
~
1
+
m
~
−
1
)
b = -\frac{1}{2}(\widetilde m_1 + \widetilde m_{-1})
b=−21(m
1+m
−1)
或者用贝叶斯分类器确定。
Support vector machine 希望找到一个超平面,使超平面两侧的空白区域达到最大。
Optimal Margin Classifier
假设
S
S
S 线性可分,可以认为
w
T
x
+
b
w^Tx+b
wTx+b 的绝对值反映了单次预测的可信度。定义 functional margin
γ
^
(
i
)
=
y
(
i
)
(
w
T
x
(
i
)
+
b
)
\hat\gamma^{(i)} = y^{(i)}(w^Tx^{(i)}+b)
γ^(i)=y(i)(wTx(i)+b)
如果
γ
^
(
i
)
>
0
\hat\gamma^{(i)} > 0
γ^(i)>0 则说明预测正确。而
γ
^
(
i
)
\hat\gamma^{(i)}
γ^(i) 越大,说明预测的可信度越高。定义样本集的 functional margin
γ
^
=
min
i
=
1
,
…
,
m
γ
^
(
i
)
\hat\gamma = \min\limits_{i=1,\dots,m}\hat\gamma^{(i)}
γ^=i=1,…,mminγ^(i)
则我们的目标可以表示为
max
w
,
b
γ
^
\max\limits_{w, b}{\hat\gamma}
w,bmaxγ^
但是如果
w
w
w 以一定比例增大
γ
^
\hat\gamma
γ^ 可以变得无穷大。因此我们还需要一个约束
∣
∣
w
∣
∣
=
1
||w|| = 1
∣∣w∣∣=1
但是这个问题并不是凸优化,因此定义 geometric margins
γ
(
i
)
=
y
(
i
)
(
(
w
∣
∣
w
∣
∣
)
T
x
(
i
)
+
b
∣
∣
w
∣
∣
)
γ
=
min
i
=
1
,
…
,
m
γ
(
i
)
\begin{array}{lcl} \gamma^{(i)} &=& y^{(i)}\left(\left(\frac{w}{||w||}\right)^Tx^{(i)}+\frac{b}{||w||}\right)\\ \gamma &=& \min\limits_{i=1,\dots,m}\gamma^{(i)} \end{array}
γ(i)γ==y(i)((∣∣w∣∣w)Tx(i)+∣∣w∣∣b)i=1,…,mminγ(i)
从几何角度考虑,
γ
(
i
)
\gamma^{(i)}
γ(i) 代表第 i 个样本到决策面的距离。因为距离决策面越远的点具有越高的可信度,所以原问题可以变为
max
w
,
b
γ
\max\limits_{w, b}{\gamma}
w,bmaxγ
但是现在目标函数不是凸函数,因此还是不能应用凸优化。不过 w 的长度可以任取而不影响目标函数值了,而总有一个系数可以使
γ
^
=
1
\hat\gamma = 1
γ^=1 成立。因此将原问题重述为
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s.t.
y
(
i
)
(
w
T
x
(
i
)
+
b
)
≥
1
,
i
=
1
,
…
,
m
\begin{array}{rll} \min\limits_{w, b} & \frac{1}{2}||w||^2 &\\ \text{s.t.} & y^{(i)}(w^Tx^{(i)}+b) \ge 1, & i=1,\dots,m \end{array}
w,bmins.t.21∣∣w∣∣2y(i)(wTx(i)+b)≥1,i=1,…,m
Soft Margin Classifier
对于线性不可分的
S
S
S 采用
l
1
l_1
l1 regularization 重述问题
min
w
,
b
,
ξ
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
s.t.
y
(
i
)
(
w
T
x
(
i
)
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
…
,
m
ξ
i
≥
0
,
i
=
1
,
…
,
m
\begin{array}{rll} \min\limits_{w, b, \xi} & \frac{1}{2}||w||^2 + C\sum\limits_{i=1}^m\xi_i&\\ \text{s.t.} & y^{(i)}(w^Tx^{(i)}+b) \ge 1 - \xi_i, & i=1,\dots,m\\ & \xi_i \ge 0, & i=1,\dots,m \end{array}
w,b,ξmins.t.21∣∣w∣∣2+Ci=1∑mξiy(i)(wTx(i)+b)≥1−ξi,ξi≥0,i=1,…,mi=1,…,m
构造 generalized Lagrangian
L
(
w
,
b
,
ξ
,
α
,
β
)
=
1
2
∣
∣
w
∣
∣
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(w,b,\xi,\alpha,\beta) = \frac{1}{2}||w||^2 + C\sum\limits_{i=1}^m\xi_i- \sum\limits_{i=1}^m \alpha_i[y^{(i)}(w^Tx^{(i)}+b)-1+\xi_i] - \sum\limits_{i=1}^m\beta_i\xi_i
L(w,b,ξ,α,β)=21∣∣w∣∣2+Ci=1∑mξi−i=1∑mαi[y(i)(wTx(i)+b)−1+ξi]−i=1∑mβiξi
容易验证
w
=
0
⃗
b
=
0
ξ
i
=
2
\begin{array}{rcl} w &=& \vec 0\\ b &=& 0\\ \xi_i &=& 2 \end{array}
wbξi===002
满足 the Slater’s condition,因此对偶问题与原问题有相同的最优解
max
α
,
β
θ
D
(
α
,
β
)
\begin{array}{rll} \max\limits_{\alpha, \beta} & \theta_D(\alpha, \beta) \end{array}
α,βmaxθD(α,β)
为了求
θ
D
(
α
,
β
)
=
min
w
,
b
,
ξ
L
\theta_D(\alpha, \beta) = \min\limits_{w, b, \xi}L
θD(α,β)=w,b,ξminL
对
L
L
L 求导得
∇
w
L
=
w
−
∑
i
=
1
m
α
i
y
(
i
)
x
(
i
)
=
0
∂
∂
b
L
=
−
∑
i
=
1
m
α
i
y
(
i
)
=
0
∂
∂
ξ
i
L
=
C
−
α
i
−
β
i
=
0
\begin{array}{rclcl} \nabla_wL &=& w-\sum\limits_{i=1}^m \alpha_iy^{(i)}x^{(i)} &=& 0\\ \frac{\partial}{\partial b}L &=& -\sum\limits_{i=1}^m \alpha_iy^{(i)} &=& 0\\ \frac{\partial}{\partial\xi_i}L &=& C-\alpha_i-\beta_i &=& 0 \end{array}
∇wL∂b∂L∂ξi∂L===w−i=1∑mαiy(i)x(i)−i=1∑mαiy(i)C−αi−βi===000
带入
L
L
L 可得对偶问题
max
α
,
β
∑
i
=
1
m
α
i
−
1
2
∑
i
,
j
=
1
m
y
(
i
)
y
(
j
)
α
i
α
j
⟨
x
(
i
)
,
x
(
j
)
⟩
s.t.
0
≤
α
i
≤
C
,
i
=
1
,
…
,
m
∑
i
=
1
m
α
i
y
(
i
)
=
0
\begin{array}{rll} \max\limits_{\alpha, \beta} & \sum\limits_{i=1}^m \alpha_i - \frac{1}{2}\sum\limits_{i,j=1}^m y^{(i)}y^{(j)}\alpha_i\alpha_j\langle x^{(i)}, x^{(j)}\rangle\\ \text{s.t.} & 0 \le \alpha_i \le C,\quad i=1,\dots,m\\ & \sum\limits_{i=1}^m \alpha_iy^{(i)} = 0 \end{array}
α,βmaxs.t.i=1∑mαi−21i,j=1∑my(i)y(j)αiαj⟨x(i),x(j)⟩0≤αi≤C,i=1,…,mi=1∑mαiy(i)=0
由 KKT complementary conditions 可以得到
a
i
∗
=
0
⇒
y
(
i
)
(
w
T
x
(
i
)
+
b
)
≥
1
0
<
a
i
∗
<
C
⇒
y
(
i
)
(
w
T
x
(
i
)
+
b
)
=
1
a
i
∗
=
C
⇒
y
(
i
)
(
w
T
x
(
i
)
+
b
)
≤
1
\begin{array}{rcl} a_i^* = 0 &\Rightarrow& y^{(i)}(w^Tx^{(i)}+b) \ge 1\\ 0 < a_i^* < C &\Rightarrow& y^{(i)}(w^Tx^{(i)}+b) = 1\\ a_i^* = C &\Rightarrow& y^{(i)}(w^Tx^{(i)}+b) \le 1\\ \end{array}
ai∗=00<ai∗<Cai∗=C⇒⇒⇒y(i)(wTx(i)+b)≥1y(i)(wTx(i)+b)=1y(i)(wTx(i)+b)≤1
SMO2
为了同时对
(
α
1
,
α
2
,
…
,
α
m
)
(\alpha_1, \alpha_2, \dots, \alpha_m)
(α1,α2,…,αm) 进行优化,最直观的想法是使用坐标上升。但是在这个问题中,等式条件
∑
i
=
1
m
α
i
y
(
i
)
=
0
\sum\limits_{i=1}^m \alpha_iy^{(i)} = 0
i=1∑mαiy(i)=0
在改变任何一个变量的值后都无法保持成立。因此 SMO 算法同时更新两个变量,以保持等式条件成立
repeat
{
Select some pair
(
α
i
,
α
j
)
to update by heuristic
Optimize
W
w.r.t.
(
α
i
,
α
j
)
}
\begin{aligned} &\text{repeat}\ \{\\ &\qquad \text{Select some pair }(\alpha_i,\alpha_j)\text{ to update by heuristic}\\ &\qquad\text{Optimize }W\text{ w.r.t. }(\alpha_i,\alpha_j)\\ &\} \end{aligned}
repeat {Select some pair (αi,αj) to update by heuristicOptimize W w.r.t. (αi,αj)}
其中
W
W
W 为优化的目标函数
W
=
∑
i
=
1
m
α
i
−
1
2
∑
i
,
j
=
1
m
y
(
i
)
y
(
j
)
α
i
α
j
⟨
x
(
i
)
,
x
(
j
)
⟩
W = \sum\limits_{i=1}^m \alpha_i - \frac{1}{2}\sum\limits_{i,j=1}^m y^{(i)}y^{(j)}\alpha_i\alpha_j\langle x^{(i)}, x^{(j)}\rangle
W=i=1∑mαi−21i,j=1∑my(i)y(j)αiαj⟨x(i),x(j)⟩
Solving for Two Lagrange Multipliers
设第一步中选取的优化变量为
(
α
1
,
α
2
)
(\alpha_1,\alpha_2)
(α1,α2) 令常数
ζ
≡
−
∑
i
=
3
m
α
i
y
(
i
)
=
α
1
y
(
1
)
+
α
2
y
(
2
)
\zeta \equiv -\sum\limits_{i=3}^m\alpha_iy^{(i)} = \alpha_1y^{(1)} + \alpha_2y^{(2)}
ζ≡−i=3∑mαiy(i)=α1y(1)+α2y(2)
则两个优化变量实际可以简化为一个
α
1
=
(
ζ
−
α
2
y
(
2
)
)
y
(
1
)
\alpha_1 = (\zeta-\alpha_2y^{(2)})y^{(1)}
α1=(ζ−α2y(2))y(1)
由此将原问题转化为单变量优化问题
α
2
:
=
arg
max
α
^
2
W
(
(
ζ
−
α
^
2
y
(
2
)
)
y
(
1
)
,
α
^
2
,
α
3
,
…
,
α
m
)
\alpha_2 := \arg\max_{\hat\alpha_2} W((\zeta-\hat\alpha_2y^{(2)})y^{(1)},\hat\alpha_2,\alpha_3,\dots,\alpha_m)
α2:=argα^2maxW((ζ−α^2y(2))y(1),α^2,α3,…,αm)
定义变量
η
=
⟨
x
(
1
)
,
x
(
1
)
⟩
+
⟨
x
(
2
)
,
x
(
2
)
⟩
−
2
⟨
x
(
1
)
,
x
(
2
)
⟩
E
i
=
w
T
x
(
i
)
+
b
−
y
(
i
)
\begin{array}{rcl} \eta &=& \langle x^{(1)}, x^{(1)}\rangle + \langle x^{(2)}, x^{(2)}\rangle - 2\langle x^{(1)}, x^{(2)}\rangle\\ E_i &=& w^Tx^{(i)} + b - y^{(i)} \end{array}
ηEi==⟨x(1),x(1)⟩+⟨x(2),x(2)⟩−2⟨x(1),x(2)⟩wTx(i)+b−y(i)
注意到
η
\eta
η 是
W
W
W 的二阶导数,一般情况下有
η
>
0
\eta \gt 0
η>0 。可以解得3
α
2
:
=
α
2
+
y
(
2
)
(
E
1
−
E
2
)
η
\alpha_2 := \alpha_2 + \frac{y^{(2)}\left(E_1 - E_2\right)}{\eta}
α2:=α2+ηy(2)(E1−E2)
由此求出的 α 2 \alpha_2 α2 有可能违反约束条件 0 < a i ∗ < C 0 < a_i^* < C 0<ai∗<C 。为了使 ( α 1 , α 2 ) (\alpha_1, \alpha_2) (α1,α2) 同时满足约束条件,这个点必须位于下图的斜线上
当
y
1
≠
y
2
y_1 \ne y_2
y1=y2 时,定义
H
=
min
{
C
,
C
+
α
2
−
α
1
}
L
=
max
{
0
,
α
2
−
α
1
}
\begin{array}{rcl} H &=& \min\{C, C + \alpha_2 - \alpha_1\}\\ L &=& \max\{0, \alpha_2 - \alpha_1\} \end{array}
HL==min{C,C+α2−α1}max{0,α2−α1}
否则,定义
H
=
min
{
C
,
α
2
+
α
1
}
L
=
max
{
0
,
α
2
+
α
1
−
C
}
\begin{array}{rcl} H &=& \min\{C, \alpha_2 + \alpha_1\}\\ L &=& \max\{0, \alpha_2 + \alpha_1 - C\} \end{array}
HL==min{C,α2+α1}max{0,α2+α1−C}
如果变量的最优值违反了约束条件而无法取到,则选择这一变量可行域中最接近最优值的一侧边界作为新的变量值
α
2
n
e
w
,
c
l
i
p
p
e
d
:
=
{
H
,
α
2
n
e
w
≥
H
α
2
n
e
w
,
L
<
α
2
n
e
w
<
H
L
,
α
2
n
e
w
≤
L
\alpha_2^{new, clipped} := \left\{\begin{array}{rcl} H, & \alpha_2^{new} \ge H\\ \alpha_2^{new}, & L \lt \alpha_2^{new} \lt H\\ L, & \alpha_2^{new} \le L \end{array}\right.
α2new,clipped:=⎩⎨⎧H,α2new,L,α2new≥HL<α2new<Hα2new≤L
由此可以解得
α
1
:
=
α
1
+
y
(
1
)
y
(
2
)
(
α
2
−
α
2
n
e
w
,
c
l
i
p
p
e
d
)
\alpha_1 := \alpha_1 + y^{(1)}y^{(2)}\left(\alpha_2- \alpha_2^{new, clipped}\right)
α1:=α1+y(1)y(2)(α2−α2new,clipped)
得到
α
1
,
α
2
\alpha_1, \alpha_2
α1,α2 后,需要更新
b
b
b 使 KKT 条件对其成立。定义
b
1
=
b
−
E
1
−
y
(
1
)
(
α
1
n
e
w
−
α
1
)
⟨
x
(
1
)
,
x
(
1
)
⟩
−
y
(
2
)
(
α
2
n
e
w
,
c
l
i
p
p
e
d
−
α
2
)
⟨
x
(
1
)
,
x
(
2
)
⟩
b
2
=
b
−
E
2
−
y
(
1
)
(
α
1
n
e
w
−
α
1
)
⟨
x
(
2
)
,
x
(
1
)
⟩
−
y
(
2
)
(
α
2
n
e
w
,
c
l
i
p
p
e
d
−
α
2
)
⟨
x
(
2
)
,
x
(
2
)
⟩
\begin{array}{rcl} b_1 &=& b - E_1 - y^{(1)}(\alpha_1^{new} - \alpha_1)\langle x^{(1)}, x^{(1)}\rangle - y^{(2)}(\alpha_2^{new, clipped} - \alpha_2)\langle x^{(1)}, x^{(2)}\rangle\\ b_2 &=& b - E_2 - y^{(1)}(\alpha_1^{new} - \alpha_1)\langle x^{(2)}, x^{(1)}\rangle - y^{(2)}(\alpha_2^{new, clipped} - \alpha_2)\langle x^{(2)}, x^{(2)}\rangle \end{array}
b1b2==b−E1−y(1)(α1new−α1)⟨x(1),x(1)⟩−y(2)(α2new,clipped−α2)⟨x(1),x(2)⟩b−E2−y(1)(α1new−α1)⟨x(2),x(1)⟩−y(2)(α2new,clipped−α2)⟨x(2),x(2)⟩
当
α
1
∈
(
0
,
C
)
\alpha_1 \in (0, C)
α1∈(0,C) 时
b
1
b_1
b1 有效,对
α
2
\alpha_2
α2 同理。如果只有一个
b
b
b 有效时,该值即为新的阈值。当两个
b
b
b 都有效时,应有
b
1
=
b
2
b_1 = b_2
b1=b2 成立。当两个
b
b
b 都无效时,取
b
:
=
b
1
+
b
2
2
b := \frac{b_1 + b_2}{2}
b:=2b1+b2
Heuristics for Choosing Which Multipliers to Optimize
Osuna’s Theorem 保证每次更新都会使目标函数值减小,只要有至少一个
α
\alpha
α 违反了 KKT 条件。为了保证收敛 SMO 首先寻找违反 KKT 条件的
α
2
\alpha_2
α2 作为
α
2
\alpha_2
α2 。这里所说的违反 KKT 条件指的是不满足
a
i
∗
=
0
∧
y
(
i
)
(
w
T
x
(
i
)
+
b
)
≥
1
0
<
a
i
∗
<
C
∧
y
(
i
)
(
w
T
x
(
i
)
+
b
)
=
1
a
i
∗
=
C
∧
y
(
i
)
(
w
T
x
(
i
)
+
b
)
≤
1
\begin{array}{rcl} a_i^* = 0 &\land& y^{(i)}(w^Tx^{(i)}+b) \ge 1\\ 0 < a_i^* < C &\land& y^{(i)}(w^Tx^{(i)}+b) = 1\\ a_i^* = C &\land& y^{(i)}(w^Tx^{(i)}+b) \le 1\\ \end{array}
ai∗=00<ai∗<Cai∗=C∧∧∧y(i)(wTx(i)+b)≥1y(i)(wTx(i)+b)=1y(i)(wTx(i)+b)≤1
通过化简可以得到等价的判断条件
(
y
(
i
)
E
i
<
0
∧
a
i
∗
<
C
)
∨
(
y
(
i
)
E
i
>
0
∧
a
i
∗
>
0
)
\left(y^{(i)}E_i < 0 \land a_i^* < C\right) \lor \left(y^{(i)}E_i > 0 \land a_i^* > 0\right)
(y(i)Ei<0∧ai∗<C)∨(y(i)Ei>0∧ai∗>0)
由于 KKT 条件本身是比较严格的,因此引入误差项
ε
\varepsilon
ε 一般取
1
e
−
3
1e^{-3}
1e−3
(
y
(
i
)
E
i
<
−
ε
∧
a
i
∗
<
C
)
∨
(
y
(
i
)
E
i
>
ε
∧
a
i
∗
>
0
)
\left(y^{(i)}E_i < -\varepsilon \land a_i^* < C\right) \lor \left(y^{(i)}E_i > \varepsilon \land a_i^* > 0\right)
(y(i)Ei<−ε∧ai∗<C)∨(y(i)Ei>ε∧ai∗>0)
当遍历过整个数据集后,那些处在边界的 α \alpha α 在后续更新时会倾向于留在边界。这里所说的边界指 α = 0 \alpha = 0 α=0 或 α = C \alpha = C α=C 。为了将 CPU 时间集中在处理更有可能违背 KKT 条件的数据上 SMO 转而遍历所有非边界 α \alpha α 直到他们都满足 KKT 条件为止。这时 SMO 只能再次遍历整个数据集。如果遍历过程中没有遇到违反 KKT 条件的数据,即可退出循环;否则跳回上一步遍历非边界点。实现代码如下
numChanged = 0;
examineAll = true;
while (numChanged > 0 || examineAll)
numChanged = 0;
if examineAll
for i = 1 : m
numChanged = numChanged + examineExample(i);
end
else
for i = 1 : m
if 0 < alpha(i) && alpha(i) < C
numChanged = numChanged + examineExample(i);
end
end
end
if examineAll
examineAll = false;
elseif numChanged == 0
examineAll = 1;
end
end
选定 α 2 \alpha_2 α2 后,可以在所有 α \alpha α 中选择使步长 ∣ E 1 − E 2 ∣ / η |E_1 - E_2| / \eta ∣E1−E2∣/η 最大化的一个作为 α 1 \alpha_1 α1 。但是在某些情况下,这样选出的 α 1 \alpha_1 α1 不能使更新过程正常进行。这时就需要遍历所有非边界 α \alpha α 甚至是全体 α \alpha α 来尝试更新。在一些极端情况下,没有一个 α \alpha α 可以作为 α 1 \alpha_1 α1 ,这时就需要抛弃 α 2 \alpha_2 α2 重新选择。
当循环结束时,可以根据
α
\alpha
α 的值计算
w
∗
=
∑
i
=
1
m
α
i
y
(
i
)
x
(
i
)
w^* = \sum\limits_{i=1}^m\alpha_iy^{(i)}x^{(i)}
w∗=i=1∑mαiy(i)x(i)
但是这个值只有在没有指定核函数时有意义。在使用核函数的情况下需要用下式进行预测
h
(
x
)
=
s
i
g
n
(
∑
i
=
1
m
α
i
y
(
i
)
⟨
x
(
i
)
,
x
⟩
+
b
∗
)
h(x) = sign\left(\sum\limits_{i=1}^m\alpha_iy^{(i)}\langle x^{(i)}, x\rangle + b^*\right)
h(x)=sign(i=1∑mαiy(i)⟨x(i),x⟩+b∗)
Kernels
有些情况下,决策边界无法用一个超平面来表示。这时可以选择适当的 feature mapping
ϕ
\phi
ϕ 将 input attribute
x
x
x 映射到高维,从而使其线性可分
但是这样做会使内积的计算量激增,因此实际操作中会选择一个 kernel
K
(
x
,
z
)
=
⟨
ϕ
(
x
)
,
ϕ
(
z
)
⟩
K(x, z) = \langle \phi(x), \phi(z) \rangle
K(x,z)=⟨ϕ(x),ϕ(z)⟩
左式的核函数一般计算起来比较简便,从而避免了映射和内积的操作。常见的核函数有
名称 | K ( x , z ) K(x, z) K(x,z) |
---|---|
Polynomial | ( x T z + c ) d (x^Tz+c)^d (xTz+c)d |
Gaussian | exp ( − ∣ ∣ x − z ∣ ∣ 2 2 σ 2 ) \exp\left(-\frac{\vert\vert x-z\vert\vert^2}{2\sigma^2}\right) exp(−2σ2∣∣x−z∣∣2) |
Sigmoid | tanh ( β 0 x T z + β 1 ) \tanh\left(\beta_0 x^Tz + \beta_1\right) tanh(β0xTz+β1) |
但是并不是任何一个函数都可以作为核函数,因为不一定存在适当的基函数
ϕ
\phi
ϕ 与之对应。对于一个函数
K
:
R
n
×
R
n
→
R
K: \mathbb{R}^n \times\mathbb{R}^n\rightarrow \mathbb{R}
K:Rn×Rn→R
定义其对应的 kernel matrix
K
=
(
K
i
j
)
∈
R
n
×
n
K = (K_{ij}) \in \mathbb{R}^{n\times n}
K=(Kij)∈Rn×n
其中
K
i
j
=
K
(
x
(
i
)
,
x
(
j
)
)
K_{ij} = K(x^{(i)},x^{(j)})
Kij=K(x(i),x(j))
Mercer theorem 给出了 K K K 是一个合法核函数的充分必要条件
Matrix K K K is symmetric positive semi-definite
对 W W W 求导得
∂ ∂ α i W = 1 − y ( i ) ∑ j = 1 m y ( j ) α j ⟨ x ( i ) , x ( j ) ⟩ \frac{\partial}{\partial \alpha_i} W = 1 - y^{(i)}\sum\limits_{j = 1}^m y^{(j)}\alpha_j\langle x^{(i)}, x^{(j)}\rangle ∂αi∂W=1−y(i)j=1∑my(j)αj⟨x(i),x(j)⟩ 设 f ( α 2 ) = W ( ( ζ − α 2 y ( 2 ) ) y ( 1 ) , α 2 , α 3 , … , α m ) f(\alpha_2) = W\left(\left(\zeta-\alpha_2y^{(2)}\right)y^{(1)}, \alpha_2, \alpha_3, \dots, \alpha_m\right) f(α2)=W((ζ−α2y(2))y(1),α2,α3,…,αm) 则
d f d α 2 = ∂ ∂ α 1 W ⋅ ( − y ( 1 ) y ( 2 ) ) + ∂ ∂ α 2 W = 1 − y ( 2 ) ∑ j = 1 m y ( j ) α j ⟨ x ( 2 ) , x ( j ) ⟩ − y ( 1 ) y ( 2 ) + y ( 2 ) ∑ j = 1 m y ( j ) α j ⟨ x ( 1 ) , x ( j ) ⟩ = 1 − y ( 1 ) y ( 2 ) + y ( 2 ) ∑ j = 3 m y ( j ) α j ⟨ x ( 1 ) , x ( j ) ⟩ − y ( 2 ) ∑ j = 3 m y ( j ) α j ⟨ x ( 2 ) , x ( j ) ⟩ + y ( 2 ) y ( 1 ) α 1 ⟨ x ( 1 ) , x ( 1 ) ⟩ + α 2 ⟨ x ( 1 ) , x ( 2 ) ⟩ − y ( 2 ) y ( 1 ) α 1 ⟨ x ( 2 ) , x ( 1 ) ⟩ − α 2 ⟨ x ( 2 ) , x ( 2 ) ⟩ = 1 − y ( 1 ) y ( 2 ) + y ( 2 ) ∑ j = 3 m y ( j ) α j ⟨ x ( 1 ) , x ( j ) ⟩ − y ( 2 ) ∑ j = 3 m y ( j ) α j ⟨ x ( 2 ) , x ( j ) ⟩ + y ( 2 ) ζ ( ⟨ x ( 1 ) , x ( 1 ) ⟩ − ⟨ x ( 1 ) , x ( 2 ) ⟩ ) − η α 2 = 0 \begin{array}{rcl} \frac{df}{d \alpha_2} &=& \frac{\partial}{\partial \alpha_1} W \cdot \left(-y^{(1)}y^{(2)}\right) + \frac{\partial}{\partial \alpha_2} W\\ &=& 1 - y^{(2)}\sum\limits_{j = 1}^m y^{(j)}\alpha_j\langle x^{(2)}, x^{(j)}\rangle - y^{(1)}y^{(2)} + y^{(2)}\sum\limits_{j = 1}^m y^{(j)}\alpha_j\langle x^{(1)}, x^{(j)}\rangle\\ &=& 1 - y^{(1)}y^{(2)} + y^{(2)}\sum\limits_{j = 3}^m y^{(j)}\alpha_j\langle x^{(1)}, x^{(j)}\rangle - y^{(2)}\sum\limits_{j = 3}^m y^{(j)}\alpha_j\langle x^{(2)}, x^{(j)}\rangle\\ && + y^{(2)} y^{(1)}\alpha_1\langle x^{(1)}, x^{(1)}\rangle + \alpha_2\langle x^{(1)}, x^{(2)}\rangle - y^{(2)} y^{(1)}\alpha_1\langle x^{(2)}, x^{(1)}\rangle\\ && - \alpha_2\langle x^{(2)}, x^{(2)}\rangle\\ &=& 1 - y^{(1)}y^{(2)} + y^{(2)}\sum\limits_{j = 3}^m y^{(j)}\alpha_j\langle x^{(1)}, x^{(j)}\rangle - y^{(2)}\sum\limits_{j = 3}^m y^{(j)}\alpha_j\langle x^{(2)}, x^{(j)}\rangle\\ && + y^{(2)}\zeta\left(\langle x^{(1)}, x^{(1)}\rangle - \langle x^{(1)}, x^{(2)}\rangle\right) - \eta\alpha_2\\ &=& 0 \end{array} dα2df=====∂α1∂W⋅(−y(1)y(2))+∂α2∂W1−y(2)j=1∑my(j)αj⟨x(2),x(j)⟩−y(1)y(2)+y(2)j=1∑my(j)αj⟨x(1),x(j)⟩1−y(1)y(2)+y(2)j=3∑my(j)αj⟨x(1),x(j)⟩−y(2)j=3∑my(j)αj⟨x(2),x(j)⟩+y(2)y(1)α1⟨x(1),x(1)⟩+α2⟨x(1),x(2)⟩−y(2)y(1)α1⟨x(2),x(1)⟩−α2⟨x(2),x(2)⟩1−y(1)y(2)+y(2)j=3∑my(j)αj⟨x(1),x(j)⟩−y(2)j=3∑my(j)αj⟨x(2),x(j)⟩+y(2)ζ(⟨x(1),x(1)⟩−⟨x(1),x(2)⟩)−ηα20 可以解得
y ( 2 ) η α 2 n e w = y ( 2 ) − y ( 1 ) + ∑ j = 3 m y ( j ) α j ⟨ x ( 1 ) , x ( j ) ⟩ − ∑ j = 3 m y ( j ) α j ⟨ x ( 2 ) , x ( j ) ⟩ + ζ ( ⟨ x ( 1 ) , x ( 1 ) ⟩ − ⟨ x ( 1 ) , x ( 2 ) ⟩ ) = y ( 2 ) − y ( 1 ) + ∑ j = 1 m y ( j ) α j ⟨ x ( 1 ) , x ( j ) ⟩ − ∑ j = 1 m y ( j ) α j ⟨ x ( 2 ) , x ( j ) ⟩ + y ( 2 ) η α 2 \begin{array}{rcl} y^{(2)}\eta\alpha_2^{new} &=& y^{(2)} - y^{(1)} + \sum\limits_{j = 3}^m y^{(j)}\alpha_j\langle x^{(1)}, x^{(j)}\rangle - \sum\limits_{j = 3}^m y^{(j)}\alpha_j\langle x^{(2)}, x^{(j)}\rangle\\ && + \zeta\left(\langle x^{(1)}, x^{(1)}\rangle - \langle x^{(1)}, x^{(2)}\rangle\right)\\ &=& y^{(2)} - y^{(1)} + \sum\limits_{j = 1}^m y^{(j)}\alpha_j\langle x^{(1)}, x^{(j)}\rangle - \sum\limits_{j = 1}^m y^{(j)}\alpha_j\langle x^{(2)}, x^{(j)}\rangle\\ && + y^{(2)}\eta\alpha_2 \end{array} y(2)ηα2new==y(2)−y(1)+j=3∑my(j)αj⟨x(1),x(j)⟩−j=3∑my(j)αj⟨x(2),x(j)⟩+ζ(⟨x(1),x(1)⟩−⟨x(1),x(2)⟩)y(2)−y(1)+j=1∑my(j)αj⟨x(1),x(j)⟩−j=1∑my(j)αj⟨x(2),x(j)⟩+y(2)ηα2 over. ↩︎