这是我参与11月更文挑战的第4天
原文链接
核方法简介
通过函数基的概念,可以开始学习理解核方法。
核方法已经广泛用于各类数据分析技术中,其启发在于将一个在Rn空间中的向量映射成为一个特征空间中的另一个向量。如下图所示,有一些红点和蓝点在Rn空间中是难以分离的,而如果将其映射到了高维特征空间中,可能就能更容易的分离他们。

特征分解
对于一个对称矩阵A(AT=A),存在一个实数λ和向量x,有:
Ax=λx
λ是A的特征值,x是特征向量。若A有两个特征值λ1,λ2,和两个特征向量x1,x2,显然可以推出:
λ1x1Tx2=x1TATx2=x1TAx2=λ2x1Tx2
由于λ1=λ2,可知x1Tx2=0,因此x1T和x2是正交的。
对于A∈Rn×n,可以找到n个特征值及其对应的n个特征向量。因此,A可以被表示为:
A=QDQT
此处的Q=(q1,...,qn)为一个正交矩阵(即QQT=E),且 D=diag(λ1,...,λn)(diag为对角矩阵)。上面的公式可以展开为:

可知,{qi}i=1n是Rn空间中的正交基组。
核函数
一个函数f(x)可以被视作一个无穷向量,对于包含两个独立变量的函数K(x,y),可以将其视为一个无穷矩阵。若存在K(x,y)=K(y,x),且:
∫∫f(x)K(x,y)f(y)dxdy≥0
则对于任意函数f,K(x,y)是对称且正定的,此时K(x,y)为一个核函数。
对称正定矩阵的性质 设A∈Rn×n,若A=AT,对任意0=X∈Rn均有XTAX>0,则称A为对称正定矩阵。
且存在特征值λ和特征函数ψ(x)使得:
∫K(x,y)ψ(x)dx=λψ(y)
对于不同的特征值λ1和λ2及对应的特征函数ψ1(x)和ψ2(x)易得:

因此可得:
<ψ1,ψ2>=∫ψ1(x)ψ2(x)dx=0
可知特征函数是正交的,此处ψ表示函数(无限向量)本身。
对于一个核函数,若存在无限特征值{λi}i=1∞和无限特征函数{ψi}i=1∞,则和矩阵的案例一样可以的得到:
K(x,y)=i=0∑∞λiψi(x)ψi(y)
这也就是Mercer定理:即任何半正定对称函数都可以作为核函数。此处,{ψi}i=1∞构成一个函数空间中的一组正交基。
常用的核函数有:
- 多项式核函数:K(x,y)=(γxTy+C)d,此处d=1,2,...,N。
- 高斯径向基核(Gaussian radial basis kernel):K(x,y)=exp(−γ∣∣x−y∣∣2)。
- Sigmoid核:K(x,y)=tanh(γxTy+C),tanh指双曲正切函数。
再生希尔伯特核空间 Reproducing Kernel Hilbert Space
将{λiψi}i=1∞作为一组正交基构造了一个希尔伯特空间H。空间中的任何函数或向量都可以表示为这些基的线性组合。希尔伯特空间的概念
假设:
f=i=1∑∞fiλiψi
可以在H中定义f为一个无限向量:
f=(f1,f2,...)HT
对于另一个函数g=g1,g2,...HT存在:
<f,g>H=i=1∑∞figi
对于一个核函数K,使用K(x,y)来表示K在点(x,y)上的求值,为一个标量。使用K(⋅,⋅)来表示函数(无限向量)本身,使用K(x,⋅)来表示矩阵的第x行。将核函数的一个参数定义为x,然后可以将其看作拥有一个参数的函数或一个无限向量,得到:
K(x,⋅)=i=0∑∞λiψi(x)ψi
在空间H中可以定义:
K(x,⋅)=(λ1ψ1(x),λ2ψ2(x),...)HT
因此可以得到:
<K(x,⋅),K(y,⋅)>H=i=0∑∞λiψi(x)ψi(y)=K(x,y)
这就是可再生特性,即用核函数来再生两个函数的内积,再生性使得我们可以不用去计算高维特征空间中的內积,而只需计算核函数,大大降低了计算量,因此H被称为再生核希尔伯特空间(RKHS)。
回到最初的问题:如何用核函数将点映射到特征空间?
定义一个映射:
Φ(x)=K(x,⋅)=(λ1ψ1(x),λ2ψ2(x),...)T
这样就可以将点x映射到H中,Φ在这里不表示一个函数,它指向在特征空间H中的一个向量或函数。然后得到:
<Φ(x),Φ(y)>H=<K(x,⋅),K(y,⋅)>H=K(x,y)
因此,不需要知道什么是映射,特征空间在哪里,或者特征空间的基础是什么。对于一个对称正定函数K,一定存在映射Φ和一个特征空间H使得:
<Φ(x),Φ(y)>=K(x,y)
这就是核的使用技巧。
一个简单的案例
定义核函数:
K(x,y)=(x1,x2,x1x2)(y1,y2,y1y2)T=x1y1+x2y2+x1x2y1y2
定义 x=(x1,x2)T,y=(y1,y2)T。令λ1=λ2=λ3=1,ψ1(x)=x1,ψ2(x)=x2,ψ3(x)=x1x2,可以将映射定义为:
