赞
踩
SVM——支持向量机,作为机器学习领域最为重量级的学习算法之一。保留个人总结认为其有“三重境界”:硬,软,柔。硬,即最基本的硬间隔最大化;软,即软间隔最大化;柔,利用核函数实现对非线性样本空间进行分类。首先要对SVM的一些基本概念,特别是一些易混的概念进行梳理,理解这些概念才是理解后面三重境界的基础。
本文以上图为例对SVM进行讲解。蓝点表示正例,黄点表示负例;五星表示支持向量;灰色粗线表示分割超平面;黑色双向箭头表示间隔。
- 几何间隔
在中,设超平面方程为
,
为法向量,
为偏置,则点
到超平面的距离为
在SVM中,该公式表示点到超平面的几何间隔,是一个真实的有符号的距离值。
若点在超平面的正例一侧,几何间隔为正数,否则几何间隔为负数。
同时,定义训练数据集到分割超平面的几何间隔为:
含义:训练数据集中距离分割超平面最近的点与分割超平面的几何间隔。
- 函数间隔
与几何间隔相对的是函数间隔,定义为
距超平面较远的点,函数间隔较大,反之较小。并非真实的距离,而是点到超平面距离远近的一种度量。若
则函数间隔等价于几何间隔。所以,几何间隔是函数间隔的一种特例。
同时,定义训练数据集到分割超平面的函数间隔为:
含义:训练数据集中距离分割超平面最近的点与分割超平面的函数间隔。
SVM目标是寻找一个线性分割超平面,将正负样本分开。但是,现实的分类中存在线性不可分的情况,如下图二维数据点所示。
对于这种分类任务,无论是硬间隔还是软间隔都无法找到一个线性分类边界,使得正负样本完全分开。但是,存在一种称为核函数的技巧,可以将数据从低维映空间射到高维空间中,使得本来在低维空间中线性不可分的数据在高维空间中可以实现线性可分。应用核函数之后样本空间转化为下图。同时,核函数的一个好处是我们不必关系特征在高维空间是如何表示和进行计算的,只需要知道核函数的表示形式即可。
可见,在高维空间中,可以实现将正负样本线性分开。
境界解读: 使用核函数的SVM就像水一样,遇圆则圆,遇方则方,可以实现灵活的变换,而实现这一点正是借助了核函数。
上述三种境界的SVM算法,参数的求解过程都是相似的。因为SVM的目标函数是一个二次函数,约束是一些线性不等式约束,因此可以借助拉格朗日乘子法,将原问题转换为对偶问题。其中原问题是一个最小化问题,对偶问题是一个最大化问题。为何要将原问题表示为对偶问题那?原因有两个。其一,可以很自然的将核函数引入进来,以解决低维空间上的线性不可分问题;其二,对偶问题的特殊表示形式,使得模型可以采用一种称为序列最小优化(简称SMO)的算法进行参数求解,避免了传统二次规划需要的大量计算。
参数求解之后,SVM的最大的优点便显现出来:解的稀疏性。具体来说,训练完成后只有对应是支持向量的样本点才会保留下来,这些样本是训练集中一个很小的部分,其它训练样本可以丢弃,在测试时仅通过对少量的支持向量点进行计算即可完成测试,极大提高了预测的效率。
本文对SVM的三种模型形式,做了略带形象化的解释,希望对入门SVM的同学有所帮助。其中,对于SVM的模型推导过程(拉格朗日对偶)和实现算法(序列最小优化算法——SMO算法)均未涉及,如果想更深入的了解,可以参考相关资料。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。