机器学习 - 支持向量机(2)- 线性 SVM(软间隔最大化)

机器学习 -支持向量机(2)- 线性 SVM(软间隔最大化)

  • 线性 SVM

    上一篇文章介绍了在数据线性可分时 SVM 的构建过程,即硬间隔最大化。而当数据线性不可分时,硬间隔最大化是不适用的。(对比与感知器算法,感知器算法在面对线性不可分的数据时是无法收敛的。)

    为了解决线性不可分的数据,我们使用软间隔最大化。

  • 软间隔最大化

    线性不可分意味着某些数据样本不满足点到超平面距离大于等于 1 的约束条件,所以我们可以对每一个样本点加入一个松弛变量,使得函数间隔加上松弛变量后大于等于 1,此时对原本就满足约束条件的样本点也没有影响。

    则约束条件变为: y i ( w ⋅ x i + b ) − 1 + ξ i ≥ 0 y_i(w·x_i+b)-1+ξ_i \ge 0 yi(wxi+b)1+ξi0

    同时对每一个松弛变量 ξ i ξ_i ξi,付出一个代价的 ξ i ξ_i ξi,则目标函数变为: 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 M ξ i \frac{1}{2}||w||^2 + C\sum_{i=1}^{M}ξ_i 21w2+Ci=1Mξi

    这里 C > 0 称为惩罚参数,一般根据不同的应用场景决定。C 值越大,意味着对误分类的惩罚越大;C 值越小,意味着对误分类的惩罚越小。此时最小化目标函数包含了两层含义:使 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2 尽量小即间隔尽量大,同时使误分类点的个数尽量小,C 是调和二者的系数。


    那么此时线性 SVM 的学习问题变成如下凸二次规划(Convex quadratic programming)问题:

    w , b max ⁡ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 M ξ i \mathop{}_{w,b}^{\max} \frac{1}{2}||w||^2+C\sum_{i=1}^{M}ξ_i w,bmax21w2+Ci=1Mξi

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

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

    解上述约束问题,得最优解 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)


    从问题描述中我们可以看出,线性 SVM 是包含之前所讲的线性可分 SVM 的,而且由于现实中数据往往线性不可分,所以线性 SVM 具有更广的适用性。

    值得注意的是,在最终的分离超平面以及决策函数中没有 ξ ξ ξ 的出现。因为 ξ ξ ξ 所对应的样本点是误分类点,即到超平面距离小于 1 的点,它只影响 w ∗ , b ∗ w^*,b^* w,b 的值,一旦 w ∗ , b ∗ w^*,b^* w,b 确定以后,这些点就没有用了。我们需要的仍然只是支持向量。

  • 对偶算法

    线性 SVM 的学习过程与线性可分 SVM 的过程是类似的:

    1. 构建 拉格朗日函数

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


    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,b,ξminαmaxL(w,b,α,ξ,μ)αmaxw,b,ξminL(w,b,α,ξ,μ)


    1. w , b , ξ w,b,ξ 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

      ∇ ξ L ( w , b , α , ξ , μ ) = C − α i − μ i = 0 \nabla_ξL(w,b,α,ξ,μ)=C-α_i-μ_i=0 ξL(w,b,α,ξ,μ)=Cαiμi=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

      C − α i − μ i = 0 C-α_i-μ_i=0 Cαiμ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 w,bminL(w,b,α,ξ,μ)=21i=1Mj=1Mαiαjyiyj(xixj)+i=1Mαi


    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

      根据 C − α i − μ i = 0 C-α_i-μ_i=0 Cαiμi=0 可将 μ i μ_i μi 消去,从而只留下变量 α i α_i αi,所以约束变为

      0 ≤ α i ≤ C 0\leα_i\le C 0αiC

      最终问题变为

      α 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

              0 ≤ α i ≤ C , i = 1 , 2 , . . . , M 0\leα_i\le C,i=1,2,...,M 0αiC,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

      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)

  • 支持向量

    在线性不可分的情况下,将对应于 α i ∗ > 0 α_i^*>0 αi>0 的数据样本 x i x_i xi 称为支持向量。

    在软间隔最大化的情况中,支持向量要比线性可分时的硬间隔最大化复杂一些。

    1. 分类正确:

      α i ∗ &lt; C α_i^*&lt;C αi<C,则 ξ i = 0 ξ_i=0 ξi=0,支持向量恰好落在间隔边界上;

      α i ∗ = C α_i^*=C αi=C 0 &lt; ξ i &lt; 1 0&lt;ξ_i&lt;1 0<ξi<1,支持向量在间隔边界与分离超平面之间;

      α i ∗ = C α_i^*=C αi=C ξ i = 1 ξ_i=1 ξi=1,支持向量在分离超平面上;

    2. 分类错误

      α i ∗ = C α_i^*=C αi=C ξ i &gt; 1 ξ_i&gt;1 ξi>1,支持向量在分离超平面误分类一侧;

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值