机器学习算法——支持向量机(2)

1.知识回顾

  在前一篇文章中,我们讨论了当数据线性可分的情况下的支持向量机模型,根据几何间隔最大给出了线性可分支持向量机的原始最优化问题的数学表达式:
w , b m i n   1 2 ∣ ∣ w ∣ ∣ 2 s . t .   y i ( w ⋅ x i + b ) − 1 ≥ 0 {_{\boldsymbol{w},b}^{min}}\ \frac{1}{2}||\boldsymbol{w}||^2\\ s.t.\ y_i({\boldsymbol{w}} \cdot \boldsymbol{x}_i+{b})-1\ge 0 w,bmin 21w2s.t. yi(wxi+b)10以及原始问题的对偶问题的表达式:
α m i n   1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s . t .   ∑ i = 1 N α i y i = 0 α i ≥ 0 {_\boldsymbol{\alpha}^{min}}\ \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j(\boldsymbol{x}_i \cdot \boldsymbol{x}_j)-\sum_{i=1}^{N}\alpha_i \\ s.t.\ \sum_{i=1}^{N}\alpha_i y_i =0 \\ \alpha_i \ge 0 αmin 21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t. i=1Nαiyi=0αi0接下来,在本篇文章中我们主要讨论当数据近似线性可分时的支持向量机模型的推导与求解,我们把这种情况下的支持向量机叫做线性支持向量机。

2.线性支持向量机

  先来看一下什么叫数据近似线性可分,如下图所示,蓝色圆点和红色圆点分别代表正类和负类,显然我们不能找到一个线性的分离超平面将这两类完全正确的分开;但是如果将数据中的某些特异点(黑色箭头指向的点)去除之后,剩下的大部分样本点组成的集合是线性可分的,这样的数据就叫做近似线性可分。

图1 近似线性可分示意图

  线性可分支持向量机对近似线性可分的数据是不适用的,因为有些样本点无法满足其 y i ( w ⋅ x i + b ) − 1 ≥ 0 y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b)-1 \ge 0 yi(wxi+b)10的约束条件,即某些样本点不能满足函数间隔大于1。为了解决这个问题,需要将硬间隔最大化修改为软间隔最大化。具体地,可以对每个样本点 ( x i , y i ) (\boldsymbol{x}_i,y_i) (xi,yi)引进一个松弛变量 ξ i ≥ 0 \xi_i \ge 0 ξi0,使得函数间隔加上松弛变量大于等于1,同时应对每个松弛变量进行惩罚。这样的设置可以说是放低了分类的要求,因为此时可以允许样本点的函数间隔小于1,也允许分类错误。于是便得到了线性支持向量机的原始优化问题表达式:
w , b m i n   1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i s . t .   y i ( w ⋅ x i + b ) ≥ 1 − ξ i ξ i ≥ 0 {_{\boldsymbol{w},b}^{min}}\ \frac{1}{2}||\boldsymbol{w}||^2 + C \sum_{i=1}^{N}\xi_i \\ s.t.\ y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b) \ge 1-\xi_i \\ \xi_i \ge 0 w,bmin 21w2+Ci=1Nξis.t. yi(wxi+b)1ξiξi0其中, C > 0 C>0 C>0称为惩罚因子。上式中的目标函数包含两层含义:使 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||\boldsymbol{w}||^2 21w2尽量小即间隔尽量大,同时使误分类点的个数尽量小。 C C C是调节这二者的系数, C C C越大,对误分类的惩罚就越大,误分类点就越少,但是会使得间隔越小; C C C越小,对误分类的惩罚就越小,误分类点就越多,但是会使得间隔越大。

3.学习的对偶算法

  还是一样,为了求解简单以及后面引入核函数推广到非线性支持向量机,我们要推导出线性支持向量机原始问题的对偶问题。

3.1 对偶问题的推导

