线性可分支持向量机和硬间隔最大化
首先给出特征空间的训练数据集
(1)
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T = \{(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N})\}\tag{1}
T={(x1,y1),(x2,y2),...,(xN,yN)}(1)
其中,
x
i
∈
X
=
R
n
,
y
i
∈
Y
=
{
−
1
,
1
}
,
i
=
1
,
2
,
.
.
.
,
N
,
x
i
x_{i}\in\mathscr{X}=\mathbf{R}^{n},y_{i} \in \mathscr{Y} = \{-1,1\},i=1,2,...,N,x_{i}
xi∈X=Rn,yi∈Y={−1,1},i=1,2,...,N,xi为第i个特征向量,也称为实例。
y
i
y_{i}
yi为特征标记,
y
i
=
1
y_{i}=1
yi=1,代表
x
i
x_{i}
xi为正例;
y
i
=
−
1
y_{i}=-1
yi=−1,代表
x
i
x_{i}
xi为负例。
这里我们讨论的数据集是线性可分的。它的含义是,我们可以找到一个分离超平面,能将不同类别的实例分割开来。假设这个分割超平面可以表示为
w
⋅
x
+
b
=
0
w\cdot x+b=0
w⋅x+b=0。一般来说这个分割超平面是有无穷多的。这里我们的目的是要找到一个对于所有实例到分割超平面间隔最大的那个分割超平面。这就是支持向量机的目的。
对于给定的线性可分训练数据集,通过间隔最大化或者等价的求解相应的凸二次规划问题学习得到分离超平面为:
(2)
w
∗
⋅
x
+
b
∗
=
1
w^{*}\cdot x+b^{*} = 1\tag{2}
w∗⋅x+b∗=1(2)
相应的分类决策函数:
(3)
f
(
x
)
=
s
i
g
n
(
w
∗
⋅
x
+
b
∗
)
f(x) = sign(w^{*}\cdot x + b^{*})\tag{3}
f(x)=sign(w∗⋅x+b∗)(3)
-
间隔最大化
- 函数间隔
: 给定训练集T和超平面(w,b),定义超平面 ( w , b ) (w,b) (w,b)关于T中所有样本点 ( x i , y i ) (x_{i},y_{i}) (xi,yi)的函数间隔为:
(4) γ i ^ = y i ( w ⋅ x i + b ) \hat{\gamma_{i}} = y_{i}(w\cdot x_{i} +b)\tag{4} γi^=yi(w⋅xi+b)(4)
定义最小函数间隔:
(5) γ ^ = m i n i = 1 , . . . , N γ i ^ \hat{\gamma} = \underset{i=1,...,N}{min}\hat{\gamma_{i}}\tag{5} γ^=i=1,...,Nminγi^(5) - 几何间隔
:点 x i x_{i} xi到分离超平面的距离。记为 γ i \gamma_{i} γi.
(6) γ i = y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) \gamma_{i} =y_{i}( \frac{w}{||w||}\cdot x_{i}+\frac{b}{||w||})\tag{6} γi=yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)(6)
其中,|||w||为w的 L 2 L_{2} L2范数。如果点在超平面的负的一侧,即 y i = − 1 y_{i}=-1 yi=−1,点到超平面的距离可以表示为:
(7) γ i = − w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ \gamma_{i} = -\frac{w}{||w||}\cdot x_{i}+\frac{b}{||w||}\tag{7} γi=−∣∣w∣∣w⋅xi+∣∣w∣∣b(7)
当样本点 ( x i , y i ) (x_{i},y_{i}) (xi,yi)被超平面(w,b)正确分类时,点 x i x_{i} xi与超平面(w,b)的距离是:
(8) γ i = w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ \gamma_{i} = \frac{w}{||w||}\cdot x_{i}+\frac{b}{||w||}\tag{8} γi=∣∣w∣∣w⋅xi+∣∣w∣∣b(8)
式(8)就是几何间隔。找到最小几何间隔:
(9) γ = m i n i = 1 , . . . , N γ i \gamma = \underset{i=1,...,N}{min}\gamma_{i}\tag{9} γ=i=1,...,Nminγi(9)
函数间隔与几何间隔有如下的关系:
(10) γ i = γ i ^ ∣ ∣ w ∣ ∣ γ = γ ^ ∣ ∣ w ∣ ∣ \gamma_{i} = \frac{\hat{\gamma_{i}}}{||w||}\\ \gamma = \frac{\hat{\gamma}}{||w||}\tag{10} γi=∣∣w∣∣γi^γ=∣∣w∣∣γ^(10) -
间隔最大化
- 最大间隔分离超平面
将最大间隔分离超平面表示为下面的约束最优化问题:
(11) m a x w , b    γ s . t .    y i ( w ∣ ∣ x ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) ≥ γ ,    i = 1 , 2 , . . . , N \underset{w,b}{max}\; \gamma\\ s.t.\; y_{i}(\frac{w}{||x||}\cdot x_{i}+\frac{b}{||w||})\geq\gamma,\;i=1,2,...,N\tag{11} w,bmaxγs.t.yi(∣∣x∣∣w⋅xi+∣∣w∣∣b)≥γ,i=1,2,...,N(11)
考虑函数间隔和几何间隔的关系,将问题11进行转换
(12) m a x w , b    γ ^ ∣ ∣ w ∣ ∣ s . t .    y i ( w ⋅ x i + b ) ≥ γ ^ ,   i = 1 , 2 , . . , N \underset{w,b}{max}\; \frac{\hat{\gamma}}{||w||}\\ s.t.\; y_{i}(w\cdot x_{i}+b)\geq\hat{\gamma},\, i = 1,2,..,N\tag{12} w,bmax∣∣w∣∣γ^s.t.yi(w⋅xi+b)≥γ^,i=1,2,..,N(12)
可知 - γ ^ \hat{\gamma} γ^的取值并不影响问题12的结果。所以我们取 γ ^ = 1 \hat{\gamma} = 1 γ^=1。
- 最优化问题
m
a
x
  
