上节我们探讨了关于拉格朗日乘子和KKT条件。这为后面SVM求解奠定基础,本节希望通俗的细说一下原理部分。

一个简单的二分类问题例如以下图:
解密SVM系列(二):SVM的理论基础
我们希望找到一个决策面使得两类分开。这个决策面一般表示就是机器学习之logistic回归与分类的可能知道,这里的问题和那里的一样。也是找权值。在那里,我们是依据每个样本的输出值与目标值得误差不断的调整权值W和b来求得终于的解的。当然这样的求解最优的方式仅仅是当中的一种方式。那么SVM的求优方式是如何的呢?

这里我们把问题反过来看,如果我们知道了结果。就是上面这样的分类线相应的权值W和b。

那么我们会看到,在这两个类里面,是不是总能找到离这个线近期的点。向以下这样:
解密SVM系列(二):SVM的理论基础
然后定义一下离这个线近期的点到这个分界面(线)的距离分别为d1,d2。

那么SVM找最优权值的策略就是,先找到最边上的点。再找到这两个距离之和D,然后求解D的最大值。想想如果依照这个策略是不是能够实现最优分类,是的。好了还是如果找到了这样一个分界面,那么做离它近期的两类点且平行于分类面,如上面的虚线所看到的。

好了再如果我们有这两个虚线。那么真实的分界面我们觉得正好是这两个分界面的中间线,这样d1就等于d2了。由于真实的分界面为吧。能够看到从k到1。权值无非从w变化到w1,b变到b1,我在让w=w1,b=b1,不是又回到了起点吗。也就是说,这个中间无非是一个倍数关系。所以我们仅仅须要先确定使得上下等于1的距离,再去找这一组权值。这一组权值会自己主动变化到一定倍数使得距离为1的。

好了再看看D=d1+d2怎么求吧,如果分界面

这里W=(w1,w2),是个向量,||W||为向量的距离。那么。下界面同理。

这样,乘一个系数0.5没影响,可是在后面却实用。

我们知道。如果一个一次函数分界面为。我们如今再如果上界面以上的点的分类标签为1,下界面以下的点的分类标签为-1。

那么这两个不等式再分别乘以他们的标签会怎么样?是不是能够统一为

注意的是这可不是一个约束条件。而是对全部的每个样本xi都有一个这样的约束条件。
转换到这样的形式以后是不是非常像上节说到的KKT条件下的优化问题了。就是这个。

可是有一个问题。我们说上节的KKT是在凸函数下使用的,那么这里的目标函数是不是呢?答案是的。想想,函数乘出来应该非常单一,不能有非常多极点,当然也也能够数学证明是的。

好了那样的话就能够引入拉格朗日乘子法了,优化的目标变为:


然后要求这个目标函数最优解,求导吧,

这两个公式非常重要。简直是核心公式。
求导得到这个应该非常easy吧,那我问你为什么对w求导是w呢?如果你知道,那么你非常厉害了,反正開始我是一直没转过来。

事实上说起来也非常easy。如果光去看看为什么求导以后,转置就没了。不太好想明确,设想一下如果如今是二维样本点。也就是终于的W=(w1,w2)。那么那么对w1求导就是2w1,对w2就是2w2,这样写在一起就是对w求导得到(2w1,2w2)=2w了。然后乘前面一个1/2(这也就是为什么要加一个1/2),就变成w了。

好了得到上面的两个公式,再带回L中把去w和b消掉,你又可能发现,w确实能够消,由于有等式关系,那b怎么办?上述对b求导的结果居然不含有b,上天在开玩笑吗?事实上没有,尽管没有b,可是有那个求和为0呀,带进去你会惊人的发现。b还真的能够消掉,就是由于了那个等式。

简单带下:


那么求解最最開始的函数的最小值等价到这一步以后就是求解W的最大值了,由于使用了拉格朗日乘子法后,原问题就变为其对偶问题了,最小变成了最大,至于为什么,等到具体研究过对偶问题再来解释吧。不了解的。仅仅须要知道求W的极值就可以。


整理一下。经过这么一圈的转化。终于的问题为:


为什么有,这是上节说到的KKT条件的必须。至此问题来源部分到这。

细心的你肯可能会发现。上述全部的构造等等都是在数据全然线性可分,且分界面全然将两类分开。那么如果出现了以下这样的情况:
解密SVM系列(二):SVM的理论基础
正负两类的最远点没有明显的分解面,搞不好正类的最远点反而会跑到负类里面去了,负类最远点跑到正类里面去了,要是这样的话,你的分界面都找不到。由于你不可能找到将它们全然分开的分界面,那么这些点在实际情况是有的。就是一些离群点或者噪声点,由于这一些点导致整个系统用不了。当然如果不做不论什么处理确实用不了。可是我们处理一下就能够用了。SVM考虑到这样的情况,所以在上下分界面上增加松弛变量
如果依照这样的分会发现4个离群点。他们到自己相应分界面的距离表示如上,理论上讲,我们给每个点都给一个自己的松弛变量
了对吧,确实是这样的,可是我们还发现什么?这个点是分对了的点呀。所以你管他大不大于预设值,反正不用调整分界面。

须要调整分界面的情况是仅仅有当相似的时候。

好了那么由于松弛变量的增加。导致每个点的约束条件就变化了点,像上界面以上的点,它满足的条件可能就是:
而下界面可能就是:
而且
统一在一起,整个问题就变成:


你发现目标函数里面多了一点东西。而加上这个是合理的,我们在优化的同一时候。也使得总的松弛变量之和最小。常数C决定了松弛变量之和的影响程度。如果越大,影响越严重。那么在优化的时候会很多其它的注重全部点到分界面的距离,优先保证这个和小。
好了将问题写在一起吧:

然后对

观察第三个式子,由于

这么说。溜了一圈下来。无非多了个

相关文章: