支持向量机(三)——线性支持向量机

〇、说明

支持向量机(Support Vector Machine,SVM)是监督学习中非常经典的算法。笔者主要参考学习的是李航老师《统计学习方法(第二版)》[1]和周志华老师的西瓜书《机器学习》[2]。

如有错误疏漏,烦请指正。如要转载,请联系笔者,[email protected]

一、问题引出

一方面,线性可分支持向量机只适用于线性可分的训练数据集,对于线性不可分的训练数据集则是无能为力的。

另一方面,即使训练数据集线性可分,线性可分支持向量机强依赖于离分类超平面最近的样本[3],过拟合的风险很大。

这时候就需要有一定容错能力的分类模型,线性支持向量机,或者叫软间隔支持向量机,就可以做到这样的容错性。

二、模型描述

这里我采用周志华老师西瓜书[2]的思路来整理这部分。

对于线性可分支持向量机,要求所有样本满足以下约束

而软间隔则允许某些样本不满足这样的约束。

在最大化间隔的同时,不满足约束的样本要尽量少。此时,优化目标可以写为

其中,是一般化的损失函数,被称作惩罚参数,调节间隔最大化和参数惩罚这二者关系。

我们先看惩罚参数。当值较大时对误分类惩罚较大,特别地,当C取无穷大时,所有样本都要满足式约束,模型等价于线性可分支持向量机[3];当取有限值时,模型允许一些样本不满足约束。

接下来讨论损失函数。当使用不同的损失函数时的模型状态,周志华老师的西瓜书[2]有简单讨论。当是合页损失函数时,模型就是线性支持向量机。李航老师《统计学习方法(第二版)》[1]的相关章节证明了线性支持向量机和基于合页损失函数的优化问题的等价性。合页损失函数如下

图1[2]

当时,式可重写为

引入松弛变量,将上式再重写为

优化问题一:

三、拉格朗日对偶问题推导

与线性可分支持向量机类似,线性支持向量机(式)的拉格朗日对偶函数如下

原问题(式)是凸优化问题,则优化问题与原问题等价。

第一步,求对的极小值。

将式代入式,可得

第二步,求对的极大值,即得对偶问题。

这里需要注意,式等号右边表达式没有,直接求解对的极大值即可。对偶问题如下

\begin{split}&\mathop{max}\limits_{\alpha} \ &-\frac{1}{2} \sum_{i=1}^N\sum_{j=1}^N \alpha_{i} \alpha_{j} y_{i} y_{j}(x_{i} \cdot x_{j}) + \sum_{i=1}^N \alpha_{i} \\& s.t. & \sum_{i=1}^N \alpha_{i} y_{i}=0 \\&& C-\alpha_{i}-\mu_{i}=0 \\&& \alpha_{i} \geq 0 \\&& \mu_{i} \geq 0, \ \ i=1,2,\dots,N\end{split} \tag{14}

上式中,因为不在最优化表达式中,可以利用等式约束消去,简化约束。再把求极大转换成求极小,得到对偶问题如下

优化问题二:

\begin{split}&\mathop{min}\limits_{\alpha} \ &\frac{1}{2} \sum_{i=1}^N\sum_{j=1}^N \alpha_{i} \alpha_{j} y_{i} y_{j}(x_{i} \cdot x_{j}) - \sum_{i=1}^N \alpha_{i} \\& s.t. & \sum_{i=1}^N \alpha_{i} y_{i}=0 \\&& 0\leq \alpha_{i} \leq C \ \ i=1,2,\dots,N\end{split} \tag{15}

第三步,求解分类超平面和分类模型。

对于已求解出优化问题二(式)的最优解,则类似于线性可分支持向量机[3]的推导过程。

原问题(式)是凸优化问题,则满足KKT条件的点是原问题和对偶问题的最优解(具体请参见[4])

\begin{align}& y_{i}(w^*\cdot x_{i}+b^*)\geq 1-\xi^* _{i},\ i=1,2,\dots,N \tag{16a}\\& \xi^*_{i} \geq 0, \ i=1,2,\dots,N \tag{16b} \\& \alpha^*_{i} \geq 0, \ i=1,2,\dots,N \tag{16c} \\& \alpha^*_{i}(y_{i}(w^*\cdot x_{i}+b^*)-1+\xi^*_{i})=0 \tag{16d} \\& \mu^*_{i}\xi^*_{i}=0, \ i=1,2,\dots,N  \tag{16e}\\& \frac{\partial}{\partial w} L(w^*,b^*,\xi^*;\alpha^*,\mu^*)=w^*-\sum_{i=1}^N \alpha^*_{i}y_{i}x_{i}=0 \tag{16f} \\& \frac{\partial}{\partial b} L(w^*,b^*,\xi^*;\alpha^*,\mu^*)=-\sum_{i=1}^N \alpha^*_{i}y_{i}=0 \tag{16g} \\& \frac{\partial}{\partial \xi_{i}} L(w^*,b^*,\xi^*;\alpha^*,\mu^*)=C-\alpha^*_{i}-\mu^*_{i}=0 , \ i=1,2,\dots,N\tag{16h} \end{align}

根据式可得

观察式、和,先看式,当时,有

再看式,当时,有 

此时再看式,当时,必有,综上讨论,当时,有

再将式代入上式,并于式联立,可得线性支持向量机的最优分类超平面参数为

这里需要注意,在李航老师《统计学习方法(第二版)》[1]相关章节中,和式相同表达的式子是不严谨的,如果没看到这一段,这句话略过。

四、支持向量

线性支持向量机的支持向量会复杂一些。如下图

图1[1]

首先,定义的样本点为支持向量。

其次,每个支持向量到其对应的间隔边界的距离为。推导过程如下。

点到超平面的距离公式为:

先看正类,正类的间隔边界超平面为:,对应的点到间隔边界超平面的距离公式为:。对于正例的支持向量,有,根据式,有,代入距离公式,即可到结论。

负类推导过程类似。

再次,根据以上结论,分析支持向量。

根据上面式和,消去,则有

第一种情况,当时,则,则此支持向量到对应间隔边界的距离,即此支持向量在间隔边界超平面上。

第二种情况,当且时,此支持向量到对应间隔边界的距离,此支持向量分类正确,在间隔边界与分离超平面之间。

第三种情况,当且时,此支持向量到对应间隔边界的距离,此支持向量在分离超平面上。

第四种情况,当且时,此支持向量到对应间隔边界的距离,此支持向量分类错误。

这里需要注意,有没有和同时成立的点,这里没有找到确定或否定的证据。如果谁有这方面的资料,还烦请告知笔者,先行谢过,联系邮箱:[email protected]

五、附录

A、参考

[1]、《统计学习方法(第二版)》,李航著,清华大学出版社

[2]、《机器学习》,周志华著,清华大学出版社

[3]、《支持向量机(一)——线性可分支持向量机导出》

[4]、《凸优化(八)——Lagrange对偶问题》

B、相关目录

[a]、支持向量机(一)——线性可分支持向量机导出

[b]、支持向量机(二)——线性可分支持向量机求解

[c]、支持向量机(三)——线性支持向量机

[d]、支持向量机(四)——核方法

[e]、支持向量机(五)——SMO算法

你可能感兴趣的:(支持向量机(三)——线性支持向量机)