1
∣
∣
w
∣
∣
max\;\frac{1}{||w||}
max∣∣w∣∣1和最优化问题
m
i
n
  
1
2
∣
∣
w
∣
∣
2
min\;\frac{1}{2}||w||^{2}
min21∣∣w∣∣2是等价的。
所有问题12再次转换为:
(13) m i n w , b   1 2 ∣ ∣ w ∣ ∣ 2 s . t .        y i ( w ⋅ x i + b ) − 1 ≥ 0 ,    1 = 1 , 2 , . . . , N \underset{w,b}{min}\, \frac{1}{2}||w||^{2}\\ s.t.\;\;\; y_{i}(w\cdot x_{i}+b)-1\geq0,\; 1=1,2,...,N\tag{13} w,bmin21∣∣w∣∣2s.t.yi(w⋅xi+b)−1≥0,1=1,2,...,N(13)
问题13是一个凸二次规划的问题1。
总结
线性可分支持向量机学习算法——最大间隔法
输入:线性可分数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T = \{(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N})\}
T={(x1,y1),(x2,y2),...,(xN,yN)},其中,
x
i
∈
X
=
R
n
,
y
i
∈
Y
=
{
−
1
,
1
}
,
i
=
1
,
2
,
.
.
.
,
N
.
x_{i}\in\mathscr{X}=\mathbf{R}^{n},y_{i} \in \mathscr{Y} = \{-1,1\},i=1,2,...,N.
xi∈X=Rn,yi∈Y={−1,1},i=1,2,...,N.
输出:最大间隔分离超平面和分类决策函数.
- 构造并求解约束最优化问题:
m i n w , b   1 2 ∣ ∣ w ∣ ∣ 2 s . t .        y i ( w ⋅ x i + b ) − 1 ≥ 0 ,    1 = 1 , 2 , . . . , N \underset{w,b}{min}\, \frac{1}{2}||w||^{2}\\ s.t.\;\;\; y_{i}(w\cdot x_{i}+b)-1\geq0,\; 1=1,2,...,N w,bmin21∣∣w∣∣2s.t.yi(w⋅xi+b)−1≥0,1=1,2,...,N
求解得到 w ∗ , b ∗ w^{*},b^{*} w∗,b∗. - 有此得到分离超平面:
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∗)
学习的对偶算法
将问题13作为原始最优化问题,应用拉格朗日对偶性2。建立拉格朗日函数,引入拉格朗日乘子
α
i
≥
0
,
 
i
=
1
,
2
,
.
.
.
,
N
,
\alpha_{i}\geq0,\, i =1,2,...,N,
αi≥0,i=1,2,...,N,定义拉格朗日函数:
(14)
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
1
N
α
i
y
i
(
w
⋅
x
i
+
b
)
+
∑
i
=
1
N
α
i
L(w,b,\alpha) = \frac{1}{2}||w||^{2} - \sum_{i=1}^{N}\alpha_{i}y_{i}(w\cdot x_{i}+b)+\sum_{i=1}^{N}\alpha_{i}\tag{14}
L(w,b,α)=21∣∣w∣∣2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi(14)
根据拉格朗日的对偶性,原始问题的对偶问题是极小极大问题:
(15)
m
a
x
α
 
m
i
n
w
,
b
 
L
(
w
,
b
,
α
)
\underset{\alpha}{max}\,\underset{w,b}{min}\,L({w,b,\alpha})\tag{15}
αmaxw,bminL(w,b,α)(15)
所以为了求对偶问题的解,先对
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α)对w,b的极小,再求对
α
\alpha
α的极大。
- 求
m
i
n
w
,
b
 
