# 记svm学习之路(一) #
啃了三个星期的SVM之后,觉得自己还是没有彻底弄懂svm,但还是觉得把自己已经懂得部分,总结一下,写出来!吼,废话不说了,开始正题。
首先,了解svm是一个二分类问题,即要分的数据集可以分为class1和class2,线性可分和线性不可分,二维平面和超平面的问题。假定可分的数据集在二维平面上,分隔两类数据集的线可以写成f(x)=wtx+b,详情见下图,由于markdown用的不溜,手画图一发,我们首先讨论两类问题它们都很“干净”的情况,即没有两类之间没有互动
,
图中可以看出,将两类的分类标签分别标为1和-1,这里标记1和-1只是为了好识别后期计算方便!由初中的数学公式即可以推导出,y=1和y=-1这两条直线的距离即函数的几何间隔为2/||w||,此处的目的是寻找几何间隔最大,辣么问题来了,如何求几何间隔最大呢,那还不是要求||w||的最小值嘛!这就对偶问题(说的好简单,吼吼,好理解伐?)筒子们,下面用到我萌大学的数学啦,||w||就是w的转置和w的乘积,wtw,就是求wtw的最小值,辣么,既然求最大值了,我们不妨给它加一个系数吧?这样就转换为坵margin=1/2(wtw)的最小值,我们可以看出这是一个抛物线,开口向上,辣么,它当然有最小值!!好哒!那么,我们先在分析一下w和b都是啥?
w就是f(x)这条分割线的法向量,即它决定了这条线的方向,向哪?而b,这不就是截距嘛?x=0代入即得!有这两个变量就决定了这条线的走势。当y=1的时候,有Wtxi+b>=1,而y=-1的时候,有Wtxi+b<=1,那么我们是不是可以总结为Yi(WtXi+b)>=1,好的,现在我们要求margin=1/2(wtw)的最小值,其subject to Wtxi+b>=1,i=1,…,n。好的那么我们怎么求margin在这个限制式下面的最小值呢?下面拉格朗日乘子华丽登场!我们写为拉格朗日乘子的形式,因为我们要求最小值啊,那么我们将限制式换为这个格式1-Wtxi+b<=0,拉格朗日乘子为:
(好了不要嫌弃我写得丑)
下面我们为了求出这个函数关于alpha的函数,则分别对w和b求导数有:
我们将求得的两个导数结果代入原来的函数L(w,b,α)中,可得:
,
好了,到此我们就得出了求导后的最后结果是不是只有alpha这一个未知变量了?以上的式子由来呢我准备把我写的丑丑的稿纸搬上来!
,
好了那么我们上升到了好多维的超平面了。。。(不好意思,写着写着就出去二维了),既然这样,就讨论超平面可否?好了,那么接下来就是满满的公式推到了,这里我可以不可以放一张我的推导稿纸?公式用的不好。
,
经过以上的讨论可以得出,当alpha=0的时候,即为边界外的点我们对这些点就能放下不管了,alpha>0的时候,是落在边界上的点,这些点是支持向量的点,正是由于这些点的存在才会有||y||=1的线的存在!我们最终的得到了W关于alpha的函数,我们在对数据集进行分类的时候讨论alpha的情况即可。下面我们来讨论,如果class1中混入了class2的情况吧!它们很友好喜欢互动啊喂!
这时候我们要引入一个容忍值,即你混入多少我是可以容忍的(不杀)!我们记这个容忍变量为ξ,我们称它为松弛变量,因为对于数据集中的众多数据各自口味不同这个ξ的值也是变化的!那么我们的上述函数式就变成了
我们依然想求这个函数的极小值,辣么我会告诉你我们现在有了两个限制式,y(WtXi+b)-1+ξ<=0和ξ>0,我们来继续构造拉格朗日乘子吧!其实一系列的推导和上面的雷同,不敲了,还是奉上我的稿纸(捂脸)。
其中我对alpha的取值集中情况进行了讨论,根据alpha的不同取值得出ξ的不同情况,点的分布情况。那么,现在我们得到了函数式关于alpha的函数,我们要怎么来循环迭代,然后怎么处理这个松弛变量呢?预知后事如何,且听下回分晓~