支持向量机(support vector machine)--模型的由来

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wxcdzhangping/article/details/21931663

1995年,Corinna Cortes(CC老师)靓照

          CC老师首先给出数据集是二分类且线性可分的情况,设上的数据集,其中的标签,例:二维空间中数据集可视化的表示(青色表示“-1”类,红色表示+1类)

         CC老师提出了第一个问题:既然能线性可分,那么就有超平面(向量化表示

)将这数据集分开,使得一侧是“+1”类,另一侧是“-1类”,老师让我和同学A、同学B求出超平面,例:二维空间中数据集线性可分的可视化(黄色直线将数据集分在了两侧):



我和同学A、同学B分别给出了直线的方程,我求出的直线方程是即求出的,同学A的给出的直线方程为(注意在我直线方程两侧除以5就可以)即,同学B求出的直线方程为,(注意在我的直线方程两侧除以2就可以)即,然后我们三个分别把答案交给CC老师,CC老师说你们三个给我的直线方程,虽然写法不一样,但是只代表一条直线。

        CC老师向我们提出了第二个问题,既然这三个方程只代表一条直线,能不能想个办法,把这条直线统一一下,标准一下,CC老师看出了我们三个的迷惑,就给我提示了一下,他说你们可以找到离这条直线最近的点,通过这个点改进你们的直线方程。


补充几何知识:

第一个知识点:已知超平面和数据集,哪个一点离这条超平面最近,答案:哪一个点使得最小,哪一点离这个超平面最近

第二个知识点:已知超平面和点,那么这个点到这个超平面的距离为:,向量表示法为

 

通过几何知识,我修改我的直线方程,在二维平面里可直观的看到离这黄色直线最近的点,我用黄色圆圈标注出来了,并给出了这个点的坐标


我的直线方程改进过程:,然后把,同除以4.3,那么最后,所以我修改后的直线方程变为了,注意离这条直线最近的点使得,那么对任意的,都有

同学B改进他的直线方程过程(我偷瞄的):,把,同除以2.15,那么最后的,直线方程为

同学A改进他的方程,按照上述步骤,最后和我的是一样

然后,我们三个把各自的答案给了CC老师,老师看后说,你们的给出的直线方程使得,但是出现了一个负号的差别。你们再想想对于这个问题还有什么条件没用上我们回答对于的标签我们没用到我们知道在超平面一侧的所有点是同号的,即要么都大于零,要么都小于零。

则对于直线当直线方程是时,左下方的点为负数,右上方的点为正数,而左下方的点是属于-1类的,右上方的点是属于+1类的,所以我们可以把去掉绝对值,使得


而当直线方程是时,左下方为正数,右上方为负数我们只需把同乘以-1便得到了


微笑微笑,直到现在我们三个终于把这条直线的直线方程给统一化了,即而且这条把数据集分开的直线还满足老师看到这样的结果还是高兴!然后提出了一个小问题,这些数据集到我们求出的这条直线的最短距离是什么?简单啊,就是,即。老师微微点点头,表示对我们反应速度的认可!

       CC老师又抛给了我们一个问题,还有没有别的超平面可以分开这两个数据集,回答是肯定,会有无数个超平面分开这两个数据集,

按照求统一黄色直线方式,我们又求出了图中绿色和蓝色的直线方程,其中绿色直线方程的的系数为我们用绿色的表示,且满足,且这个数据集到绿色直线的最小距离为,蓝色直线的系数为我们用蓝色的表示,且满足,且这个数据集到这条蓝色直线的最小距离为。老师又抛给我们一个问题,既然有无数条,你们什么时候才能求出这些所有的直线,我们也想对啊,老师又说那你们求出的这些直线有没有共同的性质,我们说有啊,就是

     老师又着急了,既然有无数条,就是有无数个,且满足的超平面能分开这两个数据集,那么哪一条才是最好的呢我们思考了五分钟,没找到好的答案,老师又给我提示,你们已经求出了三条直线,那么要你们从三条直线(系数分别为)里选出一条呢我们选数据集到这三条直线 最小距离(三个最小距离) 最大的那一条,作为最好的那一条直线,老师说答对了,那无数条直线也一样,选数据集到直线 最小距离最大的那一个。


       老师说你们能不能用"选数据集到直线 最小距离最大的那一个" 这句话抽象出一个模型或者公式,老师提示说用运筹学分支之一非线性规划的知识,归纳一下这个模型,我们想了一想给出了这个模型公式:

                                                     

                                                     

老师微微点点头,范数的平方好处理一些吧,再改改,我们修改如下

                                                                 

                                                    

然后,老师说原问题一般用最小值处理,我们又做了一下修改

                                                                  

                                                                 

最后把原问题乘以0.5,最优化问题的解不变,所以最后模型为

                                                                

                                                                

老师最后微笑了一下,说下课吧,你们的模型已经解释出来了!我们着急的拉住CC老师说:老师,我们穿越过来不容易,你直接告诉我们,这个模型有无数个,那这个非线性规划怎么解啊?。老师说:所以你们就需要考虑这个问题的对偶问题啊。最后老师说:你们先去找找Harold W. Kuhn和Albert W. Tucker,去学习一下他们的kuhn-Ticker条件(KKT)。              

                                                                     本集结束!

下集预告:又要穿越去找Harold W. Kuhn和Albert W. Tucker,去学习他们的解非线性规划的kuhn-Ticker条件(KKT)。              



对于支持向量机比较好开源库是台湾大学林老师写的libsvm,这个库只有常用的三个核函数,我在源码的基础上,加上了十个核函数。。。

源码地址:libsvm添加十个核函数





猜你喜欢

转载自blog.csdn.net/wxcdzhangping/article/details/21931663
今日推荐