支持向量机原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章支持向量机基础
By Dean
支持向量机(Support V ector Machies)是由Vapnik等人于1995年提出来的。之后随着统计理论的发展,支持向量机也逐渐受到了各领域研究者的关注,在很短的时间就得到很广泛的应用。支持向量机是建立在统计学习理论的VC维理论和结构风险最小化原理基础上的,利用有限的样本所提供的信息对模型的复杂性和学习能力两者进行了寻求最佳的折衷,以获得最好的泛化能力。SVM的基本思想是把训练数据非线性的映射到一个更高维的特征空间(Hilbert空间)中,在这个高维的特征空间中寻找到一个超平面使得正例和反例两者间的隔离边缘被最大化。SVM的出现有效的解决了传统的神经网络结果选择问题、局部极小值、过拟合等问题。并且在小样本、非线性、数据高维等机器学习问题中表现出很多令人注目的性质,被广泛地应用在模式识别,数据挖掘等领域(张学工 2000;崔伟东2001)。支持向量机可以用于分类和回归问题,本章着重介绍分类相关的知识。
3.1 SVM的基本思想
3.1.1最优分类面
SVM是由线性可分情况的最优分类面发展而来的,用于两类问题的分类。下面用一个二维两类问题来说明SVM基本思想(白鹏等,2008)。
图3.1 最优超平面示意图
C 1和C 2代表两类数据样本,各样本在二维中显示如图3.1, 图中的直线P 0,P 1就是分类函数。如果一个线性函数就完全可以把两类所有样本分开,那么就称这些数据是线性可分的;否则称非线性可分。假设两类线性可分的训练数据样本{(x 1,y 1),(x 2,y 2),…(x N ,y N )}, x i ∈R d (d 代表样本x i 的长度), y i ∈{+1,−1}, i =1,2,…,N . 其线性判别函数的一般表达式是f (x )=w ∗x +b , 该函数对应的分类面方程是:
w ∗x +b =0 (3-1)
线性判别函数的值一般是连续的实数,而分类问题需要输出的是离散值。例如利用数值-1表示类别C 1,而用数值+1表示类别C 2.所有的样本都只能用数值-1和+1表示。这时我们可以通过设置一个阀值,通过判断判别函数的值是大于或者小于这个阀值来判断属于某一类。若我们取这个阀值为0,即当f (x )≤0时,判别样本为类别C 1(即-1);当f (x )≥0时,判别样本为类别C 2(即+1).
现在将判别函数进行归一化,使两类所有样本都满足|f(x)|≥1,这时离分类面近的样本都有|f(x)|=1。若要对所有样本正确分类需满足,
y i [(w ∗x )+b ]−1≥0, i =1,…N (3-2)
这时分类间隔为2‖w ‖⁄. 寻求最优的分类面即使得分类间隔最大化。可以发现间隔最大等价于12‖w ‖2最小。
因此最优化分类面问题可以表示成如下的约束优化问题,如下:
Min Φ(w )=12‖w ‖2 (3-3)
约束条件为:
y i [(w ∗x )+b ]−1≥0, i =1,…N (3-4)
定义如下Lagrange 函数:
L (w,b,α)=12‖w ‖2−∑αi [y i (w ∗x i +b )−1]N i=1 (3-5)
式中,αi ≥0为Lagrange 乘子。为了求得函数式(3-5)的最小值,我们对w,b,α分别求导有:
{ ðL ðw =0 ⇒ w =∑αi y i x i N i=1 ðL ðb =0 ⇒ ∑αi y i N i=1=0 ðL ðα=0 ⇒ αi [y i (w ∗x i +b )−1]=0 (3-6) 由式(3-6)和(3-2)可将上述的最优化分类面的求解问题转化为一个凸二次规划寻优的对偶问题,如下:
Max ∑αi −12N i=1∑∑αi αj y i y j (x i ,x j )N j=1N i=1 (3-7)
约束条件为:
{αi ≥0∑αi y i
=0N i=1 (3-8) 这个二次函数寻优的问题存在唯一解,若αi ∗为最优解,则:
w ∗=∑αi ∗N i=1y i x i (3-9)
其中αi ∗不为0对应的即为支持向量(Support Vector ). 并且最优分类面的权系数向量是支持向量的线性组合。分类阀值b ∗可由(3-6)式求得,
b ∗=−12〈w ∗,x r +x s 〉 (3-10)
式中x r ,x s 分别是两类中任意支持向量,αr ,αs >0,y r =−1,y s =1.由于除了支持向量外,非支持向量所对应的αi =0,所以最优分类面函数可简写为:
f (x )=sgn {∑αi ∗y i (x i ,x )+b ∗sv } (3-11)
此时SVM 最一般的表达式已经被求得。 3.1.2广义的最优分类面
但当有少数样本使得原来线性可分的问题变成不可分问题,从而影响了分类器的性能。有时这少数的样本也是噪声,或是奇异值点,是我们在人工对数据分类错分的,为了忽略这些点对分类器的影响,和在经验风险和泛化性能之间求得平衡,松弛因子ξ被引入。它容许错分样本的存在,这时分类面满足:
y i [(w ∗x )+b ]≥1−ξi , i =1,…N (3-12)
当0≤ξi ≪1时,样本x i 可以正确分类;当ξi ≫1时,样本x i 会被错分。由于松弛因子的引入,式(3-3)的目标函数被改写为:
Φ(w,ξ)=12‖w ‖2+C ∑ξi N i=1 (3-13)
式中C 是惩罚因子(一个正常数). 此时,式目标函数凸二次规划寻优的对偶问题约束条件(3-8)可被变换为如为:
{0≤αi ≤C ∑αi y i =0
N i=1 (3-14)
3.2核函数
3.2.1核函数变换基本思想
对于非线性分类问题,在原始空间中最优化分类面也许不能得到令人满意的分类结果。针对这种情况,一个解决的思想是把原始空间中的非线性样本数据投影到某个更高维的空间中,在高维的空间中寻找一个最优超平面能线性地将样本数据分开,但是这种变化可能非常复杂。支持向量机利用核函数巧妙地解决了这个问题。核函数变换的基本思想是将一个n 维空间中矢量x 映射到更高维的特征