支持向量机(一)

来源:互联网 发布:sql server 2012和2008 编辑:程序博客网 时间:2024/06/06 00:27

机器学习算法中构造间隔理论分布:聚类分析与模式识别。存在以下几种算法:

人工神经网络、决策树、感知器、支持向量机、集成学习、降维与度量学习、聚类、贝叶斯分类器

对于支持向量机我个人觉得比较难懂一点,尤其是对于核函数以及软边缘的超平面,看了网上很多朋友写的都非常不错,根据网上一些博友的分享情况作了以下笔记,希望能对支持向量机了解的更清楚一点。

支持向量机是通过建立一个超平面,通过超平面对不同类别的数据进行划分,所以整个支持向量机就是围绕着如何建立这个超平面进行的。而对于超平面的建立,也存在以下三种情况:

(1)数据线性可分,这种情况下,通过建立一个线性的超平面就可解决问题。

(2)数据非线性可分,可通过将数据映射到高维度的空间中,在高维度空间建立线性超平面对其进行划分;

(3)数据非线性可分,而其非线性可分的原因在于存在一些噪声点,将不存在将他们分开的超平面,因此可通过添加松弛变量建立出错最少的超平面进行划分。

本篇博客主要是介绍在线性可分的情况下如何构建线性超平面,如何对超平面的参数进行优化。

在描述支持向量机之前,先列出一些备用知识,这些知识都是与支持向量机的模型有很大关系,因此先写出来供大家参考。

1、线性回归模型与logistic回归模型

线性回归模型

线性回归模型其特点在于给定一系列输入数据后,其输出为数值。模型如下所示
这里写图片描述
通过最小二乘法即可解出w的值

logistic回归模型
logistic回归模型与线性回归模型相似,只是其因变量为类别变量而非数值型变量,左右两边的取值范围不一致,因此针对该问题使用了sigmoid函数进行转换。公式如下所示:
这里写图片描述
该函数将因变量的范围映射至[0,1],即y=1的取值概率。当y>0.5时,将该变量分类为1,当y<0.5时,将其分类为0。
下文会介绍支持向量机的模型推理,支持向量机的模型起源于logistic回归模型,只是将类别修改为{-1,1}。因此这里要记住这个公式。

2、点到直线的距离
在支持向量机的超平面优化求解过程中,优化的目标在于超平面离各类数据集的距离达到最大,通俗的理解就是超平面离各类数据集越远,其分类正确的概率也就越大。因而在此我们先介绍点到直线的距离公式
直线L
点到直线距离

3、拉格朗日乘子法与KKT条件

在求解最优化问题中,拉格朗日乘子法和KKT条件是在有约束条件时主要使用的方法,拉格朗日乘子法是在等式约束条件下使用的方法,KKT条件是在不等式约束条件下使用的方法。博友johnnyconstantine在他的博客中讲解得很清楚。主要归纳如下所述。
求解无约束条件下的最优化问题,一般利用求导得到求导函数等于0时的极值点,将极值点带回原函数所得的结果可能就是最优值。

对于等式约束条件下的最优化问题,可以利用拉格朗日乘子法进行求解。如下所示。
这里写图片描述
其中s.t.是指subject to,即约束条件。

利用拉格朗日乘子法得到的解法如下所示。
这里写图片描述
这里写图片描述
通过对上述偏导方程进行求解,得到极值点,将极值点带回原函数可能是最优化值。

不等式条件下的优化问题
不等式条件下的优化问题类似于等式条件下的优化问题,同样构造拉格朗日乘子约束,称为KKT条件。
这里写图片描述
类似于拉格朗日乘子法,定义拉格朗日函数L,其表达式如下所示:
这里写图片描述
KKT条件是指上面最优化数学模型的标准形式的最小点这里写图片描述必须满足下面的条件
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

支持向量机基本原理(一)
支持向量机可以用于二分类,可用于多分类问题,也可以用于回归问题,但在本文只能够只介绍二分类问题的解决。
在上文中我们介绍了支持向量机的三种基本情况,第一种即在样本点之间是线性可分的,也就是通过建立一个线性超平面就可以将两类样本y={1,-1}进行区分。因此在这种情况下,我们只需对线性超平面的参数进行最优化求解即可。以下图为例,可对线性超平面的建立进行理解。

这里写图片描述
在上图中,中间的线条即是超平面,支持向量机中对超平面到数据集的间隔定义为超平面到数据集中离它最近一点的距离。因此图中d即代表超平面到各数据集的间距。也就是我们需要最优化的参数。

线性分类器的决策边界可写成如下所示。
这里写图片描述

对于任意输入变量xi,若这里写图片描述,则将其判定为+1类,反之,则将其判定为-1类。只要确定参数w和b,就可以将自变量xi带入公式得到结果就可以确定该观测变量所对应的类别。

支持向量机之函数间隔

在超平面这里写图片描述确定的情况下,这里写图片描述可以表示相对表示点x到超平面之间的距离,而这里写图片描述的符号是否与y的符号一直可以表示分类是否正确,因此定义超平面与点之间的函数间隔如下所示。
这里写图片描述
使用函数间隔作为间隔的定义,通过对函数间隔最大化来求方程参数w和b的最优解存在一个问题:当w与b同比例放大时,超平面不会变,但是函数间隔会变大。如当取w=2w,b=2b时,超平面2wTx+2*b=0与这里写图片描述没有差别,但是函数间隔变大了一倍,因此需要对间隔进行改进,根据之前提到的点到直线的距离,我们可以通过几何间隔进行改进。
定义点xi到超平面之间的几何间隔
这里写图片描述
同理,添加y可以判断超平面对数据的分类是否正确,因此支持向量机最终确定的几何间隔为
这里写图片描述
这里写图片描述
因而支持向量机的目标函数可表示为:
这里写图片描述
约束条件这里写图片描述

根据之前描述,支持向量机中的间隔是指超平面离数据集中最近的一点之间的距离,因此,支持向量机中函数间隔应小于等于超平面到其他点的任何间隔,表示如下。
这里写图片描述
为了方便推导和优化,令这里写图片描述
则支持向量机的整个优化目标变化为
这里写图片描述
约束条件:
这里写图片描述

上述最大化目标函数等价于最小化下面的目标函数:
这里写图片描述
约束条件:这里写图片描述

即最大化问题变成一个凸二次规划问题(Quadratic Programming),凸二次规划问题可以直接使用QP的优化包进行求解,但是也可以通过将凸二次规划问题转换为对偶问题进行求解,不仅更加高效,还可以自然的引入核函数,从而推广到非线性分类问题。
从上面提到的不等式约束下的最优值求解,我们可以知道该问题可以通过KKT条件对其进行转化,转化的过程如下所示。
这里写图片描述
最后可转化为
这里写图片描述
由此,原凸二次规划问题从原来的多个参数转化为只有一个拉格朗日乘子参数的对偶问题,关于对偶问题的最优化求解可以通过SMO优化算法进行求解。通过SMO优化算法求得这里写图片描述,然后通过上述所得求导结果即可求出w和b,线性超平面就已经解出来了。

原创粉丝点击