超平面在数学上的定义的n维空间的n-1维子空间,你可以认为线的超平面点,点的超平面是线.....以此类推,当然在数学上只有高于3维的空间我们才认为他的子空间是超平面,我们就不去详细追究了。他在机器学习中的作用是将两边样本分类。
比如这样。在数学中的平面方程为Ax+By+Cz+D=0,点(x1,y1,z1)到他的距离为,平面的法向量为(A,B,C) 。而超平面的方程是,其中w是超平面的n维法向量,t是法向量的转置,表示,w和x和内积。d是平面到原点的距离。我们可以想象一下两图中的超平面只有d是不同的,于是我们就认为,法向量w决定了超平面的方向。能够刚好切割两边的分类,而d是超平面平移的距离,能够决定超平面离分类两边的远近。在某个训练样本x中,他有特征向量x,他和到超平面的距离我们可以认为是,其中||w||是w的范式=。怎么选择超平面则是我们怎么分类的解决方式。我们可以直观的理解,两个不同分类我们要以他们之间距离最小的几个点为基点,他们的特征向量叫支持向量。他们距离中间的超平面决定了最佳的分类,也就是超平面处于他们中间1/2*(d1+d2)的时候。
逆向思维来看,寻找最佳超平面其实就是求两个异类样本的中间距离达到最大,也就是max,我们又直观的发现。只要该距离是相对最小就OK,我们并不要知道它是多少。就可以转化为max,而两边的点距离相加就是max。下面呢,我们还要给它约束条件。因为分类两边的距离都是大于等于,我们可以给样本的分为设定标签yn(y1,y2....yn)它的值域是y>=1或者y<=-1
即,表示了每个样本的分类属性。我们把两个式子统计一下,因为,则
。则它有如下形式
我们利用拉格朗日函数的方法0-n累加
对w,b分别求极值得
,带入原方程l(w,b,λ)。得
我们会发现现在消去了w,b怎么求min呢
我们可以发现,即使w,b消去了,λ(>0)还在,则剩下部分,因为我们有约束条件
,所有一定<=0;我们求出λ的最大值,也就求出了原函数的最小值。这叫拉格朗日函数的对偶性
所以问题就转化为
其中a=λ
以上就能求解出超平面方程了,但是这还不够 kkt条件来约束
很多同学就会问了 为什么(3)不是≥0呢, 其实(2)是支持向量的分类范围,而在支持向量上下两边的其他样本到超平面的距离当然比支持向量到超平面的距离要大,当yif(xi)-1=0的时候,表示xi刚好在支持向量上,用不着添加ai,而如果他大于等于1的话说明是支持向量外的样本点 此时我们要个他增加互补松弛量,也就是ai ,此时ai=0,所以结果(3)=0
当然我们上面说的情况都是线性可分的时候,也就是两边的分类非常明确,我们称为硬间隔线性可分。有时候我们会遇到下面这种情况
也就是受到噪点 等感染,支持向量可能会出现跑错边的情况,此时给该超平面施加松弛变量ξ(>0),也就是让超平面容许一点点的弯曲,可以接受有一点点的误差存在
那么它的超平面方程为我们称之为软间隔线性可分,它的kkt
当然 它的惩罚系数由C确定,呈正相关的关系。
我们上面看到的情况都是一条直线切割两边。那假如是三维的坐标系呢?此时一条线就不能在切割了,我们需要一个面来分类
想象一下,圈圈都在矩形的上方,三角形都在下面。这就是把低级的超平面分割问题投放到高维度空间去解决,此时它的超平面方程是 ,其中是x的在高维度空间的映射。而它最小距离和约束条件与上述基本一致,为
,最后的求解结果大同小异
,只是我们知道在计算二维向量的内积(x1,y1,),(x2,y2)=x1x2+y1y2很简单,但是对于高维度的向量内积计算量就很大了,于是svm有下面,假设最初的原空间有核函数k(xi,xj),则于是核函数k(xi,xj)就代替了原始空间的(xi,xj)。它的解是其中不同的svm核函数可以参考相关文章