一、SVM基本概念
SVM(Support Vector Machines),支持向量机,是一种用于分类的算法。举个例子,桌子上有两种不同颜色的小球,采用一根棍子将其划分成两个部分,使得分类效果最好。其中根据小球摆放的位置,又可分为线性可分和非线性可分,所谓线性和非线性就是指能够用一条直线直接划分数据。
eg.线性可分:
线性不可分:
当一个分类问题,数据是线性可分的,如一根棍子所放的位置能够使得小球距离棍子越大,寻找这个这个最大间隔的过程,就叫做最优化。然而事实是很多数据都是线性不可分的,无法用一根根子直接划分小球,此时需要用到一种核函数,将处在低维空间的小球映射到高维空间中,并最终划分小球。
SVM研究的问题就是从线性可分延伸到线性不可分的。
二、线性可分的SVM
我们先来做一个线性可分SVM的关键参数
决策面:就是能把两种不同数据进行切分的“棍子”,如图上红色线
最大间隔:就是两边数据到决策面最大的距离,如图上虚线到红线的距离d
支持向量:就是某些最靠近决策面的数据点,如虚线上的点
问题解决:
我们分类的目标是找出最优决策面,即分类器,分类器的好坏的评定依据是分类间隔W=2d的大小,即分类间隔W越大,我们认为这个超平面的分类效果越好。此时,求解最优决策面的问题就变成了求解分类间隔W最大化的为题,也就是求解分类间隔d最大化问题。
三、非线性可分的SVM
问题解决:
在非线性可分的情况下,SVM通过某种事先选择好的非线性映射(核函数)将输入变量映射到一个高维的特征空间,将其变成在高维空间线性可分,在这个高维空间中构造最优分类决策面。
解释:
在线性可分情况下,得到的决策面方程为:
对于线性不可分,我们使用一个非线性映射,将数据映射到特征空间,在特征空间中使用线性分类器,分类函数变形如下:
其中ϕ从输入空间(X)到某个特征空间(F)的映射,这意味着建立非线性分类器分为两步:
- 首先使用一个非线性映射将数据变换到一个特征空间F;
- 然后在特征空间使用线性学习器分类。
对从低维空间到高维空间的计算量而言:
-
如果不是用核函数,就要先计算线性映射ϕ(x_1)和ϕ(x_2),然后再计算这它们的内积,计算量很大
-
如果在高维特征空间F中直接计算内积<ϕ(x_i),ϕ(x)>,就像在原始输入点的函数中一样,就有可能将两个步骤融合到一起建立一个非线性分类器,计算量比较小