今天我们来看一个机器学习中最基础、也是最重要的算法——支持向量机。为什么SVM叫SVM,到底向量是谁?SMO又是哪位话事人?支持不支持,咱们往下瞧。
1. 支持向量
1.1 线性可分
首先我们先来了解下什么是线性可分。
在二维空间上,两类点被一条直线完全分开叫做线性可分。
严格的数学定义是:
1.2 最大间隔超平面
从二维扩展到多维空间中时,将 d0 和 d1 完全正确地划分开的 y = wx + b 就成了一个超平面。
为了使这个超平面更具鲁棒性,我们会去找最佳超平面,以最大间隔把两类样本分开的超平面,也称之为最大间隔超平面。
- 两类样本分别分割在该超平面的两侧;
- 两侧距离超平面最近的样本点到超平面的距离被最大化了。
1.3 支持向量
样本中距离超平面最近的一些点,这些点叫做支持向量。
1.4 SVM 最优化问题
SVM 想要的就是找到各类样本点到超平面的距离最远,也就是找到最大间隔超平面。任意超平面可以用下面这个线性方程来描述:
如图所示,根据支持向量的定义我们知道,支持向量到超平面的距离为 d,其他点到超平面的距离大于 d。