支持向量机概述

支持向量机概述

支持向量机(support vector machinc,SVM)是在高维特征空间使用线性函数假设空间的学习系统,在分类方面具有良好的性能。在自然语言处理中,SVM广泛应用于短语识别、词义消歧、文本自动分类和信息过滤等方面。

线性分类

二分类问题通常用实数函数f:XRnRf : X \subseteq \R^{n} \rightarrow \Rnn为输入维数)判别:当f(x)0f(\mathbf{x}) \geq 0时,将输入x=(x1,x2,,xn)T\mathbf{x} = (x_{1}, x_{2}, \dots, x_{n})^{\text{T}}判为正类;否则,为负类。当f(x)f(\mathbf{x})xX\mathbf{x} \in X)是线性函数时,f(x)f(\mathbf{x})可写成如下形式:

f(x)=w,x+b=i=1nwixi+b(1)f(\mathbf{x}) = \langle \mathbf{w}, \mathbf{x} \rangle + b = \sum_{i = 1}^{n} w_{i} x_{i} + b \tag {1}

其中,(w,b)Rn×R(\mathbf{w}, b) \in \R^{n} \times \R是控制函数的参数,决策规则由符号函数sgn(f(x))\text{sgn}(f(\mathbf{x}))给出,通常sgn(0)=1\text{sgn}(0) = 1。参数学习意味着要从训练数据中获得这此参数。

该分类方法的几何解释是:方程w,x+b=0\langle \mathbf{w}, \mathbf{x} \rangle + b = 0定义的超平面将输入空间XX分成两半,一半为负类,一半为正类,

在这里插入图片描述

图中黑斜线表示超平面,对应地,超平面上面为正区域,用符号+表示,下面为负区域,用符号-表示。w\mathbf{w}是超平面的法线方向。当bb的值变化时,超平面平行移动。因此,如果要表达Rn\R^{n}中所有可能的超平面,一般要包括n+1n + 1个可调参数的表达式。

如果训练数据线性,则以最大间隔分开数据的超平面称为最优超平面,

在这里插入图片描述

对于多类分类问题,输出域是Y={1,2,,m}Y = \{ 1, 2, \dots, m \},线性学习器推广到mmmN,m2m \in N, m \geq 2)类问题:对于mm类中的每一类关联一个权重向量wi\mathbf{w}_{i}和偏置bib_{i},即(wi,bi)(\mathbf{w}_{i}, b_{i})i{1,2,,m}i \in \{1, 2, \dots, m\},定义决策函数:

c(x)=arg max1imwi,x+bi(2)c(\mathbf{x}) = \argmax_{1 \leq i \leq m} \langle \mathbf{w}_{i}, \mathbf{x} \rangle + b_{i} \tag {2}

其几何意义是:给每个类关联一个超平面,然后将新点x\mathbf{x}赋予超平面离其最远的那一类。输入空间被划分为mm个简单相连的凸区域。

P.S.:方程(2-44)相当于one-verse-rest方式。

线性不可分

对于非线性问题,可以把样本x\mathbf{x}映射到某个高维特征空间,在高维特征空间中使用线性学习器。因此,假设集是如下类型函数:

f(x)=w,φ(x)+b(3)f(\mathbf{x}) = \langle \mathbf{w}, \varphi(\mathbf{x}) \rangle + b \tag {3}

其中,φ:XF\varphi: X \rightarrow F表示从输人空间XX到特征空间FF的映射。即建立非线性分类器分为两步:首先使用一个非线性映射函数将数据变换到一个特征空间FF,然后在这个特征空间上使用线性分类器。

线性分类器的一个重要性质是可以表示成对偶形式,这意味着假设可以表达为训练点的线性组合。 因此,决策规则(分类函数)可以用测试点和训练点的内积来表示:

f(x)=i=1lαiyiφ(xi),φ(x)+b(4)f(\mathbf{x}) = \sum_{i = 1}^{l} \alpha_{i} y_{i} \langle \varphi(\mathbf{x}_i), \varphi(\mathbf{x}) \rangle + b \tag {4}

其中,ll是样本数目;αi\alpha_{i}为正值导数,可通过学习获得;yiy_{i}为样本ii的类别标签。如果有一种方法可以在特征空间中直接计算内积φ(xi),φ(x)\langle \varphi(\mathbf{x}_i), \varphi(\mathbf{x}) \rangle,就像在原始输入点的函数中一样,则有可能将两个步骤融合到一起,建立一个非线性分类器。在高维空间中实际上只需要进行内积运算,而这种内积运算是可以利用原空间中的函数实现的,我们甚至没有必要知道变换的形式。这种直接计算的方法称为核(kernel)函数方法。

构造核函数

定义:核是一个函数KK,对所有x,zX\mathbf{x}, \mathbf{z} \in X,满足

K(x,z)=φ(x),φ(z)(5)K(\mathbf{x}, \mathbf{z}) = \langle \varphi(\mathbf{x}), \varphi(\mathbf{z}) \rangle \tag {5}

其中,φ\varphi表示从输入空间XX到特征空间FF的映射。有了核函数,决策规则就可以通过对核函数的ll次计算得到:

f(x)=i=1lαiyiK(xi,x)+b(6)f(\mathbf{x}) = \sum_{i = 1}^{l} \alpha_{i} y_{i} K(\mathbf{x}_{i}, \mathbf{x}) + b \tag {6}

这种方法的关键是如何找到一个可以高效计算的核函数。

为适合某个特征空间,核函数必须是对称的,即

K(x,z)=φ(x),φ(z)=φ(z),φ(x)=K(z,x)(7)K(\mathbf{x}, \mathbf{z}) = \langle \varphi(\mathbf{x}), \varphi(\mathbf{z}) \rangle = \langle \varphi(\mathbf{z}), \varphi(\mathbf{x}) \rangle = K(\mathbf{z}, \mathbf{x}) \tag {7}

并且满足柯西不等式:

K2(x,z)=φ(x),φ(z)2φ(x)2φ(z)2=φ(x),φ(x)2φ(z),φ(z)2=K2(x,x)K2(z,z)(8)\begin{aligned} K^{2}(\mathbf{x}, \mathbf{z}) & = \langle \varphi(\mathbf{x}), \varphi(\mathbf{z}) \rangle^{2} \\ & \leq \| \varphi(\mathbf{x})\|^{2} \| \varphi(\mathbf{z}) \|^{2} \\ & = \langle \varphi(\mathbf{x}), \varphi(\mathbf{x}) \rangle^{2} \langle \varphi(\mathbf{z}), \varphi(\mathbf{z}) \rangle^{2} \\ & = K^{2}(\mathbf{x}, \mathbf{x}) K^{2}(\mathbf{z}, \mathbf{z}) \end{aligned} \tag {8}

其中,\| \cdot \|表示欧氏模函数。但这些条件对于保证特征空间的存在是不充分的,还必须满足Mercer定理的条件:对XX的任意有限子集,相应的矩阵是半正定的。即令XX是有限输入空间,K(x,z)K(\mathbf{x}, \mathbf{z})XX上的对称函数,则K(x,z)K(\mathbf{x}, \mathbf{z})是核函数的充分必要条件为矩阵

K=(K(xi,xj))i,j=1n(9)\mathbf{K} = \left( K(\mathbf{x}_{i}, \mathbf{x}_{j}) \right)_{i, j = 1}^{n} \tag {9}

是半正定的(即特征值非负)。

根据泛函的有关理论,只要一种核函数满足Mercer条件,它就对应某一空间中的内积。

支持向量机中常用的核函数主要有:多项式核函数、径向基函数、多层感知机、动态核函数等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章