一般的,当训练样本线性可分的时候,如下图所示:

可以找到无数个划分超平面。而线性可分支持向量机利用间隔最大化来求最优划分超平面,此时解是唯一的。
通过间隔最大化或者对应的凸二次规划问题学习到的分离超平面为:
w
∗
⋅
x
+
b
∗
=
0
w^*\cdot x+b^*=0
w∗⋅x+b∗=0
对应的决策函数为:
f
(
x
)
=
s
i
g
n
(
w
∗
⋅
x
+
b
∗
)
f(x)=sign(w^*\cdot x+b^*)
f(x)=sign(w∗⋅x+b∗)
我们称上面的的式子为线性可分的支持向量机。
函数间隔与几何间隔
给定分离超平面
w
⋅
x
+
b
=
0
w\cdot x + b = 0
w⋅x+b=0,
∣
w
⋅
x
+
b
∣
|w\cdot x + b |
∣w⋅x+b∣能相对的表示x到超平面的距离。通过分析标签值y与
w
⋅
x
+
b
w\cdot x + b
w⋅x+b符号的是否一致能够表示分类是否正确,于是可以用
y
(
w
⋅
x
+
b
)
y(w\cdot x + b)
y(w⋅x+b)的符号来表示是否分类正确及确信度,这就是函数间隔。为此,对于样本
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi)我们定义函数间隔
γ
^
i
\hat \gamma_i
γ^i为:
γ
^
i
=
y
i
(
w
⋅
x
i
+
b
)
\hat \gamma_i = y_i(w \cdot x_i + b)
γ^i=yi(w⋅xi+b)
对于有N个样本的数据集T,定义数据集T的函数间隔为:所有样本点的函数间隔的最小值,即:
γ
^
i
=
min
i
=
1
,
2
,
.
.
.
,
N
γ
^
i
=
min
i
=
1
,
2
,
.
.
.
,
N
y
i
(
w
⋅
x
i
+
b
)
(1)
\hat \gamma_i = \min\limits_{i=1,2,...,N}\hat \gamma_i = \min\limits_{i=1,2,...,N} y_i(w\cdot x_i + b) \tag 1
γ^i=i=1,2,...,Nminγ^i=i=1,2,...,Nminyi(w⋅xi+b)(1)
如果成比例的改变w和b为2w和2b,那么函数间隔变为了原来2倍,为了消除这样的影响,我们限定L2范数 ∥ w ∥ = 1 \|w\|=1 ∥w∥=1,此时函数间隔就成为了几何间隔。
下图给出了超平面 ( w , b ) (w,b) (w,b)及其法向量w:

点A表示某一实例
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi),A到超平面的距离由AB给出,记作
γ
i
\gamma_i
γi:
γ
i
=
w
⋅
x
i
+
b
∣
∣
w
∣
∣
\gamma_i = \frac{w\cdot x_i + b}{||w||}
γi=∣∣w∣∣w⋅xi+b
无论样本是正例还是负例,当样本被正确分类时,到超平面的距离为:
γ
i
=
y
i
(
w
⋅
x
i
+
b
)
∣
∣
w
∣
∣
\gamma_i = \frac{y_i(w\cdot x_i + b)}{||w||}
γi=∣∣w∣∣yi(w⋅xi+b)
我们定义上面的式子为某个样本到超平面的几何间隔。
对于有N个样本的数据集T,定义数据集T的几何间隔为:所有样本点的几何间隔的最小值,即:
γ
=
min
i
=
1
,
.
.
.
,
N
γ
i
=
min
i
=
1
,
.
.
.
,
N
y
i
(
w
⋅
x
i
+
b
)
∣
∣
w
∣
∣
(2)
\gamma = \min\limits_{i=1,...,N} \gamma_i = \min\limits_{i=1,...,N}\frac{y_i(w \cdot x_i + b)}{||w||} \tag 2
γ=i=1,...,Nminγi=i=1,...,Nmin∣∣w∣∣yi(w⋅xi+b)(2)
由函数间隔和几何间隔的定义(1),(2)可知:
γ
i
=
γ
^
i
∣
∣
w
∣
∣
\gamma_i = \frac{\hat\gamma_i}{||w||}
γi=∣∣w∣∣γ^i
γ = γ ^ ∣ ∣ w ∣ ∣ (3) \gamma = \frac{\hat\gamma}{||w||} \tag 3 γ=∣∣w∣∣γ^(3)
如果限定 ∥ w ∥ = 1 \|w\|=1 ∥w∥=1,那么函数间隔就等于几何间隔。
SVM模型
对于线性可分的数据可以找到无数个将数据划分的超平面,但是距离超平面较远的点对超平面的确定没有很大的影响。因此,我们把注意力放在距离超平面较近的点上,如下图中红色框选择的点。如果我们让距离超平面最近的点(图中)到超平面的距离最大化,那么就可以认为这样的划分超平面即使对于较难分类正确的点,也能得到较好的划分结果。

