文章目录
- 线性可分支持向量机(硬间隔)
- 线性不可分支持向量机(软间隔)
- 非线性支持向量机与核函数
支持向量机和感知机的差别仅在与损失函数不同而已(有间隔最大的要求)。它也是一种二分类模型。
数据点就叫支撑向量。当数据线性可分时,就使得所有点到直线距离最大化的直线,让直线变成
唯一的。两个支撑超平面H之间没有数据点,两个支撑超平面之间的距离称为
硬间隔(不允许有数据点出现在支撑超平面之间),也有
软间隔(允许点出现在支撑超平面之间,如果点出现在分离超平面另一边也就是错分类,需要加个惩罚)。支撑超平面确定了分离超平面。上图中,支持向量机的目标就是令
硬间隔最大,也就是令点到分离超平面的
几何距离最大(这里不能用
函数距离,只有给定超平面比较不同点到同一个超平面的距离时才能用函数距离)。支持向量机要做的事情,从数学上表述就是:令距离分离超平面最小的点到超平面的距离最大化。就是说最大化那个最近点的几何距离,而其他点的几何距离都必须比这个点要大。
线性可分支持向量机(硬间隔)
这里标签为正负1,是几何距离。极小极大化,一下子就可以想到拉格朗日对偶性来解决问题。先对上式转变一下,处理成如下形式(这里省略,为函数距离,其取值并不影响最优化问题的解)
通过上式来确定w和b,如何确定?就用到了拉格朗日对偶性。先定义拉格朗日函数
这里的拉格朗日乘子。于是求极大极小问题
(1)先求min,分别对w和b求偏导数并令其为0,得到
然后将上面两个式子代入拉格朗日函数
所以
再来求上面表达式的max,最终就得到下面的问题
这样就可以求解出一组,于是可以通过得到最优化问题的解,也就是那条分隔超平面的两个参数
所以分隔超平面的表达式为
整个过程在《统计学习方法》中描述如下
线性不可分支持向量机(软间隔)
和硬间隔相比,引入一个松弛变量,表示允许有一些点可以越过支撑平面的距离,但是越过就需要有惩罚系数C,于是目标函数就变为
代表了只要满足上面宽松的条件,这个新的宽松模型的分类效果就还是可以接受的。
于是最优化问题就可被描述为
原始问题永远是极小极大,对偶问题就是极大极小。求对偶问题往往简单,先求极小,拉格朗日函数为
其中,偏导为0得
代入拉格朗日函数
于是对偶问题为
后面三个约束统一写为
由此解得,代入求得w和b得出分隔平面。
如果,则,支持向量恰好落在间隔边界上;若,则分类正确,支持向量在间隔边界与分离超平面之间;若,则支持向量在分离超平面上;若,则支持向量位于分离超平面误分类一侧。此外,上面的最优化问题等价于优化正则的合页损失函数
非线性支持向量机与核函数
如果数据可以用一个曲面区分开,那么非线性问题就可以将输入空间通过核函数映射到特征空间。这就是非线性支持向量机与核函数的内容。如下图左映射到图右的过程。上面的其他情况都是非线性支持向量机的特殊形式。
而核函数就可以实现这一点,通过非线性变换将输入空间(欧式空间或离散集合)映射到一个特征空间(希尔伯特空间),使得输入空间中的超曲面对应特征空间中的超平面。
核技巧想法就是只定义K,不显示地定义映射函数。对偶问题的目标函数就变成
实际选择的时候往往依赖领域知识直接选择核函数,需要通过实验验证有效性。
确定核函数之后的优化问题就变成了
求解这样的问题有许多的最优化算法可以用,但是当训练样本的容量很大的时候,许多算法就会变得非常低效,无法使用。目前已提出的许多快速实现的算法中,序列最小最优化算法(SMO)属于其中之一。