如何向一个5岁孩子解释支持向量机
最近在Reddit上面看到一篇帖子——Please explain Support Vector Machines (SVM) like I am a 5 year old.,感觉非常有意思,刚好对支持向量机也不大懂,就学习了一下。这篇文章算是学习心得吧。
桌子上似乎有规律放了两种颜色的球,要求用一根棍子将它们分开,并且尽量在放更多球之后,仍然适用。
我们这样放,似乎问题不大?
但是这样的放置方式,在添加更多的球后,会有分类错误的情况。
SVMs就是试图把棍放在最佳位置,好让在棍的两边有尽可能大的间隙。
现在即使添加了更多的球,仍然可以用原先的棍子进行分类。
这时候,新挑战来了。
看上去似乎没有办法进行分类了,怎么办呢?我们把桌子一拍,球飞到空中。然后一招梯云纵,抓起一张纸,插到了两种球的中间。
现在,从原来的维度看这些球,这些球看起来像是被一条曲线分开了。
这些球就是“data”,棍子——“classifier”,最大间隙trick叫做“optimization”,拍桌子叫做“kernelling”, 纸叫做“hyperplane(超平面)”。
SVM三宝:间隔(margin),对偶,核技巧。
SVM: hard-margin SVM, soft-margin SVM, kernel SVM.
SVM最早用于二分类问题。
- Max-margin 最大间隔分类器
to be continued.