线性可分的SVM目标是找到间隔最大化的划分超平面,所谓间隔最大化是指:对给定的数据集的点,划分超平面不仅可以可以区分正例负例,而且还能使得最难分类的点有足够大的确信度使得他们分开,这样的平面对未知的样本实例有更好的分类能力。
要求几何间隔最大的分离超平面,可以转化为求解下面的最优化问题:
max
w
,
b
γ
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
∣
∣
w
∣
∣
≥
γ
i
=
1
,
2
,
.
.
.
,
N
\max\limits_{w,b} \gamma \\ s.t. \quad \frac{y_i(w \cdot x_i + b)}{||w||} \ge \gamma\\i=1,2,...,N
w,bmaxγs.t.∣∣w∣∣yi(w⋅xi+b)≥γi=1,2,...,N
由由函数间隔和几何间隔关系的公式(3)可以将问题转化为:
max
w
,
b
γ
^
∥
w
∥
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
≥
γ
^
i
=
1
,
2
,
.
.
.
,
N
\max\limits_{w,b} \frac{\hat\gamma}{\|w\|} \\ s.t. \quad y_i(w \cdot x_i + b) \ge \hat\gamma\\i=1,2,...,N
w,bmax∥w∥γ^s.t.yi(w⋅xi+b)≥γ^i=1,2,...,N
根据上面的式子,不难得出,SVM的思想是:让距离划分超平面最近的点(支持向量)到划分超平面的距离最大化。
实际上,当我们成倍的改变
w
,
b
w,b
w,b为
λ
w
,
λ
b
\lambda w ,\lambda b
λw,λb,函数间隔也变为
λ
γ
^
\lambda \hat \gamma
λγ^ ,并不能改变约束条件中的不等式的关系。因此,为了简化计算,我们可以取
γ
^
=
1
\hat\gamma=1
γ^=1。并且,最大化
1
∥
w
∥
\frac{1}{\|w\|}
∥w∥1和最小化
1
2
∥
w
∥
2
\frac{1}{2} \|w \|^2
21∥w∥2等价,于是优化目标转化为:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
;
s
.
t
1
−
y
i
(
w
⋅
x
i
+
b
)
≤
0
(
i
=
1
,
2
,
.
.
.
m
)
(4)
\min\limits_{w,b} \frac{1}{2}||w||^2 ;\quad s.t \quad 1- y_i(w \cdot x_i + b) \leq 0 \quad (i =1,2,...m) \tag 4
w,bmin21∣∣w∣∣2;s.t1−yi(w⋅xi+b)≤0(i=1,2,...m)(4)
显然式子(4)是凸二次规划问题。要注意的是,训练样本中存在某些样本点使得约束条件取得等号:
y
i
(
w
⋅
x
i
+
b
)
−
1
=
0
y_i(w \cdot x_i + b) -1 = 0
yi(w⋅xi+b)−1=0
这样的点就是上面图片中红色方框对应的点,他们位于和决策超平面距离为1的位置上,我们称这样的点叫做支持向量。在决定分离超平面的时候,只有这些支持向量起到了作用。由于支持向量对分离超平面的决定性作用,所以将这样的分类模型叫做支持向量机。
SVM求解
为了求解支持向量机的最优化模型(4),我们需要使用拉格朗日对偶性来得到对偶问题,间接得到原始问题的最优解。这么做的好处是
- 对偶问题的计算量更小,更容易求解。
- 自然的引入核函数,进而推广到非线性可分问题。
首先需要构造拉格朗日函数,引入拉格朗日乘子
α
i
≥
0
\alpha_i \geq 0
αi≥0后,得到:
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
m
α
i
[
1
−
y
i
(
w
T
x
i
+
b
)
]
(5)
L(w,b,\alpha) = \frac{1}{2}||w||^2 + \sum\limits_{i=1}^{m}\alpha_i[1-y_i(w^Tx_i + b)] \tag 5
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi[1−yi(wTxi+b)](5)
其中,
α
=
(
α
1
,
α
2
,
.
.
.
,
α
m
)
\alpha=(\alpha_1, \alpha_2,..., \alpha_m)
α=(α1,α2,...,αm)为拉格朗日乘子向量。
原始问题等价于:
min
w
,
b
max
α
L
(
w
,
b
,
α
)
\min \limits_{w,b} \max\limits_{\alpha}L(w,b,\alpha)
w,bminαmaxL(w,b,α)
根据拉格朗日对偶性,所以原始问题的对偶问题是:
max
α
min
w
,
b
L
(
w
,
b
,
α
)
(6)
\max\limits_\alpha\min\limits_{w,b}L(w,b,\alpha) \tag 6
αmaxw,bminL(w,b,α)(6)
若原始问题与对偶问题有相同的解
w
∗
,
b
∗
,
α
∗
w^*, b^*, \alpha^*
w∗,b∗,α∗,则要满足KKT条件:
∇
w
L
(
w
∗
,
b
∗
,
α
∗
)
=
w
∗
−
∑
i
=
1
m
α
i
y
i
x
i
=
0
(
K
K
T
.
1
)
∇
b
L
(
w
∗
,
b
∗
,
α
∗
)
=
−
∑
i
=
1
m
α
i
y
i
=
0
(
K
K
T
.
2
)
α
∗
(
y
i
(
w
∗
T
x
i
+
b
∗
)
−
1
)
=
0
(
K
K
T
.
3
)
y
i
(
w
∗
T
x
i
+
b
∗
)
−
1
≥
0
(
K
K
T
.
4
)
a
i
∗
≥
0
,
i
=
1
,
2
,
.
.
.
m
(
K
K
T
.
5
)
\nabla_wL(w^*, b^*, \alpha^*) = w^*-\sum\limits_{i=1}^{m}\alpha_iy_ix_i = 0 \quad\quad (KKT.1) \\ \nabla_bL(w^*, b^*, \alpha^*) = -\sum\limits_{i=1}^{m}\alpha_iy_i = 0 \quad\quad (KKT.2) \\ \alpha^*(y_i(w^{*T}x_i+b^*)-1) = 0 \quad\quad (KKT.3) \\ y_i(w^{*T}x_i+b^*)-1 \ge 0 \quad\quad\quad (KKT.4) \\ a_i^* \ge 0,\quad i=1,2,...m \quad\quad\quad (KKT.5)
∇wL(w∗,b∗,α∗)=w∗−i=1∑mαiyixi=0(KKT.1)∇bL(w∗,b∗,α∗)=−i=1∑mαiyi=0(KKT.2)α∗(yi(w∗Txi+b∗)−1)=0(KKT.3)yi(w∗Txi+b∗)−1≥0(KKT.4)ai∗≥0,i=1,2,...m(KKT.5)
其中公式(KKT.3)为KKT对偶互补条件,可以知道当
α
∗
>
0
\alpha^*>0
α∗>0则有
(
y
i
(
w
∗
T
x
i
+
b
∗
)
−
1
)
=
0
(y_i(w^{*T}x_i+b^*)-1) = 0
(yi(w∗Txi+b∗)−1)=0,此时的样本
x
i
x_i
xi对应的点为支持向量。
所以我们通过求对偶问题的解间接得到原始问题的最优解,这样可以简小计算量,这就是SVM的对偶算法。
首先需要求 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)对 w , b w,b w,b的极小,再求对 α \alpha α的极大。
假设: ψ ( α ) = min w , b L ( w , b , α ) \psi(\alpha) = \min\limits_{w,b}L(w,b,\alpha) ψ(α)=w,bminL(w,b,α)
将拉格朗日函数分别对w,b求偏导并令其等于0,得到:
∂
L
(
w
,
b
,
α
)
∂
w
=
0
⇒
w
=
∑
i
=
1
m
α
i
y
i
x
i
(7)
\frac{\partial L(w,b,\alpha)}{\partial w} = 0 \;\Rightarrow w = \sum\limits_{i=1}^{m}\alpha_iy_ix_i \tag 7
∂w∂L(w,b,α)=0⇒w=i=1∑mαiyixi(7)
∂ L ( w , b , α ) ∂ b = 0 ⇒ ∑ i = 1 m α i y i = 0 (8) \frac{\partial L(w,b,\alpha)}{\partial b} = 0 \;\Rightarrow \sum\limits_{i=1}^{m}\alpha_iy_i = 0 \tag 8 ∂b∂L(w,b,α)=0⇒i=1∑mαiyi=0(8)
上面的式子已经得到了w和α的关系,只要我们后面求得使得对偶函数极大化的α,记得求得w。将式子(7),(8)代入(5)得到:
ψ
(
α
)
=
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
1
m
α
i
[
y
i
(
w
T
x
i
+
b
)
−
1
]
=
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
w
T
∑
i
=
1
m
α
i
y
i
x
i
−
∑
i
=
1
m
α
i
y
i
w
T
x
i
−
∑
i
=
1
m
α
i
y
i
b
+
∑
i
=
1
m
α
i
=
1
2
w
T
∑
i
=
1
m
α
i
y
i
x
i
−
w
T
∑
i
=
1
m
α
i
y
i
x
i
−
∑
i
=
1
m
α
i
y
i
b
+
∑
i
=
1
m
α
i
=
−
1
2
w
T
∑
i
=
1
m
α
i
y
i
x
i
−
∑
i
=
1
m
α
i
y
i
b
+
∑
i
=
1
m
α
i
=
−
1
2
w
T
∑
i
=
1
m
α
i
y
i
x
i
−
b
∑
i
=
1
m
α
i
y
i
+
∑
i
=
1
m
α
i
=
−
1
2
(
∑
i
=
1
m
α
i
y
i
x
i
)
T
(
∑
i
=
1
m
α
i
y
i
x
i
)
−
b
∑
i
=
1
m
α
i
y
i
+
∑
i
=
1
m
α
i
=
−
1
2
∑
i
=
1
m
α
i
y
i
x
i
T
∑
i
=
1
m
α
i
y
i
x
i
−
b
∑
i
=
1
m
α
i
y
i
+
∑
i
=
1
m
α
i
=
−
1
2
∑
i
=
1
m
α
i
y
i
x
i
T
∑
i
=
1
m
α
i
y
i
x
i
+
∑
i
=
1
m
α
i
=
−
1
2
∑
i
=
1
,
j
=
1
m
α
i
y
i
x
i
T
α
j
y
j
x
j
+
∑
i
=
1
m
α
i
=
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
,
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
\begin{aligned} \psi(\alpha) & = \frac{1}{2}||w||^2 - \sum\limits_{i=1}^{m}\alpha_i[y_i(w^Tx_i + b) - 1] \\& = \frac{1}{2}w^Tw-\sum\limits_{i=1}^{m}\alpha_iy_iw^Tx_i - \sum\limits_{i=1}^{m}\alpha_iy_ib + \sum\limits_{i=1}^{m}\alpha_i \\& = \frac{1}{2}w^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i -\sum\limits_{i=1}^{m}\alpha_iy_iw^Tx_i - \sum\limits_{i=1}^{m}\alpha_iy_ib + \sum\limits_{i=1}^{m}\alpha_i \\& = \frac{1}{2}w^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i - w^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i - \sum\limits_{i=1}^{m}\alpha_iy_ib + \sum\limits_{i=1}^{m}\alpha_i \\& = - \frac{1}{2}w^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i - \sum\limits_{i=1}^{m}\alpha_iy_ib + \sum\limits_{i=1}^{m}\alpha_i \\& = - \frac{1}{2}w^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i - b\sum\limits_{i=1}^{m}\alpha_iy_i + \sum\limits_{i=1}^{m}\alpha_i \\& = -\frac{1}{2}(\sum\limits_{i=1}^{m}\alpha_iy_ix_i)^T(\sum\limits_{i=1}^{m}\alpha_iy_ix_i) - b\sum\limits_{i=1}^{m}\alpha_iy_i + \sum\limits_{i=1}^{m}\alpha_i \\& = -\frac{1}{2}\sum\limits_{i=1}^{m}\alpha_iy_ix_i^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i - b\sum\limits_{i=1}^{m}\alpha_iy_i + \sum\limits_{i=1}^{m}\alpha_i \\& = -\frac{1}{2}\sum\limits_{i=1}^{m}\alpha_iy_ix_i^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i + \sum\limits_{i=1}^{m}\alpha_i \\& = -\frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_iy_ix_i^T\alpha_jy_jx_j + \sum\limits_{i=1}^{m}\alpha_i \\& = \sum\limits_{i=1}^{m}\alpha_i - \frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j \end{aligned}
ψ(α)=21∣∣w∣∣2−i=1∑mαi[yi(wTxi+b)−1]=21wTw−i=1∑mαiyiwTxi−i=1∑mαiyib+i=1∑mαi=21wTi=1∑mαiyixi−i=1∑mαiyiwTxi−i=1∑mαiyib+i=1∑mαi=21wTi=1∑mαiyixi−wTi=1∑mαiyixi−i=1∑mαiyib+i=1∑mαi=−21wTi=1∑mαiyixi−i=1∑mαiyib+i=1∑mαi=−21wTi=1∑mαiyixi−bi=1∑mαiyi+i=1∑mαi=−21(i=1∑mαiyixi)T(i=1∑mαiyixi)−bi=1∑mαiyi+i=1∑mαi=−21i=1∑mαiyixiTi=1∑mαiyixi−bi=1∑mαiyi+i=1∑mαi=−21i=1∑mαiyixiTi=1∑mαiyixi+i=1∑mαi=−21i=1,j=1∑mαiyixiTαjyjxj+i=1∑mαi=i=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj
即:
ψ
(
α
)
=
min
w
,
b
L
(
w
,
b
,
α
)
=
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
,
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
\psi(\alpha) = \min\limits_{w,b}L(w,b,\alpha)=\sum\limits_{i=1}^{m}\alpha_i - \frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j
ψ(α)=w,bminL(w,b,α)=i=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj
接下来,对
ψ
(
α
)
=
min
w
,
b
L
(
w
,
b
,
α
)
\psi(\alpha) = \min\limits_{w,b}L(w,b,\alpha)
ψ(α)=w,bminL(w,b,α)求极大:
max
α
ψ
(
α
)
=
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
,
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
(9)
\max\limits_{\alpha}\psi(\alpha) = \max\limits_{\alpha}\sum\limits_{i=1}^{m}\alpha_i - \frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j \tag 9
αmaxψ(α)=αmaxi=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj(9)
s . t . ∑ i = 1 m α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . . , N s.t. \quad \sum\limits_{i=1}^{m}\alpha_iy_i =0\\ \alpha_i \geq 0, i=1,2,...,N s.t.i=1∑mαiyi=0αi≥0,i=1,2,...,N
将式子(9)的目标函数转换成求极小,得到等级的对偶最优化问题:
min
α
1
2
∑
i
=
1
,
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
−
∑
i
=
1
m
α
i
(10)
\min\limits_{\alpha} \frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j -\sum\limits_{i=1}^{m} \alpha_i \tag{10}
αmin21i=1,j=1∑mαiαjyiyjxiTxj−i=1∑mαi(10)
s . t . ∑ i = 1 m α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . . , m s.t. \quad \sum\limits_{i=1}^{m}\alpha_iy_i =0 \\ \alpha_i \geq 0, i=1,2,...,m s.t.i=1∑mαiyi=0αi≥0,i=1,2,...,m
只要我们可以求出上式极小化时对应的α向量就可以求出w和b了。具体怎么极小化上式得到对应的α,一般需要用到SMO算法,这个算法比较复杂,我们后面会专门来讲。在这里,我们假设通过SMO算法,我们得到了对应的α的值
α
∗
α^∗
α∗,那么根据
w
=
∑
i
=
1
m
α
i
y
i
x
i
w = \sum\limits_{i=1}^{m}\alpha_iy_ix_i
w=i=1∑mαiyixi可以得到对应的
w
∗
w^*
w∗的值:
w
∗
=
∑
i
=
1
m
α
i
∗
y
i
x
i
w^{*} = \sum\limits_{i=1}^{m}\alpha_i^{*}y_ix_i
w∗=i=1∑mαi∗yixi
正如上文讨论的,只有支持向量对决策平面有影响,其他样本则没有。选择
α
∗
\alpha^*
α∗的任意一个正分量
α
j
∗
>
0
\alpha^*_j \gt 0
αj∗>0,按下面的式子得到
b
∗
b^ *
b∗:
b
∗
=
y
j
−
(
w
∗
)
T
x
j
=
y
j
−
∑
i
=
1
m
α
i
∗
y
i
x
i
T
x
j
b^* = y_j - (w^*)^Tx_j = y_j -\sum\limits_{i=1}^{m}\alpha_i^{*}y_ix_i^Tx_j
b∗=yj−(w∗)Txj=yj−i=1∑mαi∗yixiTxj
根据上面KKT条件中
α
∗
(
y
i
(
w
∗
T
x
i
+
b
∗
)
−
1
)
=
0
\alpha^*(y_i(w^{*T}x_i+b^*)-1) = 0
α∗(yi(w∗Txi+b∗)−1)=0这个对偶互补条件,可以知道当
α
∗
>
0
\alpha^*>0
α∗>0则有
(
y
i
(
w
∗
T
x
i
+
b
∗
)
−
1
)
=
0
(y_i(w^{*T}x_i+b^*)-1) = 0
(yi(w∗Txi+b∗)−1)=0,此时的样本
x
i
x_i
xi对应的点到划分超平面的距离为1,也就是所谓的支持向量。因此,任意
α
j
∗
>
0
\alpha^*_j \gt 0
αj∗>0对应的样本
x
j
x_j
xj为支持向量。
假设我们有S个支持向量,对于任意支持向量 ( x s , y s ) (x_s, y_s) (xs,ys)可以解得 b ∗ b^* b∗。但是由于数据集T严格线性可分,所以划分超平面是唯一的,于是通过任意支持向量 ( x s , y s ) (x_s, y_s) (xs,ys)得到的 b ∗ b^* b∗都是一样的。
最终得到的划分超平面为:
w
∗
T
x
+
b
∗
=
0
w^{*T}x+b^* = 0
w∗Tx+b∗=0
最终的分类决策函数为:
f
(
x
)
=
s
i
g
n
(
w
∗
T
x
+
b
∗
)
f(x) = sign(w^{*T} x + b^{*})
f(x)=sign(w∗Tx+b∗)
线性可分SVM的算法流程
输入:线性可分的m个样本 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) , {(x_1,y_1), (x_2,y_2), ..., (x_m,y_m),} (x1,y1),(x2,y2),...,(xm,ym),
输出:分离超平面的参数 w ∗ w^{*} w∗和 b ∗ b^{*} b∗和分类决策函数。
(1) 构造优化问题:
min
α
1
2
∑
i
=
1
,
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
−
∑
i
=
1
m
α
i
\min\limits_{\alpha} \frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j -\sum\limits_{i=1}^{m} \alpha_i
αmin21i=1,j=1∑mαiαjyiyjxiTxj−i=1∑mαi
s . t . ∑ i = 1 m α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . . , m s.t. \quad \sum\limits_{i=1}^{m}\alpha_iy_i =0 \\ \alpha_i \geq 0, i=1,2,...,m s.t.i=1∑mαiyi=0αi≥0,i=1,2,...,m
(2) 采用SMO算法求出使得上式极小化的 α ∗ \alpha^* α∗
(3) 计算 w ∗ = ∑ i = 1 m α i ∗ y i x i w^{*} = \sum\limits_{i=1}^{m}\alpha_i^{*}y_ix_i w∗=i=1∑mαi∗yixi
(4) 找到某个满足
α
j
>
0
\alpha_j > 0
αj>0对应的支持向量
(
x
j
,
y
j
)
(x_j,y_j)
(xj,yj),计算:
b
∗
=
y
j
−
(
w
∗
)
T
x
j
=
y
j
−
∑
i
=
1
m
α
i
∗
y
i
x
i
T
x
j
b^* = y_j - (w^*)^Tx_j = y_j -\sum\limits_{i=1}^{m}\alpha_i^{*}y_ix_i^Tx_j
b∗=yj−(w∗)Txj=yj−i=1∑mαi∗yixiTxj
(5) 得到划分超平面与决策函数:
w
∗
T
x
+
b
∗
=
0
f
(
x
)
=
s
i
g
n
(
w
∗
T
x
+
b
∗
)
w^{*T}x+b^* = 0 \\ f(x) = sign(w^{*T} x + b^{*})
w∗Tx+b∗=0f(x)=sign(w∗Tx+b∗)
局限性
本文介绍的是基于硬间隔最大化的SVM算法,对于线性不可分的数据,由于异常点的存在,无法找到划分超平面,本文的算法无法使用。下一篇介绍的软间隔最大化SVM算法可以解决这里问题。
参考文章:
《统计学习方法 第二版》
2万+



被折叠的 条评论
为什么被折叠?



