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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37352167/article/details/85541583

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

  • 线性可分 SVM

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

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

  • 函数间隔与几何间隔

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

    • 几何间隔

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

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

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

    • 函数间隔

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

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

    • 关系

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

  • 硬间隔最大化

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

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

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

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

      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


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

      w , b max r w \mathop{}_{w,b}^{\max} \frac{\overline{r}}{||w||}

      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


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

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

      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


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

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

      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

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


    1. 最终

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

      决策函数 f ( x ) = s i g n ( w x + b ) f(x)=sign(w^*x+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]

                          = 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

                           α i 0 , i = 1 , 2 , . . . , M α_i\ge0,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,α)


    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

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

      w = i = 1 M α i y i x i w=\sum_{i=1}^{M}α_iy_ix_i i = 1 M α i y i = 0 \sum_{i=1}^{M}α_iy_i=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

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

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


    1. w , b min L ( w , b , α ) \mathop{}_{w,b}^{\min} L(w,b,α) α α 的极大 α max w , b min L ( w , b , α ) \mathop{}_{α}^{\max}\mathop{}_{w,b}^{\min} L(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

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

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


    1. 求得最优解 α = ( α 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

      又因 y j ( w x j + b ) 1 = 0 y_j(w^*x_j+b^*)-1=0 ,且注意到 y j 2 = 1 y_j^2=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)


    1. 最终

      分离超平面可写成: i = 1 M α i y i ( x x j ) + b = 0 \sum_{i=1}^{M}α_i^*y_i(x·x_j)+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^*)

  • 支持向量

    根据 w = i = 1 M α i y i x i w^*=\sum_{i=1}^{M}α_i^*y_ix_i 以及 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) 可知,

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

猜你喜欢

转载自blog.csdn.net/weixin_37352167/article/details/85541583
今日推荐