SVM算法(二)(有监督学习)

四、找到最优超平面
4.1、数据完全线性可分的超平面
  由上一篇文章中的2.2节知,目标函数和约束条件为:

这里写图片描述

  将目标函数引入拉格朗日乘子法,得到优化后的目标函数为:

SVM算法(二)(有监督学习)_第1张图片

  对上式进行求导得到:

SVM算法(二)(有监督学习)_第2张图片

  注释:WTW对w求导结果为w,理由:假设现在是二维样本点,因为W=(w1,w2),所以WTW=w1∗w1+w2∗w2,那么对w1求导就是2w1,对w1就是2w1,所以对w求导也就得到(2w1,2w2)=2w了,然后乘前面一个0.5(这也就是为什么之前要加上一个0.5)就变成w了。
  得到上面的两个公式后,将其带回L中把去w和b消掉,因为有等式关系,w确实可以消,但是对b求导的结果竟然不含有b,那b怎么消除b?虽然没有b,但是有那个求和为0,将其带进去后会发现,b是可以消掉的,就是因为了那个等式。带入过程如下:

SVM算法(二)(有监督学习)_第3张图片

  此时问题由求解最开始的函数的最小值等价到这一步以后就是求解W的最大值,这是因为使用了拉格朗日乘子法后,原问题就变为其对偶问题了,最小问题变成了最大问题。
  整理一下,所以经过这么一圈的转化,最终的问题转化为:

SVM算法(二)(有监督学习)_第4张图片

4.2、数据不完全线性可分的超平面
  在实际过程中数据有可能出现下面的分布情况,样本点不是完全线性可分的:

SVM算法(二)(有监督学习)_第5张图片

  由上图可以看出两类数据没有明显的分割面,有一个红色的点跑到蓝色的点的集合中去了,有一个蓝色的点跑到红色的点的集合中去了,所以不可能找到将它们完全分开的分界面,这些点在实际情况也是存在的,就是一些离群点或者噪声点,往往就是因为这一些点导致整个系统用不了。如果不做任何处理确实用不了,但是如果处理一下就可以用了。SVM考虑到这种情况,所以在上下分界面上都加入了松弛变量ϵi,此时如果一类中有点到上界面的距离小于ϵi,那么认为它是正常的点,哪怕它在上界面稍微偏下一点的位置,同理下界面。
因为松弛变量的加入,导致每个点的约束条件就变化了些,对于上界面以上的点,它满足的条件为:WTxi+b≥1−ϵi,yi=1。对于下界面以下的点,它满足的条件为:WTxi+b≤−1+ϵi,yi=-1。
  将上面的约束条件归纳起来,整个优化问题变为:

SVM算法(二)(有监督学习)_第6张图片

  在目标函数里面多了一点东西,而加上这个是合理的,这是因为在优化的同时,也要使得总的松弛变量之和最小。常数C决定了松弛变量之和的影响程度,如果越大,影响越严重,此时在优化的时候就会更加关注所有点到分界面的距离,优先保证这个和小。然后将约束条件带入目标函数得到:

SVM算法(二)(有监督学习)_第7张图片

  然后对w,b,ϵ分别求导数得到:

SVM算法(二)(有监督学习)_第8张图片

  观察第三个式子,因为0≤ri,所以0≤c−αi ⇒ αi≤C,又已知0≤αi,所以0≤αi≤C,然后把这三个导数结果带到目标函数中去消掉对应的w,b以及ri,结果发现,连ϵi也消掉了,并且目标函数和没有加松弛变量的一模一样,结果如下:

SVM算法(二)(有监督学习)_第9张图片

  所以相比数据线性可分的情况,就多了个αi≤C,其它没有什么变化。因此,更一般的带松弛变量的优化函数以及约束条件就变为下面的形式:

SVM算法(二)(有监督学习)_第10张图片

  得到目标函数和约束条件后,接下俩的问题利用已知条件去寻找一组αi的最优解,从而找到最优的超平面。此时要求得最优一组αi的最优解需要利用SMO算法。

未完待续

你可能感兴趣的:(SVM算法(二)(有监督学习))