SVM支持向量机
“支持向量”:指的是训练集中最靠近分类决策面,最难分类的数据点。
“机”:即机器machine,实际上是一个算法。在机器学习领域常把一些算法看做一个机器(或学习机器、预测函数、学习函数等)。
SVM是一种有监督的学习方法,即已知训练点的类别,求训练点与类别之间的对应关系。
SVM主要针对小样本数据进行学习、分类和预测(回归),类似的根据样本学习的方法还有基于案例的推理(case-based reasoning),决策树归纳算法等。
- 1.1 支持向量机的理论基础
– 1.1.1 经验风险最优ERM
–1.1.2 关键定理与VC维
–1.1.3 结构风险最优SRM - 1.2 SVM的数学推导
– 1.2.1 最大间隔超平面
– 1.2.2 拉格朗日乘子法
– 1.2.3 KKT条件与对偶变换
– 1.2.4 分类器函数
– 1.2.5 映射到高维空间
– 1.2.6 核函数法
– 1.2.7 离群点的松弛变量 - 1.3 SMO算法
1.1 支持向量机的理论基础
支持向量机以统计学习为理论基础,解决了第二代神经网络的结构选择和局部最小值(过拟合、欠拟合)等问题。
统计学习理论从统计学的角度证明了有限样本的经验风险与真实风险之间的差异,并首次引入了置信区间的概念,创建了结构风险最优理论,为各类机器学习算法提供了统一的评估框架。
1.1.1 经验风险最优ERM
首先我们可以从总体和样本的概念出发,我们将总体引申理解为客观事物(系统)本身,在统计学中我们可以把总体理解为一个概率分布,我们要了解这个真实分布是困难的(实际是不可能的),所以我们从总体中抽取具有代表性的对象,成为总体的样本。
我们将样本的分布作为事物总体的近似模型或经验模型。用风险代表经验模型与真实模型之间的误差。
如果一个分类器将经验模型的分布作为总体的分布,我们就称这个分类器的误差为经验风险。
为了方便,我们用损失函数(Loss Function)来进行评估。
假设样本: (x1,y1),...,(xn,yn)∈Rn×R ,对于离散样本的经验函数可以写作:
其中 Remp(α) 就是所谓的经验风险。 f(xi,α) 是用来最小化经验风险的目标函数, L(yi,f(xi,α)) 就是损失函数,它代表对于每个 xi ,其标签 yi 与目标函数之间的偏差。
例如BP神经网络中的全局误差函数,梯度下降法中的斜率与截距的变化等。
在第二代神经网络中,我们用最小经验风险来表示真实风险,这就是经验风险最小原则ERM,神经网络将经验风险最小化作为衡量算法准确性的主要依据。我们发现这样并不能达到全局最优的分类效果,容易造成过拟合现象(原因有二:一样本代表性不强;二学习算法理论不完备,即评估真实风险的方法不完备)。
– 过拟合/过学习问题:训练误差过小导致推广能力下降,即真实风险的增加。
– 推广能力/泛化能力:就是对未知样本进行预测时的精确度。
为了解决这些问题——>统计学方法——>学习一致性问题。
1.1.2 关键定理和VC维
学习一致性问题:解决经验风险与真实风险的衡量问题。
统计学习的第一定义/学习一致性的定义
如果一个ERM算法能够提供一个函数集 Q(x,α) 能够是的真实风险和经验风险都收敛于 R(α) 的下确界,则这个ERM算法符合学习一致性。
ps:类似上图
学习理论的关键定理
关键定理将学习一致性问题转化为一个收敛问题。通过经验风险最小化函数来逼近真实(期望)风险的最小化函数。即,经验风险最小化原则符合学习过程一致性的条件是, Q(x,α) 函数集中最差的那个函数。
用来度量的方法就是VC维。
VC维的定义:假设存在一个有h个样本的样本集能被一个函数集中的函数按照所有可能的 2h 种形式分为两类,则此函数集能够把样本数为h的样本集打散。也就是说,如果存在h个样本的样本集能够被函数集打散,但是不存在h+1个样本能被打散,则函数集的VC维就是h。
VC维的重要性在于为判定线性可分和线性不可分问题提供了衡量依据。
一个数据集如果线性可分,则维度为样本空间维度d;
如果线性不可分,对于线性分类器(含指示函数),它的维度至少等于其VC维h=d+1。
因此,VC维度越大,非线性程度越高,学习机器的复杂度越高。
1.1.3 结构风险最优SRM
结构风险最小化SRM(structured risk minimize)就是同时考虑经验风险与结构风险。在小样本情况下,取得比较好的分类效果。保证分类精度(经验风险)的同时,降低学习机器的 VC 维,可以使学习机器在整个样本集上的期望风险得到控制,这应该就是SRM的原则。
当训练样本给定时,分类间隔越大,则对应的分类超平面集合的 VC 维就越小。(分类间隔的要求,对VC维的影响)
结构风险:经验风险 + 置信风险
根据结构风险最小化原则,前者是保证经验风险(经验风险和期望风险依赖于学习机器函数集的选择)最小,而后者使分类间隔最大,导致 VC 维最小,实际上就是使推广能力的界(根据经验风险最小化原则得到的学习机器的推广能力)中的置信范围最小,从而达到使真实风险最小。
结构风险最小化原则即,在经验风险与置信区间之和最小的子集中选择经验风险最小的函数。
这个原则的难点在于如何构造函数子集的结构。
1.2 SVM的数学推导
1.2.1 最大间隔超平面
SVM最基本的应用是分类。 求解最优的分类面,然后用于分类。
最优分类面的定义:
对于SVM,存在一个分类面,两个点集到此平面的最小距离最大,两个点集中的边缘点到此平面的距离最大。——即,找到最大间隔超平面,从而对分类问题提供良好的泛化能力。
从直观上来看,下图左边的,肯定不是最优分类面;而右边的能让人感觉到其距离更大,使用的支撑点更多,至少使用了三个分类面,应该是最优分类面。
因此,求解目标为找到一个超平面,距离两类数据间隔最大。
设训练数据: x1,x2,...xn∈Rn 。分类超平面表示为:
点到面的距离可以表示为:
其中, w、x、b 都为向量。 ||w|| 是 w 的范数。
从而判别函数为
可以转换表达如下:
考虑P个线性可分样本 { (x1,y1),(x2,y2),...,(xp<