[浙大机器学习课程] 支持向量机求解转化为数学最优化问题

背景

对浙大《机器学习》课程,支持向量机部分的一点消化。对应2.1.1, 2.2.1, 2.3.1

支持向量机求解

对于一个线性可分的训练样本集,支持向量机就是要找出一个超平面。这个超平面满足:

  1. 这个超平面分开了训练样本集
  2. 该超平面有最大的间隔(margin)
    • 课程里原话是这么说的。我觉得准确说应该是:由该超平面推出的两边两个支持向量之间有最大的距离。
  3. 该超平面处于间隔的中间,到所有支持向量的距离相等。
    在这里插入图片描述

线性可分的定义

对于样本集 { ( 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 ωTX+b=0,使得:

  • y = -1 时, ω T ⋅ X + b < 0 \omega^{T} \cdot X + b < 0 ωTX+b<0

  • y = 1 时, ω T ⋅ X + b > 0 \omega^{T} \cdot X + b > 0 ωTX+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(ωTXi+b)1

这部分需要花点功夫理解一下。我看视频弹幕里也不少有疑惑的。斗胆用自己的理解来解释一下。

标准化表示所有的支持向量

先明确我们的目标是超出最优的那个超平面 ω T ⋅ X + b = 0 \omega^{T} \cdot X + b = 0 ωTX+b=0 ,也就是里面的 ω \omega ω b b b

一个超平面确定之后,它对于这个样本集的支持向量就已经决定了。就是把这个超平面往两边平行地推,直到擦到一个或多个样本。

然后因为这个超平面又必须在两侧支持向量的正中间,所以我们可以把所有可能的支持向量都表示成: y i ( ω T ⋅ X i + b ) = 1 y_{i} (\omega^{T} \cdot X_{i} + b) = 1 yi(ωTXi+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(ωTXi+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(ωTXi+b)1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值