令人头秃的支持向量机SVM(一)SVM分类
任务
- 有一天老师分配给我们一项任务:给定训练样本集,样本集包含不同类别,可能是二分类,可能是多分类,这里我们以二分类为例,训练集如下:
( x 1 , y 1 ) , ( x 2 , y 2 ) , … ( x n , y n ) (x_1,y_1),(x_2,y_2),\ldots(x_n,y_n) (x1,y1),(x2,y2),…(xn,yn)
这里 x 1 , … , x n x_1,\ldots ,x_n x1,…,xn为向量, y 1 , … , y n y_1,\ldots ,y_n y1,…,yn为标签
上图是40个样本经过SVM分类的结果。 - 从图中我们看到这样几个关键信息:两条虚线,一条实线,蓝色点,棕色点,虚线上的点
概念
对于线性可分训练集来说,我们想将样本分成两类,在平面坐标系上是找一条直线将样本分开,但我们样本向量 x n x_n xn的维度即特征数目可能有很多个,这时我们需要找到一个超平面(图中的实线)将样本分开,
1.超平面
超平面的表达式为:
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0
w
\bf{w}
w为向量,
x
\bf{x}
x也为向量,
w
T
x
w^Tx
wTx为一个数,b也为数。
仅仅只是为了将样本分开肯定是不行的,我们应该找到泛化能力最强的超平面,即对训练样本的局部扰动的容忍性最好,所以我们得使用评估指标来去定量分析模型好坏。
2.距离
- 首先,先回顾下点到平面的距离:
平面: w 1 x + w 2 y + b = 0 w_1x+w_2y+b=0 w1x+w2y+b=0,则( x 0 , y 0 x_0,y_0 x0,y0)到平面的距离:
d = ∣ w 1 x + w 2 y + b ∣ w 1 2 + w 2 2 d=\frac{\lvert w_1x+w_2y+b\rvert}{\sqrt{w_1^2+w_2^2}} d=w12+w22 ∣w1x+w2y+b∣
训练样本上任意一个点到超平面的距离我们都能够计算出来:
- 点
x
0
x_0
x0到超平面距离(几何间隔):
d = ∣ w T x 0 + b ∣ w 1 2 + w 2 2 + … + x n 2 = ∣ w T x 0 + b ∣ ∥ w ∥ d=\frac{\lvert w^Tx_0+b\rvert}{\sqrt{w_1^2+w_2^2+\ldots+x_n^2}}=\frac{\lvert w^Tx_0+b\rvert}{\lVert w\lVert} d=w12+w22+…+xn2 ∣wTx0+b∣=∥w∥∣wTx0+b∣
距离(几何间隔)有大有小,几何间隔肯定是有一个最大值,怎么让几何间隔最大化呢?
3.支持向量
我们将图中的实线像两边“平移”得到两条虚线,当虚线碰到样本点时,该点就为支持向量,从图中我们可以看到有一个蓝色的支持向量和两个棕色的支持向量。
两个异类支持向量到超平面的距离之和:
r
=
2
∥
w
∥
r=\frac{2}{\lVert w\lVert}
r=∥w∥2
- 最大化间隔 r r r是我们的优化目标
4.优化目标
-
将最大化 r r r变为最小化 ∥ w ∥ \lVert w\lVert ∥w∥,
-
满足最大化间隔的前提是要满足将样本分类的要求,即对 w w w和 b b b要有约束,
-
具体优化目标和限制条件如下:
m i n w , b 1 2 ∥ w ∥ 2 min_w,_b \ \ \frac{1}{2}{\lVert w\lVert}^2 minw,b 21∥w∥2 s . t . y i ( w T x i + b ) ≥ 1 (公式1) s.t. \ y_i(w^Tx_i+b)\geq 1\tag{公式1} s.t. yi(wTxi+b)≥1(公式1)
解得w,b
对于公式1我们想要去求得约束条件w和b的值,由于目标函数
1
2
∥
w
∥
2
\frac{1}{2}{\lVert w\lVert}^2
21∥w∥2是涉及到二次项,而限制条件是一次项,这是一个二次规划问题。我们可以使用更高效,更聪明的方法,就是对于公式1使用拉格朗日乘子法将其变成对偶问题。
关于原始问题和对偶问题的数学关系其实理解比较复杂,包括一些疑问:
原始问题和对偶问题的关系
原始问题的解是否一定等于对偶问题的解?
关于这部分不懂的可以看看:
视频课浙江大学胡浩基(机器学习-原问题与对偶问题)
李航-统计学习方法-附录C
对偶问题
首先建立拉格朗日函数,引入拉格朗日乘子
α
i
≥
0
,
i
=
1
,
2
,
…
,
N
,
\alpha_i\geq 0,i=1,2,\ldots,N,
αi≥0,i=1,2,…,N,,定义拉格朗日函数:
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
+
∑
i
=
1
N
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
(公式2)
L(w,b,\alpha)=\frac{1}{2}{\lVert w\lVert}^2+\sum_{i=1}^N\alpha_i(1-y_i(w^Tx_i+b)\tag{公式2}
L(w,b,α)=21∥w∥2+i=1∑Nαi(1−yi(wTxi+b)(公式2)
**原始问题的对偶问题是极大极小问题:,即先求
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α)对
w
,
b
w,b
w,b的极小,再求对
α
\alpha
α的极大值:
m
a
x
α
m
i
n
w
,
b
L
(
w
,
b
,
α
)
max_\alpha min_w,_bL(w,b,\alpha)
maxαminw,bL(w,b,α)
- 求
m
i
n
w
,
b
L
(
w
,
b
,
α
)
min_w,_bL(w,b,\alpha)
minw,bL(w,b,α)
令 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)对 w , b w,b w,b求偏导,然后令偏导数为0:
关于范数怎么求导:范数求导
∇ w L ( w , b , α ) = w − ∑ i = 1 N α i y i x i = 0 \nabla_w\ L(w,b,\alpha)=w-\sum_{i=1}^N\alpha_iy_ix_i=0 ∇w L(w,b,α)=w−i=1∑Nαiyixi=0 ∇ b L ( w , b , α ) = − ∑ i = 1 N α i y i = 0 (公式3) \nabla_b\ L(w,b,\alpha)=-\sum_{i=1}^N\alpha_iy_i=0\tag{公式3} ∇b L(w,b,α)=−i=1∑Nαiyi=0(公式3)
得:
w = ∑ i = 1 N α i y i x i w=\sum_{i=1}^N\alpha_iy_ix_i w=i=1∑Nαiyixi ∑ i = 1 N α i y i = 0 (公式4) \sum_{i=1}^N\alpha_iy_i=0\tag{公式4} i=1∑Nαiyi=0(公式4)
将公式4代入拉格朗日函数(公式2)中,即得:
L ( w , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j (公式5) L(w,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j\tag{公式5} L(w,b,α)=i=1∑Nαi−21i=1∑Nj=1∑NαiαjyiujxiTxj(公式5)
公式5表示将 w , b w,b w,b代入公式消掉后得到 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)与 α \alpha α的关系式,即转化为:
m i n w , b L ( w , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j (公式6) min_w,_bL(w,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j\tag{公式6} minw,bL(w,b,α)=i=1∑Nαi−21i=1∑Nj=1∑NαiαjyiujxiTxj(公式6)
注:我们直接解 w , b w,b w,b是不好解的,必须通过先解出 α \alpha α再得到 w , b w,b w,b。 - 再求
m
i
n
w
,
b
L
(
w
,
b
,
α
)
min_w,_bL(w,b,\alpha)
minw,bL(w,b,α)对
α
\alpha
α的极大:
m a x α L ( w , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j max_\alpha L(w,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j maxαL(w,b,α)=i=1∑Nαi−21i=1∑Nj=1∑NαiαjyiujxiTxj s . t . ∑ i = 1 N α i y i = 0 s.t.\sum_{i=1}^N\alpha_iy_i=0 s.t.i=1∑Nαiyi=0 α i ≥ 0 , i = 1 , 2 , … , N (公式7) \alpha_i\geq 0,i=1,2,\ldots,N\tag{公式7} αi≥0,i=1,2,…,N(公式7)
下面仔细看!!!最妙的部分来了!!!
对公式7中的目标函数乘个负号,将 m a x α L ( w , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j max_\alpha L(w,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j maxαL(w,b,α)=i=1∑Nαi−21i=1∑Nj=1∑NαiαjyiujxiTxj
变为:
m i n α L ( w , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j − ∑ i = 1 N α i min_\alpha L(w,b,\alpha)=\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j-\sum_{i=1}^N\alpha_i minαL(w,b,α)=21i=1∑Nj=1∑NαiαjyiujxiTxj−i=1∑Nαi
这样问题就变为:
m i n α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j − ∑ i = 1 N α i min_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j-\sum_{i=1}^N\alpha_i minα21i=1∑Nj=1∑NαiαjyiujxiTxj−i=1∑Nαi s . t . ∑ i = 1 N α i y i = 0 s.t.\sum_{i=1}^N\alpha_iy_i=0 s.t.i=1∑Nαiyi=0 α i ≥ 0 , i = 1 , 2 , … , N (公式8) \alpha_i\geq 0,i=1,2,\ldots,N\tag{公式8} αi≥0,i=1,2,…,N(公式8)
将公式8与公式1对比会发现,我们将求解原始问题转化为对偶问题,完美的将求解 w , b w,b w,b的问题转变为先求解 α \alpha α再根据 w , b w,b w,b与 α \alpha α的关系求解 w , b w,b w,b。当时看到这里真的豁然开朗,不知道你有没有类似的感觉。 - 例:训练数据有三个点:正例点
x
1
=
(
3
,
3
)
T
,
x
2
=
(
4
,
3
)
T
,
x_1=(3,3)^T,x_2=(4,3)^T,
x1=(3,3)T,x2=(4,3)T,负例点是
x
3
=
(
1
,
1
)
T
x_3=(1,1)^T
x3=(1,1)T,求线性可分支持向量机。
根据所给数据,对偶问题是:
m i n α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j − ∑ i = 1 N α i min_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j-\sum_{i=1}^N\alpha_i minα21i=1∑Nj=1∑NαiαjyiujxiTxj−i=1∑Nαi = 1 2 ( α 1 ∗ α 1 ∗ 1 ∗ 1 ∗ 18 + α 2 ∗ α 2 ∗ 1 ∗ 1 ∗ 25 + α 3 ∗ α 3 ∗ ( − 1 ) ∗ ( − 1 ) ∗ 2 =\frac{1}{2}(\alpha_1* \alpha_1*1*1*18+\alpha_2* \alpha_2*1*1*25+\alpha_3* \alpha_3*(-1)*(-1)*2 =21(α1∗α1∗1∗1∗18+α2∗α2∗1∗1∗25+α3∗α3∗(−1)∗(−1)∗2 + α 1 ∗ α 2 ∗ 1 ∗ 1 ∗ 21 ∗ 2 + α 1 ∗ α 3 ∗ 1 ∗ ( − 1 ) ∗ 6 ∗ 2 + α 2 ∗ α 3 ∗ 1 ∗ ( − 1 ) ∗ 7 ∗ 2 ) +\alpha_1* \alpha_2*1*1*21*2+\alpha_1* \alpha_3*1*(-1)*6*2+\alpha_2* \alpha_3*1*(-1)*7*2) +α1∗α2∗1∗1∗21∗2+α1∗α3∗1∗(−1)∗6∗2+α2∗α3∗1∗(−1)∗7∗2) − ( α 1 + α 2 + α 3 ) -(\alpha_1+\alpha_2+\alpha_3) −(α1+α2+α3) = 1 2 ( 18 α 1 2 + 25 α 2 2 + 2 α 3 2 + 42 α 1 α 2 − 12 α 1 α 2 − 14 α 2 α 3 ) − ( α 1 + α 2 + α 3 ) =\frac{1}{2}(18\alpha_1^2+25\alpha_2^2+2\alpha_3^2+42\alpha_1\alpha_2-12\alpha_1\alpha_2-14\alpha_2\alpha_3)-(\alpha_1+\alpha_2+\alpha_3) =21(18α12+25α22+2α32+42α1α2−12α1α2−14α2α3)−(α1+α2+α3) s t . α 1 + α 2 − α 3 = 0 st.\ \alpha_1+\alpha_2-\alpha_3=0 st. α1+α2−α3=0 α i ≥ 0 , i = 1 , 2 , 3 \alpha_i\geq 0,i=1,2,3 αi≥0,i=1,2,3
从现在这个目标函数和限制条件我们可以看出目标函数是关于未知量 α \alpha α的表达式,限制条件也是关于 α \alpha α的表达式。
所以要解决这个最优化问题,将 α 3 = α 1 + α 2 \alpha_3=\alpha_1+\alpha_2 α3=α1+α2代入目标函数得到:
s ( α 1 , α 2 ) = 4 α 1 2 + 13 2 α 2 2 + 10 α 1 α 2 − 2 α 1 − 2 α 2 s(\alpha_1,\alpha_2)=4\alpha_1^2+\frac{13}{2}\alpha_2^2+10\alpha_1\alpha_2-2\alpha_1-2\alpha_2 s(α1,α2)=4α12+213α22+10α1α2−2α1−2α2
有两个未知量 α 1 \alpha_1 α1, α 2 \alpha_2 α2,分别对其求偏导数令导数为0,得到极值点 ( 3 2 , − 1 ) (\frac{3}{2},-1) (23,−1),但我们要求 α i ≥ 0 \alpha_i\geq 0 αi≥0,所以最小值应该在边界上取到。
当 α 1 = 0 \alpha_1=0 α1=0时, s ( α 1 , α 2 ) = 13 2 α 2 2 − 2 α 2 s(\alpha_1,\alpha_2)=\frac{13}{2}\alpha_2^2-2\alpha_2 s(α1,α2)=213α22−2α2,最小值为 s ( 0 , 2 13 ) = − 2 13 s(0,\frac{2}{13})=-\frac{2}{13} s(0,132)=−132
当 α 2 = 0 \alpha_2=0 α2=0时, s ( α 1 , α 2 ) = 4 α 1 2 − 2 α 1 s(\alpha_1,\alpha_2)=4\alpha_1^2-2\alpha_1 s(α1,α2)=4α12−2α1,最小值 s ( 1 4 , 0 ) = − 1 4 s(\frac{1}{4},0)=-\frac{1}{4} s(41,0)=−41
综上所述 α 1 = 1 4 , α 2 = 0 \alpha_1=\frac{1}{4},\alpha_2=0 α1=41,α2=0达到最小,此时 α 3 = α 1 + α 2 = 1 4 \alpha_3=\alpha_1+\alpha_2=\frac{1}{4} α3=α1+α2=41
解得所有的 α 1 , α 2 , α 3 \alpha_1,\alpha_2,\alpha_3 α1,α2,α3后求 w , b w,b w,b,
由公式4我们可以得到:
w = α 1 y 1 x 1 + α 2 y 2 x 2 + α 3 y 3 x 3 w=\alpha_1y_1x_1+\alpha_2 y_2 x_2+\alpha_3y_3x_3 w=α1y1x1+α2y2x2+α3y3x3 = 1 4 × 1 × x 1 + 0 + 1 4 × ( − 1 ) × x 3 = ( 1 2 , 1 2 ) T =\frac{1}{4}×1×x_1+0+\frac{1}{4}×(-1)×x_3=(\frac{1}{2},\frac{1}{2})^T =41×1×x1+0+41×(−1)×x3=(21,21)T
b = 1 − 1 2 ( 3 + 3 ) = − 2 b=1-\frac{1}{2}(3+3)=-2 b=1−21(3+3)=−2
分离超平面为:
1 2 x 1 + 1 2 x 2 − 2 = 0 \frac{1}{2}x^1+\frac{1}{2}x^2-2=0 21x1+21x2−2=0
分类决策函数为:
f ( x ) = s i g n ( 1 2 x 1 + 1 2 x 2 − 2 ) f(x)=sign(\frac{1}{2}x^1+\frac{1}{2}x^2-2) f(x)=sign(21x1+21x2−2)
总结
- 本篇博客主要是硬间隔最大化的算法,即训练数据是在理想的情况下,但在现实问题中训练数据集往往是线性不可分的,即在样本中出现噪声和特异点,这时需要去使用软间隔最大化算法,在下篇博客会详细介绍软间隔最大化
- 参考:
视频课浙江大学胡浩基(机器学习-原问题与对偶问题)
李航-统计学习方法-附录C
周志华-机器学习