SVM(支持向量机)是一种分类模型,作为机器学习中很基础的一个知识点,本文将对其进行一个较简洁并且容易理解的描述,也是自己的一个复习,若有疏漏,请多指正。
目录
场景:
对一个二类分类问题:
以线性可分数据为例,需要得到一个分离超平面来使得数据正确划分并间隔最大。
SVM的分类:
可分为线性分类器和非线性分类器,线性分类器可分为硬间隔和软间隔两类,其中软间隔样本不完全线性可分。非线性分类器常利用核技巧。
基本模型:
最大间隔线性分类器:包括分离超平面、决策函数。
分离超平面:
决策函数:
样本点离分离超平面存在两种距离分别为函数间隔和几何间隔。
函数间隔: 表示正确性和确信度。
定义超平面与数据集之间的几何间隔为
几何间隔: 是函数间隔的规范化,使得间隔确定。
定义超平面与数据集之间的几何间隔为
得到最优化问题:
由于,原问题等价于:
由于函数间隔的取值并不影响问题的解,故令=1,原问题可等价于:
这就是支持向量机中的凸优化问题,我们常说的支持向量就是使得的点。
以图来表示:
图中H1和H2上的点就是支持向量,H1和H2之间的距离称为间隔,w为分离超平面的法向量,H1和H2称为间隔边界。
对偶算法:
对于原始问题可构建拉格朗日函数:
根据拉格朗日对偶性,原始问题对偶问题是极大极小问题:
为了得到对偶问题的解,需要先求极小再求极大。
求极小:
代入得:
所以对偶问题可化为:
为对偶问题的解,为原问题的解。
由KKT条件可得:
推导:
由于当,则,又因为是二分类,
所以:
那么将原问题转换成对偶问题有什么优点呢?
1、对偶问题比原问题好求解
2、方便引入核函数,推广到非线性分类问题
转换成对偶问题后,支持向量为的样本;分离超平面为,分类决策函数为
软间隔:
以上模型在样本点完全线性可分情况下,也就是硬间隔,那么当样本点不完全线性可分,也就是某些样本点不能完全满足函数间隔大于等于1的约束。所以,我们可以对每个样本点引入一个松弛变量,使得函数间隔加上松弛变量大于等于1。同时,对每个松弛变量支付一个代价。所以原问题变为:
软间隔对偶问题与硬间隔类似,这里暂且略过。
核技巧:
在非线性问题中,把x从原空间通过一个函数映射到特征空间中,在新空间用线性分类学习方法学习分类模型。
核函数定义:设原空间为,使得对所有,函数满足条件
因为单独计算不太容易,所以核技巧想法就是不显式地定义映射函数,直接计算。
支持向量机中,对偶问题目标函数可用核函数表示为:
分类决策函数为:
也就是说,当核函数K(x,z)给定时,可以利用解线性分类问题的方法求解非线性问题的支持向量机。并且学习是在特征空间中隐式地进行,不需要定义特征空间和映射函数。