摘要
基本的神经网络不能提供确定性估计,或者存在过度或过低的置信度,也就是说,校准得很糟糕。而不确定度至关重要的来源分为可还原的模型不确定度与不可还原的数据不确定度。本文充分讨论了基于deterministic neural networks, Bayesian neural networks, ensemble of neural networks, and test-time data augmentation的不确定性建模。对于一个实际应用,我们讨论了不同的不确定性度量,神经网络的校准方法,并给出了现有基线和可用实现的概述。
深度神经网络不确定性的起因
神经网络的非线性函数表示:
f
θ
:
X
→
Y
f
θ
(
x
)
=
y
.
f_\theta: \mathbb{X} \rightarrow \mathbb{Y} \qquad f_\theta(x)=y~.
fθ:X→Yfθ(x)=y .
有限数据集:
D
=
(
X
,
Y
)
=
{
x
n
,
y
n
}
n
=
1
N
⊆
D
.
\mathcal{D}=(\mathcal{X}, \mathcal{Y})=\{x_n,y_n\}_{n=1}^N\subseteq \mathbb{D}~.
D=(X,Y)={xn,yn}n=1N⊆D .
我们考虑从自然环境中的原始信息到网络预测的四个步骤及其对应的不确定度,即:
1)数据获取过程
2)DNN构建过程
3)用于推断的模型
4)预测不确定度的模型
这四个步骤包含一些不确定性和错误的潜在来源,再一次影响神经网络的最后输出。
我们认为引起DNN预测不确定性的5个最重要的起因是:
- 真实世界环境的可变性;
- 测量系统固有的错误;
- DNN模型结构规范的错误
- DNN训练过程的错误
- 未知数据的错误
A.数据获取
假设
ω
\omega
ω表示现实世界一只鸟,
x
x
x表示鸟的图片,
y
y
y表示鸟的label。在测量过程中,可能遇到随机噪声,信息发生损失。下面建模
x
x
x的随机性:
x
∣
ω
∼
p
x
∣
ω
.
x\vert\omega \sim p_{x\vert \omega}~.
x∣ω∼px∣ω .
等效地,对应的目标变量y也可以推出:
y
∣
ω
∼
p
y
∣
ω
.
y\vert\omega \sim p_{y\vert \omega}~.
y∣ω∼py∣ω .
神经网络在基于
N
N
N 个现实世界情境
ω
1
,
.
.
.
,
ω
N
\omega_1,...,\omega_N
ω1,...,ωN得到的
x
∣
ω
i
x|\omega_i
x∣ωi and
y
∣
ω
i
y|\omega_i
y∣ωi有限数据集上训练:
D
=
{
x
i
,
y
i
}
i
=
1
N
.
\mathcal{D}=\{x_i, y_i\}_{i=1}^N~.
D={xi,yi}i=1N .
在收集训练数据时,有两个因素会引起在这个数据上训练神经网络时的不确定性。
首先采样空间应该被训练数据充分覆盖,需要考虑不在
x
i
x_i
xi中出现的新样本
x
∗
x^*
x∗,因此诞生了第一个产生不确定性的因素。
因素1:真实世界情况的变化性 |
---|
大部分的真实世界环境是高度可变的,几乎不断受到变化的影响。这些变化影响例如温度、光照、混乱、物理对象的大小和形状等参数。环境的变化也会影响目标的表达,例如雨后的植物和旱灾后的植物看起来是很不一样的。当真实世界的情况和训练集相比发生改变时,就叫分布偏移。神经网络对于分布的平移是敏感的,这会导致神经网络性能的巨大变化。 |
第二个因素是基于测量系统,对样本和对应目标之间的相关性有直接的影响。测量系统生成的用于描述 ω i \omega_i ωi的 x i x_i xi和 y i y_i yi可能没有包含足够的信息来学习从 x i x_i xi到 y i y_i yi直接的映射。也就是说可能存在高度不同的信息 w i w_i wi和 w j w_j wj(例如城市和森林)却有着非常类似的相应的测量 x i x_i xi与 x j x_j xj(例如温度)或者类似的对应目标 y i y_i yi与 y j y_j yj(例如都把样本标注成森林的噪声)。这直接导致了第二个不确定性因素。
因素2:测量系统的错误和噪声 |
---|
测量本身就可能成为神经网络预测不确定性的来源。这可能是由测量中的限制性信息引起的,例如图像分辨率,或没有测量反例,或不够充分的信息模态。而且这可能是由噪声引起的,例如传感器噪声,因为移动或者机械应力引起的测量不精确。再进一步,错误的标签也是不确定性来源,它可以被视作测量系统中的错误和噪声。它作为标注噪声将通过训练阶段降低正样本的置信度而影响模型。 |
B.深度神经网络设计与训练
DNN的设计包含了神经网络的显示建模以及它的随机训练过程。神经网络设计和训练引入的问题结构假设称为归纳偏置。我们在架构配置 s 中总结了关于网络结构(参数量,层,激活函数等)和训练过程(优化算法,正则化,增广等)的所有建模者决策。网络架构定义给出了第三个神经网络不确定性的因素:
因素3:模型架构错误 |
---|
一个神经网络的架构对性能有直接的影响, 因此对于预测的不确定度也一样。例如参数的数量影响记忆容量,会导致训练数据的欠拟合和过拟合。关于神经网络的确定度,我们知道越深的网络对于他们的softmax输出会过度自信,就是说他们在最高概率概率分数的类别上预测的的概率太高。 |
对于一个给定的网络架构
s
s
s和一个训练数据集
D
D
D,神经网络的训练是一个随机过程,因此神经网络的结果
f
θ
f_\theta
fθ是基于一个随机变量,
θ
∣
D
,
s
∼
p
θ
∣
D
,
s
.
\theta\vert D, s \sim p_{\theta|D,s}.
θ∣D,s∼pθ∣D,s.
这个过程的随机是由于随机数据顺序,随机初始化,或者作为增广的随机正则化,或者dropout。神经网络的loss是高度非线性的,训练过程的随机性通常会导致不同的局部最优解 θ ⋆ \theta^\star θ⋆即不同的模型。另外,batch size,learning rate,training epochs都会影响训练导致不同模型结果。依赖于实际任务,这些模型能够在单个样本的预测中差异很大,甚至在整个模型性能上产生差异。这种对训练过程的敏感度直接导致了神经网络预测不确定性的第四个因素:
因素4:训练过程错误 |
---|
一个神经网络的训练过程需要定义许多参数(batch size, optimizer, learning rate, stopping criteria, regularization, 等等)以及训练过程中发生的随机决策(batch生成和权重初始化)。所有的这些决策影响了局部最优,因此不太可能两个训练过程得到同样的模型参数。训练数据集如果在数据分布中存在单一区域的不平衡或低覆盖率,也会引入网络学习参数的不确定性,正如在数据获取中已经描述的那样。这可以通过应用数据增强来增加多样性,或者通过平衡单个类或区域对损失函数的影响来缓解。 |
因为训练过程是基于给定的训练数据集 D D D,数据获取过程的错误(例如label噪声)就会导致训练过程的错误。
C.推理
推理描述了一个新的样本 x ∗ x^* x∗通过神经网络得到的预测 y ∗ y^* y∗。这是网络是为一个特定任务训练的。如果采样的样本不是这个任务的,那就会引起错误,成为不确定性的来源。
因素5:未知数据引起的错误 |
---|
特别是在分类任务中,一个从 W 1 W_1 W1世界衍生样本训练出的神经网络也有能力处理 W 2 W_2 W2世界衍生的样本。例如在猫和狗图片上训练出来的网络接收到鸟的样本。在这里,不确定性的来源不在于数据获取过程,因为我们假设一个世界只包含一个预测任务的可行输入。尽管实际结果可能等价于传感器上有太多的噪声或传感器完全故障,但这里考虑的数据代表一个有效的样本,但用于不同的任务或领域。 |
D.预测性不确定度建模
建模器主要感兴趣的是传播到预测
y
∗
y^*
y∗的不确定度,就是所谓的预测不确定度。已知样本
x
∗
x^*
x∗下预测
y
∗
y^*
y∗的条件概率分布为
p
(
y
∗
∣
x
∗
)
=
∫
Ω
p
(
y
∗
∣
ω
)
p
(
ω
∣
x
∗
)
d
ω
(RealDIST)
p(y^*|x^*) = \int_\Omega p(y^*|\omega)p(\omega|x^*)d\omega \tag{RealDIST}
p(y∗∣x∗)=∫Ωp(y∗∣ω)p(ω∣x∗)dω(RealDIST)
而最大后验估计为
y
∗
=
arg
max
y
p
(
y
∣
x
∗
)
.
(RealMAP)
y^* = \arg \max_y p(y | x^*)~. \tag{RealMAP}
y∗=argymaxp(y∣x∗) .(RealMAP)
因为建模是基于不可见的隐变量
ω
\omega
ω,所以一般都是基于一个包含N个样本及其目标的训练数据集
D
=
{
x
i
,
y
i
}
i
=
1
N
D=\{x_i, y_i\}_{i=1}^N
D={xi,yi}i=1N做一个近似表示。这样对一个新的样本
x
∗
x^*
x∗,上面两个公式对应的分布和MAP估计,在已知的样本上可通过下面两式预测:
p
(
y
∗
∣
x
∗
)
=
∫
D
p
(
y
∗
∣
D
,
x
∗
)
(DIST)
p(y^*\vert x^*) = \int_D p(y^*\vert \mathcal{D},x^*) \tag{DIST}
p(y∗∣x∗)=∫Dp(y∗∣D,x∗)(DIST)
与
y
∗
=
arg
max
y
p
(
y
∣
D
,
x
∗
)
.
(MAP)
y^* = \arg \max_y p(y | \mathcal{D},x^*)~. \tag{MAP}
y∗=argymaxp(y∣D,x∗) .(MAP)
通常情况下
(
D
I
S
T
)
(DIST)
(DIST)式给定的分布是未知的,只能根据
D
D
D中给定的数据估计。对于这种估计,神经网络为许多任务和应用形成了一个非常强大的工具。
神经网络的预测会遇到数据相关错误以及模型相关错误,因此与
y
∗
y^*
y∗有关的预测不确定性通常分为数据不确定性(也叫统计或者偶然不确定度)和模型不确定性(也叫系统或认知不确定性)。在基础研究上,一种额外的显式的分布不确定性建模用于建模训练数据分布未覆盖区域样本的不确定性。
1)模型和数据不确定性:模型不确定性涵盖了模型缺陷、训练过程中的错误、模型结构能力不足、缺乏未知样本的知识或者训练数据覆盖问题等。
与此相反,数据不确定性与直接来源于数据的不确定性有关。数据不确定性是由用一个数据样本去表示真实世界以及用
(
R
e
a
l
D
I
S
T
)
(RealDIST)
(RealDIST)式表示分布的信息损失引起的。例如,在回归任务中,输入和目标测量的噪声引起数据不确定性使得网络无法正确学习。在分类任务中,样本没有包含足够的信息来100%确认一个类别,在预测时就会引起数据不确定性。信息损失是测量系统的问题,比如用某个分辨率的图像像素去表示真实世界的信息,或者标注过程中引起的错误。考虑上述5个神经网络预测的不确定性因素,模型不确定性覆盖因素I,III,IV,V,数据不确定度与II相关。而模型不确定度理论上可以通过优化结构、学习过程或训练数据来降低,数据不确定度是无法解释的。因此,dnn有能力处理不确定性输入,有能力消除或量化模型不确定度以及给出一个数据不确定度的正确预测,对于大量真实世界的任务以及安全性很重要的应用是至关重要的。
贝叶斯框架提供了一个推出深度学习不确定度的实用工具。在贝叶斯建模中,模型不确定度被形式化为模型参数
θ
\theta
θ上的概率分布,而数据不确定度被形式化为给定参数模型
f
θ
f_\theta
fθ时模型输出
y
∗
y^*
y∗的概率分布。预测
y
∗
y^*
y∗的分布预测如下:
p
(
y
∗
∣
x
∗
,
D
)
=
∫
p
(
y
∗
∣
x
∗
,
θ
)
⏟
Data
p
(
θ
∣
D
)
⏟
Model
d
θ
.
(DMPred)
p(y^*|x^*, D)=\int\underbrace{p(y^*\vert x^*,\theta)}_{\text{Data}}\underbrace{p(\theta\vert D)}_{\text{Model}}d\theta~. \tag{DMPred}
p(y∗∣x∗,D)=∫Data
p(y∗∣x∗,θ)Model
p(θ∣D)dθ .(DMPred)
p
(
θ
∣
D
)
p(\theta|D)
p(θ∣D)是模型参数上的后验分布,描述了给定训练数据集D训出的模型参数的不确定度。后验分布通常是不容易计算的。而ensemble方法通过学习许多不同的参数设置和多个结果模型的平均来近似,贝叶斯推理使用贝叶斯法则重写为:
p
(
θ
∣
D
)
=
p
(
D
∣
θ
)
p
(
θ
)
p
(
D
)
.
(BayesRule)
p(\theta|D) = \frac{p(D|\theta)p(\theta)}{p(D)}~. \tag{BayesRule}
p(θ∣D)=p(D)p(D∣θ)p(θ) .(BayesRule)
p
(
θ
)
p(\theta)
p(θ)称为模型参数的先验分布,因为它除了
θ
\theta
θ的通用知识其他信息都不考虑。
p
(
D
∣
θ
)
p(D|\theta)
p(D∣θ)表示D中数据的分布是通过一个模型参数
θ
\theta
θ预测出来的似然度。许多损失函数都是受到似然函数启发或相关。损失函数旨在最大化log-likelihood(在一个假设分布上),例如交叉熵或平均平方误差。
甚至有了
(
B
a
y
e
s
R
u
l
e
)
(BayesRule)
(BayesRule)的重写,
(
D
M
P
r
e
d
)
(DMPred)
(DMPred)给定的预测分布依然很难解决。为了克服这个问题,许多不同的方法被提出来近似预测分布。
2)分布不确定性:依赖用于量化
y
∗
y^*
y∗不确定度的方法,预测性分布可进一步分解为数据的、分布的以及模型的部分:
p
(
y
∗
∣
x
∗
,
D
)
=
∫
∫
p
(
y
∣
μ
)
⏟
Data
p
(
μ
∣
x
∗
,
θ
)
⏟
Distributional
p
(
θ
∣
D
)
⏟
Model
d
μ
d
θ
.
(DDMPred)
p(y^*|x^*, D)=\int\int \underbrace{p(y\vert \mu)}_{\text{Data}}\underbrace{p(\mu\vert x^*,\theta)}_{\text{Distributional}}\underbrace{p(\theta\vert D)}_{\text{Model}}d\mu d\theta~. \tag{DDMPred}
p(y∗∣x∗,D)=∫∫Data
p(y∣μ)Distributional
p(μ∣x∗,θ)Model
p(θ∣D)dμdθ .(DDMPred)
(
D
D
M
P
r
e
d
)
(DDMPred)
(DDMPred)中分布的部分表示实际网络输出的不确定度,例如分类任务可能是一个狄利克雷分布,它是给定softmax输出下分类分布上的分布。这种方式建模的分布不确定度是输入分布的一个变化引起的不确定度,而模型不确定度是由构建和训练dnn的过程引起的不确定度。如
(
D
D
M
P
r
e
d
)
( DDMPred)
(DDMPred)所示,模型不确定度影响了分布不确定度的估计,分布不确定度影响了数据不确定度的估计。
下图是数据、模型、分布不确定度的可视化:
E.不确定性分类
根据输入数据的domain,预测不确定度可以分为三种主要类型。
- in-domain不确定度
in-domain不确定度表示与“从训练数据分布一致的分布采样的输入”相关的不确定度。in-domain不确定度源于深度神经网络不能解释in-domain样本(由于缺乏in-domain知识)。从建模者的视角,in-domain不确定度是由设计错误(模型不确定度)以及手头问题的复杂度(数据不确定度)引起的。从in-domain不确定性起源出发,可能通过增加训练数据集或者训练过程可以缓解。 - domain-shift 不确定度
domain-shift不确定度表示从一个与训练数据分布有偏移的分布中获得输入的不确定度。这样的分布偏移是由于训练数据收敛不充分以及真实世界固有的可变性导致的。domain-shift可能由于DNN无法解释训练时可见样本外的域偏移样本而增加不确定性。一些造成domain偏移不确定度的错误是可以被建模的,因此也能降低。例如遮挡样本就能通过神经网络的学习来减少遮挡引起的domain shift不确定性。然后,如果不能建模所有引起domain shift的错误,例如移动噪声,那还是很困难。从一个建模者的视角,domain-shift不确定性是由外部或者环境因素引起的,可以通过在训练数据集上覆盖偏移的domain来降低。 - out-of-domain 不确定度
out-of-domain的不确定度表示来自未知数据子空间的输入相关的不确定度。未知数据的分布和训练分布不同且相距甚远。DNN虽然可以从domain-shift样本中学到in-domain的知识,但无法从out-of-domain样本中学到。例如,domain-shift不确定描述的现象就像狗的模糊图像,out-of-domain不确定度描述的是学习了分类猫和狗却用来预测鸟。out-of-domain不确定度来源于对out-of-domain知识的匮乏。从建模者的视角,ouf-of-domain不确定度是输入样本引起的,网络并不想在缺乏充分训练样本时给出一个预测。
模型不确定度捕捉到了dnn由于缺乏in-domain或者out-of-domain知识而不知道的东西,因此它捕捉了所有in-dmain,domain-shift和out-of-domain不确定度。相比而言,数据不确定度捕捉了由训练数据自然属性导致的in-domain不确定度,例如样本重叠和系统标注噪声。