支持向量机预测模型 支持向量机( 九 )


我想这就是支持向量机的思路和logistic回归的不同点:
支持向量机考虑局部(不关心已经确定远离的点),
逻辑回归一个考虑全局(已经远离的点可能通过调整中间线使其能够更加远离,但是也可能使一部分点靠近中间线来换取另外一部分点更加远离中间线 。)
上面已经知道,θ T x=0是分类的线,在svm中,只考虑局部,只考虑θ T x的正负问题,而不用关心g(z) 。因此,在这里,用w T x+b代替θ T x,并 对g(z)做一个简化 ,将其简单映射到类别标签y=1和y=-1上 。
这里的y取值为1和-1(在svm中,只考虑局部,只考虑θ T x的正负问题),是为了方便定义:在分类正确的情况下,函数间隔(确信度 )的大小
比如,在分类正确的情况下,y等于1,wx+b应该为正数越大,则情况越好,是正例的确定度就越大 。就如上图的A点 。y等于-1,wx+b应该为负数越大,则情况越好是负例的确信度就越大 。
所以,函数间隔越大,说明分类正确的置信度越大 。函数间隔越小 ,比如上图c点,说明越不能确定c点属于哪一类 。
可以为 别的值,只是为了方便 。这一点在参考的第二个博客上也已经说明了 。
由上面解释,已知可以用y(wT x + b) 的正负性来判定(或表示)分类的正确性 。
定义函数间隔如下:
也就是,这个样本点x与超平面之间的间隔(但是现在有些不准确,所以有下面的几何间隔) 。
此时,若根据SVM的思想,最大化这个间隔,就能提高分类正确的确信度了吗?
答案是否定的,因为,如果成比例的改变w 和b(如将它们改成2w 和2b),则函数间隔的值f(x) 却变成了原来的2 倍( 虽然函数值增大了,达到了目标,但是此时超平面没有改变 ),所以只有函数间隔还远远不够 。
我们真正关心的,其实是“几何上”的点到平面的距离,于是可以用几何知识推理出来的几何间隔 。而不是一开始人们想当然定义的函数间隔 。
事实上,我们可以对法向量w 加些约束条件( 这就是调优问题的思考了 ),从而引出真正定义点到超平面的距离——几何间隔(geometrical margin)的概念 。
又因为x 0 是超平面w T x + b=0上的点,利用向量之间的运算
再令上式乘上对应的类别y,即可得出几何间隔
从上述函数间隔和几何间隔的定义可以看出:几何间隔就是函数间隔除以∥w∥,而 函数间隔实际上就是,只是人为定义的一个间隔度量,而几何间隔才是直观上的点到超平面的距离 。
接下来就是我们的目标:寻找一个超平面,使得离超平面比较近的点能有更大的间距 。也就是我们不考虑所有的点都必须远离超平面,我们关心求得的超平面能够让所有点中离它最近的点具有最大间距 。也就是找到最大的几何间隔 。
由上一小节可以知道,我们这里要找的最大间隔分类超平面中的“间隔”指的是几何间隔 。
上面两个式子的意思是( 注意,函数间距上面是折线,几何间距上面是波浪线 ):
最大化几何间隔
约束条件是,每个样例的函数间隔都要大于全局的那一个函数间隔(也就是所有训练集里的最小的那个)
用函数间隔表示几何间隔
于是得到了这个式子:
然而这个时候目标函数不是凸函数,约束条件也不是线性的,没法直接代入优化软件里计算 。我们还要改写 。前面说到 同时扩大w和b对结果没有影响 ,因此,我们将全局的函数间隔值定义为1 。于是,上述的函数转变成了
由于求1/||w||的最大值,相当于求||w||2的最小值,因此结果为:
因为现在的 目标函数是二次的,约束条件是线性的,所以它是一个凸二次规划问题。这个问题可以用现成的QP (Quadratic Programming) 5优化包进行求解 。一言以蔽之:在一定的约束条件下,目标最优,损失最小 。
根据前面几个文章的话,SVM作为判别模型,它的的模型,就是w T x i+ b。参数就是w和b 。学习完参数以后,新来的样例作为x i ,得到结果大于1,说明在超平面上面,所以是正例 。反之亦然 。
根据SVM的思想,SVM的初步目标函数,就是所有样例的几何间隔尽可能的大
至此,得到了SVM的目标函数,算是初步解决了SVM的这个问题,用优化包求解得到wb,即可得到具有最大几何间距的超平面,提高分类每个点的确信度,分类目标完成 。
接下来介绍的是手工求解w和b的方法了,一种更优的求解方法 。
从上可以看出 ,就同时扩大w和b就相当于等式两边同时除以函数间隔 γ,而新的w和b仍然是旧的wb的函数,所以最大化仍然可以进行 。

秒懂生活扩展阅读