支持向量机是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使他有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化。可形式化为一个求解凸二次规划的问题。
当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机
当训练数据近似线性可分的时候,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机
当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
核方法,核技巧就是使用核函数等于隐式地在高维的特征空间中学习线性支持向量机。
第一个问题:如何求出最大硬间隔
即从支持点到超平面的距离最大,转换成一个有约束的优化问题,
该约束问题又是一个凸二次规划问题。转换成朗格朗日问题,然后对偶函数,在可以利用KKT条件,求出w,b
第二个问题:如何求出最大软间隔
线性不可分意味着某些样本点 (x,y)不能满足函数间隔大于等于1的约束条件,为了解决这个问题
需要在约束条件上加上松弛变量,因为有的支持向量机点是分错的。所以约束条件该成>=1-松弛变量(松弛变量》0)
然后继续通过罚函数法,目标函数加个系数,只要对误分类的惩罚增大,C值小时对误分类的惩罚减小
第三个问题核函数
对解线性分类问题,线性分类支持向量机是一种非常有效的的方法。但是有时分类问题是非线性的,这时可以使用非线性支持向量机。核函数就是将输入空间映射到特征空间,通过特征向量之间的内积,通过使用核函数可以学习非支持向量机
常用的核函数有:多项式核函数,高斯核函数,字符串核函数。
前面提到那个凸二次规划问题具有全局最优解,但是当训练样本容量很大时,这些算法往往非常低效。所以后人提出序列最小最优化(SMO)算法。