【摘要】 深度神经网络是强大的黑盒预测器,最近在广泛的任务中取得了令人印象深刻的性能。量化神经网络中的 预测不确定性 是一个具有挑战性但尚未解决的问题。贝叶斯神经网络能够学习权重分布,是目前估计 预测不确定性 的最先进技术;但其需要对训练过程进行重大修改,并且与标准(非贝叶斯)神经网络相比,计算成本很高。在本文中,我们提出了贝叶斯神经网络的替代方案:深度集成。该方案易于实现、易于并行化并产生高质量的 预测不确定性 估计。通过一系列关于分类和回归基准的实验,我们证明它能够产生校准良好的不确定性估计,并且与贝叶斯神经网络一样好甚至更好。最后,我们评估了测试样本(类别已知或未知)的 预测不确定性 ,结果表明我们的方法能够在未知类上表达出更高程度的不确定性,这与y现有方法对未知类别也做出过度自信的预测相比,存在明显改进。

【原文】 Lakshminarayanan, B., Pritzel, A. and Blundell, C. (2017) ‘Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles’.

概述

深度学习方法在各种机器学习任务上取得了最先进的性能,在计算机视觉[19]、语音识别[16]、自然语言处理[25]和生物信息学[20]等领域越来越受欢迎。尽管在监督学习问题上有令人印象深刻的分类精度(分类问题)和平均平方误差(回归问题),但神经网络在量化预测不确定性方面很差,而且倾向于对预测过于自信。

评估 预测不确定性 的质量是具有挑战性的,因为通常无法获得数据的真实条件概率。在这项工作中,我们重点关注两种有关不确定性量化的测度:

  • 一是校准(calibration) [7, 8]。从形式上看,校准是主观预测和(经验)长期频率之间的差异。这是一个频率主义的不确定性概念:如果一个神经网络声称某个特定的标签在 90%90\% 的情况下是正确标签,那么,在评估过程中,所有被赋予 90%90\% 正确概率的标签中,90%90\% 应该是正确的标签。校准可以通过正确的评分规则[12]来激励,如对数预测概率Brier评分[6]。有趣的是,这两个评分规则常用于深度学习中,但没有被用于激励校准。请注意,校准是 准确率(Accury)的正交相关:一个神经网络的预测可能是准确但未校准的。
  • 另一个概念与 未知的不确定性模型的错误指定 相关的泛化能力有关。例如,如果在测试时引入了一个新类别,那么此新类别的样本应该有很高的 预测不确定性 。或者说,如果在一个数据集上训练得到的神经网络,在另一个完全不同的数据集上被评估,那么该神经网络应该有很高的 预测不确定性

模型错误指定域偏移 具有鲁棒性的、校准良好的预测,具有许多重要的实际用途。已校准的预测是许多关于物理世界预测问题的核心(例如,天气、地震、医学诊断等),并且可以按照频率主义的不确定性概念客观地理解和传递(通常被故障前平均时间、医疗预测等概念所部分地捕获)。校准后的预测也允许模块化;如果系统的所有组件都经过良好校准,那么各种预测的不确定性可以很容易地整合为不同模块之间的通用不确定性流。对错误指定的鲁棒性,是许多现实世界应用中的常见要求,因为训练数据不完整或落后于要进行预测的最新数据。对轻微的 错误指定域偏移 具有鲁棒性,使神经网络无需重新训练即可继续有用(或至少知道它没有用)。

