支持向量机(Support Vector Machine
)是Cortes
和Vapnik
于1995
年首先提出的 ,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够 推广应用到函数拟合等其他机器学习问题中。
1963
年,Vapnik
在解决模式识别问题时提出了支持向量方法,这种方法从训练集中选择一 组特征子集,使得对特征子集的划分等价于对整个数据集的划分,这组特征子集就被称为 支持向量(Support Vector
,SV);
1971
年,Kimeldorf
提出使用线性不等约束重新构 造SV
的核空间,解决了一部分线性不可分问题;1990
年,Grace
、Boser
和Vapnik
等人开始对SVM
进行研究; 1995
年,Vapnik
正式提出统计学习理论。
SVM涉及的相关概念
支持向量机和线性分类器(如逻辑回归)都是线性模型。虽然SVM
是线性模型,但是它的求解过程要比线性模型困难不少。
- 它是一种最大间隔的线性分类器,它只会考虑在
decision bound
比较近的这些点,而在逻辑回归问题中,即使离决策边界很远,它还是会产生一个loss function
。 - 通过核函数可以做非线性的问题。
对于分类问题,分开两类数据其实有很多种解法,那哪一种解法是最好的呢?也就是说SVM
是从线性可分情况下的最优分类面发展而来,最优分类面就是要求分类线不但能将 两类正确分开,且使分类间隔最大(分类间隔最大能够使得算法在测试数据集上取得较好效果,或者说数据本身存在噪声,较大的分类间隔能够取得较好效果)。
SVM
考虑寻找一个满足分类要求的超平面,并 且使训练集中的点距离分类面尽可能的远,也 就是寻找一个分类面使它两侧的空白区域 (margin
)最大。这与逻辑回归算法不一样,在逻辑回归算法中所有的点都会影响分类边界,而在SVM
算法中不会,它更多考虑的是支持向量。
过两类样本中离分类面最近的点且平行于最 优分类面的超平面上H 1 H_{1}H1,H 2 H_{2}H2的训练样本就叫 做支持向量。
分类任务
分类任务就是确定对象属于哪个预定义的目标类。分类任务的输入数据是记录的集合,每条记录也称为实例或样例,用元组(x , y x, yx,y) 表示,其中 x xx 是属性的 集合,y yy 是类标记(也称目标属性)。在回归模型中,目标属性值是连续的; 而在分类模型中,目标属性是离散的。
考虑二分类任务,其目标属性为y ∈ { 0 , 1 } ,而线性回归模型参数的预测值z = w T x + b 是实值,于是我们需要将实值z 通过Sigmoid
函数转换为0
或1
。Sigmoid
函数定义如下:
Logistic回归:目的是从特征中学习出一个0/1
分类模型,这个模型是将特征的线性组合作为自变量,由于自变量的取值范围是(− ∞ , + ∞)。因此使用Sigmoid
函数将自变量映射到(0,1)上,映射后的值被认为是属于y = 1的概率。假设函数为:
根据Sigmoid
函数的特性,假设:
上式表示,已知样本x 和参数θ 的情况下,样本x 属于正样本(y = 1 )和负样本(y = 0 )的条件概率:若h θ ( x ) > 0.5则属于正样本,反之属于负样本。当然在实际操作过程中你可以把这个值设置地大一点,使得在测试过程中效果更好。
分类任务进一步理解
因此Logistic
回归就是要学习得到参数θ \thetaθ,使得正例的特征远远大于0,负例的特征远远小于0,而且要在全部训练数据上达到这个目标。
- 线性可分数据集
需要注意的是:对于上述问题我们需要数据集是线性可分的,不然不管如何分类都找不到这样一个平面。
线性可分数据集:存在某个超平面S SS能够将数据集的正实例和负实例完全划分 到超平面的两侧,则称为线性可分数据集;否则,线性不可分。
上图中的这些数据就是线性可分的,所以可以用一条直线将这两类数据分开,二维中是一条直线,多维中就是一个超平面。
SVM算法
SVM所要解决的问题
假定给定数据图,圆的为正类,方的为负类,要想通过一个划分超平面(这里是二维,所以是条直线)将不同类别的样本分开。从图中可以看出,能将训练样本分开的划分超平面可能有很多,但是我们应该去选择哪一个呢?
直观上,我们应该选择中间红色的那个,因为它对于 训练样本局部扰动的“容忍”性最好;
比如,训练集外的样本可能比图中的样本更接近两类 的划分超平面,这将使许多划分超平面出现错误,而 红色的超平面受到的影响是最小的,也就是说,这个 划分超平面的分类结果是最鲁棒的,对未知样本的泛 化能力最强。
在所有的划分超平面中,有一个平面是最好的,它可以尽可能地让所有的样本点都离该划分 超平面最远,这就是SVM
要做的。
函数间隔
有三个实例A 、 B 、 C 均在划分超平面的正类一侧,点A AA举例超平面较远,若预测为正类,叫比较确信预测是正确的;点C 距离超平面较近,若预测为正类就不那么确信了;点B BB介于A 、C 之间,预测其为正类的确信度也在A 、C 之间。
一般来说,一个点距离超平面的远近可以相对地表示分类预测的确信程度。
几何间隔
另外,直接计算其内积,可以得到:
- 对于给定的训练数据集T 和超平面(w , b):
如果超平面的参数w 和b 成比例的改变(超平面没有变),函数间隔也按此比例改变, 但是几何间隔不变。
支持向量的函数间隔为1,SVM
的优化目标为:
约束条件表示的是最大化的一定是支持向量。要求解上述问题我们需要一定的凸优化基础,接下来简要介绍一下所需数学知识部分。