如何给五岁小孩讲解SVM SVM-1

SVM系列开篇,翻译自:https://www.reddit.com/r/MachineLearning/comments/15zrpp/please_explain_support_vector_machines_svm_like_i/


在桌子上有一堆两种颜色的球,我们想将其分开:


如何给五岁小孩讲解SVM SVM-1_第1张图片

用一根stick棒棒放上去,怎么样还行吧?:


如何给五岁小孩讲解SVM SVM-1_第2张图片

但是有个贱人又放了球,这样就似乎有一个球落在了错误的一侧,可能需要调整棒棒:


如何给五岁小孩讲解SVM SVM-1_第3张图片

SVM就是要将棒棒放置到最佳位置上,使得两侧都有差不多的间隔,也就是距离两侧球球的直线距离尽可能一样:


如何给五岁小孩讲解SVM SVM-1_第4张图片

现在即使有贱人捣乱,棒棒的位置看着也不错:

如何给五岁小孩讲解SVM SVM-1_第5张图片

SVM套件里还有个更重要的玩意trick呢,现在贱人看到你的棒棒用得好,所以发起新的挑战:


如何给五岁小孩讲解SVM SVM-1_第6张图片

这样子的分布是没有任何一根直棒棒可以很好分类的,怎么办?掀翻桌子把球抛起来!凭你的水果忍者技术,用一张纸切到球球中间!


如何给五岁小孩讲解SVM SVM-1_第7张图片

现在~特征空间出现了,在贱人的视角看来球球被一条曲线完美分隔:

如何给五岁小孩讲解SVM SVM-1_第8张图片

低维非线性分界线其实在高维度是可以线性分割的-全文重点(参见最后的补充

无聊的大人们把球称为数据、棒棒称为分类器、找到最大间隔称为优化、掀翻桌子叫函数kernelling(积分方程的核、神秘的核)也就是kernel trick核技巧、那张纸叫超平面。

评论:

1、补充一点:实际上我们可以仅仅凭着少量距离棒棒/超平面纸最近的球计算出来该最佳位置!,其他大部分球其实没用,这些少量重要的球球称为:支持向量support vectors

2、通用名称上称棒棒和纸为:分割超平面separating hyperplane

3、像其他的很多ML算法一样,SVM需要一些已分好类的数据作为训练集、然后可以去预测未分类的测试集。对于数据经常会有很多不同的特征,例如如果所有的数据只有两个特征,如图:


如何给五岁小孩讲解SVM SVM-1_第9张图片

我们需要做的是找到分隔两组不同类数据的线、这条线是距离所有最近点最远的,图中是红线。我们得到的线即分类器,之后就看测试数据落在线的哪一边。决策那一条线是优化问题,可以用二次多项式编程解决。


如何给五岁小孩讲解SVM SVM-1_第10张图片
SVM能做什么


如何给五岁小孩讲解SVM SVM-1_第11张图片
SVM间隔

补充:

为什么将非线性问题转化为线性问题这么重要?参见线性代数百度百科

划重点:

各种实际问题在大多数情况下可以线性化,而由于计算机的发展,线性化了的问题又可以计算出来,线性代数正是解决这些问题的有力工具。线性代数的计算方法也是计算数学里一个很重要的内容。

“以直代曲”是人们处理很多数学问题时一个很自然的思想。很多实际问题的处理,最后往往归结为线性问题,它比较容易处理。

如果进入科研领域,你就会发现,只要不是线性的东西,我们基本都不会!线性是人类少数可以研究得非常透彻的数学基础性框架。学好线性代数,你就掌握了绝大多数可解问题的钥匙。有了这把钥匙,再加上相应的知识补充,你就可以求解相应的问题。可以说,不学线性代数,你就漏过了95%的人类智慧!非线性的问题极为困难。如果能够把非线性的问题化为线性的,这是我们一定要走的方向!

事实上,微积分“以直代曲"的思想就是将整体非线性化为局部线性的一个经典的例子,尽管高等数学在定义微分时并没有用到一点线性代数的内容。

这就是SVM的意义。

你可能感兴趣的:(如何给五岁小孩讲解SVM SVM-1)