现在的目标函数是二次的,约束条件是线性的,所以它是一个凸二次规划问题。这个问题可以用现成的QP (Quadratic Programming) 优化包进行求解。
二次规划的一般形式:
minxq(x)=12x′Gx+x′cs.t.a′ix≥bi
其中 G是 Hessian矩阵, τ 是有限指标集, c , x 和 ai ,都是R中的向量。如果Hessian矩阵是半正定的,则我们说 (1.1) 是一个凸二次规划,在这种情况下该问题的困难程度类似于线性规划(如果结果为0,二次规划问题就变成线性规划问题了)。如果有至少一个向量满足约束并且在可行域有下界,则凸二次规划问题就有一个全局最小值。如果是正定的,则这类二次规划为严格的凸二次规划,那么全局最小值就是唯一的。如果是一个不定矩阵,则为非凸二次规划,这类二次规划更有挑战性,因为它们有多个平稳点和局部极小值点。
通过给每一个约束条件加上一个拉格朗日乘子(Lagrange multiplier) α ,定义拉格朗日函数(通过拉格朗日函数将约束条件融合到目标函数里):
凸优化的概念: χ⊂Rn 为一凸集, f:χ→R 为一凸函数。凸优化就是要找出一点 x∗∈χ 使得每一 x∈χ ,满足 f(x∗)≤f(x) .
KKT条件的意义:它是一个非线性规划(Nonlinear Programming)问题能有最优化解法的必要和充分条件。
原始问题通过满足KKT条件,已经转化成了对偶问题。而求解这个对偶学习问题,分为3个步骤:首先要让 ζ(w,b,a) 关于 w 和 b 最小化,然后求对的极大,最后利用SMO算法求解对偶问题中的拉格朗日乘子。
在线性不可分的情况下,支持向量机首先在低维空间中完成计算,然后通过核函数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面,从而把平面上本身不好分的非线性数据分开,如下图所示的两类数据,分别分布为两个圆圈的形状,这样的数据本身就是线性不可分的,此时该如何把这两类数据分开呢
如果我们做一个映射 ϕ:R2→R5 ,将 X 按照上面的规则映射为 Z ,那么在新的空间中原来的数据将变成线性可分的,从而使用之前我们推导的线性分类算法就可以进行处理了。
通过引进从输入空间 X 到另一个高维的 Hilbert 空间 H 的变换 将原输入空间 λ 的训练集:
使其在 Hilbert 空间 H 中线性可分, Hilbert 空间 H 也称为特征空间。然后在空间 H 中求得超平面 (ω∗ϕ(x))+b=0 ,这个超平面可以硬性划分训练集 T ,于是原问题转化为如下的二次规划问题