用核函数来构造模型

定义

核函数(或者叫协方差函数)是一个有两个输入 [公式] 的正定函数。

高斯过程模型利用核函数来定义任意两个函数值之间的先验协方差

[公式]

简单来说,核函数是用来表明两个变量(函数值)之间的相关性的,核函数也确定了在高斯过程先验下函数的潜在结构(the generalization properties of the model)。

一些基础的核函数

一些常见的核函数有平方指数(SE)、周期(Per)、线性(Lin)核等,每一个核函数对应了一种我们对模型的假设。比如使用SE核函数表明模型具有无穷阶可微,也就是函数的平滑性(smoothness)。

(图片来源:David Duvenaud

每个核函数具有一些超参数来刻画核函数具体的形状,比如SE核函数中的[公式] 定义了核函数的“宽度”,即函数的平滑程度。

平稳与非平稳核函数:SE和Per核函数是平稳核函数,因为它们的值仅有两个输入的差 [公式]决定,这意味着我们如果同时移动所有输入 [公式] 的值(按照相同的方式),那么得到的核函数的值是不变的,因为任意两个输入的差保持不变。

核函数的组合

如果我们想表示的模型结构不在已有的核函数中,那么我们可以设计一个新的核函数来融入我们的先验模型结构信息。

Notation

一般主要有两种形式的组合方式,加法组合和乘法组合。

[公式]

先前提到的核函数都是一维的,具有多维输入的核函数可以通过不同维度核函数之间的加法和乘法合成。

乘法组合

两个正定核函数的乘积仍然是正定核函数。但是这个新的核函数拥有什么性质呢?

  1. 多项式回归:通过将 [公式] 个线性核函数相乘,我们可以得到一个自由度为 [公式] 多项式先验,比如上图的第一列。
  2. 局部周期函数:对于单变量数据,将一个核函数乘以SE核函数能够将全局结构转化为局部结构,比如周期核对应的是准确的周期结构,然而周期核乘以SE核函数对应的则是局部周期结构,比如上图第二列。
  3. 幅度增加的函数:将一个核函数乘以一个线性核函数意味着函数的边缘标准差随着远离超参数 [公式] 的距离线性增长。

同理我们还可以将更多个核函数相乘来组合新的核函数,比如SE乘以Lin乘以Per对应的函数先验为局部周期且幅度线性增加的。

加法组合

一个加性函数如果可以表示为 [公式] 。对于高斯过程而言

[公式]

则组合函数满足

[公式]

其中两个核函数可以是不同类型的。

噪声建模

加性噪声可以当做是叠加在信号上的未知快变函数。这一结构可以当做一个具有短的宽度的SE核函数,宽度趋于零的SE核函数为白噪声核函数。

不同维度之间的加法组合

如果用于相加的核函数针对的是部分输入维度,那么这个函数先验可以表示为

[公式]

这也等价于

[公式]

利用加性模型来外延

加性结构有时候更有利于外延,即在远离训练数据的点进行预测。

可以看到,由于乘法模型更flexible,在对远离训练数据点的预测具有较高的不确定性。