您的位置  > 互联网

基于二维平面的9个简单场景深入理解其工作原理

从分类或回归的角度来看,SVM分类只考虑分类面附近的局部点,即支持向量,而回归等算法必须考虑所有样本的点,并根据所有数据点的分布构造分类边界。 那么如何理解SVM这个依赖超平面和支持向量的分类或回归问题呢? 下面我们通过9个二维平面的简单场景来深入了解其工作原理。

图 1:什么是正确的超平面?

如上图所示,三个超平面A、B、C划分了星形和圆形标志。 显然超平面 B 是正确的超平面。

图 2-3:什么是最佳超平面?

如下图所示,三个超平面A、B、C都可以分割星形和圆形标志。 哪一个是最佳的?

如下图所示,最优分类平面的条件是间隔最大化。 我们根据任何类型(星形或圆形符号)与超平面之间的最大距离(称为边距())来确定最佳超平面。 与A和B相比,超平面C的最大,并且具有鲁棒性,也就是说与任何类别的都是最大的,而不像A和B泛化性差。

注意:这里并没有考虑所有点都必须远离超平面。 我们关心的是得到的超平面能够让所有点中最近的点具有最大的距离。

图4:有时SVM得到的并不是最优的分类超平面。

如上图所示,根据我们之前的边际最大化原理,B就是SVM算法得到的最优超平面。 然而,从实用的角度来看,A是能够完全区分这两类的超平面。 因此,有时候得到的SVM并不是最优的分类超平面,那么我们是不是要怀疑SVM算法的可行性呢? 我们可以从下一张图中找到答案。

图 5-6:线性不可分下的最优超平面

如上图所示,这两个类别不能用直线划分。 基于SVM的边际最大化原理,我们得到的最优超平面只能是这样:

结合图4和图5-6的内容,我们可以看到,有时SVM不能很好地完全分离两个类别,但我们仍然认为它是一个更好的分类器。 这是因为我们训练的样本中的一些数据本来就是噪声,存在异常值。 如果我们在训练(学习)过程中了解到这些错误点,那么模型下次遇到这些错误情况时将不可避免地出错。 这种学习过程中学习“噪音”的过程就是一种过拟合(over-),这是机器学习中的大忌。 SVM在拟合时会保证一定程度的容错性,忽略异常值并考虑全局类别分布,如图4、5、6所示。

图 7-9:非线性分类下的 SVM

如上图所示,两个类之间不可能存在线性超平面,那么SVM如何对这两个类进行分类呢? 之前,我们将分类函数构造为 f(x) = wx + b(wx 表示 w 和 x 的内积)。 这里我们需要将空间从原来的线性空间改变到更高维的空间。 在这个高维空间的线性空间下,被一个超平面所划分。

我们构造一个新的特征 z = x^2 + y^2,然后在 x 和 z 轴上绘制样本点。 我们可以看到如何有效地对这两类进行分类。 这增加了一个新的维度,并将两个类别划分为高维空间。 SVM有一种称为核函数的技术。 这些函数采用低维输入空间并将其转换为高维空间,即将不可分离问题转换为可分离问题。 这些函数称为内核。 主要用于非线性分离问题。

总结:

从上面九张图,我们可以知道SVM的工作原理:最大化; 忽略异常值; 使用核函数来处理非线性情况。 需要说明的是,以上是对简单SVM场景的分析,SVM实际工作原理相对复杂。