我们首先来回顾kernel函数的定义:一个函数$K(x,y)$为kernel函数当且仅当对$forall g, int K(x,y)g(x)g(y)dxdygeq 0$成立。另外,根据Mercer's theorem,存在一个映射$Phi$使$K(x,y)=langle Phi(x),Phi(y) angle$,并且对任意有限的点,kernel矩阵是半正定的。
一、核函数的封闭性
Hadamard product:
$$mathbf{A}circmathbf{B}=left[egin{array}&a_{11}b_{11}&a_{12}b_{12}&cdots&a_{1n}b_{1n}\vdots\a_{m1}b_{m1}&a_{m2}b_{m2}&cdots&a_{mn}b_{mn}end{array} ight]$$ Kronecked product:
$$mathbf{A}otimesmathbf{B}=left[egin{array}&a_{11}mathbf{B}&a_{12}mathbf{B}&cdots&a_{1n}mathbf{B}\vdots\a_{m1}mathbf{B}&a_{m2}mathbf{B}&cdots&a_{mn}mathbf{B}end{array}
ight]$$
若$K_1(x,y),K_2(x,y)$为kernel函数,则以下式子仍为kernel函数。
- $K_1(x,y)+K_2(x,y)$
- $aK_1(x,y),quad (a>0)$
- $K_1(x,y)K_2(x,y)$
- $f(x)f(y)quad forall f$
- $x^primemathbf{A}y,quad ext{for positive semidefinite }mathbf{A}$
- $f(x)K_1(x,y)f(y), forall f$
- $q(K_1(x,y))$, 其中$q$是非负系数的多项式
- $exp{K_1(x,y)}$
二、例子
令$K(x,y)=(langle x,y angle+C)^d=sum_{s=0}^dinom{d}{s}C^slangle x,y angle^{d-s},(Cgeq 0)$
这个函数可以看成单项为$langle x,y
angle^{d-s}$的一个多项式,系数为$inom{d}{s}C^s$,所以它是个核函数。当$C=0$时,$(langle x,y
angle)^r=(x_1y_1+x_2y_2+cdots+x_my_m)^r$。
可以把上式看成一个单项为$x_1^{i_1}y_1^{i_1}x_2^{i_2}y_2^{i_2}cdots x_m^{i_m}y_m^{i_m}$所组成的多项式,其中$i_1+i_2+cdots+i_m=r,i_1,i_2,cdots,i_mgeq 0$。
令$Phi(x) riangleqleft[egin{array}&vdots\x_1^{i_1}x_2^{i_2}cdots x_m^{i_m}\vdotsend{array}
ight]$,则$(langle x,y
angle)^r=langlePhi(x),Phi(y)
angle=K(x,y)$,可以证明上式的映射$Phi(x)$为$inom{M+r-1}{r}$维。
证明:(重复排列的证明)
命题等价于从$1,2,cdots,m$中选出$r$个数的重复排列。设选出的数为$a_1,a_2,cdots,a_r$,其中令$a_1leq a_2leqcdotsleq a_r$。命题等价于求满足上述不等式$a_1,a_2,cdots,a_r$的组合个数。构造$b_1=a_1,b_2=a_2+1,cdots,b_i=a_i+(i-1),cdots,b_r=a_r+(r-1)$,其中$b_1<b_2<cdots<b_r$且$b_i$与$a_i$对应,所以命题又等价于求$b_i$的组合数,而$b_i$取值于$1sim (n+m-1)$,故$b_i$的组合数为$inom{n+m-1}{m}$。
从上述可以看出映射后的空间维数是非常大的,而引入核函数使我们只需要利用核函数进行计算,从而可以省去中间的映射过程。
高斯核函数:$K(x,y)=exp{-frac{1}{2}|x-y|^2}$,as the pointwise limit of polynomials。高斯核函数对应的映射为无限维。
Pointwise convergence:假定${f_n}$是一个有相同定义域和上域的函数序列,${f_n}$逐点收敛于$f$,记$lim_{n oinfty}f_n=f$,当且仅当$lim_{n oinfty}f_n(x)=f(x)$对$forall x$属于定义域都成立。
三、不同核函数所对应的映射
对于每一个核函数$K_i$,必定对应着至少一个映射$Phi_i$。假设$K_1(x,y),K_2(x,y)$对应的映射为$Phi_1,Phi_2$,则:
- $K(x,y)=K_1(x,y)+K_2(x,y)$对应的映射为$Phi(x)=(Phi_1(x),Phi_2(x))^prime$。
- $K(x,y)=aK_1(x,y),a>0$对应的映射为$Phi(x)=sqrt{a}Phi_1(x)$。
- $K(x,y)=K_1(x,y)K_2(x,y)$对应的映射为$Phi(x)_{ij}=Phi_1(x)_iPhi_2(x)_j$,即$Phi(x)=left[egin{array}&Phi_1(x)_1Phi_2(x)_1\vdots\Phi_1(x)_1Phi_2(x)_n\vdots\Phi_1(x)_nPhi_2(x)_1\vdots\Phi_1(x)_nPhi_2(x)_nend{array} ight]$。
- $K(x,y)=f(x)f(y),forall f$对应的映射的$Phi(x)=f(x)$。
- $K(x,y)=x^primemathbf{A}y$,其中$mathbf{A}$为半正定,对应的映射为$Phi(x)=mathbf{L}^prime x$,其中$mathbf{A}=mathbf{L}mathbf{L}^prime$(Cholesky分解)
四、在映射后的空间中操作
1)$|Phi(x)|=sqrt{langlePhi(x),Phi(x) angle}=sqrt{K(x,x)}$。
2) 单位化:$ ilde{Phi}(x)=frac{Phi(x)}{|Phi(x)|}$
$$ ilde{K}(x,y)=langle ilde{Phi}(x), ilde{Phi}(y) angle=frac{langle Phi(x),Phi(y) angle}{|Phi(x)||Phi(y)|}=frac{K(x,y)}{sqrt{k(x,x)K(y,y)}}$$,为正则化的kernel(Normalized kernel)。
3)线性组合的范数
egin{align*}|sum_{i}alpha_iPhi(x_i)|^2&=langle sum_ialpha_iPhi(x_i),sum_jalpha_jPhi(x_j)
angle\&=sum_{i,j}alpha_ialpha_jlanglePhi(x_i),Phi(x_j)
angle\&=sum_{i,j}alpha_ialpha_jK(x_i,x_j)\&=alpha^prime Kalphaend{align*}
五、最后
关于kernel的内容有非常多的东西,这里我只是简单的介绍(其实我对kernel也就懂这么点皮毛)。有兴趣的可以看看这本专门介绍kernel的书籍<Kernel Methods for Pattern Analysis>,还有论文<An Introduction to Kernel-Based Learning Algorithms>。