根据原始优化问题写出拉格朗日函数:
L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i ( ( y i ( w ⋅ x i + b ) − 1 + ξ i ) ) − ∑ i = 1 N μ i ξ i L(\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{\alpha},\boldsymbol{\mu})=\frac{1}{2}||\boldsymbol{w}||^2+C\sum_{i=1}^{N}\xi_i - \sum_{i=1}^{N}\alpha_i\big((y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b)-1+\xi_i)\big)-\sum_{i=1}^{N}\mu_i\xi_i L(w,b,ξ,α,μ)=21w2+Ci=1Nξii=1Nαi((yi(wxi+b)1+ξi))i=1Nμiξi L ( w , b , ξ , α , μ ) L(\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{\alpha},\boldsymbol{\mu}) L(w,b,ξ,α,μ)分别对 w , b , ξ i \boldsymbol{w},b,\xi_i w,b,ξi求偏导:
∇ w = w − ∑ i = 1 N α i y i x i = 0 ∇ b = − ∑ i = 1 N α i y i = 0 ∇ ξ i = C − α i − μ i = 0 \nabla_{\boldsymbol{w}}=\boldsymbol{w}-\sum_{i=1}^{N}\alpha_i y_i \boldsymbol{x}_i=0 \\ \nabla_b=-\sum_{i=1}^{N}\alpha_i y_i=0 \\ \nabla_{\xi_i}=C-\alpha_i-\mu_i=0 w=wi=1Nαiyixi=0b=i=1Nαiyi=0ξi=Cαiμi=0可以得到:
w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 C − α i − μ i = 0 \boldsymbol{w}=\sum_{i=1}^{N}\alpha_i y_i \boldsymbol{x}_i \\ \sum_{i=1}^{N}\alpha_i y_i=0 \\ C-\alpha_i-\mu_i=0 w=i=1Nαiyixii=1Nαiyi=0Cαiμi=0代入到 L ( w , b , ξ , α , μ ) L(\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{\alpha},\boldsymbol{\mu}) L(w,b,ξ,α,μ)中,可得:
w , b , ξ m i n   L ( w , b , ξ , α , μ ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i {_{\boldsymbol{w},b,\boldsymbol{\xi}}^{min}}\ L(\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{\alpha},\boldsymbol{\mu})=-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j(\boldsymbol{x}_i \cdot \boldsymbol{x}_j)+\sum_{i=1}^{N}\alpha_i w,b,ξmin L(w,b,ξ,α,μ)=21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi再对 w , b , ξ m i n   L ( w , b , ξ , α , μ ) {_{\boldsymbol{w},b,\boldsymbol{\xi}}^{min}}\ L(\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{\alpha},\boldsymbol{\mu}) w,b,ξmin L(w,b,ξ,α,μ) α \boldsymbol{\alpha} α的极大,即:
α m a x   − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i {_\boldsymbol{\alpha}^{max}}\ -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j(\boldsymbol{x}_i \cdot \boldsymbol{x}_j)+\sum_{i=1}^{N}\alpha_i αmax 21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi再将目标函数的求极大转换为求极小,就得到了线性可分支持向量机的对偶最优化问题的目标函数:
α m i n   1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i {_\boldsymbol{\alpha}^{min}}\ \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j(\boldsymbol{x}_i \cdot \boldsymbol{x}_j)-\sum_{i=1}^{N}\alpha_i αmin 21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi约束条件为:
(1) ∑ i = 1 N α i y i = 0 \sum_{i=1}^{N}\alpha_iy_i=0 i=1Nαiyi=0
(2) C − α i − μ i = 0 C-\alpha_i-\mu_i=0 Cαiμi=0
(3) α i ≥ 0 \alpha_i \ge 0 αi0
(4) μ i ≥ 0 \mu_i \ge 0 μi0
可以对约束条件再进行一下变换:
根据约束条件(2)和(4)可以得到: α i ≤ C \alpha_i \le C αiC,再结合约束条件(3)可以得到:
0 ≤ α i ≤ C 0 \le \alpha_i \le C 0αiC于是就得到了原始问题的对偶问题表达式:
α m i n   1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s . t .   ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C {_\boldsymbol{\alpha}^{min}}\ \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j(\boldsymbol{x}_i \cdot \boldsymbol{x}_j)-\sum_{i=1}^{N}\alpha_i \\ s.t.\ \sum_{i=1}^{N}\alpha_i y_i =0 \\ 0 \le \alpha_i \le C αmin 21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t. i=1Nαiyi=00αiC可以发现,线性支持向量机与线性可分支持向量机的对偶问题只有约束条件不同,即多了个 α i ≤ C \alpha_i \le C αiC的约束条件。

3.2 模型求解

  求解上面所推出的对偶问题,可以得到对偶问题的最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T \boldsymbol{\alpha}^*=({\alpha}^*_1,{\alpha}^*_2,...,{\alpha}^*_N)^T α=(α1,α2,...,αN)T。有了 α ∗ \boldsymbol{\alpha}^* α之后,就可以进一步求得原始最优化问题的解 w ∗ 和 b ∗ \boldsymbol{w}^*和b^* wb。求解过程与上一篇文章中相同,即根据KKT条件:
α i ∗ ( y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ) = 0 0 ≤ α i ≤ C C − α i ∗ − μ i ∗ = 0 μ i ∗ ξ i ∗ = 0 \alpha^*_i(y_i({\boldsymbol{w}^*} \cdot \boldsymbol{x}_i+{b^*})-1+\xi^*_i)=0 \\ 0 \le \alpha_i \le C \\ C-\alpha^*_i-\mu^*_i=0 \\ \mu^*_i\xi^*_i=0 αi(yi(wxi+b)1+ξi)=00αiCCαiμi=0μiξi=0所以对于 0 < α j ∗ < C 0 < \alpha^*_j < C 0<αj<C所对应的实例点 ( x j , y j ) (\boldsymbol{x}_j,y_j) (xj,yj)有:
y j ( w ∗ ⋅ x j + b ∗ ) − 1 + ξ i ∗ = 0 ξ i ∗ = 0 y_j({\boldsymbol{w}^*} \cdot \boldsymbol{x}_j+{b^*})-1+\xi^*_i=0 \\ \xi^*_i=0 yj(wxj+b)1+ξi=0ξi=0即:
y j ( w ∗ ⋅ x j + b ∗ ) − 1 = 0 y_j({\boldsymbol{w}^*} \cdot \boldsymbol{x}_j+{b^*})-1=0 yj(wxj+b)1=0最后可以求出:
w ∗ = ∑ i = 1 N α i ∗ y i x i b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) \boldsymbol{w}^*=\sum_{i=1}^{N}\alpha^*_i y_i \boldsymbol{x}_i \\ b^*=y_j-\sum_{i=1}^{N}\alpha^*_i y_i(\boldsymbol{x}_i \cdot \boldsymbol{x}_j) w=i=1Nαiyixib=yji=1Nαiyi(xixj)分离超平面可以写为:
∑ i = 1 N α i ∗ y i ( x i ⋅ x ) + b ∗ = 0 \sum_{i=1}^{N}\alpha^*_i y_i (\boldsymbol{x}_i \cdot \boldsymbol{x})+b^*=0 i=1Nαiyi(xix)+b=0分离决策函数可以写为:
f ( x ) = sign ( ∑ i = 1 N α i ∗ y i ( x i ⋅ x ) + b ∗ ) f(\boldsymbol{x})=\text{sign}(\sum_{i=1}^{N}\alpha^*_i y_i (\boldsymbol{x}_i \cdot \boldsymbol{x})+b^*) f(x)=sign(i=1Nαiyi(xix)+b)这样线性支持向量机就求解完成了。

