一、前言
支持向量机(Support Vector Machine)是一种二分类模型,其基本模型定义为特征空间上间隔最大的线性分类器,其学习的策略便是间隔最大化,最终可以转化为一个凸二次规划问题的求解。经过多年的发展,SVM也适用于多元分类,经过拓展,SVM也能够应用于线性回归,本文的重点就是对SVM相关原理进行介绍。
首先什么是线性分类器?给定一些数据点,他们分别属于两个不同的类,现在要找到一个线性分类器把这些数据分成两类。如果用x表示数据点,用y表示类别(比如y可以取1或者-1,分别代表两个不同的类),一个线性分类器的学习目标便是要在n维的数据空间中找到一个超平面(hyper plane),这个超平面的方程可以表示为:
,
表示
的转置。
下面举个简单的例子,如下图所示,现在有一个二维平面,平面上有两种不同的数据,分别用圆圈和叉表示。由于这些数据是线性可分的,所以可以用一条直线将这两类数据分开,这条直线就相当于一个超平面,超平面一边的数据所对应的y全是-1,另外一边所对应的y全是1。
图1:线性分类示例
这个超平面可以用分类函数表示,当
等于0的时候,x便是位于超平面上的点,而
大于0的点对应y=1的数据点,
小于0时的点对应于y=-1的数据点。
图2:支持向量示例
二、函数间隔与几何间隔
在超平面是确定的情况下,
表示点x到距离超平面的远近,而通过观察
的符号与类标记y的符号是否一致可判断是否正确,所以,可以用
的正负性来判定或表示分类的正确性,于是这里便引出来函数间隔的概念,定义函数间隔为:
但这样定义的函数间隔有问题,即如果成比例的改变w和b(如将它们都变成2w和2b),则函数间隔的值却变成原来的2倍,但是超平面却没有改变,所以只有函数间隔还远远不够。这里便引出来了点到超平面的真正几何距离——几何间隔。
假定对于一个点x,令其垂直投影到超平面上的对应点为,w是垂直于超平面的一个向量,
为样本x到分类面的距离,如下图:
图3:几何距离示例
有 ,其中
表示的是范数,这里指的是距离。
又由于是超平面上的点,满足
,代入超平面方程
即可计算出: