在一个线性不可分的样本中,用添加多次项特征可以将两类样本分开,具体原理请参考 这里,用SVM分类器也是同样道理。如果两类样本交叉越多,需要越高次的特征,模型就越复杂,这在存储上和计算资源上都是很大的开销。SVM用kernel方法就解决了这个问题,kernel方法是将高维度的计算放到低维度来做,最后得到的是高纬度上的模型。具体原理请看下面的推导。
特征转换
如果样本在低纬度空间不可分,那么可以将样本的特征从低维度空间投影到高纬度空间,如下图所示
而一般从低纬度空间向高纬度空间投影的方法就是往已有的特征中添加多项式特征项,再来看下面一个图

上面三个图中,在(x1x1,x2x2)这个空间中,两类样本线性不可分,即在(x1x1,x2x2)空间中的所有线性模型都无法将这两类样本区分开。如果把这个空间投影到比如(x1x1,x2x2,x21x12,x21x2x12x2,x21x22x12x22,x21x32x12x23,x31x2x13x2,…)这样的一个空间中就变得线性可分了(当然有过拟合的风险),在这个高纬度的空间中的超平面表现在(x1,x2x1,x2)空间中就是图三所示的一条曲线,图二则是将(x1,x2x1,x2)投影到二次项组成的4维空间中。
SVM的对偶问题
假设已经通过ϕ(x)ϕ(x)将样本投影到了能够将两类样本分开的zz空间,那么需要解决的优化问题为:
minw,b12wTw;s.t.yn(wTϕ(x)+b)≥1,n=1...Nminw,b12wTw;s.t.yn(wTϕ(x)+b)≥1,n=1...N
上一篇中
讲到可以用二次规划解这个问题,只要把Q,p,A,c丢进解二次规划的软件里就可以得到解,这里对应的特征是投影之后的高纬度特征。
Q=[00Td0dId];p=0;A=⎡⎣⎢⎢⎢⎢y1ynxT1y2y2xT2.......ynynxTn⎤⎦⎥⎥⎥⎥,c=1Q=[00dT0dId];p=0;A=[y1ynx1Ty2y2x2T.......ynynxnT],c=1
问题是,这里的Q是和投影之后的维度有关的,如果投影到的空间是很高维甚至无穷维,这个问题就没法解了。为了解这个问题,就需要把原来的问题转化成它的对偶形式,让这个问题的求解和转换后的维度没有关系,只和输入的样本的个数有关。
SVM的求解是一个带约束的最佳化问题:
minw12wTw;s.t.yn(wTxn+b)≥1,n=1,2...Nminw12wTw;s.t.yn(wTxn+b)≥1,n=1,2...N
解上面这个带约束的最佳化问题可参考Lagrange乘子法(可参考https://en.wikipedia.org/wiki/Lagrange_multiplier),把约束放进式子中,写成Lagrange表达式为:
L(b,w,α)=12wTw+∑i=1i=Nαi(1−yn(wTzn+b))L(b,w,α)=12wTw+∑i=1i=Nαi(1−yn(wTzn+b))
首先,用 Lagrange 乘子法可以将上面的最优化问题写成下面的形式:
minw,bmaxαL(b,w,α)=minw,b12wTw+maxαi≥0,i=1..N∑i=1i=Nαi(1−yn(wTzn+b))minw,bmaxαL(b,w,α)=minw,b12wTw+maxαi≥0,i=1..N∑i=1i=Nαi(1−yn(wTzn+b))
这里,为什么这个最优化问题和上面的n个不等式约束的优化问题是等价的呢?
上面优化过程中,先固定住w,b,根据
αα
来进行最大化,在w,b满足
(1−yn(wTzn+b))≥0(1−yn(wTzn+b))≥0
时候,最大化
αα
那项最大是无穷(这里w,b的集合假设为s1);w,b满足
(1−yn(wTzn+b))≤0(1−yn(wTzn+b))≤0
时候,最大化是
αα
那项是0(这里w,b的集合假设为s2)。第二次是找到最小化那个表达式的w,b, 当然选取的w,b肯定是s2里面的,因为s1根本不可能最小化,所以在最后的解里
(1−yn(wTzn+b))≤0(1−yn(wTzn+b))≤0
肯定成立。
上式中,把w,bw,b固定住,变动αα,要得到最大的那个αα,那么minw,bL(b,wαα,要得到最大的那个αα,那么minw,bL(b,w,α)minw,bL(b,w,α)比任何αα的项要大,那么mi