Task5 SVM

Task5 SVM


支持向量机(Support Vector Machine,即SVM)是一种典型的二分类模型,与传统的分类器不同,SVM分类器在实现经验风险最小化的基础上,还要求置信范围尽可能小,也就是说最终目的是寻找结构风险最小化。通俗的来说,SVM二分类本质就是通过在特征空间内寻找间距最大的超平面将数据划分为两类,以实现区分。SVM于1964年提出,该算法能够有效处理非线性问题,泛化能力强,具有鲁棒性,至今依然是解决一些非线性问题的首选方法,其中HOG+SVM的特征提取识别组合成了许多识别问题的主要思想,下面介绍SVM的基本算法。
假设给定训练样本,在一个样本空间内的划分超平面有无数个。
在这里插入图片描述
虽然划分样本的超平面很多,但是最优超平面只有一个,正如图4.7的粗线所示。由于数据噪声等因素的影响,可能导致图中的正例向下偏移,而负例向上偏移,这就导致了一些超平面的划分出现了错误,图中粗线所在的超平面能够有效的避免这个问题,因此它的泛化能力最强,抗干扰能力最好,求解出这个超平面正是SVM算法的目的。
通常我们定义样本空间的超平面如下面公式:
在这里插入图片描述
其中、x均是n维列向量,w代表法向量,x为样本,b是偏移量,因为样本是固定给出的,是定值,显然需要求解超平面的变量是和b。我们将超平面定义为(w,b),那么样本空间内的任意点到超平面(w,b)的距离为:
在这里插入图片描述
其中||w||代表的是w的第二范数。假设超平面(w,b)能够正确的划分样本,可以用如下的公式定义样本的属于类:
在这里插入图片描述
对于样本(xi, yi)属于D,若yi=+1,则wTxi+b>=+1;反之,若yi=-1,w^Txi+b<=-1。当样本点能够取得等号成立时,我们将这些点定义成“支持向量”。我们将两类支持向量到超平面之间的距离定义为“间隔”。
在这里插入图片描述
在这里插入图片描述
要找到最大间隔的划分超平面前提下,必须满足一定约束,即:
在这里插入图片描述
为了求得最大间隔,等价于求||w||的最小值,为了后面的求导运算的简便,将公式重写:
在这里插入图片描述
也叫做凸二次规划问题,为了求解,引入拉格朗日乘子a,该问题的拉格朗日函数就可以写成:
在这里插入图片描述
分别对系数w、b、a求导令其等于零,最终将模型化成如下的形式:
在这里插入图片描述
通过拉格朗日乘子法,把w转变成了ai,减少了约束条件数,使求解方程变得简单。上述求解过程严格满足KKT(Karush-Kuhn-Tucker)条件:
在这里插入图片描述
为了求解上述的对偶二次规划问题,我们采用SMO(Sequential Minimal Optimizaion)算法,与传统的算法相比,SMO算法将优化问题继续细分,划分后的优化问题比未划分的问题求解简单,也就加快了求解的速度。
https://blog.csdn.net/qq_39521554/article/details/80723770
这篇博客详细介绍了SMO算法。

上述介绍的SVM是典型的线性SVM,在实际情况中,大多数样本并不是线性可分的,如果依然用上述的方法处理非线性样本,将会进入死循环,无解。处理非线性,一种方法是将SVM分类器的维度提升,通过映射关系,低维的线性不可分问题转到高维就变成了线性可分问题,但是提升维度的方法对造成运算复杂化;另一种方法,也是SVM处理非线性问题最常用的方法,就是采用核技巧,引入核函数,该算法不需要处理样本空间的维度,引入核函数即可实现从不可分问题变成可分问题,计算结果与高维映射一样。
非线性问题求得的划分超平面
非线性问题求得的划分超平面
在这里插入图片描述
高维空间实现线性可分
在这里插入图片描述
将非线性不可分问题通过转成转成可分问题,虽然在理想的情况SVM可以做出完全正确的分类,但是实际情况中会有个别样本“越界”,如图下图所示。一些正例样本越界到超平面的下方,被分类成负例;而一些负例样本越界到超平面的上方,被分类成正例,导致了分类错误。上文介绍的分类器采用的是“硬间隔”的分类方法,采用这种方法很容易造成整个规划问题的无解,因此我们引入“软间隔”的概念。
在这里插入图片描述
软间隔的实质是引入了松弛变量到式4.18的约束条件,使可以间隔小于1,引入了松弛变量,SVM在进行分类时会自动放弃对如上图所示的离群点(红色的点)的分类,对离群点的重视程度,我们引入一个新的设置常量:惩罚因子C,C设置得越大代表着越重视离群点。最终优化问题转成:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44424296/article/details/105875763
今日推荐