支持向量机SVM(三):基于核函数的非线性SVM

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_34072381/article/details/83995612


前言

线性分类SVM是一种线性分类非常有效的方法,若分类问题是非线性,需要考虑对数据进行空间变换,将非线性分类问题转变为线性分类问题,使非线性SVM的学习转变为线性SVM的学习。

若使用映射 ϕ \phi 将实例从原空间 X \mathcal X (一般为欧式空间 R n \R^n 的子集)变换到新的高维特征空间 H \mathcal H (希尔伯特空间),使原空间中的非线性分类问题转变为新特征空间中的线性分类问题,则即可在新的特征空间中学习并使用线性分类模型。

由上节可知,线性SVM的对偶问题为
min α 1 2 i = 1 N j = 1 N α i α j y i y j ( x i x j ) i = 1 N α i s.t, i = 1 N α i y i = 0 0 α i C , i = 1 , 2 ,   , N \begin{aligned} \min\limits_{\bm\alpha}&\quad \frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\alpha_i\alpha_jy_iy_j(\bm x_i \cdot \bm x_j) - \sum_{i=1}^N \alpha_i \\ \text{s.t,}&\quad\sum\limits_{i=1}^N\alpha_iy_i=0\\ &\quad0\leq\alpha_i\leq C,\quad i=1,2,\cdots,N\\ \end{aligned}

可见实例特征之间的计算仅以内积的形式出现,这种形式使得空间变换与计算变得简单可行。因为不用求解实例特征映射(空间变换)以及映射后的实例之间的内积,而已函数的形式直接得到映射后的实例之间的内积(核技巧),如下

x ϕ ( x ) , y ϕ ( y ) ϕ ( x ) ϕ ( y ) ϕ ( x ) ϕ ( y ) = K ( x , y ) \bm x \to \phi(\bm x), \bm y \to \phi(\bm y) \Rightarrow \phi(\bm x)\cdot\phi(\bm y)\qquad \phi(\bm x)\cdot\phi(\bm y) = K(\bm x, \bm y)

本节主要介绍非线性SVM的分类问题、核函数的作用以及非线性SVM模型的求解过程。


基于核函数的非线性SVM

模型描述

数据集 T = { ( x 1 , y 1 ) ,   , ( x N , y N ) } T=\{(\bm x_1,y_1), \cdots, (\bm x_N, y_N)\} 线性不可分,实例特征向量 x i X = R n \bm x_i \in \mathcal{X}=\R^n ,实例类别 y i Y = { + 1 , 1 } y_i \in \mathcal{Y}=\{+1, -1\} 。若能用 R n \R^n 中的一个超平面正确划分数据集,则该类分类问题为非线性可分问题。

解决思路之核技巧

通过非线性变换将输入空间( R n \R^n 的子集或离散集合)中的超曲面模型对应于特征空间(希尔伯特空间 H \mathcal{H} )中的超平面模型,并在 H \mathcal{H} 中求解线性SVM,以得到非线性模型的解。

图1 非线性分类问题与核技巧

核函数

若原始空间是有限维(属性有限维),那么一定存在高维特征空间使样本可分。

ϕ ( x ) : X H \phi(\bm x):\mathcal X \to \mathcal H 是从输入空间 X \mathcal X 到特征空间 H \mathcal H (高维)的映射,若对所有的 x , z X \bm x, \bm z\in\mathcal X ,均有
K ( x , z ) = ϕ ( x ) ϕ ( z ) K(\bm x,\bm z)=\phi(\bm x)\cdot\phi(\bm z)

则称 K ( x , z ) K(\bm x,\bm z) 为核函数,特征空间 H \mathcal H 维度确定时,映射不唯一。

核技巧的想法

学习是隐式地在特征空间中进行,仅定义核函数 K ( x , z ) K(\bm x,\bm z) ,而不显式定义特征空间 H \mathcal H 和映射 ϕ \phi 。通常情况下,直接计算 K ( x , z ) K(\bm x,\bm z) 比通过 ϕ ( x ) ϕ ( z ) \phi(\bm x)\cdot\phi(\bm z) 计算 K ( x , z ) K(\bm x,\bm z) 容易得多,具体见下面示例。

输入空间 R n \R^n ,核函数 K ( x . z ) = ( x z ) 2 K(\bm x. \bm z)=(\bm x\cdot \bm z)^2 ,试找出其相关的特征空间 H \mathcal H 和映射 ϕ ( x ) : R n H \phi(\bm x):\R^n\to\mathcal H .

解:取特征空间 H = R 3 \mathcal H=\R^3 ,记输入空间 R n \R^n 中的两个实例 x = ( x 1 , x 2 ) T \bm x=(x_1, x_2)^T z = ( z 1 , z 2 ) T \bm z=(z_1, z_2)^T ,由于
( x z ) 2 = ( x 1 z 1 + x 2 z 2 ) 2 = ( x 1 z 1 ) 2 + 2 x 1 z 1 x 2 z 2 + ( x 2 z 2 ) 2 (\bm x \cdot \bm z)^2 = (x_1z_1+x_2z_2)^2=(x_1z_1)^2+2x_1z_1x_2z_2+(x_2z_2)^2

可取映射 ϕ ( x ) = ( x 1 2 , 2 x 1 x 2 , x 2 2 ) T \phi(\bm x)=(x_1^2,\sqrt 2x_1x_2, x_2^2)^T ϕ ( x ) = 1 2 ( x 1 2 x 2 2 , 2 x 1 x 2 , x 1 2 + x 2 2 ) T \phi(\bm x)=\dfrac{1}{\sqrt 2}(x_1^2-x_2^2, 2x_1x_2,x_1^2+x_2^2)^T ,易证 ϕ ( x ) ϕ ( z ) = K ( x , z ) \phi(\bm x)\cdot\phi(\bm z)=K(\bm x, \bm z) .
可见,不论通过哪一种映射变化,计算内积 ϕ ( x ) ϕ ( z ) \phi(\bm x)\cdot\phi(\bm z) 的计算量都要比直接计算 K ( x . z ) K(\bm x. \bm z) 大很多。

正定核

若已知映射 ϕ \phi ,可通过 ϕ ( x ) \phi(\bm x) ϕ ( z ) \phi(\bm z) 的内积求解核函数 K ( x , z ) K(\bm x, \bm z) 如何判断直接给定的 K ( x , z ) K(\bm x, \bm z) 满足核函数的条件?

核函数的选择

由于核函数 K ( x , z ) = ϕ ( x ϕ ( z ) K(\bm x, \bm z)=\phi(\bm x\cdot\phi(\bm z) ,内积值应该与向量 x , z \bm x,\bm z 之间的距离成正比。
高斯核函数符合这一特征,即
K ( x , z ) = exp ( x z 2 2 σ 2 ) K(\bm x, \bm z)=\exp(-\frac{||\bm x- \bm z||^2}{2\sigma^2})

模型建立与求解

使用核函数替代线性分类对偶问题中特征向量内积的计算方法,得非线性分类最优化问题

min α 1 2 i = 1 N j = 1 N α i α j y i y j K ( x i x j ) i = 1 N α i s.t, i = 1 N α i y i = 0 0 α i C , i = 1 , 2 ,   , N \begin{aligned} \min\limits_{\bm\alpha}&\quad \frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\alpha_i\alpha_jy_iy_jK(\bm x_i \cdot \bm x_j) - \sum_{i=1}^N \alpha_i \\ \text{s.t,}&\quad\sum\limits_{i=1}^N\alpha_iy_i=0\\ &\quad0\leq\alpha_i\leq C,\quad i=1,2,\cdots,N\\ \end{aligned}

求解约束方程得到拉格朗日乘子最优解, α = ( α 1 , α 2 ,   , α N ) T \bm\alpha^*=(\alpha_1^*,\alpha_2^*, \cdots,\alpha_N^*)^T ,且 α 0 \bm\alpha^*\neq\bm0

由线性分类模型可知 ω = i = 1 N α i y i x i \bm\omega^* = \displaystyle\sum\limits_{i=1}^N\alpha_i^*y_i\bm x_i ,然后选择 α \bm\alpha^* 中的一个正分量 0 < α i < C 0\lt\alpha_i^*\lt C ,得
b = y j i = 1 N α i y i K ( x i x j ) b^*=y_j-\displaystyle\sum\limits_{i=1}^N\alpha_i^*y_iK(\bm x_i\cdot \bm x_j)

因此,分离超平面 i = 1 N α i y i K ( x x i ) + b = 0 \displaystyle\sum\limits_{i=1}^N\alpha_i^*y_iK(\bm x \cdot \bm x_i)+b^*=0 ,分类决策函数 f ( x ) = sign ( i = 1 N α i y i K ( x x i ) + b ) f(\bm x)=\text{sign}\left(\displaystyle\sum\limits_{i=1}^N\alpha_i^*y_iK(\bm x \cdot \bm x_i)+b^*\right)

猜你喜欢

转载自blog.csdn.net/sinat_34072381/article/details/83995612