近年,人们对调整神经网络(以包含不确定性和概率方法)产生了浓厚兴趣。该工作大部分围绕着贝叶斯形式[1]展开,其中先验分布是在单个神经网络权重上指定的,然后推导出一个后验分布的近似方案,在合并后推断神经网络权重的后验分布训练数据。近似贝叶斯方法学习神经网络参数的后验分布,并使用此近似后验分布来估计 预测不确定性 。贝叶斯神经网络的早期工作集中在马尔可夫链蒙特卡洛(MCMC)方法和拉普拉斯近似,参见。 MacKay [23] 和 Neal [29] 的开创性工作。基于 MCMC 的贝叶斯神经网络是“评估 预测不确定性 挑战”中表现最好的方法之一(详见 [31])。虽然 MCMC 可用于小型神经网络,但对于大型深度神经网络而言,它的计算成本很高。因此,最近关于神经网络不确定性的工作主要集中在相对更快的近似贝叶斯解决方案上,例如变分贝叶斯方法 [3、14、22]、假设密度滤波 [15]、期望传播 [21、35] 或随机梯度朗之万扩散方法 [18, 36]。这些近似值不能保证提供反映潜在信念的不确定性估计(可能在无限数据的限制下除外)。实际上,变分贝叶斯方法通常会低估后验不确定性,而期望传播方法通常会高估后验不确定性。使用这些方法获得的预测分布的质量取决于(1)近似程度(由于计算限制)和(2)先验分布是否“正确”(例如,模型可能指定错误);例如,Rasmussen 和 Quinonero-Candela [32] 讨论了一个例子,其中便利的先验导致不合理的 预测不确定性 。即使是精确的贝叶斯后验也不一定对未知类或数据集移位的错误指定具有鲁棒性。现代神经网络的巨大参数空间混合了这两个问题。与非贝叶斯神经网络相比,贝叶斯神经网络的训练计算速度通常较慢,实施起来也更加困难,这就需要一种“通用解决方案”,该解决方案可以提供校准的不确定性估计,并且只需要对标准训练管道进行少量修改。

最近,Gal 和 Ghahramani [10] 提出使用 Monte Carlo dropout (MC-dropout) 在测试时使用 Dropout [33] 来估计 预测不确定性 。已经有关于 dropout 的近似贝叶斯解释 [10, 17, 24] 的工作。然而,dropout 也可以解释为集成模型组合 [33](与贝叶斯模型平均相反),其中预测是在多个网络上平均的。后一种近似似乎更合理,特别是在辍学率未根据训练数据调整的情况下(因为对真实贝叶斯后验分布的任何合理近似都必须取决于训练数据)。长期以来,人们一直观察到模型的集成可以提高整体性能(参见 [9] 的评论)。假设真实模型位于先验假设类内,贝叶斯模型平均尝试以软方式找到单个最佳模型(或参数)。相反,集成执行模型组合,即它们组合模型以获得更强大的模型;当真实模型不在假设类中时,可以预期集成会更好(相关讨论参见[26])。因此,集成可能为估计 预测不确定性 的方法提供补充来源

我们在本文中的贡献有两方面。首先,我们描述了一种简单、可扩展的方法,用于从神经网络估计 预测不确定性 。我们证明了对训练管道的两个简单修改,即 (i) 集成和 (ii) 对抗训练 [13],足以为监督学习获得校准良好的不确定性估计。其次,我们提出了一系列任务来评估 预测不确定性 估计的质量,在监督学习问题中对未知数的校准和泛化。长期以来,神经网络的集成已成功地用于提高预测性能(例如 Imagenet 中的分类准确性),并且对抗性训练已被用于提高对抗性样本的鲁棒性;然而,据我们所知,我们是第一个研究它们对 预测不确定性 估计的有用性的工作,并将它们的性能与当前最先进的近似贝叶斯方法在一系列分类和回归基准数据集上进行比较。与贝叶斯神经网络(例如变分推理或蒙特卡洛方法)相比,我们的方法更易于实现,非常适合分布式计算,并且对标准神经网络的修改极少,因此对大规模应用具有吸引力。

2 深度集成:不确定性估计的方法

2.1 问题设置和顶层摘要

假设训练数据集 D\mathcal{D}NN 个独立同分布( i.i.d)样本组成。数据点 D={xn,yn}n=1N\mathcal{D}= \{\mathbf{x}_n,y_n\}^N_{n=1},其中 xRD\mathbf{x} \in \mathbb{R}^D 表示 DD 维特征。对于分类问题,假设标签是 KK 个类别之一,即 y{1,,K}y \in \{1,\ldots,K\}。对于回归问题,假设标签为实值,即 yRy \in \mathbb{R}。对于任意给定的测试数据点 x\mathbf{x},任务目标是求预测分布 pθ(yx)p_θ(y \mid \mathbf{x}),其中 θ\theta 是神经网络的参数。

