【学习笔记】基与核的故事 - 3 再生希尔伯特核空间

1,781 阅读3分钟

这是我参与11月更文挑战的第4天

原文链接

核方法简介

通过函数基的概念,可以开始学习理解核方法

核方法已经广泛用于各类数据分析技术中,其启发在于将一个在Rn\mathcal{R}^n空间中的向量映射成为一个特征空间中的另一个向量。如下图所示,有一些红点和蓝点在Rn\mathcal{R}^n空间中是难以分离的,而如果将其映射到了高维特征空间中,可能就能更容易的分离他们。

image.png

特征分解

对于一个对称矩阵A\mathbf{A}AT=A\mathbf{A}^T=\mathbf{A}),存在一个实数λ\lambda和向量x\mathbf{x},有:

Ax=λx\mathbf{A}\mathbf{x}=\lambda\mathbf{x}

λ\lambdaA\mathbf{A}的特征值,x\mathbf{x}是特征向量。若A\mathbf{A}有两个特征值λ1,λ2\lambda_1,\lambda_2,和两个特征向量x1,x2\mathbf{x}_1,\mathbf{x}_2,显然可以推出:

λ1x1Tx2=x1TATx2=x1TAx2=λ2x1Tx2\lambda_1\mathbf{x}_1^T\mathbf{x}_2=\mathbf{x}_1^T\mathbf{A}^T\mathbf{x}_2=\mathbf{x}_1^T\mathbf{A}\mathbf{x}_2=\lambda_2\mathbf{x}_1^T\mathbf{x}_2

由于λ1λ2\lambda_1 \neq \lambda_2,可知x1Tx2=0\mathbf{x}^T_1\mathbf{x}_2=0,因此x1T\mathbf{x}_1^Tx2\mathbf{x}_2是正交的。

对于ARn×n\mathbf{A} \in \mathcal{R}^{n \times n},可以找到n个特征值及其对应的n个特征向量。因此,A\mathbf{A}可以被表示为:

A=QDQT\mathbf{A}=\mathbf{Q}\mathbf{D}\mathbf{Q}^T

此处的Q=(q1,...,qn)\mathbf{Q}=(\mathbf{q}_1,...,\mathbf{q}_n)为一个正交矩阵(即QQT=E\mathbf{Q}\mathbf{Q}^T=E),且 D=diag(λ1,...,λn)\mathbf{D}=diag(\lambda_1,...,\lambda_n)(diag为对角矩阵)。上面的公式可以展开为:

image.png

可知,{qi}i=1n\{\mathbf{q}_i\}^n_{i=1}Rn\mathcal{R}^n空间中的正交基组。

核函数

一个函数f(x)f(x)可以被视作一个无穷向量,对于包含两个独立变量的函数K(x,y)K(x,y),可以将其视为一个无穷矩阵。若存在K(x,y)=K(y,x)K(x,y)=K(y,x),且:

f(x)K(x,y)f(y)dxdy0\int \int f(x)K(x,y)f(y)dxdy \geq 0

则对于任意函数ffK(x,y)K(x,y)是对称且正定的,此时K(x,y)K(x,y)为一个核函数。

对称正定矩阵的性质ARn×nA\in R^{n \times n},若A=ATA=A^T,对任意0XRn0 \neq X \in R^n均有XTAX>0X^TAX>0,则称A为对称正定矩阵。

且存在特征值λ\lambda和特征函数ψ(x)\psi(x)使得:

K(x,y)ψ(x)dx=λψ(y)\int K(x,y)\psi(x)dx=\lambda \psi (y)

对于不同的特征值λ1\lambda_1λ2\lambda_2及对应的特征函数ψ1(x)\psi_1(x)ψ2(x)\psi_2(x)易得: image.png

因此可得:

<ψ1,ψ2>=ψ1(x)ψ2(x)dx=0<\psi_1,\psi_2>=\int \psi_1(x) \psi_2(x)dx = 0

可知特征函数是正交的,此处ψ\psi表示函数(无限向量)本身。

对于一个核函数,若存在无限特征值{λi}i=1\{\lambda_i\}^\infty_{i=1}和无限特征函数{ψi}i=1\{\psi_i\}^\infty_{i=1},则和矩阵的案例一样可以的得到:

K(x,y)=i=0λiψi(x)ψi(y)K(x,y)=\sum^\infty_{i=0}\lambda_i\psi_i(x)\psi_i(y)

这也就是Mercer定理:即任何半正定对称函数都可以作为核函数。此处,{ψi}i=1\{\psi_i\}^\infty_{i=1}构成一个函数空间中的一组正交基。

