1
模式识别与智能计算的MATLAB实现
1.8.2.2 6.2.2 支持向量机模型
6.2.2 支持向量机模型

对于线性不可分问题,有两种解决途径。一种是一般线性化方法,引入松弛变量,此时的优化问题为

alt

另一种是V. Vapnik引入的核空间理论:将低维输入空间中的数据通过非线性函数映射到高维属性空间H(也称为特征空间),将分类问题转化到属性空间进行。可以证明,如果选用适当的映射函数,输入空间线性不可分问题在属性空间将转化成线性可分问题。属性空间中向量的点积运算与输入空间的核函数(Kernel Function)对应。从理论讲,满足Mercer条件的对称函数K(x,x′)都可以作为核函数。

目前使用的核函数主要有4种:线性核函数、p阶多项式核函数、多层感知器核函数和RBF核函数。

引入核函数后,以上各式中向量的内积都可用核函数代替:

alt

相应的分类函数变为

alt

任选一支持向量,可从下式求出b*

alt

从上述的讨论可以看出,应用SVM进行模式识别的步骤如下:

①选择合适的核函数;

②求解优化方程,获得支持向量及相应的Lagrange算子;

③写出最优分界面的方程;

④根据sgnf(X)的值,输出类别。

图6.3为SVM的结构示意图。支持向量机利用输入空间的核函数取代了高维特征空间中的内积运算,解决了算法可能导致的“维数灾难”问题:在构造判别函数时,不是对输入空间的样本作非线性变换,然后在特征空间中求解;而是先在输入空间比较向量,对结果再作非线性变换。这样大的工作量将在输入空间而不是在高维特征空间中完成。

alt

图6.3 SVM的结构示意图

对于多类问题,即由k类n个独立同分布样本:(x1,y1),(x2,y2),…,(xn,yn)(其中x是d维向量,yi∈{1,2,…,k}代表类别)构造分类函数f(x,α)。

类似于两类模式识别,损失函数可取为

alt

SVM的多值分类器最基本的构造方法是通过组合多个二值子分类器来实现的。

具体的构造方法有一对一和一对多两种。一对一的方法中每次只考虑两类样本,即对每两类样本设计一个SVM模型,因此共需要设计k(k-1)/2个SVM模型,设分类函数fij(x)用于判别i和j两类样本。若fij(x)>0,则判x属于第i类,记i类得一票,最后在决策时,比较哪一类得到的票最多,则将检测样本归属到该类。

在一对多的方法中,需要构造k个SVM模型,对于第i个SVM模型,将第i类模式的样本作为一类(正类),其余k-1类样本作为另一类(负类),决策时,将待测样本x依次输入到各SVM模型中,比较哪一个SVM输出值最大,设其为第j个,则将待检测样本判为第j类。