Processing math: 1%

Boostable

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  116 随笔 :: 0 文章 :: 28 评论 :: 93733 阅读
Kernels

    我们首先来回顾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函数。

  1. K_1(x,y)+K_2(x,y)
  2. aK_1(x,y),\quad (a>0)
  3. K_1(x,y)K_2(x,y)
  4. f(x)f(y)\quad \forall f
  5. x^\prime\mathbf{A}y,\quad \text{for positive semidefinite }\mathbf{A} 
  6. f(x)K_1(x,y)f(y), \forall f
  7. q(K_1(x,y)), 其中q是非负系数的多项式
  8. 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_rb_ia_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,则:

  1. K(x,y)=K_1(x,y)+K_2(x,y)对应的映射为\Phi(x)=(\Phi_1(x),\Phi_2(x))^\prime
  2. K(x,y)=aK_1(x,y),a>0对应的映射为\Phi(x)=\sqrt{a}\Phi_1(x)
  3. 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]
  4. K(x,y)=f(x)f(y),\forall f对应的映射的\Phi(x)=f(x)
  5. 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>。

 

posted on   Boostable  阅读(358)  评论(0)    收藏  举报
编辑推荐:
· 记一次.NET MAUI项目中绑定Android库实现硬件控制的开发经历
· 糊涂啊!这个需求居然没想到用时间轮来解决
· 浅谈为什么我讨厌分布式事务
· 在 .NET 中使用内存映射文件构建高性能的进程间通信队列
· 一个 java 空指针异常的解决过程
阅读排行:
· 从硬盘爆满到 GitHub 封号,一位前端开发者的开源历险记
· 微软又一自动化开源王炸,Selenium 慌了!
· 微服务的10大问题
· C#解析JSON数据全攻略
· 上周热点回顾(7.14-7.20)
点击右上角即可分享
微信分享提示