我们首先来回顾kernel函数的定义:一个函数K(x,y)为kernel函数当且仅当对\forall g, \int K(x,y)g(x)g(y)dxdy\geq 0成立。另外,根据Mercer's theorem,存在一个映射\Phi使K(x,y)=\langle \Phi(x),\Phi(y)\rangle,并且对任意有限的点,kernel矩阵是半正定的。
一、核函数的封闭性
Hadamard product:
\mathbf{A}\circ\mathbf{B}=\left[\begin{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}\right] Kronecked product:
\mathbf{A}\otimes\mathbf{B}=\left[\begin{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}\right]
若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^\prime\mathbf{A}y,\quad \text{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\rangle+C)^d=\sum_{s=0}^d\binom{d}{s}C^s\langle x,y\rangle^{d-s},(C\geq 0)
这个函数可以看成单项为\langle x,y\rangle^{d-s}的一个多项式,系数为\binom{d}{s}C^s,所以它是个核函数。当C=0时,(\langle x,y\rangle)^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_m\geq 0。
令\Phi(x)\triangleq\left[\begin{array}&\vdots\\x_1^{i_1}x_2^{i_2}\cdots x_m^{i_m}\\\vdots\end{array}\right],则(\langle x,y\rangle)^r=\langle\Phi(x),\Phi(y)\rangle=K(x,y),可以证明上式的映射\Phi(x)为\binom{M+r-1}{r}维。
证明:(重复排列的证明)
命题等价于从1,2,\cdots,m中选出r个数的重复排列。设选出的数为a_1,a_2,\cdots,a_r,其中令a_1\leq a_2\leq\cdots\leq 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取值于1\sim (n+m-1),故b_i的组合数为\binom{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\to\infty}f_n=f,当且仅当\lim_{n\to\infty}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)_i\Phi_2(x)_j,即\Phi(x)=\left[\begin{array}&\Phi_1(x)_1\Phi_2(x)_1\\\vdots\\\Phi_1(x)_1\Phi_2(x)_n\\\vdots\\\Phi_1(x)_n\Phi_2(x)_1\\\vdots\\\Phi_1(x)_n\Phi_2(x)_n\end{array}\right]。
- K(x,y)=f(x)f(y),\forall f对应的映射的\Phi(x)=f(x)。
- K(x,y)=x^\prime\mathbf{A}y,其中\mathbf{A}为半正定,对应的映射为\Phi(x)=\mathbf{L}^\prime x,其中\mathbf{A}=\mathbf{L}\mathbf{L}^\prime(Cholesky分解)
四、在映射后的空间中操作
1)\|\Phi(x)\|=\sqrt{\langle\Phi(x),\Phi(x)\rangle}=\sqrt{K(x,x)}。
2) 单位化:\tilde{\Phi}(x)=\frac{\Phi(x)}{\|\Phi(x)\|}
\tilde{K}(x,y)=\langle \tilde{\Phi}(x),\tilde{\Phi}(y)\rangle=\frac{\langle \Phi(x),\Phi(y)\rangle}{\|\Phi(x)\|\|\Phi(y)\|}=\frac{K(x,y)}{\sqrt{k(x,x)K(y,y)}},为正则化的kernel(Normalized kernel)。
3)线性组合的范数
\begin{align*}\|\sum_{i}\alpha_i\Phi(x_i)\|^2&=\langle \sum_i\alpha_i\Phi(x_i),\sum_j\alpha_j\Phi(x_j)\rangle\\&=\sum_{i,j}\alpha_i\alpha_j\langle\Phi(x_i),\Phi(x_j)\rangle\\&=\sum_{i,j}\alpha_i\alpha_jK(x_i,x_j)\\&=\alpha^\prime K\alpha\end{align*}
五、最后
关于kernel的内容有非常多的东西,这里我只是简单的介绍(其实我对kernel也就懂这么点皮毛)。有兴趣的可以看看这本专门介绍kernel的书籍<Kernel Methods for Pattern Analysis>,还有论文<An Introduction to Kernel-Based Learning Algorithms>。
【推荐】HarmonyOS专区:3天赚2万!开发者的梦想也可以掷地有声!
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
【推荐】园子的不务正业:向创业开发者推荐「楼盘」- 杭州云谷中心
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】天翼云爆款云主机2核2G限时秒杀,28.8元/年起!立即抢购
· 闯入鸿蒙:浪漫、理想与「草台班子」
· 有有点意思!Java8后最有用新特性排行榜
· Ribbon LoadBalancer: 开源的客户端式负载均衡框架
· EF Core:再谈普通实体关系与 Owned 关系的区别
· C++20新增属性[[no_unique_address]]详解
· 闯入鸿蒙:浪漫、理想与「草台班子」
· 3天赚2万!开发者的梦想也可以掷地有声!
· Flutter 适配 HarmonyOS 5 开发知识地图
· HEIF:更高质量、更小体积,开启 HarmonyOS 图像新体验
· CodeGenie 的 AI 辅助调优让你问题定位效率大幅提升