支持向量机(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源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/3896378/blog/4445938