SVM支持向量机
简介
SVM(support vector machine)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使其区别于感知机,感知机只是找到一个分离超平面。
- SVM是非线性分类器
- 学习策略:间隔最大化,等价于求解凸二次规划问题或者说正则化的合页损失函数的最小化问题
- 学习算法:求解凸二次规划的最优化算法
分类
- 线性可分支持向量机
- 线性支持向量机
- 非线性支持向量机
当训练数据线性可分,通过间隔最大化,学习到一个线性可分支持向量机:硬间隔支持向量机;数据近似线性可分,得到线性支持向量机;当数据线性不可分时,得到非线性支持向量机。
线性可分支持向量机
思想
- 学习目标:在特征空间中找到一个分离超平面S,由决定,将实例分成不同的正类和负类
- 是法向量,是截距。法向量指向的那侧是正类,另一侧是负类
- 通过间隔最大化求出的分离超平面具有唯一性
定义线性可分支持向量机
- 分离超平面
- 分类决策函数
- 到决策函数的距离大于1,表示正类
- 到决策函数的距离小于1,表示负类
函数间隔和几何间隔
一个点到分离超平面的距离可以表示分类预测的确信程度。通常使用来表示点x到超平面的远近
- 或者都表示将将数据正确分类:即和类标记的符号是一致的
- 在给定数据集T,超平面关于样本点的函数间隔:定义:超平面关于训练数据集T的函数间隔,为所有T中样本点的函数间隔的最小值:
函数间隔表示分类预测的准确性和确信度。当成比例的变化时,超平面并没有变化,因此需要规范化,加上,此时变成了几何间隔。
点到超平面的距离
设样本点A到超平面的距离为
- 如果点在超平面正的一侧,即:,距离为:
- 如果点在超平面负的一侧,即:,距离为:
统一地:当样本点被超平面正确分类时,点到超平面的距离为那么,当时候,函数间隔和几何间隔是相等的。
如果等比例的变化,函数间隔相应的变化,但是几何间隔是不变的
间隔最大化
支持向量机学习的基本思想是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。几何间隔最大的分离超平面是唯一的。这里的间隔最大化称之为
硬间隔最大化
。
硬间隔最大化不仅能够将正负实例点分开,还能将最难分的实例点(距离超平面最近的点)也能分开,对应的模型为
意思:
- 最大化几何间隔
- 约束条件表示的是超平面关于每个训练样本点的距离至少是
根据函数间隔和几何间隔的关系,模型还可以表示为:
函数间隔不影响模型,就取,那么最小化和最小化等价(方便求导)
线性可分支持向量机的最优化问题可以表示为凸二次优化问题:
最小化法向量:
约束条件:求解出上述两个的式子的解就可以求出分离超平面和决策函数
对偶问题
将线性可分支持向量机的最优化问题,通过拉格朗日对偶性,转换成求解对偶问题,得到对偶问题的最优解
- 对偶问题更好求解
- 自然引入核函数,推广到非线性支持向量机
如何构建对偶形式:
- 引入拉格朗日乘子,构建拉格朗日函数:其中为拉格朗日乘子向量
- 原始问题的对偶问题是极大极小问题
- 先对求解极小,再对求解极大值
- 具体过程见