18. 高斯过程¶
Andrew Gordon Wilson (纽约大学和亚马逊)
高斯过程(Gaussian processes,GP)无处不在。你已经在不经意间接触过许多高斯过程的例子。任何参数呈高斯分布的线性模型都是高斯过程。这类模型涵盖了离散模型(包括随机游走和自回归过程)和连续模型(包括贝叶斯线性回归模型、多项式、傅里叶级数、径向基函数,甚至包含无限个隐藏单元的神经网络)。有一个流传的笑话是“一切都是高斯过程的特例”。
学习高斯过程很重要,原因有三:(1) 它们提供了一种从*函数空间*的角度进行建模的方法,这使得理解各种模型类别(包括深度神经网络)变得更加容易;(2) 它们在许多领域都有着出色的应用,并在这些领域达到了顶尖水平,包括主动学习、超参数学习、自动化机器学习(auto-ML)和时空回归;(3) 在过去几年中,算法的进步使得高斯过程的可扩展性和相关性越来越强,通过像 GPyTorch (Gardner et al., 2018) 这样的框架与深度学习相协调。事实上,高斯过程和深度神经网络不是相互竞争的方法,而是高度互补的,并且可以结合起来取得很好的效果。这些算法的进步不仅与高斯过程相关,还为数值方法提供了基础,这在深度学习中也具有广泛的用途。
在本章中,我们将介绍高斯过程。在介绍性的小节中,我们首先直观地探讨什么是高斯过程以及它们如何直接对函数进行建模。在先验的小节中,我们重点讨论如何指定高斯过程先验。我们将传统的权重空间建模方法与函数空间直接联系起来,这将帮助我们思考如何构建和理解机器学习模型,包括深度神经网络。然后我们介绍常用的协方差函数,也称为*核函数*,它们控制着高斯过程的泛化属性。给定核函数的高斯过程定义了函数上的先验。在推断的小节中,我们将展示如何使用数据来推断*后验*,以便进行预测。这部分包含了从零开始实现高斯过程预测的代码,以及对 GPyTorch 的介绍。在接下来的小节中,我们将介绍高斯过程背后的数值计算方法,这对于扩展高斯过程非常有用,同时也为深度学习提供了强大的通用基础,我们还将介绍一些高级用例,例如深度学习中的超参数调整。我们的例子将使用 GPyTorch,它使高斯过程具有可扩展性,并与深度学习功能和 PyTorch 紧密集成。