您的位置:首页 > 其它

初识支持向量机(support vector machine)

2018-01-16 22:47 267 查看
在学习机器学习的时候,当学到支持向量机的时候可能会有一点懵了,这篇文章主要是像大家介绍一下支持向量机的思想,不会有过多的数学。在介绍之前,先看一个非常有意思的故事,故事来源于知乎,原文链接,故事是这样的:

在很久以前的情人节,大侠要去救他的爱人,但魔鬼和他玩了一个游戏。

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



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



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



SVM就是试图把棍放在最佳位置,好让在棍的两边有尽可能大的间隙。(支持向量计算法的核心思想)






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







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



现在,大侠没有棍可以很好帮他分开两种球了,现在怎么办呢?当然像所有武侠片中一样大侠桌子一拍,球飞到空中。然后,凭借大侠的轻功,大侠抓起一张纸,插到了两种球的中间。(支持向量机算法的核技巧,用来解决非线性分类问题)



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



再之后,无聊的大人们,把这些球叫做 「data」,把棍子 叫做 「classifier」, 最大间隙trick 叫做「optimization」, 拍桌子叫做「kernelling」, 那张纸叫做「hyperplane」。

看完这个故事后大家应该对于支持向量机算法的核心思想有所了解了,在介绍支持向量机算法之前,我们需要先明确两个问题,当然这也是每一种机器学习算法需要解决的两个问题,如果搞懂这两个问题,你也就理解了这个算法:

1、在学习机器学习算法之前,先要了解算法的核心思想(目标函数)是什么?像之前的感知器算法,算法的目的是保证预测值与实际值之间的平方差误差最小,在逻辑斯蒂回归中,算法的目的是保证所预测的类别的概率最大。

2、如何来获取目标函数,在逻辑斯蒂回归算法中,我们通过极大似然估计来使得预测类别的概率最大,求出了代价函数,然后通过梯度下降算法来优化代价函数。

这篇文章,我们主要介绍支持向量算法的核心思想。

下面,我们先看一张图



上面四幅图中,直线都能够将三角形和正方形分割开来,那么我们应该选择哪种方法最合理呢?想想,如果在三角形或者正方形中有噪声数据,靠近直线的位置多了几个点,那么很可能造成三角形被分到了正方形的一边,而正方形被分到三角形的一边,从四幅图中看来,貌似第4幅图的抗干扰(鲁棒性)最强。这就是支持向量算法的核心思想,希望找到离超平面(图中的红线)最近的点,确保它们离超平面尽可能的远。第四幅图中蓝色线上的三角形和四边形就被叫做支持向量(support
vector)。而我们的目的就是要最大化支持向量到超平面的距离。在下一篇文章中,将会介绍如何来求出我们需要优化的目标函数,并通过拉格朗日和KKT来求解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: