支持向量机概述

支持向量机概述

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

线性分类

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

f ( x ) = w , x + b = i = 1 n w i x i + 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 ) R n × 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 定义的超平面将输入空间 X X 分成两半,一半为负类,一半为正类,

在这里插入图片描述

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

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

在这里插入图片描述

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

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

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

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}

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

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

f ( x ) = i = 1 l α i y i φ ( x i ) , φ ( 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}

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

构造核函数

定义:核是一个函数 K K ,对所有 x , z X \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 表示从输入空间 X X 到特征空间 F F 的映射。有了核函数,决策规则就可以通过对核函数的 l l 次计算得到:

f ( x ) = i = 1 l α i y i K ( x i , 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}

并且满足柯西不等式:

K 2 ( x , z ) = φ ( x ) , φ ( z ) 2 φ ( x ) 2 φ ( z ) 2 = φ ( x ) , φ ( x ) 2 φ ( z ) , φ ( z ) 2 = K 2 ( x , x ) K 2 ( 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定理的条件:对 X X 的任意有限子集,相应的矩阵是半正定的。即令 X X 是有限输入空间, K ( x , z ) K(\mathbf{x}, \mathbf{z}) X X 上的对称函数,则 K ( x , z ) K(\mathbf{x}, \mathbf{z}) 是核函数的充分必要条件为矩阵

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

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

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

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

猜你喜欢

转载自blog.csdn.net/zhaoyin214/article/details/106082158