许多机器学习模型,例如线性回归或标准神经网络,设定一个具有固定参数集(权重、偏置)的模型结构。贝叶斯方法通常会对这些参数设置先验分布。例如,在贝叶斯线性回归中,一个常见假设是 y=wTx+ϵ,并对权重向量 w 设置高斯先验。模型的不确定性体现在这些参数的取值上。
高斯过程(GP)提供了一个不同的视角。它不将先验分布定义在特定函数形式的参数上,GP 允许我们直接在函数本身上定义先验分布。思考一下:如果我们能将生成数据的底层函数 f(x) 建模为从某个分布中提取的随机变量,那会怎样?这正是 GP 所实现的功能。
从有限维到无限维
您对多元高斯分布应该很熟悉,它描述了有限维向量 f=[f1,f2,...,fn]T 的概率分布。一个多元高斯分布由一个均值向量 μ 和一个协方差矩阵 Σ 来确定:
f∼N(μ,Σ)
协方差矩阵 Σ,其中 Σij=Cov(fi,fj),反映了向量 f 不同元素之间的关联。
现在,设想我们想定义一个关于函数 f(x) 的分布,其中 x 可以是某个输入域(可能是连续且无限的)中的任意一点。一个函数可以被视为一个无限长的向量,每个元素对应于函数在特定输入 x 处的值 f(x)。我们如何将多元高斯的思想扩展到这种无限维度的情形呢?
这便引出了高斯过程的定义。
严谨定义
高斯过程被严谨地定义为一组随机变量的集合,其任意有限子集都服从联合高斯分布。
令 f(x) 表示随机函数在输入 x 处的值。关于 f(x) 的高斯过程先验由两个函数指定:
- 均值函数 m(x): 此函数定义了函数在任意输入 x 处的期望值。
m(x)=E[f(x)]
- 协方差函数(或核函数) k(x,x′): 此函数定义了函数在两个不同输入点 x 和 x′ 处的值之间的协方差。
k(x,x′)=Cov(f(x),f(x′))=E[(f(x)−m(x))(f(x′)−m(x′))]
我们将从 GP 中提取的函数 f 表示为:
f(x)∼GP(m(x),k(x,x′))
这个定义的核心含义是:如果我们选择任意有限的输入点集 x=[x1,x2,...,xn]T,那么对应的函数值向量 f=[f(x1),f(x2),...,f(xn)]T 将服从多元高斯分布:
f∼N(μ,K)
其中:
- 均值向量 μ 的元素为 μi=m(xi)。
- 协方差矩阵 K(常被称为格拉姆矩阵)的元素为 Kij=k(xi,xj)。
均值函数与协方差函数的功用
均值函数 m(x) 反映了我们在观测任何数据之前,对函数平均形态的先验认知。实践中,通常假设均值函数为零,即 m(x)=0,尤其是在数据标准化之后。这简化了计算,并使得重点落在协方差函数上,由其来体现函数的结构。
协方差函数 k(x,x′) 是其中的关键所在。它定义了从 GP 先验中提取的函数的特性。它规定了在不同输入点上,函数值预期的相似程度。
- 如果 x 和 x′ 依据核函数中隐含的距离度量较为接近,那么 k(x,x′) 通常会较大,这表明 f(x) 和 f(x′) 高度相关(相似)。
- 如果 x 和 x′ 相距较远,那么 k(x,x′) 会较小,这表明相关性较低。
核函数的选择蕴含着我们对函数属性的假设,例如平滑性、周期性或平稳性。我们将在下一节详细阐述不同的核函数。
可视化高斯过程先验中的函数
为了直观感受这种“函数分布”是怎样的,我们可以从高斯过程先验中抽取函数样本。我们通过以下步骤进行:
- 选择一组输入点 x1,...,xn。
- 定义一个均值函数 m(x)(例如 m(x)=0)和一个协方差函数 k(x,x′)(例如平方指数核)。
- 计算这些点的均值向量 μ 和协方差矩阵 K。
- 从多元高斯分布 N(μ,K) 中抽取样本。
- 将这些样本绘制为函数(连接点 (xi,f(xi)))。
每一条线都代表从指定高斯过程先验分布中抽取的一个函数。请注意这些函数如何显示出平滑性,这种特性是由所选的 RBF 核函数所体现的。
本质上,GP 定义了无限维函数空间上的概率分布。这个先验包含了我们在看到任何数据点之前对函数的认知。当我们将这个先验与观测数据结合时(使用贝叶斯定理,正如我们将在 GP 回归中看到的那样),我们获得一个后验分布,它也是一个高斯过程,但它已根据数据信息进行了更新。这个后验 GP 使我们能够对新点的函数值进行预测,并提供不确定性估计。