再生核希尔伯特空间(RKHS)和核函数

之前看SVM核函数相关的问题,总是会碰到再生核希尔伯特空间(Reproducing Kernel Hilbert Space, RKHS)不过一直没有太仔细了解过到底是指的什么,前几天研究了一下。

希尔伯特空间

先来说一下什么是希尔伯特空间
这个概念听起来高大上,其实是个非常简单的概念。
先说什么是线性空间

线性空间

线性空间即定义了数乘和加法的空间。这个就是具有线性结构的空间。
有了线性空间的概念之后,因为有数乘和加法,所以空间中可以找到一组基底(Basis)能够通过线性组合得到空间中所有的点。

度量空间和赋范空间

距离的定义必须满足如下三个条件:
1. d(x,y)0;d(x,y)=0 的充要条件是 x=y 即非负性
2. d(x,y)=d(y,x) ;对称性
3. d(x,z)+d(z,y)d(x,y) 满足三角不等式。

定义了距离的空间叫度量空间
定义了距离的线性空间叫线性度量空间

接下来再定义范数 ||x|| ,范数的定义必须满足:
1. ||x||0 即非负性
2. ||αx||=|α|||x||
3. ||x||+||y||||x+y|| 满足三角不等式

所以范数这个概念,可以看成从零点到 x 的距离,同时比价第二条(2),即数乘可以提取出来。
所以:由范数可以定义距离,即 d(x,y)=||xy|| ,但是距离不可以定义范数
因为距离的定义,不满足范数的第二条条件
因为

||x||=d(0,x)


||αx||=d(0,ax)|α|||x||

举一个例子:
d(x,y)=(xiyi)21+(xiyi)2

这个满足距离定义,但是不满足范数定义。所以范数是比距离更具体的一个东西

而定义了范数的空间,叫赋范空间和度量空间。另外完备的赋范空间叫巴拿赫空间。
而定义了范数的线性空间,叫赋范线性空间

希尔伯特空间

定义了范数之后,还没有定义角度。那就再来定义角度,所以可以定义内积 <x,y> 如下:
1. 对称性
2. 对第一变元的线性性质,即 <αx,y>=α<x,y>
3. 正定性
另外还要再说一下函数空间的内积。
一个函数可以看成一个无穷维的向量
将一个函数按照 x 进行采样,可以得到一个函数的表示为一个向量的形式

(f(x0),f(x1),f(x2),,f(xn))

如果采样的间隔变得无穷的小,则这个函数就可以表示为一个无穷维的向量。

所以一个函数空间的内积可以定义为:

<f,g>=f(x)g(x)dx

由内积可以导出范数,但是范数不可以导出内积。因为可以定义 ||x||2=<x,x>

另外函数空间的概念,还可以从另外一个角度来思考,例如:
1. 泰勒级数展开,可以看成将一个函数用 {xi}0 作为基底表示的一个空间
2. 傅立叶级数展开,即将一个函数用三角函数的形式进行无穷维的展开
一个 n 维的的空间,且定义了内积,就叫欧几里德空间(即有线性结构和夹角,垂直,投影这些)。

引入无穷维的空间(一般指函数空间),具有线性结构同时定义了内积,同时还具有完备性的空间就叫希尔伯特空间
比如上面讲的傅立叶变换就是一个希尔伯特空间。

核函数

在一般的欧氏空间中,我们可以定义一个 n×n 矩阵的特征值和特征向量。

Ax=λx

当一个矩阵可以进行特征值分解的时候,其特征向量构成了这个 n 维空间的一组基底

然后将其推广到
先说定义一个函数空间中无穷维的矩阵 K(x,y)
如何其满足:
1. 正定性,即对于任意的函数 f(x) ,都有

f(x)K(x,y)f(y)dxdy0

2. 对称性,即 K(x,y)=K(y,x)
K(x,y)ψ(x)dx=λψ(y)

则这个二元函数可以称为核函数
可以证明一个核函数的特征函数之间是正交的

<ψ1,ψ2>=ψ1(x)ψ2(x)dx=0

所以 {ψi}i=1 是原来函数空间之中的一组基底

同时原来的核函数也可以分解成为核函数之间相乘的结果:

K(x,y)=i=0λiψi(x)ψi(y)

再生核希尔伯特空间

下面就进入到正题之中。
RKHS是由核函数构成的空间。
其基底为: {λiψi}i=1
所以其中任意函数都可以由基底表示

f=i=1fiλiψi
选出其中的两个函数,按照坐标表示如下:
f=(f1,f2,...)THg=(g1,g2,...)TH

所以其内积为:
<f,g>H=i=1figi

再来看核函数 K(x,y) 将其中一个元素固定 K(x0,y) ,则其也可以看成一个函数

K(x0,y)=i=0λiψi(x)ψi

化成向量坐标表示形式:
K(x0,y)=(λ1ψ1(x),λ2ψ2(x),)TH

所以计算内积:
<K(x0,y),K(y0,x)>H=i=0λiψi(x0)ψi(y0)=K(x0,y0)

上面这个性质就叫做 再生性(reproducing property),所以这个空间才叫做再生核希尔伯特空间。
这个性质是非常好的,因为这样看,原本函数之间计算内积需要算无穷维的积分的,但是现在只需要算核函数就好了。
所以定义一个点的映射一个点 x 给其映射到一个无穷维的特征空间【 即先将这个点变成一个函数,而这个函数可以看成一个无穷维的特征空间】:
Φ(x)=K(x,)=(λ1ψ1(x),λ2ψ2(x),)T

得到两个特征空间上的内积为:
<Φ(x),Φ(y)>H=<K(x,),K(y,)>H=K(x,y)

这就是kernel trick

SVM的kernel形式推导

这个相当于另一种SVM的推导形式了,即先将点映射成为kernel的形式,然后再进行那个最优化的一番推导。
然后也能推出最后跟用svm正常推导,最后把内积替换成为那个形式一样的结果。
详情见参考文献[2][3]都有推导。

参考资料

  1. 函数空间这个是上交的一个公开课:数学之旅的其中一讲。整个系列讲的都非常的不错,通过通俗的方式讲解了数学中许多高深的概念。
  2. A Story of Basis and Kernel - Part II: Reproducing Kernel Hilbert Space这个是一个中国人写的英文博客,但是它的的英文水平非常之高,读起来通俗易懂。这一篇的前一篇是讲函数空间的,也非常好,建议看一下。
  3. 支持向量机:Kernel II这篇讲支持向量机的,讲的也不错。

你可能感兴趣的:(svm,kernel,希尔伯特空间,机器学习)