SVM算法

来源:互联网 发布:接新娘唱什么歌 知乎 编辑:程序博客网 时间:2024/06/18 17:54

SVM是通过超平面将样本分为两类。
在超平面w\cdot x+b=0确定的情况下,|w\cdot x+b|可以相对地表示点x距离超平面的远近。对于两类分类问题,如果w\cdot x+b>0,则x的类别被判定为1;否则判定为-1。

所以如果y(w\cdot x+b)>0,则认为x的分类结果是正确的,否则是错误的。且y(w\cdot x+b)的值越大,分类结果的确信度越大。反之亦然。

所以样本点(x_{i}, y_{i})与超平面(w, b)之间的函数间隔定义为
\gamma_{i} = y_{i} (w\cdot x_{i} + b)

但是该定义存在问题:即wb同时缩小或放大M倍后,超平面并没有变化,但是函数间隔却变化了。所以,需要将w的大小固定,如||w||=1,使得函数间隔固定。这时的间隔也就是几何间隔 。

几何间隔的定义如下
\gamma_{i} = y_{i} (\frac{w}{||w||}\cdot x_{i} + \frac{b}{||w||})

实际上,几何间隔就是点到超平面的距离。想像下中学学习的点(x_i, y_i)到直线ax+by+c=0的距离公式
d(x_i, y_i) = \frac{|ax_i+by_i+c|}{\sqrt{a^2+b^2}}
所以在二维空间中,几何间隔就是点到直线的距离。在三维及以上空间中,就是点到超平面的距离。而函数距离,就是上述距离公式中的分子,即未归一化的距离。

定义训练集到超平面的最小几何间隔是
\gamma = min_{i=1,...,n} \gamma_{i}

SVM训练分类器的方法是寻找到超平面,使正负样本在超平面的两侧,且样本到超平面的几何间隔最大。
所以SVM可以表述为求解下列优化问题
\underset{w, b}{max} \;\;\;\;\;\; \gamma
s.t. \;\;\; y_{i} (\frac{w}{||w||}\cdot x_{i} + \frac{b}{||w||})\geq \gamma

==================================================================


魔鬼在桌子上似乎有规律放了两种颜色的球,说:“你用一根棍分开它们?要求:尽量在放更多球之后,仍然适用。”

于是大侠这样放,干的不错?

然后魔鬼,又在桌上放了更多的球,似乎有一个球站错了阵营。



SVM就是试图把棍放在最佳位置,好让在棍的两边有尽可能大的间隙。

现在即使魔鬼放了更多的球,棍仍然是一个好的分界线。

然后,在SVM 工具箱中有另一个更加重要的 trick。 魔鬼看到大侠已经学会了一个trick,于是魔鬼给了大侠一个新的挑战。

现在,大侠没有棍可以很好帮他分开两种球了,现在怎么办呢?当然像所有武侠片中一样大侠桌子一拍,球飞到空中。然后,凭借大侠的轻功,大侠抓起一张纸,插到了两种球的中间。

现在,从魔鬼的角度看这些球,这些球看起来像是被一条曲线分开了。



======================================================================


原创粉丝点击