机器学习 - 支持向量机(1)- 线性可分 SVM(间隔最大化)

机器学习 -支持向量机(1)- 线性可分 SVM(间隔最大化)

  • 线性可分 SVM

    对于线性可分的数据,SVM 与之前讲过的 感知器算法 有异曲同工之妙。二者都是通过学得一个超平面以对数据进行分类,都是有解的。只不过 感知器算法有无数个解,而 SVM 只有一个最优解。

    下面开始介绍 SVM 的相关内容。

  • 函数间隔与几何间隔

    所谓间隔,在这里是指样本点到超平面的距离,也可以用来表示分类预测的置信度(间隔越大,则分类有更高的置信度,反之同理)。

    • 几何间隔

      几何间隔类似于“点到线的距离”: d = ∣ w ⋅ x + b ∣ ∣ ∣ w ∣ ∣ d = \frac{| w·x+b |}{||w||} d=wwx+b ∣ ∣ w ∣ ∣ ||w|| w 表示 L2 范数。

      以此对于样本点 x i x_i xi,定义其到超平面的几何间隔为: r i = y i w ⋅ x i + b ∣ ∣ w ∣ ∣ r_i = y_i\frac{w·x_i+b}{||w||} ri=yiwwxi+b.

      r i r_i ri 的正负可表示分类是否正确: y i 与 w ⋅ x i + b ∣ ∣ w ∣ ∣ y_i 与 \frac{w·x_i+b}{||w||} yiwwxi+b 同号,则表示分类正确;异号则表示分类错误。

    • 函数间隔

      函数间隔中,我们可用 w ⋅ x + b w·x+b wx+b 来相对地表示样本点 x i x_i xi 到超平面的距离以及类别。同样根据符号是否相同来判断分类是否正确。

      以此对于样本点 x i x_i xi,定义其到超平面的函数间隔为: r i ‾ = y i ( w ⋅ x i + b ) \overline{r_i} = y_i(w·x_i+b) ri=yi(wxi+b).

    • 关系

      ∣ ∣ w ∣ ∣ = 1 ||w||=1 w=1,两间隔相等;
      w , b w,b w,b 成比例改变,函数间隔也按比例改变,而几何间隔不变。

  • 硬间隔最大化

    对于线性可分数据,我们能够得到无穷个分离超平面,但是使得所有样本点到超平面的距离之和最大的超平面是唯一的。

    之前说过点到超平面的距离可表示分类的置信度,那么间隔最大的超平面可以以最大的置信度对数据进行分类。也就是说,我们不仅要将正负样本点分开,还要有足够大的把握将他们分开。这样的超平面的泛化能力应当也很好。

    1. 求几何间隔最大的分离超平面可表示为下面的约束优化问题:

      w , b max ⁡ r \mathop{}_{w,b}^{\max} r w,bmaxr

      s . t . s.t. s.t. y i [ w ⋅ x i + b ∣ ∣ w ∣ ∣ ] ≥ r , i = 1 , 2 , . . . , M y_i[\frac{w·x_i+b}{||w||}] \ge r,i=1,2,...,M yi[wwxi+b]r,i=1,2,...,M


    1. 而几何间隔可用函数间隔表示: r = r ‾ ∣ ∣ w ∣ ∣ r=\frac{\overline{r}}{||w||} r=wr,则约束问题改变为:

      w , b max ⁡ r ‾ ∣ ∣ w ∣ ∣ \mathop{}_{w,b}^{\max} \frac{\overline{r}}{||w||} w,bmaxwr

      s . t . s.t. s.t. y i ( w ⋅ x i + b ) ≥ r ‾ , i = 1 , 2 , . . . , M y_i(w·x_i+b) \ge \overline{r},i=1,2,...,M yi(wxi+b)r,i=1,2,...,M


    1. 其中 r ‾ \overline{r} r 的大小对约束问题没有影响(可以在 w , b w,b w,b 中对 r ‾ \overline{r} r 的变化进行同倍数抵消),所以可取 r ‾ = 1 \overline{r}=1 r=1,得到:

      w , b max ⁡ 1 ∣ ∣ w ∣ ∣ \mathop{}_{w,b}^{\max} \frac{1}{||w||} w,bmaxw1

      s . t . s.t. s.t. y i ( w ⋅ x i + b ) ≥ 1 , i = 1 , 2 , . . . , M y_i(w·x_i+b) \ge 1,i=1,2,...,M yi(wxi+b)1,i=1,2,...,M


    1. 又因 最大化 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1 等价于 最小化 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2,所以最终约束问题转化为:

      w , b max ⁡ 1 2 ∣ ∣ w ∣ ∣ 2 \mathop{}_{w,b}^{\max} \frac{1}{2}||w||^2 w,bmax21w2

      s . t . s.t. s.t. y i ( w ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , . . . , M y_i(w·x_i+b)-1 \ge 0,i=1,2,...,M yi(wxi+b)10,i=1,2,...,M

      (平方是为了去根号, 1 2 \frac{1}{2} 21 是为了在后续求导中约掉平方)


    1. 最终

      求得最优解 w ∗ , b ∗ w^*,b^* w,b,得到分离超平面 w ∗ x + b ∗ = 0 w^*x+b^*=0 wx+b=0,存在且唯一;

      决策函数 f ( x ) = s i g n ( w ∗ x + b ∗ ) f(x)=sign(w^*x+b^*) f(x)=sign(wx+b)

  • 对偶算法

    在求解约束问题最优解时,可以应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,更容易求解。

    1. 构建拉格朗日函数

      L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 M α i [ y i ( w ⋅ x i + b ) − 1 ] L(w,b,α)=\frac{1}{2}||w||^2-\sum_{i=1}^{M}α_i[y_i(w·x_i+b)-1] L(w,b,α)=21w2i=1Mαi[yi(wxi+b)1]

                          = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 M α i y i ( w ⋅ x i + b ) + ∑ i = 1 M α i =\frac{1}{2}||w||^2-\sum_{i=1}^{M}α_iy_i(w·x_i+b)+\sum_{i=1}^{M}α_i =21w2i=1Mαiyi(wxi+b)+i=1Mαi

                           α i ≥ 0 , i = 1 , 2 , . . . , M α_i\ge0,i=1,2,...,M αi0,i=1,2,...,M


    1. 根据对偶性,将原始“最小最大”问题转化为“最大最小”问题

      w , b min ⁡ α max ⁡ L ( w , b , α ) ⟹ α max ⁡ w , b min ⁡ L ( w , b , α ) \mathop{}_{w,b}^{\min}\mathop{}_{α}^{\max} L(w,b,α) \Longrightarrow \mathop{}_{α}^{\max}\mathop{}_{w,b}^{\min} L(w,b,α) w,bminαmaxL(w,b,α)αmaxw,bminL(w,b,α)


    1. 为求最小,分别对 w, b 求偏导并等于 0

      ∇ w L ( w , b , α ) = w − ∑ i = 1 M α i y i x i = 0 \nabla_wL(w,b,α)=w-\sum_{i=1}^{M}α_iy_ix_i=0 wL(w,b,α)=wi=1Mαiyixi=0

      ∇ b L ( w , b , α ) = ∑ i = 1 M α i y i = 0 \nabla_bL(w,b,α)=\sum_{i=1}^{M}α_iy_i=0 bL(w,b,α)=i=1Mαiyi=0

      w = ∑ i = 1 M α i y i x i w=\sum_{i=1}^{M}α_iy_ix_i w=i=1Mαiyixi ∑ i = 1 M α i y i = 0 \sum_{i=1}^{M}α_iy_i=0 i=1Mαiyi=0

      将结果代回,得

      w , b min ⁡ L ( w , b , α ) = − 1 2 ∑ i = 1 M ∑ j = 1 M α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 M α i \mathop{}_{w,b}^{\min} L(w,b,α)=-\frac{1}{2}\sum_{i=1}^{M}\sum_{j=1}^{M}α_iα_jy_iy_j(x_i·x_j)+\sum_{i=1}^{M}α_i w,bminL(w,b,α)=21i=1Mj=1Mαiαjyiyj(xixj)+i=1Mαi

      s . t . s.t. s.t. ∑ i = 1 M α i y i = 0 \sum_{i=1}^{M}α_iy_i=0 i=1Mαiyi=0

              α i ≥ 0 , i = 1 , 2 , . . . , M α_i\ge0,i=1,2,...,M αi0,i=1,2,...,M


    1. w , b min ⁡ L ( w , b , α ) \mathop{}_{w,b}^{\min} L(w,b,α) w,bminL(w,b,α) α α α 的极大 α max ⁡ w , b min ⁡ L ( w , b , α ) \mathop{}_{α}^{\max}\mathop{}_{w,b}^{\min} L(w,b,α) αmaxw,bminL(w,b,α)

      添 “负号”将求极大转化为求极小,得到,

      α min ⁡ 1 2 ∑ i = 1 M ∑ j = 1 M α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 M α i \mathop{}_{α}^{\min} \frac{1}{2}\sum_{i=1}^{M}\sum_{j=1}^{M}α_iα_jy_iy_j(x_i·x_j)-\sum_{i=1}^{M}α_i αmin21i=1Mj=1Mαiαjyiyj(xixj)i=1Mαi

      s . t . s.t. s.t. ∑ i = 1 M α i y i = 0 \sum_{i=1}^{M}α_iy_i=0 i=1Mαiyi=0

              α i ≥ 0 , i = 1 , 2 , . . . , M α_i\ge0,i=1,2,...,M αi0,i=1,2,...,M


    1. 求得最优解 α ∗ = ( α 1 , α 2 , . . . , α M ) T α^*=(α_1,α_2,...,α_M)^T α=(α1,α2,...,αM)T,根据 KKT 条件

      由此可得到 w ∗ = ∑ i = 1 M α i ∗ y i x i w^*=\sum_{i=1}^{M}α_i^*y_ix_i w=i=1Mαiyixi

      又因 y j ( w ∗ x j + b ∗ ) − 1 = 0 y_j(w^*x_j+b^*)-1=0 yj(wxj+b)1=0,且注意到 y j 2 = 1 y_j^2=1 yj2=1

      可得到 b ∗ = y j − ∑ i = 1 M α i ∗ y i ( x i ⋅ x j ) b^*=y_j-\sum_{i=1}^{M}α_i^*y_i(x_i·x_j) b=yji=1Mαiyi(xixj)


    1. 最终

      分离超平面可写成: ∑ i = 1 M α i ∗ y i ( x ⋅ x j ) + b ∗ = 0 \sum_{i=1}^{M}α_i^*y_i(x·x_j)+b^*=0 i=1Mαiyi(xxj)+b=0

      分类决策函数可写成: f ( x ) = s i g n ( ∑ i = 1 M α i ∗ y i ( x ⋅ x j ) + b ∗ ) f(x)=sign(\sum_{i=1}^{M}α_i^*y_i(x·x_j)+b^*) f(x)=sign(i=1Mαiyi(xxj)+b)

  • 支持向量

    根据 w ∗ = ∑ i = 1 M α i ∗ y i x i w^*=\sum_{i=1}^{M}α_i^*y_ix_i w=i=1Mαiyixi 以及 b ∗ = y j − ∑ i = 1 M α i ∗ y i ( x i ⋅ x j ) b^*=y_j-\sum_{i=1}^{M}α_i^*y_i(x_i·x_j) b=yji=1Mαiyi(xixj) 可知,

    w ∗ , b ∗ w^*,b^* w,b 只依赖与训练数据中对应于 α i ∗ > 0 α_i^*>0 αi>0 的样本点,而其他样本点对它们没有影响,所以我们将训练数据中对应于 α i ∗ > 0 α_i^*>0 αi>0 的样本点 x i ∈ R n x_i∈R^n xiRn 称为支持向量,且 w ∗ x i + b ∗ = − + 1 w^*x_i+b^*=\mathop{}_{-}^{+}1 wxi+b=+1,即 x i x_i xi 一定在决策边界上。

  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值