SVM详解(一)
1.SVM是个非线性分类器,off-the-shelf,曾经一度让神经网络进入低谷期。
logistic回归、Naive Bayes是线性分类器,SVM、神经网络可以不是线性分类器。
2.SVM中的记号(Notation)
3.函数间隔和几何间隔(function margin VS geometric margin)
函数间隔γ上有帽子,几何间隔没有。几何间隔是样本到分隔超平面wTx+b=0的距离(有符号的,如果分类正确为正,分类错误为负),是将函数间隔归一化的结果。当||w||=1时,函数间隔等于几何间隔。
整个训练集的函数间隔和几何间隔是所有训练样本中最小的那个margin
4.最大间隔分类器Maximum margin classifier是SVM的前身
在每一个样本的几何间隔都大于等于γ的情况下,γ的最大值(最大化整个训练集上的几何间隔)
因为有一个非凸性约束,不太好优化。
因为缩放w和b,不会改变分隔超平面,所以可以在w上加一些约束。
5.如何将Maximum margin classifier转化成凸优化的问题
因为可以通过缩放w,所以加上了整个训练集的函数间隔最小值为1的约束隐形的来缩放w,得到了最终凸优化的问题。这不会得到局部最优解,而是总会收敛于全局最优解。
6.拉格朗日乘子法(Lagrange multipliers)及对偶问题
以上的优化问题已经可以使用梯度下降或者其他软件中定制优化算法得到结果了,但是为了使SVM适用于更高维度的特征空间中,我们引入了拉格朗日乘子法、对偶问题等手段。
拉格朗日乘子法:将有约束的优化问题转化成无约束的优化问题
对偶问题:max min L(w,α,β)<= min max L(w,α,β) 一般对偶问题给出主问题最优值的下界
KKT互补性条件:(一般不等式约束的等号成立,即支持向量)
7.SVM求解过程
在SVM的优化问题中,没有等式约束,只有一个几何间隔的不等式约束,因此去掉参数β。
我们只要最大化W(α),求出各个α,即可得到分隔超平面的w,然后便可通过支持向量求出截距b
8.核(Kernels)
在最终的优化目标W(α)和假设函数h(w,b)中都出现了<x(i),x(j)>向量内积的运算,因此我们引出了核(kernels)的概念。
将<x(i),x(j)>替换成K(x(i),x(j)),相当于隐式地将特征向量x替换成维度更高的特征向量。x(i)——>φ(x(i))高斯核意味着无线维的特征向量。
什么样的核函数是合法的呢?只有当核矩阵是半正定矩阵时。
9.软间隔和正则化
硬间隔是要求所有样本都划分正确,而软间隔是允许在一些样本上出错。
10.SMO(序列最小化算法)
Sequential Minimal Optimization是John Platt(微软)首先提出的。衍生自坐标上升算法(Coordinate assent)
第一个变量的选择:外层循环选取违反KKT条件最严重的样本点
第二个变量的选择:内层循环选择的标准是希望第二个变量有足够大的变化。