支持向量机是监督学习中最有影响力的方法之一。类似于逻辑回归,这个模型也是基于线性函数 w ⊤ x + b w⊤x + b w⊤x+b 的。不同于逻辑回归的是,支持向量机不输出概率,只输出类别。当 w ⊤ x + b w⊤x + b w⊤x+b 为正时,支持向量机预测属于正类。类似地,当 w ⊤ x + b w⊤x + b w⊤x+b 为负时,支持向量机预测属于负类。
在机器学习中,SVM首次实现了经验风险和结构风险的结合作为优化准则,从而使得学习到的模型具有更好的鲁棒性。接下来我们以线性可分的二值分类问题为背景进行SVD原理的介绍,假设有 N N N 个样本,其特征是2维的,其标签情况显示如下图,而我们SVM的最终目的就是求出一条分割线(在高维空间中称之为超平面)能够完成分类任务。
从经验风险的角度来看,如果只需要满足分类的正确率的要求,该问题的分割线是存在无数条的;可是我们还有更高的要求,我们希望找到其中最优的那条分割线,也就是说具有更好的鲁棒性,即使有一定噪声存在,也能够更好地区分样本的类别,就是所谓的结构风险最小。这种想法反映到上图中,就是寻找那条红线,它不仅需要满足分类正确的要求,还必须是所有分割线中margin最大的那一个,这里的margin就是指各类样本距离分割线的最小距离的和,即为图中两条蓝色虚线之间的距离 ,我们不妨设红色分割线距离各个类别样本的最短距离相等并记为 d d d 。
我们设待求的分割线为 w T x + b = 0 \boldsymbol{w}^T\boldsymbol{x}+b = 0 wTx+b=0 ,则两侧虚线的表达式分别为 w T x + b = − 1 , w T x + b = + 1 \boldsymbol{w}^T\boldsymbol{x}+b = -1,\boldsymbol{w}^T\boldsymbol{x}+b = +1 wTx+b=−1,wTx+b=+1 。
假设蓝色虚线的表达式为 w T x + b = c \boldsymbol{w}^T\boldsymbol{x}+b = c wTx+b=c ,我们对等式两边同时除以 c c c ,则有 w T c x + b c = 1 \frac{\boldsymbol{w}^T}{c} \boldsymbol{x}+ \frac{b}{c} = 1 cwTx+cb=1 ,同时对于红色分割线也可以作此处理,有 w T c x + b c = 0 \frac{\boldsymbol{w}^T}{c} \boldsymbol{x}+ \frac{b}{c} = 0 cwTx+cb=0 ,若令 w = w T c , b = b c \boldsymbol{w} = \frac{\boldsymbol{w}^T}{c},b = \frac{b}{c} w=cwT,b=cb ,则有上述结果。这就是分割线参数的缩放处理。
从而有分割线的margin数学表示
D
=
2
d
=
2
∣
∣
w
∣
∣
D = 2d = \frac{2}{||\boldsymbol{w}||}
D=2d=∣∣w∣∣2 ,也就有了我们的优化目标:
max
2
∣
∣
w
∣
∣
\max \frac{2}{||\boldsymbol{w}||} \\
max∣∣w∣∣2
那么如何保证样本的分类正确呢?我们可以观察到:当样本为正样例
y
i
=
+
1
y_i=+1
yi=+1 时,有
w
T
x
i
+
b
≥
+
1
\boldsymbol{w}^T\boldsymbol{x}_i+b \ge +1
wTxi+b≥+1 ;当样本为负样例
y
i
=
−
1
y_i=-1
yi=−1 时,有
w
T
x
i
+
b
≤
−
1
\boldsymbol{w}^T\boldsymbol{x}_i+b \le -1
wTxi+b≤−1 。将这两个限制条件归结为一个条件表示则为
y
i
(
w
T
x
i
+
b
)
≥
1
\boldsymbol{y}_i(\boldsymbol{w}^T\boldsymbol{x}_i+b) \ge 1
yi(wTxi+b)≥1
因此,将SVM转化为一个不等式约束的优化问题
{
min
w
1
2
∣
∣
w
∣
∣
2
s
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
⋯
,
N
\left\{ \begin{aligned} & \min_{\boldsymbol{w}} \frac{1}{2}||\boldsymbol{w}||^2 \\ & st.\boldsymbol{y}_i(\boldsymbol{w}^T\boldsymbol{x}_i+b) \ge1 ,i=1,2,\cdots,N\\ \end{aligned} \right.
⎩⎨⎧wmin21∣∣w∣∣2st.yi(wTxi+b)≥1,i=1,2,⋯,N
简单例子
解答:
i. 如图所示
ii. H 2 : w T x + b = − 1 H_2 : \boldsymbol{w}^T \boldsymbol{x} + b =-1 H2:wTx+b=−1
iii. 当样本的标签为 y i = − 1 y_i =-1 yi=−1 时,有 w T x i + b ≤ − 1 \boldsymbol{w}^T \boldsymbol{x}_i + b\le -1 wTxi+b≤−1 ;当样本的标签为 y i = + 1 y_i = + 1 yi=+1 时,有 w T x i + b ≥ + 1 \boldsymbol{w}^T \boldsymbol{x}_i + b\ge +1 wTxi+b≥+1 ,经过总结规律从而有 y i ( w T x i + b ) ≥ 1 , ∀ i ∈ { 1 , 2 , ⋯ , N } y_i(\boldsymbol{w}^T \boldsymbol{x}_i + b) \ge 1, \forall i \in\{1,2,\cdots,N\} yi(wTxi+b)≥1,∀i∈{1,2,⋯,N} 。
iv. 训练数据本身是线性可分的,且不含有噪声。
v. 已知
H
1
:
w
T
x
+
b
=
1
,
H
2
:
w
T
x
+
b
=
−
1
H_1 : \boldsymbol{w}^T \boldsymbol{x} + b = 1,H_2 : \boldsymbol{w}^T \boldsymbol{x} + b =-1
H1:wTx+b=1,H2:wTx+b=−1 ,由求平行直线的距离公式知
D
=
2
∣
∣
w
∣
∣
2
D= \frac{2}{||\boldsymbol{w}||^2}
D=∣∣w∣∣22
vi. 优化问题的表达式为
{
min
1
2
∣
∣
w
∣
∣
2
s
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
⋯
,
N
\left\{ \begin{aligned} & \min \frac{1}{2}||\boldsymbol{w}||^2 \\ & st.\boldsymbol{y}_i(\boldsymbol{w}^T\boldsymbol{x}_i+b) \ge1 ,i=1,2,\cdots,N\\ \end{aligned} \right.
⎩⎨⎧min21∣∣w∣∣2st.yi(wTxi+b)≥1,i=1,2,⋯,N
vii. 在这种情况下,具体的优化公式为
{
min
1
2
(
w
1
2
+
w
2
2
+
w
3
2
)
w
1
+
2
w
2
+
3
w
3
+
b
≥
1
4
w
1
+
w
2
+
2
w
3
+
b
≥
1
w
1
−
2
w
2
+
w
3
−
b
≥
1
\left\{ \begin{aligned} & \min \frac{1}{2}({w}_1^2 + {w}_2^2 + {w}_3^2) \\ & {w}_1 + 2{w}_2 + 3{w}_3 +b \ge 1 \\ & 4{w}_1 + {w}_2 + 2{w}_3 +b \ge 1 \\ & {w}_1 - 2{w}_2 + {w}_3 -b \ge 1 \\ \end{aligned} \right.
⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧min21(w12+w22+w32)w1+2w2+3w3+b≥14w1+w2+2w3+b≥1w1−2w2+w3−b≥1
从而有拉格朗日函数
L
(
w
,
b
)
=
1
2
(
w
1
2
+
w
2
2
+
w
3
2
)
−
λ
1
(
w
1
+
2
w
2
+
3
w
3
+
b
−
1
)
−
λ
2
(
4
w
1
+
w
2
+
2
w
3
+
b
−
1
)
−
λ
3
(
w
1
−
2
w
2
+
w
3
−
b
−
1
)
\begin{aligned} L(\boldsymbol{w},b) & = \frac{1}{2}({w}_1^2 + {w}_2^2 + {w}_3^2) - \lambda_1({w}_1 + 2{w}_2 + 3{w}_3 +b -1 )\\& - \lambda_2(4{w}_1 + {w}_2 + 2{w}_3 +b - 1) - \lambda_3({w}_1 - 2{w}_2 + {w}_3 -b - 1 ) \\ \end{aligned}
L(w,b)=21(w12+w22+w32)−λ1(w1+2w2+3w3+b−1)−λ2(4w1+w2+2w3+b−1)−λ3(w1−2w2+w3−b−1)
其KKT条件为
{
∂
L
∂
w
1
=
w
1
−
λ
1
−
4
λ
2
−
λ
3
=
0
∂
L
∂
w
2
=
w
2
−
2
λ
1
−
λ
2
+
2
λ
3
=
0
∂
L
∂
w
3
=
w
3
−
3
λ
1
−
2
λ
2
−
λ
3
=
0
∂
L
∂
b
=
−
λ
1
−
λ
2
+
λ
3
=
0
λ
1
(
w
1
+
2
w
2
+
3
w
3
+
b
−
1
)
=
0
λ
2
(
4
w
1
+
w
2
+
2
w
3
+
b
−
1
)
=
0
λ
3
(
w
1
−
2
w
2
+
w
3
+
b
−
1
)
=
0
λ
1
≥
0
λ
2
≥
0
λ
3
≥
0
\left\{ \begin{aligned} & \frac{\partial L}{\partial w_1} = w_1-\lambda_1-4\lambda_2-\lambda_3 =0 \\ & \frac{\partial L}{\partial w_2} = w_2 - 2\lambda_1 -\lambda_2 +2\lambda_3 = 0\\ & \frac{\partial L}{\partial w_3} = w_3 - 3\lambda_1 - 2\lambda_2 -\lambda_3 = 0 \\ & \frac{\partial L}{\partial b} = -\lambda_1 -\lambda_2 + \lambda_3 = 0 \\ &\lambda_1({w}_1 + 2{w}_2 + 3{w}_3 +b -1 ) = 0 \\ &\lambda_2(4{w}_1 + {w}_2 + 2{w}_3 +b - 1) = 0 \\ &\lambda_3({w}_1 - 2{w}_2 + {w}_3 +b - 1 ) = 0 \\ &\lambda_1\ge 0 \\ &\lambda_2\ge 0 \\ &\lambda_3\ge 0 \\ \end{aligned} \right.
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧∂w1∂L=w1−λ1−4λ2−λ3=0∂w2∂L=w2−2λ1−λ2+2λ3=0∂w3∂L=w3−3λ1−2λ2−λ3=0∂b∂L=−λ1−λ2+λ3=0λ1(w1+2w2+3w3+b−1)=0λ2(4w1+w2+2w3+b−1)=0λ3(w1−2w2+w3+b−1)=0λ1≥0λ2≥0λ3≥0
解出
{
λ
1
=
0.1
λ
2
=
0
λ
3
=
0.1
w
1
=
0.2
w
2
=
0
w
3
=
0.4
b
=
−
0.4
\left\{ \begin{aligned} & \lambda_1 = 0.1 \\ & \lambda_2 = 0 \\ & \lambda_3 = 0.1\\ & w_1 = 0.2 \\ & w_2 = 0 \\ & w_3 = 0.4\\ & b = -0.4 \end{aligned} \right.
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧λ1=0.1λ2=0λ3=0.1w1=0.2w2=0w3=0.4b=−0.4
拉格朗日对偶问题
从上一节的简单例子中,我们可以通过KKT条件求解SVM的问题,但是当样本数目特别多时,这种求解方法就明显力不从心了。因此需要寻找一种更简便的方法,而拉格朗日对偶问题是求解SVM的一种有效的方式。
原始问题
假设
f
(
x
)
,
c
i
(
x
)
,
h
j
(
x
)
f(x),c_i(x),h_j(x)
f(x),ci(x),hj(x) 是定义在
R
n
\R^n
Rn 上的连续可微函数,考虑约束最小化问题
{
min
x
∈
R
n
f
(
x
)
s
.
t
.
c
i
(
x
)
≤
0
,
i
=
1
,
2
,
⋯
,
k
h
j
(
x
)
=
0
,
j
=
1
,
2
,
⋯
,
l
\left\{ \begin{aligned} & \min_{\boldsymbol{x} \in \R^n} f(\boldsymbol{x})\\ s.t. &c_i(\boldsymbol{x}) \le 0,i=1,2,\cdots,k\\ & h_j(\boldsymbol{x}) = 0, j=1,2,\cdots,l \end{aligned} \right.
⎩⎪⎪⎨⎪⎪⎧s.t.x∈Rnminf(x)ci(x)≤0,i=1,2,⋯,khj(x)=0,j=1,2,⋯,l
称此约束优化问题为原始问题。
首先,引入广义拉格朗日函数
L
(
x
,
α
,
β
)
=
f
(
x
)
+
∑
i
=
1
k
α
i
c
i
(
x
)
+
∑
j
=
1
l
β
i
h
i
(
x
)
L(x,\boldsymbol{\alpha},\boldsymbol{\beta}) = f(\boldsymbol{x}) + \sum_{i=1}^k \alpha_i c_i(\boldsymbol{x}) + \sum_{j=1}^l \beta_i h_i(\boldsymbol{x})
L(x,α,β)=f(x)+i=1∑kαici(x)+j=1∑lβihi(x)
这里的
x
=
[
x
1
,
x
2
,
⋯
,
x
n
]
T
∈
R
n
\boldsymbol{x} = [x_1,x_2,\cdots,x_n]^T \in \R^n
x=[x1,x2,⋯,xn]T∈Rn ,
α
i
,
β
i
\alpha_i,\beta_i
αi,βi 是拉格朗日乘子,
α
i
≥
0
\alpha_i \ge 0
αi≥0 ,考虑
x
\boldsymbol{x}
x 的函数:
θ
p
(
x
)
=
max
α
,
β
,
α
i
≥
0
L
(
x
,
α
,
β
)
\boldsymbol{\theta}_p(\boldsymbol{x}) = \max_{\boldsymbol\alpha,\beta,\alpha_i\ge0} L(\boldsymbol x,\boldsymbol{\alpha},\boldsymbol{\beta})
θp(x)=α,β,αi≥0maxL(x,α,β)
这里的下标
p
p
p 表示原始问题。针对
x
\boldsymbol{x}
x ,可以分为两种情况分别考虑。
- 假设给定某个 x \boldsymbol x x ,如果 x \boldsymbol x x 违反原始问题的约束条件,也就是某个 i i i 使得 c i ( x ) > 0 c_i(\boldsymbol{x})>0 ci(x)>0 或者存在某个 j j j 使得 h j ( x ) ≠ 0 h_j(\boldsymbol{x})\neq 0 hj(x)=0 ,那么就有
θ p ( x ) = max α , β , α i ≥ 0 f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) = + ∞ \boldsymbol{\theta}_p(\boldsymbol{x}) = \max_{\boldsymbol\alpha,\beta,\alpha_i\ge0} f(\boldsymbol{x}) + \sum_{i=1}^k \alpha_i c_i(\boldsymbol{x}) + \sum_{j=1}^l \beta_j h_j(\boldsymbol{x}) = + \infty θp(x)=α,β,αi≥0maxf(x)+i=1∑kαici(x)+j=1∑lβjhj(x)=+∞
上式是怎么来的呢?因为若某个 i i i 使得 c i ( x ) > 0 c_i(\boldsymbol{x}) > 0 ci(x)>0 ,这个时候为求得最大值,不妨设 α i → + ∞ \alpha_i \rightarrow + \infty αi→+∞ ,其余参数不管怎样,都会有 θ p ( x ) → + ∞ \boldsymbol{\theta}_p(\boldsymbol{x}) \rightarrow +\infty θp(x)→+∞ ;如若存在某个 j j j 使得 h j ( x ) ≠ 0 h_j(\boldsymbol{x})\neq 0 hj(x)=0 ,为求得最大值,我们不妨令 β j h j ( x ) → + ∞ \beta_j h_j(\boldsymbol{x})\rightarrow + \infty βjhj(x)→+∞ ,同样不管其他参数如何,都会有 θ p ( x ) → + ∞ \boldsymbol{\theta}_p(\boldsymbol{x}) \rightarrow +\infty θp(x)→+∞ 。
- 假设给定某个
x
\boldsymbol{x}
x ,如果
x
\boldsymbol{x}
x 满足原始问题的约束条件,则有
θ p ( x ) = max α , β , α i ≥ 0 f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) = f ( x ) \boldsymbol{\theta}_p(\boldsymbol{x}) = \max_{\boldsymbol\alpha,\beta,\alpha_i\ge0} f(\boldsymbol{x}) + \sum_{i=1}^k \alpha_i c_i(\boldsymbol{x}) + \sum_{j=1}^l \beta_j h_j(\boldsymbol{x}) = f(\boldsymbol{x}) θp(x)=α,β,αi≥0maxf(x)+i=1∑kαici(x)+j=1∑lβjhj(x)=f(x)
因此,可以总结为
θ p ( x ) = { f ( x ) , x 满 足 原 始 问 题 约 束 + ∞ , 其 他 \boldsymbol{\theta}_p(\boldsymbol{x}) = \left\{ \begin{aligned} & f(\boldsymbol{x}) , &\boldsymbol{x}满足原始问题约束\\ & + \infty , &其他 \end{aligned} \right. θp(x)={f(x),+∞,x满足原始问题约束其他
这时,我们发现极小化问题
min x θ p ( x ) = min x max α , β , α i ≥ 0 L ( x , α , β ) \min_{\boldsymbol{x}} \boldsymbol{\theta}_p(\boldsymbol{x}) = \min_{\boldsymbol{x}} \max_{\boldsymbol\alpha,\beta,\alpha_i\ge0} L(\boldsymbol x,\boldsymbol{\alpha},\boldsymbol{\beta}) xminθp(x)=xminα,β,αi≥0maxL(x,α,β)
和原始问题的优化是等价的,它们是有相同的解的。
对偶问题
我们直接给出结论:
在满足
f
(
x
)
,
c
i
(
x
)
,
h
j
(
x
)
f(x),c_i(x),h_j(x)
f(x),ci(x),hj(x) 都是凸函数的条件下
min
x
max
α
,
β
,
α
i
≥
0
L
(
x
,
α
,
β
)
=
max
α
,
β
,
α
i
≥
0
min
x
L
(
x
,
α
,
β
)
\min_{\boldsymbol{x}} \max_{\boldsymbol\alpha,\beta,\alpha_i\ge0} L(\boldsymbol x,\boldsymbol{\alpha},\boldsymbol{\beta}) = \max_{\boldsymbol\alpha,\beta,\alpha_i\ge0} \min_{\boldsymbol{x}} L(\boldsymbol x,\boldsymbol{\alpha},\boldsymbol{\beta})
xminα,β,αi≥0maxL(x,α,β)=α,β,αi≥0maxxminL(x,α,β)
回到SVM的优化问题,并将其转化为对偶问题。
{
min
w
1
2
∣
∣
w
∣
∣
2
s
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
⋯
,
N
L
(
w
,
b
,
α
)
=
1
2
w
2
+
∑
i
=
1
N
α
i
[
1
−
y
i
(
w
T
x
i
+
b
)
]
\left\{ \begin{aligned} & \min_{\boldsymbol{w}} \frac{1}{2}||\boldsymbol{w}||^2 \\ & st.\boldsymbol{y}_i(\boldsymbol{w}^T\boldsymbol{x}_i+b) \ge1 ,i=1,2,\cdots,N\\ \end{aligned} \right. \\ L(\boldsymbol{w},b,\boldsymbol{\alpha}) = \frac{1}{2} \boldsymbol{w}^2 + \sum_{i=1}^N \alpha_i\big[1-y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)\big]
⎩⎨⎧wmin21∣∣w∣∣2st.yi(wTxi+b)≥1,i=1,2,⋯,NL(w,b,α)=21w2+i=1∑Nαi[1−yi(wTxi+b)]
原始问题:
min
w
,
b
max
α
,
α
i
≥
0
L
(
w
,
b
,
α
)
\displaystyle \min_{\boldsymbol{w},b} \max_{\boldsymbol\alpha,\alpha_i\ge0} L(\boldsymbol{w},b,\boldsymbol{\alpha})
w,bminα,αi≥0maxL(w,b,α)
对偶问题: max α , α i ≥ 0 min w , b L ( w , b , α ) \displaystyle\max_{\boldsymbol\alpha,\alpha_i\ge0} \min_{\boldsymbol{w},b} L(\boldsymbol{w},b,\boldsymbol{\alpha}) α,αi≥0maxw,bminL(w,b,α)
对于
min
w
,
b
L
(
w
,
b
,
α
)
\displaystyle \min_{\boldsymbol{w},b} L(\boldsymbol{w},b,\boldsymbol{\alpha})
w,bminL(w,b,α) 有
∂
L
∂
w
=
0
⇒
w
=
∑
i
=
1
N
α
i
x
i
y
i
∂
L
∂
b
=
0
⇒
∑
i
=
1
N
α
i
y
i
=
0
\begin{aligned} \frac{\partial L}{\partial \boldsymbol{w}} = 0 &\Rightarrow w = \sum_{i=1}^N \alpha_i \boldsymbol{x}_i y_i \\ \frac{\partial L}{\partial b} = 0 &\Rightarrow \sum_{i=1}^N\alpha_iy_i=0 \end{aligned}
∂w∂L=0∂b∂L=0⇒w=i=1∑Nαixiyi⇒i=1∑Nαiyi=0
满足上述参数时,
L
L
L 关于
w
,
b
\boldsymbol{w},b
w,b 取得最小值,接下来求解
max
α
,
α
i
≥
0
min
w
,
b
L
(
w
,
b
,
α
)
\displaystyle\max_{\boldsymbol\alpha,\alpha_i\ge0} \min_{\boldsymbol{w},b} L(\boldsymbol{w},b,\boldsymbol{\alpha})
α,αi≥0maxw,bminL(w,b,α) ,将上述结果代入有
max
α
1
2
(
∑
i
=
1
N
α
i
x
i
y
i
)
2
+
∑
i
=
1
N
α
i
[
1
−
(
∑
j
=
1
N
α
j
x
j
y
j
)
T
x
i
y
i
]
=
max
α
1
2
(
∑
i
=
1
N
α
i
x
i
y
i
)
T
(
∑
i
=
1
N
α
i
x
i
y
i
)
−
∑
i
=
1
N
α
i
(
∑
j
=
1
N
α
j
x
j
y
j
)
T
x
i
y
i
+
∑
i
=
1
N
α
i
=
max
α
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
<
x
i
,
x
j
>
+
∑
i
=
1
N
α
i
并
且
{
∑
i
=
1
N
α
i
y
i
=
0
α
i
[
1
−
y
i
(
w
T
x
i
+
b
)
]
=
0
α
i
≥
0
,
i
=
1
,
2
,
⋯
,
N
\begin{aligned} & \max_{\boldsymbol{\alpha}} \frac{1}{2} (\sum_{i=1}^N \alpha_i \boldsymbol{x}_i y_i )^2 + \sum_{i=1}^N \alpha_i\big[1-(\sum_{j=1}^N \alpha_j \boldsymbol{x}_j y_j )^T\boldsymbol{x}_i y_i\big] \\ = & \max_{\boldsymbol{\alpha}} \frac{1}{2} (\sum_{i=1}^N \alpha_i \boldsymbol{x}_i y_i )^T (\sum_{i=1}^N \alpha_i \boldsymbol{x}_i y_i ) - \sum_{i=1}^N \alpha_i (\sum_{j=1}^N \alpha_j \boldsymbol{x}_j y_j )^T \boldsymbol{x}_i y_i + \sum_{i=1}^N \alpha_i \\ = & \max_{\boldsymbol{\alpha}} -\frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j<\boldsymbol{x}_i,\boldsymbol{x}_j> + \sum_{i=1}^N \alpha_i \\ \end{aligned} \\ 并且 \left\{ \begin{aligned} &\sum_{i=1}^N\alpha_iy_i=0 \\ &\alpha_i \big[1-y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)\big] =0 \\ &\alpha_i \ge 0,i=1,2,\cdots,N \end{aligned} \right.
==αmax21(i=1∑Nαixiyi)2+i=1∑Nαi[1−(j=1∑Nαjxjyj)Txiyi]αmax21(i=1∑Nαixiyi)T(i=1∑Nαixiyi)−i=1∑Nαi(j=1∑Nαjxjyj)Txiyi+i=1∑Nαiαmax−21i=1∑Nj=1∑Nαiαjyiyj<xi,xj>+i=1∑Nαi并且⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧i=1∑Nαiyi=0αi[1−yi(wTxi+b)]=0αi≥0,i=1,2,⋯,N
从而转变为一个求解
α
i
\alpha_i
αi 的优化问题,若求解出
α
i
\alpha_i
αi ,则
w
,
b
\boldsymbol{w},b
w,b 自然可以表示出来。
w
=
∑
i
=
1
N
α
i
x
i
y
i
b
=
1
−
y
i
w
T
x
y
i
,
x
∈
S
\boldsymbol{w} = \sum_{i=1}^N \alpha_i \boldsymbol{x}_i y_i \\ b = \frac{1-y_i\boldsymbol{w}^T\boldsymbol{x}}{y_i},\boldsymbol{x} \in S
w=i=1∑Nαixiyib=yi1−yiwTx,x∈S
其中,
S
S
S 表示支持向量的样本集合。从而有SVM的决策函数
y
=
(
∑
i
=
1
N
α
i
x
i
y
i
)
T
x
=
∑
i
=
1
N
α
i
y
i
x
i
T
x
y = (\sum_{i=1}^N \alpha_i \boldsymbol{x}_i y_i)^T\boldsymbol{x} = \sum_{i=1}^N \alpha_i y_i \boldsymbol{x}_i^T \boldsymbol{x}
y=(i=1∑Nαixiyi)Tx=i=1∑NαiyixiTx
序列最小化算法(SMO)
上节最后得到的关于 α \boldsymbol{\alpha} α 的式子是一个二次规划问题,使用通用算法开销比较大。SMO方法是1998年提出的,用于求取SVM中的拉格朗日乘子,比通用算法更加高效。
其主要思想为,选取两个变量 α i , α j \alpha_i,\alpha_j αi,αj ,固定其他参数,对这两个参数进行优化,然后重复这个过程。
线性不可分时的核函数应用
在样本数据是线性不可分的情况中,自然上述的SVD无法解决,如下图(左)所示,椭圆内是一类,椭圆外是一类,自然无法用一条直线进行区分。这时,我们可以将原始数据进行一个空间映射。
设原空间为
χ
⊂
R
2
,
x
=
[
x
1
,
x
3
]
T
∈
χ
\chi \subset \R^2,\boldsymbol{x} = [x_1,x_3]^T \in \chi
χ⊂R2,x=[x1,x3]T∈χ ,新空间为
Z
∈
R
2
,
z
=
[
z
1
,
z
2
]
T
∈
Z
\Zeta \in \R^2,\boldsymbol{z} = [z^1,z^2]^T \in \Zeta
Z∈R2,z=[z1,z2]T∈Z ,定义从原空间到新空间的映射为
z
=
ϕ
(
x
)
=
[
x
1
2
,
x
2
2
]
T
\boldsymbol{z} = \phi(\boldsymbol{x})=[x_1^2,x_2^2]^T
z=ϕ(x)=[x12,x22]T
经过变换
z
=
ϕ
(
x
)
\boldsymbol{z} = \phi(\boldsymbol{x})
z=ϕ(x) ,原空间
χ
⊂
R
2
\chi \subset \R^2
χ⊂R2 变换为新空间
Z
⊂
R
2
\Zeta \subset \R^2
Z⊂R2 ,原空间的点相应的变换为新空间的点,原空间的椭圆
w
1
x
1
2
+
w
2
x
2
2
+
b
=
0
w_1x_1^2 + w_2x_2^2 +b =0
w1x12+w2x22+b=0
变换为新空间的直线
w
1
z
1
+
w
2
z
2
+
b
=
0
w_1z_1+w_2z_2+b= 0
w1z1+w2z2+b=0
这样,就可以用普通的SVM进行处理了。由于SVD的求解过程的特殊性,即它并不需要明确知道每一个样本点的具体坐标,而仅仅需要两两样本间的内积,因此在SVD中的核函数并不需要知道变换后的坐标,仅需要变换后的内积即可。故有几种常见核函数:
-
多项式核函数
K ( x , z ) = ( x ⋅ z + 1 ) p K(\boldsymbol{x},\boldsymbol{z}) = (\boldsymbol{x} \cdot \boldsymbol{z} + 1)^p K(x,z)=(x⋅z+1)p
对应的SVM是一个 p p p 次多项式分类器,在此情况下,分类决策函数为
f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i ( x i ⋅ x + 1 ) p + b ∗ ) \begin{aligned} f(\boldsymbol{x}) = sign \Big( \sum_{i=1}^N \alpha_i^* y_i(\boldsymbol{x}_i \cdot \boldsymbol{x} + 1)^p + b^* \Big) \end{aligned} f(x)=sign(i=1∑Nαi∗yi(xi⋅x+1)p+b∗) -
高斯核函数
K ( x , z ) = e − ∣ ∣ x − z ∣ ∣ 2 2 σ 2 K(\boldsymbol{x},\boldsymbol{z}) = e^{-\frac{||\boldsymbol{x}-\boldsymbol{z}||^2}{2\sigma^2}} K(x,z)=e−2σ2∣∣x−z∣∣2
对应的SVM是一个高斯径向基函数分类器,在此情况下,分类决策函数为
f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i e − ∣ ∣ x − z ∣ ∣ 2 2 σ 2 + b ∗ ) \begin{aligned} f(\boldsymbol{x}) = sign \Big( \sum_{i=1}^N \alpha_i^* y_ie^{-\frac{||\boldsymbol{x}-\boldsymbol{z}||^2}{2\sigma^2}} + b^* \Big) \end{aligned} f(x)=sign(i=1∑Nαi∗yie−2σ2∣∣x−z∣∣2+b∗)
参考资料:支持向量机原理推导及Python实现