我们应该牢记,在所有的测量、模型和离散化中,都存在着不确定性。对于测量和观测来说,这通常以测量误差的形式出现。而模型方程通常只包含我们感兴趣系统的部分(将其余部分作为不确定性),而对于数值模拟,我们本质上引入了离散化误差。因此,一个非常重要的问题是,我们如何确信我们得到的答案是正确的。从统计学家的角度来看,我们想知道后验概率分布,这是一个捕捉我们对模型或数据可能存在的不确定性的分布。
24.1 不确定性
在机器学习的背景下,这变得更加困难:我们通常面临着近似复杂和未知函数的任务。从概率的角度来看,训练神经网络的标准过程会产生网络参数的最大似然估计(MLE)。然而,这种MLE观点并没有考虑到上述任何不确定性:对于深度学习训练,我们同样有数值优化,因此存在学习表示的近似误差和不确定性。理想情况下,我们应该重新制定学习过程,使其考虑到自身的不确定性,并使后验推断成为可能,即学习如何产生完整的输出分布。然而,这被证明是一项极其困难的任务。
这就是所谓的贝叶斯神经网络(BNN)方法发挥作用的地方。它们通过对网络的各个参数的概率分布做出假设,允许进行后验推理。这给出了参数的分布,我们可以评估网络多次以获得不同版本的输出,并以此方式对输出的分布进行采样。
尽管如此,任务仍然非常具有挑战性。训练BNN通常比训练常规NN要困难得多。这并不奇怪,因为我们在这里试图学习的是根本不同的东西:完整的概率分布,而不是点估计。(所有之前的章节“只是”处理这样的点估计,而任务仍然远非微不足道。)
随机不确定性和认知不确定性
尽管本书不会详细介绍,但许多作品区分了两种不确定性,这里需要提到:
- Aleatoric 不确定性表示数据内部的不确定性,例如测量中的噪声。
- 另一方面,Epistemic 不确定性描述了模型内部的不确定性,例如训练的神经网络。
在接下来的内容中,我们将主要通过后验推断来研究 Epistemic 不确定性。但是,需要注意的是:如果它们一起出现,不同类型的不确定性(上述两种类型并不详尽)在实践中非常难以区分。
24.2 贝叶斯神经网络简介
为了将后验推断与神经网络相结合,我们可以使用贝叶斯建模中的标准技术,并将其与深度学习机制相结合。在贝叶斯建模中,我们的目标是学习模型参数的分布,而不是这些固定点估计。对于神经网络,模型参数是权重和偏置,由神经网络的总结。因此,我们的目标是从数据中学习所谓的后验分布,该分布捕捉我们在观察数据后对网络权重和偏置的不确定性。这个后验分布是这里的核心量:如果我们可以合理地估计它,我们可以用它来做出好的预测,但也可以评估与这些预测相关的不确定性。为了实现这两个目标,必须对后验分布进行边际化,即对其进行积分。例如,可以通过以下方式获得输入的单个预测:
同样地,可以计算标准差来评估对预测的不确定度度量。
24.3 先验分布
为了获得所需的后验分布,在贝叶斯建模中,首先必须定义一个先验分布,用于描述网络参数。这个先验分布应该包含我们在训练模型之前对网络权重的了解。例如,我们知道神经网络的权重通常非常小,可以是正数和负数。因此,中心正态分布是一个标准选择,具有一些小方差参数。为了计算简单起见,它们通常也被假定为彼此独立。当观察数据时,根据贝叶斯规则,权重的先验分布将被更新为后验分布:
这是我们在观察数据后更新先验知识的过程,即我们从数据中“学习”。贝叶斯更新所需的计算通常很复杂,特别是在处理复杂的网络结构时。因此,后验分布会被一个易于评估的变分分布近似,其中是参数化的。通常,对于每个权重,使用独立的正态分布。因此,参数包含这些正态分布的所有均值和方差参数。优化的目标是找到一个接近真实后验分布的分布。
评估这种接近程度的一种方法是KL散度,这是一种广泛应用于实践中用于衡量两个分布相似性的方法。
24.4 证据下界
我们无法直接最小化近似后验分布和真实后验分布之间的KL散度,因为我们无法获取真实后验分布。然而,可以证明我们可以等价地最大化所谓的证据下界(ELBO),这是一种在变分推断中广为人知的量:
ELBO(或负ELBO,如果更喜欢最小化而不是最大化)是BNN的优化目标。第一项是数据的期望对数似然。最大化它意味着尽可能好地解释数据。在实践中,对数似然通常是像均方误差这样的传统损失函数(注意,MSE可以被视为具有单位方差的正常噪声的负对数似然)。第二项是近似后验与先验之间的负KL散度。对于适当的先验和近似后验选择(例如上面的选择),可以通过解析方法计算这个项。最大化它意味着鼓励近似网络权重分布保持接近先验分布。从这个意义上讲,ELBO的两个术语具有相反的目标:第一个术语鼓励模型尽可能好地解释数据,而第二个术语鼓励模型保持接近(随机的)先验分布,这意味着随机性和正则化。
对数似然的期望通常无法以解析形式获得,但可以通过多种方式进行近似。例如,可以使用蒙特卡罗采样,并从中绘制个样本。然后通过来近似期望。在实践中,即使是单个样本,即也足够了。此外,对数似然的期望通常不是在整个数据集上评估的,而是通过数据批次进行近似,这使得可以使用批次随机梯度下降。
24.5 训练循环
当时,训练循环的一次迭代包括以下步骤:
- 抽取一个数据批次;
- 从中抽取网络权重和偏置;
- 根据抽取的权重将数据批次通过网络;
- 计算ELBO;
- 反向传播ELBO并更新。
如果,则需要重复步骤2和3 次以计算ELBO。从这个意义上讲,训练变分BNN与训练传统NN非常相似:我们仍然使用SGD和前向-后向传递来优化我们的损失函数。只是现在我们是在分布上进行优化,而不是单个值。如果您想知道如何通过分布进行反向传播,可以参考这里,并且在Y. Gals thesis的第2章和第3章中可以找到更详细的介绍贝叶斯神经网络。
24.5 替代方法Dropout
先前的研究表明,使用dropout等同于对概率深度高斯过程进行近似。此外,对于特定的先验条件(满足所谓的KL条件)和特定的近似后验选择(伯努利分布的乘积),使用dropout和L2正则化训练神经网络以及训练变分BNN会得到等效的优化过程。换句话说,dropout神经网络是贝叶斯神经网络的一种形式。
获得不确定性估计与训练传统神经网络并扩展dropout相当简单,而dropout通常仅在训练阶段使用,现在将其扩展到预测阶段。这将导致预测结果具有随机性(因为dropout会随机丢弃一些激活),从而使我们能够计算数据集中单个样本的平均值和标准差统计量,就像变分BNN的情况一样。
在学术界,关于变分方法和基于dropout的方法哪种更可取,仍存在持续的讨论。
24.6 一个实际例子
作为变分贝叶斯神经网络(Variational BNNs)后验推断的第一个真实示例,让我们重新审视一下空气动力学中的湍流绕流翼型案例,参考{doc}supervised-airfoils
。然而,与本节中学习的点估计不同,我们现在的目标是学习完整的后验分布。