支持向量机概述
支持向量机(support vector machinc,SVM)是在高维特征空间使用线性函数假设空间的学习系统,在分类方面具有良好的性能。在自然语言处理中,SVM广泛应用于短语识别、词义消歧、文本自动分类和信息过滤等方面。
线性分类
二分类问题通常用实数函数
f:X⊆Rn→R(
n为输入维数)判别:当
f(x)≥0时,将输入
x=(x1,x2,…,xn)T判为正类;否则,为负类。当
f(x)(
x∈X)是线性函数时,
f(x)可写成如下形式:
f(x)=⟨w,x⟩+b=i=1∑nwixi+b(1)
其中,
(w,b)∈Rn×R是控制函数的参数,决策规则由符号函数
sgn(f(x))给出,通常
sgn(0)=1。参数学习意味着要从训练数据中获得这此参数。
该分类方法的几何解释是:方程
⟨w,x⟩+b=0定义的超平面将输入空间
X分成两半,一半为负类,一半为正类,
图中黑斜线表示超平面,对应地,超平面上面为正区域,用符号+
表示,下面为负区域,用符号-
表示。
w是超平面的法线方向。当
b的值变化时,超平面平行移动。因此,如果要表达
Rn中所有可能的超平面,一般要包括
n+1个可调参数的表达式。
如果训练数据线性,则以最大间隔分开数据的超平面称为最优超平面,
对于多类分类问题,输出域是
Y={1,2,…,m},线性学习器推广到
m(
m∈N,m≥2)类问题:对于
m类中的每一类关联一个权重向量
wi和偏置
bi,即
(wi,bi),
i∈{1,2,…,m},定义决策函数:
c(x)=1≤i≤margmax⟨wi,x⟩+bi(2)
其几何意义是:给每个类关联一个超平面,然后将新点
x赋予超平面离其最远的那一类。输入空间被划分为
m个简单相连的凸区域。
P.S.:方程(2-44)相当于one-verse-rest
方式。
线性不可分
对于非线性问题,可以把样本
x映射到某个高维特征空间,在高维特征空间中使用线性学习器。因此,假设集是如下类型函数:
f(x)=⟨w,φ(x)⟩+b(3)
其中,
φ:X→F表示从输人空间
X到特征空间
F的映射。即建立非线性分类器分为两步:首先使用一个非线性映射函数将数据变换到一个特征空间
F,然后在这个特征空间上使用线性分类器。
线性分类器的一个重要性质是可以表示成对偶形式,这意味着假设可以表达为训练点的线性组合。 因此,决策规则(分类函数)可以用测试点和训练点的内积来表示:
f(x)=i=1∑lαiyi⟨φ(xi),φ(x)⟩+b(4)
其中,
l是样本数目;
αi为正值导数,可通过学习获得;
yi为样本
i的类别标签。如果有一种方法可以在特征空间中直接计算内积
⟨φ(xi),φ(x)⟩,就像在原始输入点的函数中一样,则有可能将两个步骤融合到一起,建立一个非线性分类器。在高维空间中实际上只需要进行内积运算,而这种内积运算是可以利用原空间中的函数实现的,我们甚至没有必要知道变换的形式。这种直接计算的方法称为核(kernel)函数方法。
构造核函数
定义:核是一个函数
K,对所有
x,z∈X,满足
K(x,z)=⟨φ(x),φ(z)⟩(5)
其中,
φ表示从输入空间
X到特征空间
F的映射。有了核函数,决策规则就可以通过对核函数的
l次计算得到:
f(x)=i=1∑lαiyiK(xi,x)+b(6)
这种方法的关键是如何找到一个可以高效计算的核函数。
为适合某个特征空间,核函数必须是对称的,即
K(x,z)=⟨φ(x),φ(z)⟩=⟨φ(z),φ(x)⟩=K(z,x)(7)
并且满足柯西不等式:
K2(x,z)=⟨φ(x),φ(z)⟩2≤∥φ(x)∥2∥φ(z)∥2=⟨φ(x),φ(x)⟩2⟨φ(z),φ(z)⟩2=K2(x,x)K2(z,z)(8)
其中,
∥⋅∥表示欧氏模函数。但这些条件对于保证特征空间的存在是不充分的,还必须满足Mercer
定理的条件:对
X的任意有限子集,相应的矩阵是半正定的。即令
X是有限输入空间,
K(x,z)是
X上的对称函数,则
K(x,z)是核函数的充分必要条件为矩阵
K=(K(xi,xj))i,j=1n(9)
是半正定的(即特征值非负)。
根据泛函的有关理论,只要一种核函数满足Mercer
条件,它就对应某一空间中的内积。
支持向量机中常用的核函数主要有:多项式核函数、径向基函数、多层感知机、动态核函数等。