3.3 支持向量

  线性支持向量机的支持向量要比线性可分支持向量机复杂一点,如图2所示,当 α i ∗ = 0 \alpha^*_i=0 αi=0时,此时样本点 ( x i , y i ) (\boldsymbol{x}_i,y_i) (xi,yi)不是支持向量;当 0 < α i ∗ < C 0 < \alpha^*_i < C 0<αi<C时, ξ i = 0 \xi_i=0 ξi=0,此时支持向量在间隔边界上;当 α i ∗ = C , 0 < ξ i < 1 \alpha^*_i=C,0<\xi_i<1 αi=C,0<ξi<1时,支持向量在间隔边界与分离超平面之间;当 α i ∗ = C , ξ i = 1 \alpha^*_i=C,\xi_i=1 αi=C,ξi=1时,支持向量在分离超平面上;当 α i ∗ = C , ξ i > 1 \alpha^*_i=C,\xi_i>1 αi=C,ξi>1时,支持向量在分离超平面误分类一侧。
图2 线性支持向量机的支持向量

4.合页损失函数

  线性支持向量机模型还有另外一种解释,是通过合页损失函数(hinge loss)来定义的,其表达式如下:
∑ i = 1 N [ 1 − y i ( w ⋅ x i + b ) ] + + λ ∣ ∣ w ∣ ∣ 2 \sum_{i=1}^{N}[1-y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b)]_++\lambda||\boldsymbol{w}||^2 i=1N[1yi(wxi+b)]++λw2其中第一项为合页损失函数,其数学定义如下:
[ z ] + = { z , if z > 0 0 , if z ≤ 0 [z]_+= \begin{cases} z ,&\text{if} \enspace z > 0 \\ 0 ,&\text{if} \enspace z \le 0 \end{cases} [z]+={z,0,ifz>0ifz0其图像如图3所示:

图3 合页损失函数
  其实用合页损失函数定义的线性支持向量机与原始的线性支持向量机模型是等价的,证明如下:

令:
[ 1 − y i ( w ⋅ x i + b ) ] + = ξ i [1-y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b)]_+=\xi_i [1yi(wxi+b)]+=ξi则有 ξ i ≥ 0 \xi_i \ge 0 ξi0,当 1 − y i ( w ⋅ x i + b ) > 0 1-y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b)>0 1yi(wxi+b)>0时,有 y i ( w ⋅ x i + b ) ≥ 1 − ξ i y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b) \ge 1-\xi_i yi(wxi+b)1ξi;当 1 − y i ( w ⋅ x i + b ) ≤ 0 1-y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b) \le 0 1yi(wxi+b)0时, ξ i = 0 \xi_i=0 ξi=0,有 y i ( w ⋅ x i + b ) ≥ 1 − ξ i y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b) \ge 1-\xi_i yi(wxi+b)1ξi;所以可以将上面的优化问题写成:
w , b m i n   ∑ i = 1 N ξ i + λ ∣ ∣ w ∣ ∣ 2 {_{\boldsymbol{w},b}^{min}}\ \sum_{i=1}^{N}\xi_i+\lambda||\boldsymbol{w}||^2 w,bmin i=1Nξi+λw2若取 λ = 1 2 C \lambda=\frac{1}{2C} λ=2C1,则有:
w , b m i n   1 C ( 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i ) {_{\boldsymbol{w},b}^{min}}\ \frac{1}{C}(\frac{1}{2}||\boldsymbol{w}||^2 + C \sum_{i=1}^{N}\xi_i) w,bmin C1(21w2+Ci=1Nξi)与线性支持向量机的原始形式等价,证毕。

5.参考资料

1.李航《统计学习方法》

2.https://blog.csdn.net/guofei_fly/article/details/102689127
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

llfighting2018

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值