L
(
w
,
b
,
α
)
\underset{w,b}{min}\,L({w,b,\alpha})
w,bminL(w,b,α)
将拉格朗日函数分别对w,b求偏导数,并使其等于0.得到:
(16) ▽ w L ( w , b , α ) = w − ∑ i = 1 N α i y i x i = 0 ▽ b L ( w , b , α ) = − ∑ i = 1 N α i y i = 0 \triangledown_{w}L(w,b,\alpha) = w- \sum_{i=1}^{N}\alpha_{i}y_{i}x_{i} = 0\\ \triangledown_{b}L(w,b,\alpha) = -\sum_{i=1}^{N}\alpha_{i}y_{i} = 0\tag{16} ▽wL(w,b,α)=w−i=1∑Nαiyixi=0▽bL(w,b,α)=−i=1∑Nαiyi=0(16)
得:
(17) w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 w = \sum_{i=1}^{N}\alpha_{i}y_{i}x_{i}\\ \sum_{i=1}^{N}\alpha_{i}y_{i} = 0\tag{17} w=i=1∑Nαiyixii=1∑Nαiyi=0(17) - 将式17带入拉格朗日函数14得到:
(18) L ( w , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i y i ( ( ∑ j = 1 N α j y j x j ) ⋅ x i + b ) + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i L(w,b,\alpha) = \frac{1}{2}\sum^{N}_{i=1}\sum^{N}_{j=1}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j}) - \sum^{N}_{i=1}\alpha_{i}y_{i}((\sum^{N}_{j=1}\alpha_{j}y_{j}x_{j})\cdot x_{i}+b)+\sum_{i=1}^{N}\alpha_{i}\\ =-\frac{1}{2}\sum^{N}_{i=1}\sum^{N}_{j=1}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j}) +\sum_{i=1}^{N}\alpha_{i}\tag{18} L(w,b,α)=21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi((j=1∑Nαjyjxj)⋅xi+b)+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi(18)
即:
(19) m i n w , b   L ( w , b , α ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \underset{w,b}{min}\, L(w,b,\alpha) =-\frac{1}{2}\sum^{N}_{i=1}\sum^{N}_{j=1}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j}) +\sum_{i=1}^{N}\alpha_{i}\tag{19} w,bminL(w,b,α)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi(19) - 求
m
i
n
w
,
b
 
L
(
w
,
b
,
α
)
\underset{w,b}{min}\, L(w,b,\alpha)
w,bminL(w,b,α)对
α
\alpha
α的极大,即对偶问题:
(20) m a x α   − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i s . t .     ∑ i = 1 N α i y i = 0 α i   ≥ 0 ,      i = 1 , 2 , . . . , N \underset{\alpha}{max}\, -\frac{1}{2}\sum^{N}_{i=1}\sum^{N}_{j=1}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j}) +\sum_{i=1}^{N}\alpha_{i}\\ s.t.\,\,\, \sum_{i=1}^{N}\alpha_{i}y_{i} = 0\\ \alpha_{i}\,\geq0,\;\; i =1,2,...,N\tag{20} αmax−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαis.t.i=1∑Nαiyi=0αi≥0,i=1,2,...,N(20)总结
线性可分支持向量机的学习算法:
输入:线性可分数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T = \{(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N})\} T={(x1,y1),(x2,y2),...,(xN,yN)},其中, x i ∈ X = R n , y i ∈ Y = { − 1 , 1 } , i = 1 , 2 , . . . , N . x_{i}\in\mathscr{X}=\mathbf{R}^{n},y_{i} \in \mathscr{Y} = \{-1,1\},i=1,2,...,N. xi∈X=Rn,yi∈Y={−1,1},i=1,2,...,N.
输出:最大间隔分离超平面和分类决策函数.
(1)构造并求解约束最优化问题
m a x α   − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i s . t .     ∑ i = 1 N α i y i = 0 α i   ≥ 0 ,      i = 1 , 2 , . . . , N \underset{\alpha}{max}\, -\frac{1}{2}\sum^{N}_{i=1}\sum^{N}_{j=1}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j}) +\sum_{i=1}^{N}\alpha_{i}\\ s.t.\,\,\, \sum_{i=1}^{N}\alpha_{i}y_{i} = 0\\ \alpha_{i}\,\geq0,\;\; i =1,2,...,N αmax−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαis.t.i=1∑Nαiyi=0αi≥0,i=1,2,...,N
求解得到最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T \alpha^{*} = (\alpha^{*}_{1},\alpha^{*}_{2},...,\alpha^{*}_{N})^{T} α∗=(α1∗,α2∗,...,αN∗)T。
(2)计算
w ∗ = ∑ i = 1 N α i ∗ y i x i w^{*} = \sum_{i=1}^{N}\alpha_{i}^{*}y_{i}x_{i} w∗=i=1∑Nαi∗yixi
并选择一个 α ∗ \alpha^{*} α∗大于0 的分量 α j ∗ > 0 \alpha_{j}^{*}>0 αj∗>0:
b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^{*} = y_{j} - \sum_{i=1}^{N}\alpha_{i}^{*}y_{i}(x_{i}\cdot x_{j}) b∗=yj−i=1∑Nαi∗yi(xi⋅xj)
(3)得到分离超平面:
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∗)
我们将训练数据中对应于 α ∗ > 0 \alpha_{*}>0 α∗>0的实例点 x i ∈ R n x_{i}\in\mathbf{R}^{n} xi∈Rn称为支持向量。