常用的核函数有:

  • 多项式核函数:K(x,y)=(γxTy+C)dK(x,y)=(\gamma x^Ty+C)^d,此处d=1,2,...,Nd=1,2,...,N
  • 高斯径向基核(Gaussian radial basis kernel):K(x,y)=exp(γxy2)K(x,y)=exp(-\gamma||x-y||^2)
  • Sigmoid核:K(x,y)=tanh(γxTy+C)K(x,y)=tanh(\gamma x^Ty+C),tanh指双曲正切函数。

再生希尔伯特核空间 Reproducing Kernel Hilbert Space

{λiψi}i=1\{\sqrt{\lambda_i}\psi_i\}^\infty_{i=1}作为一组正交基构造了一个希尔伯特空间H\mathcal{H}。空间中的任何函数或向量都可以表示为这些基的线性组合。希尔伯特空间的概念

假设:

f=i=1fiλiψif=\sum^\infty_{i=1}f_i\sqrt{\lambda_i}\psi_i

可以在H\mathcal{H}中定义ff为一个无限向量:

f=(f1,f2,...)HTf=(f_1,f_2,...)^T_{\mathcal{H}}

对于另一个函数g=g1,g2,...HTg={g_1,g_2,...}^T_{\mathcal{H}}存在:

<f,g>H=i=1figi<f,g>_{\mathcal{H}}=\sum^\infty_{i=1}f_ig_i

对于一个核函数K,使用K(x,y)K(x,y)来表示K在点(x,y)(x,y)上的求值,为一个标量。使用K(,)K(\cdot,\cdot)来表示函数(无限向量)本身,使用K(x,)K(x,\cdot)来表示矩阵的第x行。将核函数的一个参数定义为xx,然后可以将其看作拥有一个参数的函数或一个无限向量,得到:

K(x,)=i=0λiψi(x)ψiK(x,\cdot)=\sum^\infty_{i=0}\lambda_i\psi_i(x)\psi_i

在空间H\mathcal{H}中可以定义:

K(x,)=(λ1ψ1(x),λ2ψ2(x),...)HTK(x,\cdot)=(\sqrt{\lambda_1}\psi_1(x),\sqrt{\lambda_2}\psi_2(x),...)^T_{\mathcal{H}}

因此可以得到:

<K(x,),K(y,)>H=i=0λiψi(x)ψi(y)=K(x,y)<K(x,\cdot),K(y,\cdot)>_{\mathcal{H}}=\sum^\infty_{i=0}\lambda_i\psi_i(x)\psi_i(y)=K(x,y)

这就是可再生特性,即用核函数来再生两个函数的内积,再生性使得我们可以不用去计算高维特征空间中的內积,而只需计算核函数,大大降低了计算量,因此H\mathcal{H}被称为再生核希尔伯特空间(RKHS)。

回到最初的问题:如何用核函数将点映射到特征空间?

定义一个映射:

Φ(x)=K(x,)=(λ1ψ1(x),λ2ψ2(x),...)T\Phi(x)=K(x,\cdot)=(\sqrt{\lambda_1}\psi_1(x),\sqrt{\lambda_2}\psi_2(x),...)^T

这样就可以将点x映射到H\mathcal{H}中,Φ\Phi在这里不表示一个函数,它指向在特征空间H\mathcal{H}中的一个向量或函数。然后得到:

<Φ(x),Φ(y)>H=<K(x,),K(y,)>H=K(x,y)<\Phi(x),\Phi(y)>_{\mathcal{H}}=<K(x,\cdot),K(y,\cdot)>_{\mathcal{H}}=K(x,y)

因此,不需要知道什么是映射,特征空间在哪里,或者特征空间的基础是什么。对于一个对称正定函数KK,一定存在映射Φ\Phi和一个特征空间H\mathcal{H}使得:

<Φ(x),Φ(y)>=K(x,y)<\Phi(x),\Phi(y)>=K(x,y)

这就是核的使用技巧。

一个简单的案例

定义核函数:

K(x,y)=(x1,x2,x1x2)(y1,y2,y1y2)T=x1y1+x2y2+x1x2y1y2K(x,y)=(x_1,x_2,x_1x_2)(y_1,y_2,y_1y_2)^T=x_1y_1+x_2y_2+x_1x_2y_1y_2

定义 x=(x1,x2)T,y=(y1,y2)T\mathbf{x}=(x_1,x_2)^T,\mathbf{y}=(y_1,y_2)^T。令λ1=λ2=λ3=1,ψ1(x)=x1,ψ2(x)=x2,ψ3(x)=x1x2\lambda_1=\lambda_2=\lambda_3=1,\psi_1(\mathbf{x})=x_1,\psi_2(\mathbf{x})=x_2,\psi_3(\mathbf{x})=x_1x_2,可以将映射定义为:

image.png