文章目录
背景
支持向量机可以解决线性可分数据的分类问题,对于非线性可分的数据分类问题,SVM通过引入核函数实现。
如下图所示:
左图数据是线性不可分的,SVM无法直接进行分类。通过某种变换将数据转为右图所示的数据分布情况,这样数据就变成了线性可分了。就可以通过SVM算法轻松的实现分类。
设原始特征空间为: X ⊂ R 2 , x = ( x ( 1 ) , x ( 2 ) ) T ∈ X \mathcal X \subset R^2,x = (x^{(1)}, x^{(2)})^T \in \mathcal X X⊂R2,x=(x(1),x(2))T∈X,新的特征空间为: Z ⊂ R 2 , z = ( z ( 1 ) , z ( 2 ) ) T ∈ Z \mathcal Z \subset R^2,z = (z^{(1)}, z^{(2)})^T \in\mathcal Z Z⊂R2,z=(z(1),z(2))T∈Z。
定义原空间到新空间的映射为:
z = ϕ ( x ) = ( ( x ( 1 ) ) 2 , ( x ( 2 ) ) 2 ) T z = \phi(x) = ((x^{(1)})^2, (x^{(2)})^2)^T z=ϕ(x)=((x(1))2,(x(2))2)T
则原空间的椭圆:
w 1 ( x ( 1 ) ) 2 + w 2 ( x ( 2 ) ) 2 + b = 0 w_1(x^{(1)})^2 + w_2(x^{(2)})^2 + b = 0 w1(x(1))2+w2(x(2))2+b=0
变为了新空间的直线:
w 1 z ( 1 ) + w 2 z ( 2 ) + b = 0 w_1 z^{(1)} + w_2 z^{(2)} + b = 0 w1z(1)+w2z(2)+b=0
于是,只要把所有的样本都映射到新的空间中,就可以用线性可分SVM完成分类了。我们称这样的变换思想为核技巧。
这个过程中的关键步骤是如何找到这个变换将原空间的数据映射到新空间。这也是引入核函数的目的。
引入核函数的SVM
1、 核函数的定义:设 X \mathcal X X是输入空间, H \mathcal H H 是特征空间,存在一个 X \mathcal X X 到 H \mathcal H H 的映射:
ϕ ( x ) : X → H \phi(x): \mathcal X \rightarrow \mathcal H ϕ(x):X→H
使得对所有的 x , z ∈ X x,z \in \mathcal X x,z∈X ,函数 K ( x , z ) K(x,z) K(x,z) 满足条件:
K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) K(x,z) = \phi(x) \cdot \phi(z) K(x,z)=ϕ(x)⋅ϕ(z)
则称 K ( x , z ) K(x,z) K(x,z) 为核函数, ϕ ( x ) \phi(x) ϕ(x) 为映射函数。
核技巧 的想法是:在学习与预测中只定义核函数 K ( x , z ) K(x,z) K(x,z) ,而不是现实的定义映射函数 ϕ \phi ϕ 。因为直接计算 K ( x , z ) K(x,z) K(x,z) 比较容易,而通过计算 ϕ ( x ) , ϕ ( z ) \phi(x),\phi(z) ϕ(x),ϕ(z) 计算 K ( x , z ) K(x,z) K(x,z) 计算量较大。
核函数和映射之间的关系:
(1)一个输入空间可以映射到不同的特征空间。
(2)同一特征空间也可以取不同的映射,即不同的映射实现同一种特征空间变换。
已知映射函数 ϕ \phi ϕ 中,可以通过中 ϕ ( x ) \phi(x) ϕ(x) 和 ϕ ( z ) \phi(z) ϕ(z) 的内积求得核函数 K ( x , z ) K(x, z) K(x,z)。不用构造映射 ϕ ( x ) \phi(x) ϕ(x)能否直接判断一个给定的函数K ( x , z ) (x,z) (x,z)是不是核函数? 或者说,函数 K ( x , z ) K(x,z) K(x,z)满足什么条件才能成为核函数?下面给出核函数(正定核函数)充分必要条件:
对任意的 x i ∈ X , i = 1 , 2 … , m , K ( x , z ) x_i \in \mathcal X, i=1,2\ldots,m, K(x,z) xi∈X,i=1,2…,m,