有一种通过训练单个标准神经网络来做出贝叶斯预测的方法。我们称之为先验数据拟合网络 (PFNs)。顾名思义,PFNs 在先验数据的样本上进行训练。这意味着我们从先验生成数据集,并训练单个神经网络,根据数据集的其余部分,对数据集的一个子集进行预测。
什么是贝叶斯预测模型
我们将讨论一种贝叶斯模型的例子,即贝叶斯神经网络 (BNN)。
让我们从 BNN 的定义开始。BNN 是一个神经网络,我们对其权重设置一个(通常是简单的)先验。假设我们的先验是权重像 $latex p(w) = \mathcal{N}(0,\alpha \mathbb{I})$ 一样分布。经典方法是现在找到后验 $latex p(w|D)$,其中 $D$ 是给定的(监督)数据集。我们可以通过使用 $latex p(w|D) = \frac{p(D|w)p(w)}{\int p(D|w)p(w) dw}$ 来找到它,现在我们只需要知道给定 w 的数据的概率 $latex p(D|w)$,这对于 MLP 来说很容易计算,即我们把 D 中的所有 x 输入到权重为 $latex w$ 的神经网络中,并构建输出 y 在 D 中的 softmax 概率的乘积 $latex \prod p(y|w,x)$。
然而,为了做出预测 $latex p(y|x,D)$,需要对所有权重进行最终的积分,即 $latex p(y|x,D) = \int p(w|D) p(y|w,x) dw$。$latex p(y|x,D)$ 称为后验预测分布 (PPD),因为它是由后验产生的预测分布。在数学上很简单,只有 2 个方程。在实践中,这很难近似,因为我们通常有两个多维积分堆叠在一起。虽然有方法可以做到(如 MCMC),但它们通常每个预测都非常昂贵,例如,需要数天的计算时间。
还有许多其他的贝叶斯预测模型。它们共同的特点是,预测是使用(PPD 的近似值)做出的,该近似值基于预先定义的先验。
使用 PFNs 近似贝叶斯预测
现在我们将解释 PFNs。我们不会深入研究它们如何成为贝叶斯预测 $latex p(y|x,D)$ 的近似值,而是将其留到下一节。
PFNs 是接受训练集 $latex D$ 和测试输入 $latex x$ 的神经网络,它们返回 $latex p(y|x,D)$ 分布的近似值。
PFNs 使用 Transformer 来编码训练集 $latex D$ 和一组测试输入 $latex x_1,..,x_n$,如图所示。

PFNs 的一个非常相关的任务是回归,因为像高斯过程这样的贝叶斯模型通常关注它。我们发现,将回归分布编码为离散分布,即所谓的 Riemann 分布,而不是预测正态分布或类似分布,效果要好得多。因此,我们的回归头具有一个关于 $latex y$ 的 PDF,看起来如下所示。

然而,PFNs 的主要创新在于它们的训练方式。PFN 的权重实际上仅在合成数据上进行训练。也就是说,我们假设一个先验,例如高斯过程先验或 BNN 先验,如上所述。现在我们从其关于数据集的先验分布 $latex p(D)$ 中采样数据集。对于 BNN 示例,这意味着对于每个数据集,我们首先从先验中采样神经网络的所有权重(潜在变量)。然后,我们从一个宽泛的分布中采样随机输入,通常是单位立方体或标准正态分布,并将它们输入到神经网络中。最后,我们将每个数据集的一个子集作为训练集,将另一个作为我们想要拟合输出的测试输入。下面我们在图中总结了这个过程。

PFNs 的贝叶斯解释
实际上,可以证明,如果在训练到最优并且 PFN 架构可以表示精确的 PPD 的情况下,以上述方式训练的 PFNs 会近似真实的后验预测分布。换句话说,PFN 训练损失与近似 PPD 完全一致。我们在我们的 初始论文 中更详细地展示了这一点。
