支持向量机算法介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

支持向量机算法介绍

众所周知,统计模式识别、线性或非线性回归以及人工神经网络等方法是数据挖掘的有效工具,已随着计算机硬件和软件技术的发展得到了广泛的应用。

但多年来我们也受制于一个难题:传统的模式识别或人工神经网络方法都要求有较多的训练样本,而许多实际课题中已知样本较少。对于小样本集,训练结果最好的模型不一定是预报能力最好的模型。因此,如何从小样本集出发,得到预报(推广)能力较好的模型,遂成为模式识别研究领域内的一个难点,即所谓“小样本难题”。支持向量机(support vector machine ,简称SVM )算法已得到国际数据挖掘学术界的重视,并在语音识别、文字识别、药物设计、组合化学、时间序列预测等研究领域得到成功应用。

1、线性可分情形

SVM 算法是从线性可分情况下的最优分类面(Optimal Hyperplane )提出的。所谓最优分类面就是要求分类面不但能将两类样本点无错误地分开,而且要使两类的分类空隙最大。

设线性可分样本集为),(i i y x ,d

R x n i ∈=,,,1 ,}1,1{-+∈y ,d 维空间中线性判别函数的一般形式为

()b x w x g T +=,

分类面方程是

0=+b x w T ,

我们将判别函数进行归一化,使两类所有样本都满足()1≥x g ,此时离分类面最近的

样本的

()1=x g ,而要求分类面对所有样本都能正确分类,就是要求它满足

n i b x w y i T

i ,,2,1,01)( =≥-+。 (4)

式(4)中使等号成立的那些样本叫做支持向量(Support Vectors )。两类样本的分类空隙(Margin )的间隔大小:

Margin =w /2(5)

因此,最优分类面问题可以表示成如下的约束优化问题,即在条件(4)的约束下,求函数

())(2

1221w w w w T

==

φ(6) 的最小值。为此,可以定义如下的Lagrange 函数:

]1)([21),,(1

-+-=∑=b x w y a w w a b w L i T

i n

i i T (7)

其中,0≥i a 为Lagrange 系数,我们的问题是对w 和b 求Lagrange 函数的最小值。把式(7)分别对w 、b 、i a 求偏微分并令它们等于0,得:

i i n i i x y a w w L

∑==⇒=∂∂10 001

=⇒=∂∂∑=i n i i y a b L

0]1)([0=-+⇒=∂∂b x w y a a L

i T i i i

以上三式加上原约束条件可以把原问题转化为如下凸二次规划的对偶问题:

()

⎪⎪⎪⎩

⎪⎪⎨⎧

==≥∑∑∑∑====-0,,1,0.m a x

1111

21i n i i i j T i j i j n i n j i n

i i y a n i a t s x x y y a a a (8)

这是一个不等式约束下二次函数机制问题,存在唯一最优解。若*i a 为最优解,则

∑==

n

i i i i x y a w 1*

* (9) *i a 不为零的样本即为支持向量,因此,最优分类面的权系数向量是支持向量的线性组合。

b *可由约束条件0]1)([=-+b x w y a i T i i 求解,由此求得的最优分类函数是 :

())s g n ())s g n ((*1

***

*b x x y a b x w x f n

i i i i T

+=∑

=+=(10)

sgn()为符号函数。

2、线性不可分情形

当用一个超平面不能把两类点完全分开时(只有少数点被错分),可以引入松弛变量

i ξ(i ξ≥0, n i ,,1 =),使超平面0=+b x w T 满足:

i i T i b x w y ξ-≥+1)( (11)

当0

∑=+=n

i i T

C w w w 1

21),(ξξψ(12)

其中C 是一个正常数,称为惩罚因子,此时SVM 可以通过二次规划(对偶规划)来实现:

()

⎪⎪⎪⎩

⎪⎪

⎨⎧==≤≤∑∑∑∑====-0,,1,0.m a x 1111

21i n i i i j T

i j i j n i n j i n

i i y a n i C a t s x x y y a a a (13)

3、支持向量机(SVM )的核函数

若在原始空间中的简单超平面不能得到满意的分类效果,则必须以复杂的超曲面作为

分界面,SVM 算法是如何求得这一复杂超曲面的呢?

首先通过非线性变换Φ将输入空间变换到一个高维空间,然后在这个新空间中求取最优线性分类面,而这种非线性变换是通过定义适当的核函数(内积函数)实现的,令:

)()(),(j i j i x x x x K Φ⋅Φ= (14)

用核函数),(j i x x K 代替最优分类平面中的点积j T

i x x ,就相当于把原特征空间变换到了某一新的特征空间,此时优化函数变为:

()=a Q ()j i j i j n i n

j i n

i i x x K y y a ,111

21αα∑∑∑===-(15)

而相应的判别函数式则为:

())),(sgn(])()sgn[(*1

**

*b x x K y a b x w x f n

i i i i T

+=∑=+=φ (16)

其中i x 为支持向量,x 为未知向量,(16)式就是SVM ,在分类函数形式上类似于一个神经网络,其输出是若干中间层节点的线性组合,而每一个中间层节点对应于输入样本与一个支持向量的内积,因此也被叫做支持向量网络,如图1