以下内容纯手打,内容来源是结合其他参考材料以及自己的理解
参考《统计学习方法》、《机器学习》周志华教授、其他网络博客
SVM是一种二类分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。
(1) 当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;
(2) 当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;
(3) 当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
硬间隔最大化(几何间隔)---学习的对偶问题---软间隔最大化(引入松弛变量)---非线性支持向量机(核技巧)
在求解之前,我们先理解函数间隔以及几何间隔的意义:
在超平面确定的情况下, 用来表示点到超平面的距离。如果 大于0,表示点分类正确,并且该值越大,分类的确信度越大。
所以,把样本点到超平面的距离,即函数间隔定义为:
观察上式我们发现,, 同时缩大放小,超平面是没有变化的,函数间隔确发生了变化。因此,我们要对分离超平面的法向量加某些约束,使间隔确定,这时候就转换成几何间隔。
定义超平面关于训练数据集T的几何间隔为超平面关于T的所有样本点的几个间隔的最小值。
于是就可得到下面的线性可分支持向量机的最优化问题。
构造并求解最优化问题:
求解出最优的和
由此得到分离超平面:
分类的决策函数为
在线性可分情况下,训练数据集样本点中与分离超平面距离最近的样本点的实例称为支持向量,是使约束条件等号成立的点,即
支撑向量之间构成的两个平面之间的间隔称为最大间隔,平行并处于中间的就是分离超平面。超平面只由这些支撑向量决定,支持向量的个数一般很少,所以支持向量机由很少的点训练而成。
当训练数据线性可分时,存在无穷个分离超平面可以将两类数据正确分开。感知机利用误分类最小策略,求得分离超平面,不过此时的解有无穷多个。线性可分支持向量机利用间隔最大化求得最优分离超平面,这时,解是唯一的。另一方面,此时的分隔超平面所产生的分类结果是最鲁棒的,对未知实例的泛化能力最强。可以借此机会阐述一下几何间隔以及函数间隔的关系。
(1)对偶问题往往更易求解,(当我们寻找约束存在时的最优点的时候,约束的存在虽然减小了需要搜寻的范围,但是却使问题变得更加复杂。为了使问题变得易于处理,我们的方法是通过拉格朗日乘子把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点。)
(2) 减少计算量。
(a)目前处理的模型严重依赖于数据集的维度d,如果维度d太高就会严重提升运算时间;
(b)对偶问题把SVM从依赖d个维度转变到依赖N个数据点,最后计算时只有支持向量有意义,所以计算量比N小很多。
求解支持向量机的最优化问题,将原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这是线性可分支持向量机的对偶算法。优点是对偶问题往往更容易求解;二是自然引入核函数,进而推广到非线性分类问题。
首先构建拉格朗日函数(Lagrange Function),对每一个不等式约束引入拉格朗日乘子(Lagrange multiplier),定义拉格朗日函数:
其中为拉格朗日乘子向量,根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
即先求对, 的极小,在求对的极大。
(1) 求解
我们想要得到的无约束最优解应该在极小值点,所以,在此处的一阶导数应该取0,将拉格朗日函数分别对, 求偏导并令其等于0.
得到:
代入到拉格朗日函数中进行化简,即得:
求解原始问题可以转换为上式求解对偶问题。
对于线性可分数据,有最优解,假设对偶优化问题的最优解,我们可以通过求得原始最优化问题的最优解,
在求解之前,我们要明白,如果全为0,那么根据下式:
最优解会为0,但是之前我们已经证明过如果是最优解,则不会为0,所以至少有一个大于0,就有下式:
因为类别只有1和-1两类,所以,即可求得
把之前求得的最优解公式代入,即可得到:
分离超平面就可以表示成:
分类决策函数可写成:
通过上式我们可以看出,分类决策函数只取决于输入的和训练样本输入的内积,也称为线性可分支持向量机的对偶形式。
回顾整个推导过程,对于线性可分的数据,可以先求对偶问题的解,再求解原始问题的最优解, ,从而得到分离超平面及分类决策函数,是线性可分支持向量机的基本学习算法。