背景
对浙大《机器学习》课程,支持向量机部分的一点消化。对应2.1.1, 2.2.1, 2.3.1。
支持向量机求解
对于一个线性可分的训练样本集,支持向量机就是要找出一个超平面。这个超平面满足:
- 这个超平面分开了训练样本集
- 该超平面有最大的间隔(margin)
- 课程里原话是这么说的。我觉得准确说应该是:由该超平面推出的两边两个支持向量之间有最大的距离。
- 该超平面处于间隔的中间,到所有支持向量的距离相等。
线性可分的定义
对于样本集 { ( X i , y i ) , i = 1... N } \{ (X_{i} ,y_{i}), i = 1 ... N \} {(Xi,yi),i=1...N},存在超平面 ω T ⋅ X + b = 0 \omega^{T} \cdot X + b = 0 ωT⋅X+b=0,使得:
-
y = -1 时, ω T ⋅ X + b < 0 \omega^{T} \cdot X + b < 0 ωT⋅X+b<0
-
y = 1 时, ω T ⋅ X + b > 0 \omega^{T} \cdot X + b > 0 ωT⋅X+b>0
转化为数学最优化问题
最小化 1 2 ∥ ω ∥ 2 \frac{1}{2} \left\| \omega \right \|^{2} 21∥ω∥2,使得 y i ( ω T ⋅ X i + b ) ≥ 1 y_{i} (\omega^{T} \cdot X_{i} + b) \ge 1 yi(ωT⋅Xi+b)≥1
这部分需要花点功夫理解一下。我看视频弹幕里也不少有疑惑的。斗胆用自己的理解来解释一下。
标准化表示所有的支持向量
先明确我们的目标是超出最优的那个超平面 ω T ⋅ X + b = 0 \omega^{T} \cdot X + b = 0 ωT⋅X+b=0 ,也就是里面的 ω \omega ω 和 b b b。
一个超平面确定之后,它对于这个样本集的支持向量就已经决定了。就是把这个超平面往两边平行地推,直到擦到一个或多个样本。
然后因为这个超平面又必须在两侧支持向量的正中间,所以我们可以把所有可能的支持向量都表示成: y i ( ω T ⋅ X i + b ) = 1 y_{i} (\omega^{T} \cdot X_{i} + b) = 1 yi(ωT⋅Xi+b)=1 的形式。这里一个式子已经包含了两侧的两个支持向量( y i = 1 y_{i} = 1 yi=1 , y i = − 1 y_{i} = -1 yi=−1 的情况)。
右侧等于 1 1 1 是为了方便,等于几都是可以的。因为我们可以给 ω \omega ω 和 b b b 同时乘上一个常数进行缩放。
因此对于两边的支持向量外侧(以及正好在支持向量上),就有 y i ( ω T ⋅ X i + b ) ≥ 1 y_{i} (\omega^{T} \cdot X_{i} + b) \ge 1 yi(ωT⋅Xi+b)≥1。
求两个支持向量之间的间隔
这个挺容易求的。
一个点
X
0
X_{0}
X0 到一个超平面的距离是:
d
=
ω
⃗
⋅
X
0
⃗
+
b
∥
ω
⃗
∥
d = \frac{ \vec{\omega} \cdot \vec{X_{0}} + b }{ \left \| \vec{\omega} \right \| }
d=∥ω∥ω⋅X0+b
关于“求点到超平面的距离“可以详见我的另一篇文章。(没错,我早就忘记怎么求了,专门特地去又学了一遍)
我们在一侧的支持向量上任取一个点
X
0
X_{0}
X0,它到我们的目标超平面的距离就是上面这个式子。既然这个点就在支持向量上,就有:
ω
⃗
⋅
X
0
⃗
+
b
=
1
\vec{\omega} \cdot \vec{X_{0}} + b = 1
ω⋅X0+b=1
注意,支持向量里的
ω
\omega
ω 和
b
b
b 和目标平面里的都是一样的。所以我们直接得到
d
=
ω
⃗
⋅
X
0
⃗
+
b
∥
ω
⃗
∥
=
1
∥
ω
⃗
∥
d = \frac{ \vec{\omega} \cdot \vec{X_{0}} + b }{ \left \| \vec{\omega} \right \| } = \frac{1}{\left \| \vec{\omega} \right \|}
d=∥ω∥ω⋅X0+b=∥ω∥1
所以真正实际的 m a r g i n margin margin 应该是 2 2 2 倍的 d d d。
不过无所谓,我们的目标就是尽可能让 1 ∥ ω ⃗ ∥ \frac{1}{\left \| \vec{\omega} \right \|} ∥ω∥1 尽可能大,即,让 ω \omega ω 尽可能的小。在课程视频里最后是转化为让 1 2 ∥ ω ∥ 2 \frac{1}{2} \left\| \omega \right \|^{2} 21∥ω∥2 尽可能的小。因为写成这样后续求导更方便。
总结
支持向量机求解可以化转为:
最小化 1 2 ∥ ω ∥ 2 \frac{1}{2} \left\| \omega \right \|^{2} 21∥ω∥2,使得 y i ( ω T ⋅ X i + b ) ≥ 1 y_{i} (\omega^{T} \cdot X_{i} + b) \ge 1 yi(ωT⋅Xi+b)≥1