目的:给定二分类样本集,想要找一个分离超平面。(鲁棒性最好)其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
分析:超平面可以由以下方程确定
b为超平面和原点之间的距离,wT决定超平面的方向。样本空间x到超平面的距离是:
由于两个向量之间的间隔为:
因此最大化间隔的实质就是满足上式中的w,b使得y最大。也就是||w||/2最小
就是svm的基本型了。
解决办法:
把约束部分写成小于等于0的形式,小于等于的部分加入一个拉格朗日橙子ai>=0,然后加入到函数中。于是这个问题变成了
老套路对w和b分别求偏导为零,得到:
一式带回原式可以消除掉w和b,二式则是约束,则可以得到最终的对偶式
这是一个二次规划问题,我们解决这个问题之前需要复习一些数学知识:
-
hessian matirx:
如下图,x(0)是x领域内具有二阶导数的点,G(x0)就是f(x1,x2)在x(0)点处的hessian matix。
-
正定矩阵:设M是n阶方阵,如果对任何非零向量z,都有zTMz> 0,其中zT 表示z的转置,就称M正定矩阵。大于号变成大于等于号,就是半正定矩阵了。
-
二次规划问题:其一般形式为
说白了,存在二次型和约束条件的优化问题。
G是海森矩阵,T是有限指标集,c,x,a都是R中的向量。如果Hessian矩阵是半正定的,则我们说该式是一个凸二次规划,在这种情况下该问题的困难程度类似于线性规划。如果有至少一个向量满足约束并且在可行域有下界,则凸二次规划问题就有一个全局最小值。如果是正定的,则这类二次规划为严格的凸二次规划,那么全局最小值就是唯一的。解决二次规划问题,可以使用smo算法。
smo算法:固定ai之外的所有参数求ai的极值,由于存在约束,则固定其他参数之后ai可以由其他变量导出。于是smo每次选择两个变量ai aj,然后固定参数求解上面提到的下式更新之后的ai aj。反复选择和固定求解直到函数收敛。只要选取的ai aj中有一个不满足ktt条件则函数会在迭代之后变小。