机器学习之svm(2)神奇的拉个朗日

来源:互联网 发布:微店淘宝搬家怎么用 编辑:程序博客网 时间:2024/05/16 12:17

浅谈svm(2)神奇的拉个朗日对偶

1

在上一篇的文章最后,我们给了大家一个小例子,让大家先看了一下svm是怎么工作的,不过svm的优化并没有那么简单,这次我给大家说一下正统的svm学习优化,也就是神奇的拉格朗日对偶。

2

首先回到上次的最后,我们的目标是:


那么我们才能将我们的这个式子优化呢?我们知道这种带条件的优化很烦人,我们怎么才能让我们的优化问题没有这么复杂的约束条件呢?其是这跟废话一样,构造拉格朗日函数嘛,如下,我们的目标变成了:

其中我们的α>=0,(搞什么,还是有约束,但约束简单多了,一会我们说为什么这里要让α>=0),进一不讲,如果我们令
我们会发现,当我们的目标条件约束不满足时候,也就是yi(wx + b)-1<0时候,θ(w)的最大值为正无穷(因为我们的α>=0),而如果我们的约束条件满足是yi(wx + b)-1>=0时,我们的最大值只能为 ,所以说在满足约束条件下,我们的θ(w)就是我们要优化的目标函数了,也就是说,我们的目的是minθ(w),也就是说,我们的最终目标变成了

这里的p*是我们的原始问题的最优解,也可以看出,我们一开始规定的α>=0也就是为了得到这个式子,这样,我们成功的将带有复杂条件约束的问题转变为了没条件约束的问题。有了这个形式,我们终于可以谈到我们的主角,拉格朗日对偶了。

3

首先我们来说明一下,我们在做一件事情时候,首先得明确我们的目的是什么,我们做这件事情的原因是什么。我们目的是优化,但是我们却发现它的对偶式子却更容易优化(p*是原问题最优解,d*是对偶问题最优解),而且对偶的式子会引入一个相当给力的核函数(以后我们会说)。所以我们选择了它的对偶式子来优化。有的人会问了,按你这么说p*和d*是等价的了,当然不是,其实很明显的,d*<=p*,为什么呢,一个问题最小值的最大肯定是<=它的最大值的最小了,(说的我都晕了),那我们在什么条件下能让我们的d*=p*呢,条件嘛,是有的,这个就是很多人所说的kkt条件了,也就是说在kkt条件下,d* = p*了,这样我们终于废的不是劲把我们的最终优化式子搞定了,也就是,首先我们求我们的,对L(w,b,α)偏导得到如下式子:

将我们的w带回去L(w,b,α)中可以消去我们的w,得到:

再求我们的,得到了我们的最终优化式子:

其中的约束条件是我们的kkt条件得到的,(我们先不讨论,至于它的由来,请参考这里,很给力的).又有的人问了,我怎么看这一点也没简化呢,别着急,慢慢的你就能感觉到它的威力了。还是老规矩,我们给大家一个简单的小例子来对这个对偶式子有个深刻的认识,否则总感觉我们一直在说大话,空话,认识来源于实践,实践丰富我们的认识。

example

还拿我们上一篇最后讲的一个例子来说事。

不会吧,搞了半天,还不如上次那种简单呢,哎呀,我这里只是为了给大家举个例子嘛,看看其优化是怎样通过对偶实现的,有的人说了,难道我们的svm就这么简单,这也没什么。当然我这里都是从最最简单的例子出发的,至于其最终的优化算法,当然不可能是这样,下一次我们会继续复杂化我们的svm。(大家可以看出,我的文章一般由算法之间的联系到简单问题,再一步步的复杂化,中间夹杂着小例子来说明,虽然不像别人的博文那么专业,不过也许会更好理解一下,有什么建议大家提一下,如果大家认为我说的对,就捧个场,如果认为我说的纯粹的扯淡,那您就当逗个乐,学习的过程,本来就是这样吗,望大家共勉之)
0 0
原创粉丝点击