在许多情况下,机器学习相当于从数据中估计参数。这些参数通常很多且相对难以解释——例如神经网络的权重。相比之下,高斯过程提供了一种机制,可以直接推理适合我们数据的函数的高级属性。例如,我们可能了解这些函数是否快速变化、周期性、涉及条件独立性或平移不变性。高斯过程使我们能够通过直接指定适合我们数据的函数值的高斯分布,轻松地将这些属性合并到我们的模型中。
让我们从一些例子开始,感受一下高斯过程是如何运作的。
假设我们观察以下回归目标(输出)的数据集,y,由输入索引,x. 例如,目标可以是二氧化碳浓度的变化,输入可以是记录这些目标的时间。数据有哪些特点?它看起来变化多快?我们是否定期收集数据点,或者是否缺少输入?您如何想象填补缺失的区域,或预测直到x=25?
为了用高斯过程拟合数据,我们首先指定我们认为合理的函数类型的先验分布。在这里,我们展示了几个来自高斯过程的示例函数。这个先验看起来合理吗?请注意,这里我们不是在寻找适合我们数据集的函数,而是在寻找解决方案的合理高级属性,例如它们随输入变化的速度。请注意,我们将在下一个关于先验和推理的笔记本中看到用于重现此笔记本中所有图的代码。
一旦我们以数据为条件,我们就可以使用它来推断适合数据的函数的后验分布。在这里,我们展示了示例后验函数。
我们看到这些函数中的每一个都与我们的数据完全一致,完美地贯穿了每一次观察。为了使用这些后验样本进行预测,我们可以对后验中每个可能的样本函数的值进行平均,以创建下面的粗蓝色曲线。请注意,我们实际上不必采用无限数量的样本来计算此期望;正如我们稍后将看到的,我们可以计算封闭形式的期望。
我们可能还需要不确定性的表示,因此我们知道我们应该对我们的预测有多大的信心。直觉上,我们应该有更多的不确定性,因为样本后验函数的可变性更大,因为这告诉我们真实函数可以采用更多可能的值。这种不确定性称为认知不确定性,即可约化的不确定性。与缺乏信息有关。随着我们获取更多数据,这种不确定性就会消失,因为与我们观察到的一致的解决方案将越来越少。与后验均值一样,我们可以计算封闭形式的后验方差(这些函数在后验中的可变性)。使用阴影,我们在均值两侧显示两倍的后验标准差,创建一个可信区间 ,该区间有 95% 的概率包含任何输入的函数真实值x.
如果我们删除后验样本,只需可视化数据、后验均值和 95% 可信集,该图看起来会更清晰一些。注意不确定性如何从数据中增长,这是认知不确定性的一个特性。
我们用来拟合数据的高斯过程的属性受到所谓的协方差函数(也称为内核)的强烈控制。我们使用的协方差函数称为RBF(径向基函数)核,其形式为
这个内核的超参数是可解释的。振幅 参数_a控制函数变化的垂直尺度,以及长度尺度参数ℓ控制函数的变化率(摆动度)。更大a 意味着更大的函数值,并且更大ℓ意味着更缓慢地改变函数。让我们看看我们的样本先验函数和后验函数随着我们的变化会发生什么a和ℓ.
长度尺度对 GP 的预测和不确定性有特别显着的影响。在||x−x′||=ℓ,一对函数值之间的协方差是a2exp(−0.5). 在比更远的距离ℓ,函数值变得几乎不相关。这意味着如果我们想在某个点做出预测x∗,然后是带有输入的函数值 x这样||x−x′||>ℓ不会对我们的预测产生强烈影响。
让我们看看更改长度尺度如何影响样本先验和后验函数以及可信集。以上拟合使用长度尺度2. 现在让我们考虑 ℓ=0.1,0.5,2,5,10. 的长度尺度0.1相对于我们正在考虑的输入域的范围来说非常小, 25. 例如,函数的值在x=5和 x=10在这样的长度范围内基本上没有相关性。另一方面,对于长度尺度10,这些输入的函数值将高度相关。请注意,下图中的垂直比例发生了变化。
请注意,随着长度尺度的增加,函数的“摆动性”会降低,我们的不确定性也会降低。如果长度尺度很小,随着我们远离数据,不确定性会迅速增加,因为数据点对函数值的信息变得越来越少。
现在,让我们改变振幅参数,将长度尺度固定在2. 请注意,垂直比例对于先验样本保持固定,而对于后验样本则不同,因此您可以清楚地看到函数的增加比例以及对数据的拟合。
我们看到振幅参数影响函数的尺度,但不影响变化率。在这一点上,我们也感觉到我们程序的泛化性能将取决于这些超参数的合理值。价值观ℓ=2 和a=1似乎提供了合理的拟合,而其他一些值却没有。幸运的是,有一种强大且自动的方法可以使用所谓的边际似然来指定这些超参数,我们将在笔记本中进行推理。
那么究竟什么是全科医生呢?在我们开始时,GP 简单地说任何函数值的集合<