机器学习-初识SVM(1)

喜欢而已 提交于 2021-02-16 21:53:48
概述


    支持向量机(support vector)算法是分类算法里应用最为广泛的一种算法,基本上能解决所有分类问题,尤其是二分类问题。很多机器学习的教材都把支持向量机算法作为第一算法介绍,可见其重要性。

    在CSDN看到了一个大佬举的例子,很有意思。

    某日,见篮球红球于一个桌子上,欲分之。

    插一根筷子于红篮球之间,则红篮球可分。

    不料随着球越来越多,一红球出界毁吾之分割。可惜可气。

    不服,遂变化筷子方向则又可分红篮球也。

    终于有体会,欲合理分清红篮之球,必使得近处红篮求于筷子越远越好。

    他日,又偶遇如下一堆红蓝球,吾又欲分之。

    拿起筷子比划半天无从分离,百思不得其解,大怒,猛一拍桌。

   见桌上之球于空中仿佛有可分之势,蓝上红下。大喜,顺势抽一张纸隔于蓝红球之间,则蓝红之球可分。

   遂可得,若桌面上不可分(2维),则拍桌,将球腾空而起(3维),则可分之。

    以上便是SVM的故事。

    SVM通常用来进行模式识别、分类以及回归分析,它特别适合安全领域里面的非黑即白。


间隔和支持向量


   上述例子中,那根分割红篮球的筷子就叫做划分超平面。将其定义为f(x)=ωTx+b=0,ω为法向量,决定了超平面的方向,b是位移项,决定了超平面与原点之间的距离,有没有觉得很熟悉,这就是直线的定义啊。那球到筷子的距离不就是点到直线的距离嘛:

(1)

    上述公式只表示距离,这里我们不光要知道的是距离,我们需要的是分配正确之后的距离。

    这里我们重新定义一下,我们给篮球的标签为y=+1,给红球的标签为y=-1。我们希望的是:一旦碰到一个新的x,将x带入f(x)中,如果f(x)小于0,那么将f(x)认定为红球,如果f(x)大于0,那么将f(x)认定为篮球。总结为下面的公式:

(2)

    在所有的红球和篮球中,距离超平面最近的红球和篮球所在的坐标点使得上述公式等式成立,这两个离超平面最近的红球和篮球称之为“支持向量”,这两个异类支持向量到超平面的距离和,称之为“间隔”:

(3)

    间隔貌似仅仅与ω有关,但是事实上b通过约束隐式地影响着ω的取值,进而对间隔产生影响。


    想找到具有“最大间隔”的超平面,也就是需要找到满足公式(2)中约束的参数ω和b,使得γ最大,即:

(4)

    其中数学符号s.t.表示约束条件。

    显然为了最大化间隔,仅需要最大化,其实等价于最小化,于是可得公式:

(5)

    这就是向量机的基本型。(为什么要把最大化变为最小化问题?答:因为好算...)


你点的每个在看,我都认真当成了喜欢

本文分享自微信公众号 - 小啦的学习笔记(woshiguolala)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!