我们提出了一个简单的方法:

(1)选用正确的评分规则作为训练标准;
(2)使用对抗训练方法来平滑预测分布;
(3)训练一个集成模型。令 MM 表示集成中神经网络的数量,{θm}m=1M\{θ_m\}^M_{m=1} 表示第 mm 个网络的参数。

下面首先描述如何训练单个神经网络,然后解释如何训练神经网络集成。

2.2 选用正确的评分规则

评分规则 主要用于衡量 预测不确定性 的质量(参见[12] 的综述)。评分规则给预测分布 pθ(yx)p_θ(y \mid \mathbf{x}) 赋予数值分数,用以奖励校准更好的预测。本文中,我们将考虑分数越高越好的评分规则。

假设评分规则为一个函数 S(pθ,(y,x))S(p_θ,(y,\mathbf{x})),它能够评估 预测分布 pθ(yx)p_θ(y|\mathbf{x}) 相对于 来自真实分布的某个事件 (y,x)q(yx)(y,\mathbf{x}) \sim q(y \mid \mathbf{x}) 的质量,其中 q()q(·) 表示 (y,x)(y,\mathbf{x}) 元组上的真实分布。则平均评分规则可以被定义为:

S(pθ,q)=q(y,x)S(pθ,(y,x))dydx(1)S(p_θ,q) = ∫ q(y,\mathbf{x}) S(p_θ,(y,\mathbf{x}))d{y} d{\mathbf{x}} \tag{1}

正确的评分规则应当满足 S(pθ,q)S(q,q)S(p_θ,q) \ge S (q,q) ,当且仅当 pθ(yx)=q(yx)p_θ(y \mid \mathbf{x}) = q(y \mid \mathbf{x}) 时(对于所有 pθp_θqq )等号才成立。如果令损失 L(θ)=S(pθ,q)L(θ) = -S(p_θ,q),则最小化损失函数可以用于鼓励对 预测不确定性 的校准,并用于训练神经网络 。

事实证明,许多常见的神经网络损失函数都是一种正确的评分规则。例如,在最大似然时,评分规则为 S(pθ,(y,x))=logpθ(yx)S(p_θ,(y,\mathbf{x})) = \log p_θ(y \mid \mathbf{x}),依据 Gibbs 不等式,这是一个正确的得分函数:S(pθ,q)=Eq(x)KL[q(yx)pθ(yx)]S(p_θ,q) = \mathbb{E}_{q (\mathbf{x})} \mathbf{KL}[q(y \mid \mathbf{x}) \| p_θ(y \mid \mathbf{x})]

有趣的是,在 KK-分类的情况下,S(pθ,(y,x))=k=1K(δk=ypθ(y=kx))2S(p_θ,(y,\mathbf{x})) = - \sum^{K}_{k=1}( \delta_{k=y} -p_\theta(y = k \mid \mathbf{x}))^2 ( 即最小化预测标签概率向量正确标签独热向量之间的平方误差)也是一个正确的评分规则,称为 Brier 评分 [6]。这为 利用最小化二分类标签与其相关概率之间的平方误差来训练神经网络 的常用技巧提供了依据,并表明它实际上是一个具有理想性质且定义明确的损失函数。

2.3 对抗性训练

对抗性样本 ( 由 Szegedy 等 提出 [34] 并由 Goodfellow 等扩展 [13] )是那些与原始训练样本接近、但却被神经网络错误分类的样本(例如,与原始图像在视觉上难以区分的图像 )。Goodfellow 等 [13] 提出了生成对抗样本的 快速梯度符号方法 。给定一个目标为 yy 的输入 x\mathbf{x} 和损失 (θ,x,y)\ell (\theta,\mathbf{x},y)( 例如 logpθ(yx)-\log p_θ(y \mid \mathbf{x}) ),快速梯度符号方法 采用如下方式生成对抗样本:

x=x+ϵsign(x(θ,x,y))(2)\mathbf{x} ^ \prime = \mathbf{x}+ \epsilon \cdot \text{sign} \left (\nabla_\mathbf{x}\ell(\theta,\mathbf{x},y)\right) \tag{2}

其中 ϵ\epsilon 是一个很小的值,以使扰动发生在有限的最大范数内。直观地说,该方法沿着可能使神经网络增加损失的方向调整,通过在真实样本上逐步 添加对抗性扰动 来创建新的样本。如果 ϵ\epsilon 足够小,则可以将这些对抗性样本 (x,y)(\mathbf{x}^\prime,y) 视为新增的训练样本,用于增强原始训练集。此过程被称为对抗训练,已被证实可以提高分类器的鲁棒性。

本文中,我们为此过程添加了一个新视角。考虑以下评分规则:

S(pθ,(y,x))=αlogpθ(yx)+(1α)logpθ(yx+Δx)(3)S(p_θ,(y,x)) = \alpha \log p_θ(y \mid x) + (1 − \alpha) \log p_θ(y \mid \mathbf{x}+ \Delta \mathbf{x}) \tag{3}

其中:

Δx=sign(xlogpθ(yx)(4)\Delta x= \text{sign}(− \nabla \mathbf{x} \log p_θ(y \mid \mathbf{x}) \tag{4}

α\alpha 用于平衡最大似然分数和对抗分数。如果 α=0\alpha = 0,则 式 (3) 是正确的评分规则,因为对数似然本身是正确的。我们的结果表明对于 α>0\alpha > 0式 (3) 能够产生良好的校准。直观地说,我们的目的是:增加目标在已观测训练样本的 ϵ\epsilon- 邻域的似然,以平滑预测分布。

理想情况下,人们希望在 {1,1}D\{1,-1\}^D 中沿所有 2D2^D 个方向平滑预测分布;但这在计算上过于昂贵。一个随机方向不一定会增加损失;但根据对抗性训练的定义,它会计算损失更高、更适合平滑预测分布的方向。

Miyato 等 [27] 提出了一个想法,被称为 虚拟对抗训练 (VAT),他们选择 Δx=argmaxΔxKL(p(yx)p(yx+Δx))\Delta x= \arg \max_{\Delta \mathbf{x}} \mathbf{KL} \left ( p(y \mid \mathbf{x}) \| p(y \mid \mathbf{x}+ \Delta \mathbf{x}) \right)VAT 的优点是它不需要知道真实目标 yy ,因此可以应用于半监督学习。Miyato 等 [27] 表明,使用了 VAT 的分布平滑有利于高效的半监督学习;而我们的试验结果表明:对抗性训练有助于更好地估计 预测不确定性。因此,我们的贡献是互补的,大家可以使用 VAT 来改善半监督环境中的 预测不确定性

2.3.1 异方差回归的训练准则

对于回归问题,神经网络通常输出单个值,例如 μ(x)μ(\mathbf{x}),并优化参数以最小化训练集上的 均方误差 (MSE),由 n=1N(ynμ(xn))\sum^N_{n=1} (y_n - μ(\mathbf{x}_n)) 给出。然而,MSE 方法无法得到 预测不确定性,或者说它假设所有 x\mathbf{x} 的不确定性都相同。 学习 [30] ,我们可以使用在最后一层输出两个值的神经网络,分别对应于预测的均值 μ(x)μ(\mathbf{x}) 和方差 σ2(x)>0σ^2(\mathbf{x}) > 0。通过将已观测的目标值视为来自高斯分布的样本(由预测均值和方差指定),我们可以最小化负对数似然准则:

logpθ(ynxn)=12logσθ2(x)12σθ2(x)(yμθ(x))2+constant(5)\log p_θ(y_n|\mathbf{x}_n) = -\frac{1}{2} \log σ^2_θ(\mathbf{x}) − \frac{1}{2σ^2_θ(\mathbf{x})} (y −μ_θ(\mathbf{x}))^2 + \text{constant} \tag{5}

我们发现上式在实验中表现令人满意。但是,两个简单的扩展值得进一步研究: (1) μθ(x)μ_θ(\mathbf{x})σθ2(x)σ^2_θ(\mathbf{x}) 的最大似然估计可能会出现过拟合,可以尝试添加一个正则化先验并执行最大后验(MAP)估计来抑制过拟合;(2)在高斯分布的假设过于严格的情况下,可以尝试使用 混合密度网络(MDN) [2] 。

使用神经网络的集成来获得多个预测,并使用神经网络预测的经验方差作为不确定性的近似度量也是一个很诱人的方案。但这种方法通常会导致校准不良的预测概率。作为一个例子,我们在 Year Prediction MSD 数据集上生成了校准曲线(也称为可靠性图)。首先,我们使用预测均值和方差基于高斯分位数计算每个测试数据点的 z%z\%(例如 90%90\%)预测区间。接下来,测量有多少测试观测值落在这个预测区间内。对于校准良好的回归器,观测得分应接近 z%z\% (即呈对角线分布)。我们以 1010 为增量计算 z=10%z = 10\%z=90%z = 90\% 的观察分数,并在 图 1 中报告结果。经过良好校准的回归器应该非常靠近对角线;在左侧子图中,我们观察到所提出的方法,它学习了预测方差,导致了一个校准良好的回归器。然而,在右侧子图中,我们观察到,未学习预测方差的神经网络(即传统的点估计神经网络)获得的经验方差,始终低估了真实的不确定性。例如 80%80\% 的预测区间中仅包含 20%20\% 的观测值,这意味着经验方差低估了真实的预测不确定性,或者说预测过于自信了。

图 1:Year Prediction MSD 数据集的校准结果:xx 轴表示预期分数,yy 轴表示观测到的分数;理想输出为蓝色虚线。可以看预测方差(左)比经验方差(右)校准得更好。更多细节见正文。

2.4 集成:训练和预测

最流行的集成通常使用决策树作为基础学习器,这在集成的相关文献中已经探索了多种方法。总的来说,有两类集成:

  • 一是基于随机化的方法,例如随机森林 [5],其中集成成员可以在没有任何交互的情况下并行训练;
  • 二是基于提升的方法,其中集成成员按顺序拟合。

在这里,我们只关注基于随机化的方法,因为它更适合分布式计算。 Breiman [5] 表明, 随机森林的泛化误差可以通过树之间的强度(Strength)和相关性(correlation)的某个函数定义上限。因此,最好使用某种随机化方案,使各模型的预测之间能够在去相关的同时,还能确保模型健壮(strong)(例如高精度)。

流行的策略之一是 bagging (即 boostrapping),其中集成成员在原始训练集的不同 boostrap 样本上进行训练。当基础学习器缺乏内在的随机性时, bootstrap 是一种很好的产生模型多样性的机制;但如果基础学习器不稳定(例如存在多个局部最优),则 bootstrap 有时可能会损害性能,因为在 bootstrap 样本上训练的基础学习器只能看到 63%63\% 的唯一数据点。在关于树集成的文献中,Breiman [5] 建议在每个节点上使用 bagging( 即 boostrapping )[4] 和随机子集的组合。 Geurts 等人 [11] 后来表明,如果可以将额外的随机性注入随机子集选择过程,则不需要 bootstrap使用更多数据来训练基础学习器有助于减少他们的偏差,而更多的集成成员则有助于减少方差

我们使用整个训练数据集来训练每个网络,因为深度神经网络通常在处理更多数据时表现更好,尽管它也可以直接使用随机子样本。我们发现 神经网络参数的随机初始化 以及 数据点的随机混排 足以获得良好的性能。算法 1 总结了整个训练过程。

我们将集成视为平均加权的混合模型,并将预测组合为:

p(yx)=1Mm=1Mpθm(yx,θm)(6)p(y \mid \mathbf{x}) = \frac{1}{M} \sum \limits^M_{m=1} p_{\theta_m} (y \mid \mathbf{x},\theta_m) \tag{6}

对于分类任务,上式的预测对应于平均的类预测概率。对于回归任务,则其对应的可能是高斯分布的混合。为了便于计算分位数和对数预测概率,我们进一步将集成的预测近似为高斯,其均值和方差分别是混合的均值和方差。

3 试验结果

3.1 评估指标和实验设置

3.2 玩具数据集上的回归实验

3.3 真实世界数据集上的回归实验

3.4 MNIST 和 SVNH 数据集上的分类实验

3.5 不确定性评估:分布外数据的测试示例

在最后的实验中,我们评估了分布外样本的不确定性。

对未观测到的类别产生过度自信的预测,对现实世界中深度学习模型的实际部署带来了挑战。当测试数据与训练数据非常不同时,我们希望预测表现出更高的不确定性。为了测试所提出的方法是否具有此理想特性,我们使用与以前相同的架构在标准的 MNIST 训练/测试集上训练了多层感知机。不过,除了具有已知类的常规测试集外,我们还在包含未知类的测试集上进行了评估。我们使用了 NotMNIST 数据集 的测试集。该数据集中的图像与 MNIST 大小相同,但标签是字母而不是数字。我们无法获得真正的条件概率,但希望在真实目标上的已知类别相比时,在未见类别上的预测更接近均匀分布(即哪个类都不像)。

我们评估预测分布的熵,并使用它来评估不确定性估计的质量。结果如 图 7 所示。对于已知类(顶行),集成方法MC-dropout 都具有预期的低熵。对于未知类(底行),随着 MM 的增加,深度集成MC-dropout 的熵增加得快得多,这表明集成方法更适合处理未观测过的测试示例。特别是,MC-dropout 似乎对一些测试样本(即使属于未观测过的类)给出了高置信度的预测,00 附近的峰值也证明了这一点。

图 7:已知类(顶行)和未知类(底行)的测试示例的预测熵直方图,因为我们改变了集成中的网络数量

比较我们自己方法的不同变体,对抗性训练方案的增长速度比传统集成更快,这表明对抗性训练有利于量化未知类的不确定性。作为一项额外的定性测量,在 图 8 中,我们分别报告了前两行中差异(Disagreement)最小和下两行差异最高的样本。从前两行中,我们看到字母“I” 的集成一致性最高,类似于 MNIST 训练数据集中的 “1”。从底部的两行中,可以看到与 MNIST 训练数据集在视觉上不同的样本的集成差异更高。

此处将差异定义为 m=1MKL(pθm(yx)pE(yx))\sum^M_{m=1} \mathbf{KL}(p_{θ_m}(y \mid \mathbf{x}) \| p_E(y \mid \mathbf{x})) 其中 KL表示KullbackLeibler散度,pE(yx)=M1mpθm(yx)\mathbf{KL} 表示 Kullback-Leibler 散度,p_E(y \mid \mathbf{x}) = M^{−1} \sum_m p_{θ_m}(y \mid \mathbf{x}) 是集成的预测结果。

图 8:在 MNIST 上训练并在包含未知类的 NotMNIST 数据集上测试的神经网络:前两行表示差异最小的测试样本,底部两行表示差异最大的测试示例

4 讨论

我们提出了一个简单且可扩展的解决方案,它为不确定性量化的评估指标提供了非常强大的基线。我们的方法使用评分规则作为训练目标,以鼓励神经网络产生更好的校准预测,并结合使用集成和对抗训练来提高模型错误指定和数据集偏移的鲁棒性。我们的方法非常适合大规模分布式计算,并且可以很容易地用于各种架构,例如 MLP、CNN 等,包括那些不使用 Dropout 的架构(例如残差网络)。贝叶斯深度学习社区可能会感到惊讶的是,非贝叶斯(但概率)方法可以像贝叶斯神经网络一样运行良好。我们希望此工作将推动社区思考混合方法(例如:使用集成等非贝叶斯方法),以及其他评估预测不确定性的测度指标。