支持向量机
全称Support Vector Machine (SVM)。可以分为硬间隔(hard margin SVM),软间隔(soft margin SVM),和核支持向量机(kernel margin SVM)。
原理
输入
训练集数据 D = ( x 1 , y 1 ) . . . ( x M , y M ) D = {(x_1,y_1) ... (x_M,y_M)} D=(x1,y1)...(xM,yM), x i ∈ X ⊆ R p x_i \in \mathcal{X} \subseteq R^p xi∈X⊆Rp, y i ∈ R y_i \in R yi∈R
X = ( x 1 x 2 . . . x M ) T ∈ R M ∗ p X = (x_1\ x_2\ ...\ x_M)^T \in R^{M*p} X=(x1 x2 ... xM)T∈RM∗p
f ( x ) = s i g n ( w T x + b ) f(x) = sign(w^Tx+b) f(x)=sign(wTx+b)
正则化参数 λ 1 \lambda_1 λ1 , λ 2 \lambda_2 λ2
输出
线性回归模型 f ^ ( x ) \hat f(x) f^(x)
损失函数
硬间隔SVM也称为最大间隔分类器。
m a r g i n ( w , b ) = m i n d i s t a n c e ( w , b , x i ) margin(w, b) = min\ distance(w, b, x_i) margin(w,b)=min distance(w,b,xi)
为了简化运算,我们指定最小的margin为1(可以通过缩放实现)。我们希望达成以下目标。
m a x m a r g i n ( w , b ) s . t . y i ( w T x i + b ) > 0 ∀ i = 1 ∼ M max\ margin(w, b)\ s.t.\ y_i(w^Tx_i+b) > 0 \ \forall \ i =1 \sim M max margin(w,b) s.t. yi(wTxi+b)>0 ∀ i=1∼M
进行数学推导,
m
a
x
m
a
r
g
i
n
(
w
,
b
)
=
m
a
x
w
,
b
m
i
n
x
i
1
∣
∣
w
∣
∣
y
i
(
w
T
x
i
+
b
)
=
m
a
x
w
,
b
1
∣
∣
w
∣
∣
m
i
n
x
i
y
i
(
w
T
x
i
+
b
)
max\ margin(w, b) = max_{w, b} min_{x_i} \frac{1} {||w||} y_i(w^T x_i + b) \\\\ = max_{w, b} \frac{1} {||w||} min_{x_i} y_i(w^T x_i + b) \\\\
max margin(w,b)=maxw,bminxi∣∣w∣∣1yi(wTxi+b)=maxw,b∣∣w∣∣1minxiyi(wTxi+b)
可以简化成
m
a
x
m
a
r
g
i
n
(
w
,
b
)
=
m
a
x
w
,
b
1
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
=
1
∀
i
=
1
∼
M
max \ margin(w, b) = max_{w, b} \frac{1} {||w||} \\\\ s.t. \ y_i(w^Tx_i + b) >= 1 \ \forall \ i =1 \sim M
max margin(w,b)=maxw,b∣∣w∣∣1s.t. yi(wTxi+b)>=1 ∀ i=1∼M
或者
m
a
x
m
a
r
g
i
n
(
w
,
b
)
=
m
i
n
w
,
b
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
=
1
∀
i
=
1
∼
M
max \ margin(w, b) = min_{w, b} {||w||} \\\\ s.t. \ y_i(w^Tx_i + b) >= 1 \ \forall \ i =1 \sim M
max margin(w,b)=minw,b∣∣w∣∣s.t. yi(wTxi+b)>=1 ∀ i=1∼M
从而我们很容易得到损失函数(
λ
≥
0
\lambda \ge 0
λ≥0),
L
(
w
,
b
,
λ
)
=
1
2
w
T
w
+
∑
i
=
1
M
λ
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
m
i
n
w
,
b
m
a
x
λ
L
(
w
,
b
,
λ
)
s
.
t
.
λ
i
≥
0
L(w, b, \lambda) = \frac 1 2 w^Tw + \sum_{i=1}^M \lambda_i(1 - y_i(w^Tx_i+b)) \\\\ min_{w, b} \ max_{\lambda} L(w,b,\lambda) \ s.t. \ \lambda_i \ge 0
L(w,b,λ)=21wTw+i=1∑Mλi(1−yi(wTxi+b))minw,b maxλL(w,b,λ) s.t. λi≥0
当
y
i
(
w
T
x
i
+
b
)
>
0
y_i(w^Tx_i+b) > 0
yi(wTxi+b)>0时,很容易证明
L
L
L的最大值是正无穷。当
y
i
(
w
T
x
i
+
b
)
≤
0
y_i(w^Tx_i+b) \le 0
yi(wTxi+b)≤0时,
L
L
L的最大值是在
λ
\lambda
λ取0时,整体等于$\frac 1 2 w^Tw $。
我们可以证明 m i n m a x L = m a x m i n L min \ max \ L = max \ min \ L min max L=max min L,此处省略。这个被称为强对偶关系。
我们将上面的原问题转化成对偶问题如下,
m
a
x
λ
m
i
n
w
,
b
L
(
w
,
b
,
λ
)
s
.
t
.
λ
i
≥
0
max_{\lambda}\ min_{w, b} \ L(w,b,\lambda) \ s.t. \ \lambda_i \ge 0
maxλ minw,b L(w,b,λ) s.t. λi≥0
进行求导,
m
i
n
w
,
b
L
(
w
,
b
,
λ
)
∂
L
∂
b
=
∂
[
∑
i
=
1
M
λ
i
−
∑
i
=
1
M
λ
i
y
i
(
w
T
x
i
+
b
)
]
∂
b
=
0
解
得
∑
i
=
1
M
λ
i
y
i
=
0
将
其
代
入
L
L
(
w
,
b
,
λ
)
=
1
2
w
T
w
+
∑
i
=
1
M
λ
i
−
∑
i
=
1
M
λ
i
y
i
w
T
x
i
∂
L
∂
w
=
0
w
∗
=
∑
i
=
1
M
λ
i
y
i
w
T
x
i
将
其
代
入
L
L
(
w
,
b
,
λ
)
=
1
2
(
∑
j
=
1
M
λ
j
y
j
w
T
x
j
)
T
(
∑
j
=
1
M
λ
j
y
j
w
T
x
j
)
+
∑
i
=
1
M
λ
i
−
∑
i
=
1
M
λ
i
y
i
(
∑
j
=
1
M
λ
j
y
j
w
T
x
j
)
T
x
i
=
−
1
2
(
∑
i
=
1
M
∑
j
=
1
M
λ
i
λ
j
y
i
y
j
x
i
x
j
)
+
∑
i
=
1
M
λ
i
min_{w, b} \ L(w,b,\lambda) \\\\ \frac{\partial L} {\partial b} = \frac{\partial [\sum_{i=1}^M \lambda_i - \sum_{i=1}^M \lambda_i y_i(w^Tx_i+b)]} {\partial b} = 0\\\\ 解得\sum_{i=1}^M \lambda_i y_i= 0 \\\\ 将其代入 L \\\\ L(w, b, \lambda) = \frac 1 2 w^Tw + \sum_{i=1}^M \lambda_i - \sum_{i=1}^M \lambda_i y_i w^T x_i \\\\ \frac{\partial L} {\partial w} = 0 \\\\ w^* = \sum_{i=1}^M \lambda_i y_i w^T x_i \\\\ 将其代入 L \\\\ L(w, b, \lambda) \\\\ = \frac 1 2 (\sum_{j=1}^M \lambda_j y_j w^T x_j)^T(\sum_{j=1}^M \lambda_j y_j w^T x_j) + \sum_{i=1}^M \lambda_i - \sum_{i=1}^M \lambda_i y_i (\sum_{j=1}^M \lambda_j y_j w^T x_j)^T x_i \\\\ = -\frac 1 2 (\sum_{i=1}^M \sum_{j=1}^M \lambda_i \lambda_j y_i y_j x_i x_j) + \sum_{i=1}^M \lambda_i
minw,b L(w,b,λ)∂b∂L=∂b∂[∑i=1Mλi−∑i=1Mλiyi(wTxi+b)]=0解得i=1∑Mλiyi=0将其代入LL(w,b,λ)=21wTw+i=1∑Mλi−i=1∑MλiyiwTxi∂w∂L=0w∗=i=1∑MλiyiwTxi将其代入LL(w,b,λ)=21(j=1∑MλjyjwTxj)T(j=1∑MλjyjwTxj)+i=1∑Mλi−i=1∑Mλiyi(j=1∑MλjyjwTxj)Txi=−21(i=1∑Mj=1∑Mλiλjyiyjxixj)+i=1∑Mλi
从而,我们将问题再次进行了转换,我的目标是
m
i
n
λ
1
2
(
∑
i
=
1
M
∑
j
=
1
M
λ
i
λ
j
y
i
y
j
x
i
x
j
)
−
∑
i
=
1
M
λ
i
λ
i
≥
0
∑
i
=
1
M
λ
i
y
i
=
0
min_{\lambda} \ \frac 1 2 (\sum_{i=1}^M \sum_{j=1}^M \lambda_i \lambda_j y_i y_j x_i x_j) - \sum_{i=1}^M \lambda_i \\\\ \lambda_i \ge 0 \\\\ \sum_{i=1}^M \lambda_i y_i = 0
minλ 21(i=1∑Mj=1∑Mλiλjyiyjxixj)−i=1∑Mλiλi≥0i=1∑Mλiyi=0
因为我们的原问题和对偶问题具有强对偶关系,我们通过KKT条件
∂
L
∂
w
=
0
∂
L
∂
b
=
0
∂
L
∂
λ
=
0
λ
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
=
0
λ
i
≥
0
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
\frac {\partial L} {\partial w} = 0 \\\\ \frac {\partial L} {\partial b} = 0 \\\\ \frac {\partial L} {\partial \lambda} = 0 \\\\ \lambda_i(1-y_i(w^Tx_i+b)) = 0 \\\\ \lambda_i \ge 0 \\\\ 1-y_i(w^Tx_i+b) \le 0
∂w∂L=0∂b∂L=0∂λ∂L=0λi(1−yi(wTxi+b))=0λi≥01−yi(wTxi+b)≤0
可以得到最优解,
w ∗ = ∑ i = 1 M λ i y i x i w^* = \sum_{i=1}^M \lambda_i y_i x_i w∗=∑i=1Mλiyixi
我们还需要代入一个处于边界上的点
(
x
k
,
y
k
)
(x_k, y_k)
(xk,yk)满足$ 1-y_k(w^Tx_k+b) = 0$,再求解偏置
1
−
y
k
(
w
T
x
k
+
b
)
=
0
y
k
(
w
T
x
k
+
b
)
=
1
y
k
2
(
w
T
x
k
+
b
)
=
y
k
(
w
T
x
k
+
b
)
=
y
k
b
∗
=
y
k
−
w
T
x
k
b
∗
=
y
k
−
∑
i
=
1
M
λ
i
y
i
x
i
T
x
k
1 - y_k(w^Tx_k+b) = 0 \\\\ y_k(w^Tx_k+b) = 1 \\\\ y_k^2(w^Tx_k+b) = y_k \\\\ (w^Tx_k+b) = y_k \\\\ b^* = y_k - w^Tx_k \\\\ b^* = y_k - \sum_{i=1}^M \lambda_i y_i x_i^T x_k
1−yk(wTxk+b)=0yk(wTxk+b)=1yk2(wTxk+b)=yk(wTxk+b)=ykb∗=yk−wTxkb∗=yk−i=1∑MλiyixiTxk
软间隔SVM允许少量错误。
L ( w , b ) = m i n 1 2 w T w + l o s s L(w, b) = min \frac 1 2 w^Tw + loss L(w,b)=min21wTw+loss
我们可以将后面额外的损失定义为0-1 loss,更常用的是hinge loss。
那么,我们可以重新定义损失函数为
L
(
w
,
b
)
=
m
i
n
w
,
b
1
2
w
T
w
+
C
∗
∑
i
=
1
M
m
a
x
(
0
,
1
−
y
i
(
w
T
x
i
+
b
)
)
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
L(w,b) = min_{w,b} \frac 1 2 w^Tw + C*\sum_{i=1}^M max(0, 1-y_i(w^Tx_i+b)) \\\\ 1-y_i(w^Tx_i+b) \le 0
L(w,b)=minw,b21wTw+C∗i=1∑Mmax(0,1−yi(wTxi+b))1−yi(wTxi+b)≤0
C
C
C起到了一个正则化的作用。
适用场景
普遍适用。
优点
- 边界只由少数的支持向量所决定,避免维度灾难
- 可解释性好
- 对离群数据敏感度较小,鲁棒性高
缺点
- 对大规模训练样本而言,消耗大量内存和运算时间
- 解决多分类问题时,需要多组SVM模型
核方法
对应英文是Kernel Method。核方法用于解决有数据集类别之间的边界压根不是线性的。对于原始的输入空间 X \mathcal X X,使用 ϕ ( x ) \phi(x) ϕ(x)进行非线性转换成为特征空间 Z \mathcal Z Z,从而达到线性可分的状态。理论基础是Cover Theorem,即高维空间比低维空间更易线性可分。
在 ϕ ( x ) \phi(x) ϕ(x)维度非常高的情况下,求 ϕ ( x i ) \phi(x_i) ϕ(xi)非常困难。我们发现有一种核技巧(kernel trick),可以在不需要单独计算 ϕ ( x i ) \phi(x_i) ϕ(xi)和 ϕ ( x j ) \phi(x_j) ϕ(xj)的前提下得到 ϕ ( x i ) T ϕ ( x j ) \phi(x_i)^T\phi(x_j) ϕ(xi)Tϕ(xj)。毕竟后者才是我们 L L L中需要得到的值。
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)
一般情况下,我们的核函数 K K K指的是正定核函数。有函数 K K K可以做到从 X ∗ X \mathcal X * \mathcal X X∗X到 R R R的映射, ∃ Φ ∈ H \exist \Phi \in \mathcal H ∃Φ∈H,使得 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),那么称 K K K为正定核函数。我们再介绍一下希尔伯特空间 H \mathcal H H。它是完备的(对极限是封闭的),可能是无限维的,被赋予内积运算的一个线性空间。
正定核函数性质
- 对称性,即 K ( x i , x j ) = K ( x j , x i ) K(x_i, x_j) = K(x_j, x_i) K(xi,xj)=K(xj,xi)
- 正定性,即任取 X \mathcal X X中的M个元素,从 x 1 x_1 x1到 x M x_M xM,对应的Gram matrix是半正定的
我们来证明正定核函数的性质。先证明必要性。
已知 K ( x i , x j ) = < ϕ ( x i ) , ϕ ( x j ) > K(x_i, x_j) = <\phi(x_i),\phi(x_j)> K(xi,xj)=<ϕ(xi),ϕ(xj)>,要证明其对称性和正定性。
对称性可以由内积的对称性证明。我们现在想要证明对应的Gram matrix是半正定的。令Gram matrix是
G
=
[
K
(
x
i
,
x
j
)
]
G = [K(x_i, x_j)]
G=[K(xi,xj)]。所以需要证明对于任意
α
∈
R
M
\alpha \in R^M
α∈RM,有
α
T
G
α
≥
0
\alpha^T G \alpha \ge 0
αTGα≥0。
α
T
G
α
=
∑
i
=
1
M
∑
j
=
1
M
α
i
α
j
K
(
x
i
,
x
j
)
=
∑
i
=
1
M
∑
j
=
1
M
α
i
α
j
ϕ
(
x
i
)
T
ϕ
(
x
j
)
=
∑
i
=
1
M
α
i
ϕ
(
x
i
)
T
∑
j
=
1
M
α
j
ϕ
(
x
j
)
=
[
∑
i
=
1
M
α
i
ϕ
(
x
i
)
]
T
[
∑
j
=
1
M
α
j
ϕ
(
x
j
)
]
=
∣
∣
∑
i
=
1
M
α
i
ϕ
(
x
i
)
∣
∣
2
≥
0
\alpha^T G \alpha \\\\ = \sum_{i=1}^M \sum_{j=1}^M \alpha_i \alpha_j K(x_i, x_j) \\\\ = \sum_{i=1}^M \sum_{j=1}^M \alpha_i \alpha_j \phi(x_i)^T\phi(x_j) \\\\ = \sum_{i=1}^M \alpha_i \phi(x_i)^T \sum_{j=1}^M \alpha_j \phi(x_j) \\\\ = [\sum_{i=1}^M \alpha_i \phi(x_i)]^T [\sum_{j=1}^M \alpha_j \phi(x_j)] \\\\ = ||\sum_{i=1}^M \alpha_i \phi(x_i)||^2 \ge 0
αTGα=i=1∑Mj=1∑MαiαjK(xi,xj)=i=1∑Mj=1∑Mαiαjϕ(xi)Tϕ(xj)=i=1∑Mαiϕ(xi)Tj=1∑Mαjϕ(xj)=[i=1∑Mαiϕ(xi)]T[j=1∑Mαjϕ(xj)]=∣∣i=1∑Mαiϕ(xi)∣∣2≥0
我们就证明了Gram Matrix是半正定的。
约束优化
我们定义原问题的最优解为 d ∗ d^* d∗,对偶问题的最优解是 p ∗ p^* p∗。
定义原问题 m i n x f ( x ) min_x f(x) minxf(x),有N个不等式约束, n i ( x ) ≤ 0 n_i(x) \le 0 ni(x)≤0,有M个等式约束, m i ( x ) = 0 m_i(x) = 0 mi(x)=0
转换后的原问题的无约束形式为 m i n x m a x λ , η = L ( x , λ , η ) min_x \ max_{\lambda, \eta} = L(x, \lambda, \eta) minx maxλ,η=L(x,λ,η), λ i ≥ 0 \lambda_i \ge 0 λi≥0
下面是转换的说明。
拉格朗日函数:
L ( x , λ , η ) = f ( x ) + ∑ j = 1 N λ j n j + ∑ i = 1 M m i η i L(x, \lambda, \eta) = f(x) + \sum_{j=1}^N \lambda_j n_j + \sum_{i=1}^M m_i \eta_i L(x,λ,η)=f(x)+∑j=1Nλjnj+∑i=1Mmiηi
如果 x x x违反了不等式约束,那么 m a x λ L max_\lambda L maxλL一定会趋近于正无穷。所以在其前面加上一个 m i n min min相当于进行了一次过滤,将所有不满足不等式约束的 x x x都过滤掉了。
弱对偶
我们接着证明原问题和对偶问题是相等的。对偶问题是 m a x x m i n λ , η = L ( x , λ , η ) max_x \ min_{\lambda, \eta} = L(x, \lambda, \eta) maxx minλ,η=L(x,λ,η), λ i ≥ 0 \lambda_i \ge 0 λi≥0。
我们先证明弱对偶性,原问题的值会大于等于对偶问题,即
m
i
n
m
a
x
L
≥
m
a
x
m
i
n
L
min \ max \ L \ge max \ min \ L
min max L≥max min L。
m
i
n
x
L
(
x
,
λ
,
η
)
≤
L
(
x
,
λ
,
η
)
≤
m
a
x
λ
,
η
L
(
x
,
λ
,
η
)
A
(
λ
,
η
)
≤
B
(
x
)
A
(
λ
,
η
)
≤
m
i
n
B
(
x
)
m
a
x
A
(
λ
,
η
)
≤
m
i
n
B
(
x
)
min_x \ L(x, \lambda, \eta) \le L(x, \lambda, \eta) \le max_{\lambda, \eta} \ L(x, \lambda, \eta) \\\\ A(\lambda, \eta) \le B(x) \\\\ A(\lambda, \eta) \le min \ B(x) \\\\ max \ A(\lambda, \eta) \le min \ B(x) \\\\
minx L(x,λ,η)≤L(x,λ,η)≤maxλ,η L(x,λ,η)A(λ,η)≤B(x)A(λ,η)≤min B(x)max A(λ,η)≤min B(x)
Slater Condition
存在一点 x ∈ r e l i n t D x \in relint \ D x∈relint D,使得对于所有的 n i ( x ) < 0 n_i(x) < 0 ni(x)<0。relint代表相对内部。
对于大多数凸优化问题,slater条件成立。
放松的slater条件是指,如果N中有K个仿射函数,那么只需要校验其余的函数满足slater条件即可。
通过弱对偶和Slater Condition可以推出强对偶关系。强对偶关系是下面的KKT条件的充要条件。
库恩塔克条件
通常被称为KKT条件。
可行条件
有N个不等式约束, n i ( x ∗ ) ≤ 0 n_i(x^*) \le 0 ni(x∗)≤0,有M个等式约束, m i ( x ∗ ) = 0 m_i(x^*) = 0 mi(x∗)=0, λ ∗ = 0 \lambda^* = 0 λ∗=0
互补松弛条件
λ
j
∗
n
j
=
0
\lambda_j^* n_j = 0
λj∗nj=0
d
∗
=
m
a
x
λ
,
η
g
(
λ
,
η
)
=
g
(
λ
∗
,
η
∗
)
=
m
i
n
x
L
(
x
,
λ
∗
,
η
∗
)
=
L
(
x
∗
,
λ
∗
,
η
∗
)
=
f
(
x
∗
)
+
∑
j
=
1
N
λ
j
∗
n
j
+
∑
i
=
1
M
m
i
∗
η
i
=
f
(
x
∗
)
+
∑
j
=
1
N
λ
j
∗
n
j
=
f
(
x
∗
)
=
p
∗
d^* = max_{\lambda, \eta} g(\lambda, \eta) \\\\ = g(\lambda^*, \eta^*) \\\\ = min_x L(x, \lambda^*, \eta^*) \\\\ = L(x^*, \lambda^*, \eta^*) \\\\ = f(x^*) + \sum_{j=1}^N \lambda_j^* n_j + \sum_{i=1}^M m_i^* \eta_i \\\\ = f(x^*) + \sum_{j=1}^N \lambda_j^* n_j \\\\ = f(x^*) \\\\ = p^*
d∗=maxλ,ηg(λ,η)=g(λ∗,η∗)=minxL(x,λ∗,η∗)=L(x∗,λ∗,η∗)=f(x∗)+j=1∑Nλj∗nj+i=1∑Mmi∗ηi=f(x∗)+j=1∑Nλj∗nj=f(x∗)=p∗
梯度为0
m i n x L ( x , λ ∗ , η ∗ ) = L ( x ∗ , λ ∗ , η ∗ ) min_x L(x, \lambda^*, \eta^*) \\\\ = L(x^*, \lambda^*, \eta^*) \\\\ minxL(x,λ∗,η∗)=L(x∗,λ∗,η∗)
Reference
- 白板推导系列,shuhuai007
- 支持向量机(SVM)的优缺点