机器学习技法 笔记二 dual support vector machine

接着上一章说=。=

上一章看上去其实已经挺不错的了,但是实际上,我们仔细思考还是有一些问题需要解决的。

例如,当我们需要做非线性的划分的时候,我们可以考虑转换到Z空间,在Z空间做线性划分,再回到原来的x。

然而就是这里出现了问题,如果我们要做z空间的转换,那么我们的复杂度就不再是以前的那个d了,而是弯弯曲曲的d了,也就是复杂度变大了,还记得我们上次说的

如何解决最后的问题吗?就是找一个二次规划的软件解决,但是当我们转换到Z空间以后,我们丢到二次规划软件中的那个Q向量已经不再是以前的复杂度了,而是那个弯弯曲曲的d,这一章我们的目的就是要解决这个问题。

按照上一章的结果,我们最后的形式是一个有条件限制的最优化问题,而有条件限制的,通常是比较难做的,所以,我们现在希望是把这些条件到揉到表达式里面去。


左边就是上一节,我们得到的结果,而右边则是我们新得到的式子,而下面则是我们的目的,我们仔细观察这个式子,我们的α系数是>=0的。同时我们SVM里面对新的这个式子有一个max操作。

这样想把,现在我们没有了y(wz+b)>=1这个限制,我们就担心我们求出的解不满足这个限制,那么就不对了。实际上,如果对于不满足这个限制的数据,带入下方的这个式子,因为限制是y(wz+b)>=1,既然不满足限制,就说明y(wz+b)<1,如果是这样那么1-y(wz+b)>0的,同时α是大于等于0的,因为有一个max操作,而1-y(wz+b)>0,所以显然α越大,这个整体就越大,而α可以无限大,所以求最大的时候,这边肯定会无限扩大下去,显然我们可以得到结论,对于不满足限制条件的SVM->∞,而对于满足的来说,1-y(wz+b)<=0,如果是等于0,与α相乘自然是0,如果是小于0,为了使得整体尽量大,α肯定会取0,如果取α取大于0的数,那么两个相乘肯定是负数,相比来说,阿尔法取0更好,所以整个右边这一堆新加上去的东西,在满足限制的前提下肯定是0,所以最后的结果还是min(1/2ww)。所以对于无穷和1/2WW这两种可能的解,因为最外面有个求min操作,我们得到的最后结果是1/2ww。所以去掉了限制是没有问题的。

也就是说SVM在不满足限制的时候->∞,而在满足的限制的时候,还是和原来一样,所以说我们自然能够区分满足和不满足限制的,所以这个式子是可以用的。

那么我们现在的问题,求从以前的那个式子,变为了新的这个式子。

接下来我们要对新的问题进行讨论。


如图,这个不等式肯定成立吧,右边的α是任取一个。这个不等式自然是成立的。


那么上面这个不等式也是成立的吧,怎么理解呢?

这样理解吧,a代表一个人,b代表一群人,a比b这一群人中的所有人年龄都大(或等),那么a自然也比b里面最大的人大(或等)咯

当然对于我们来说,我们要解决还是希望看见的是等式,而不是不等式。

然而我们这个问题最后都是在二次规划上进行最后求解的,在二次规划问题中上述不等式两边的解其实是一样的,所以对于我们的问题我们可以把这个不等号换成等号。

把不等号换成等号的前提有三个1:凸问题,2:有解,3:线性的。显然这3个都还是满足的,可以换了。

当然作者说证明过程太过复杂,忽略=。=,

转化以后,我们的问题就是:


现在我们已经没有限制了,因为限制在前面已经说了,换成一个部分加在了后面,既然没有了限制,那我们的b和w都是自由的了。

既然是自然的了,那么括号里面的最小值怎么求,求偏导呀。


首先对b求导,自然得到下面这个结论,学过大学数学的,这个求导过程应该还是很easy吧=。=

那么接下来把结论带入上面式子,得到


上面这一步其实就仅仅是展开而已,没有任何难度,展开以后,发现b前面的东西,我们刚才不就是刚才求出来等于0的那一部分吗?

既然都等于0,赶紧去掉呀。

去掉以后,自然可以得到


那么接下来处理w吧



对w的各个项求偏导,最后还是用向量表示。如上图所示。


把刚才对w求偏导得到的结果带入式子,展开替换,得到如上图的结果,这个变形不难,展开替换就是。


下面这张图是条件


第一个条件就是我们最开始想要消去那个条件,第二个使我们限定了的,第三个刚才求导得到,第四个,我们也说明了,在满足第一个的时候,因为我们要尽可能的大,如果1-y(wz+b)=0自然整体为0,如果1-y(wz+b)<0,因为α大于等于0,为了使整体尽量大,显然阿尔法取0,所以说无论如何总有一个是0,所以整体是0。

继续


毕竟我们还是比较喜欢求最小值,所以取个负号,把max变成min

同时因为我们最后还是需要用二次规范程序来解,所以自然写成上面这个形式。上面平方的部分,被展开了,所以看着有点复杂。

现在显然我们求解的α是N维的,同时限制是N+1个。

接下来需要做的就是找一个二次规划软件,合适套输入,然后就行了=。=

当然这只是想当然。

其实你可以看看上面yyzz这里相乘,z是x在z空间的转换,这里有可能是很高维度的,所以说其实我们前面的工作只是把,高维度的计算转换到了中间矩阵的计算,但是实际上,在矩阵计算的时候,还是有高维度的计算的。

当然这是后面要解决的问题。

我们在求出α以后,自然可以得到w,因为前面有一个关于w的表达式。

这里再说一下,其实可以发现,因为很多α等于0,所以真正对w有贡献的是那些α不等于0的那些数据,说白了,其实也就是这些α不为0的点其实就是在这条胖胖的线的边界上,而这些点叫做支持向量(sv)

至于b呢,找一个sv,带进去就能解出来了,因为sv的α能为0,那么它的1-y(wz+b)自然为0,带入解出来的就是b

下面看一看


其实我们可以发现,无论是现在说的svm还是以前说的pla,其实w都是一些资料的线性表示。其中pla中的β是指错误了几次,其实感觉有点玄。=。=

最后再说一点,上一节我们提到了candidate这个概念,就是说在胖胖边界上的点,当然candidate还不能等于sv,因为sv小于或者等于candidate,也就是说candidate中,只有满足α大于0才能是sv。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值