What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?

时间:2024-03-15 13:45:43


本文转自:http://blog.csdn.net/weixin_39779106/article/details/78968982

原论文链接

一、摘要:

  1. 主要有两大类不确定性,偶然不确定性(aleatoric uncertainty)和认知不确定性(epistemic uncertainty),偶然不确定性用来描述观测中固有的噪声;认知不确定性则是用来描述模型中的不确定性。认知不确定性往往比较难计算,但现在可以利用基于贝叶斯深度学习的方法进行求解。本文利用贝叶斯深度学习方法对两种不确定性进行建模用以解决计算机视觉中的相关问题。
  2. 本文提出了一种结合偶然不确定性以及认知不确定性的贝叶斯深度学习架构。本文利用该架构完成素级的语义分割和深度回归的任务。
  3. 同时,基于所提出的不确定性公式,本文针对以上问题设计了新的损失函数,这使得衰减项对噪声具有更高的鲁棒性,同时得到目前性能最好的语义分割和深度回归结果。

二、介绍:

  1. 很多机器学习算法可以很好地将高维空间的数据映射成低维数组,但很少考虑这些映射的准确率,从而导致很多灾难性的后果。
  2. 量化不确定性在计算机视觉领域可以被分为回归和分类两大类。现存的描述不确定性的方法有粒子滤波法,条件随机场法。深度学习方法往往很难描述不确定性。例如在分类问题中,深度学习算法常常更够给出归一化的得分向量,但是不需要计算模型的不确定性。基于贝叶斯的深度学习算法则可以在拥有深度学习高性能的同时计算出模型的不确定性。
  3. 同方差不确定性(homoscedastic)和异方差不确定性(heteroscedastic)。偶然不确定性是同方差不确定性,是模型固有不确定性;认知不确定性是异方差不确定性,是由于每个输入的噪声不同造成的。
  4. 在大数据背景下对偶然不确定性进行建模是十分重要的,偶然不确定性往往是不能通过大量数据进行解释的,因此本文提出一种统一的贝叶斯深度学习框架对偶然不确定性进行映射并将其与认知不确定性相结合,本文所提出的框架可同时在分类和回归问题中进行使用。

创新点:

  1. 我们掌握了对偶然和认知不确定性的精确的描述方法,特别的,我们提出了一种新的基于不确定性的 分类方法。
  2. 通过明确表示出偶然不确定性而获得的隐含衰减(the implied attenuation)减少了噪声的影响,基于此,我们提出的模型可以提高非贝叶斯模型性能的1-3%。
  3. 本文通过表征两种不确定性的特性以及比较两种模型的性能和计算时间来研究如何对两者进行权衡。

三、相关工作:

1. 在贝叶斯深度学习中如何对认知不确定性进行建模:

  1. 根据先验分布对神经网络权重进行初始化,例如利用高斯分布初始化。
  2. 贝叶斯神经网络(BNN)的权值不是特定的数值,而是用概率分布来表示。在对权值进行优化时,不直接优化数值,而是对所有可能的权值进行平均(也称为边缘化‘marginalisation’)。
  3. 定义BNN络的随机输出为fW(x)” role=”presentation” style=”position: relative;”>fW(x)fW(x)
  4. 针对回归模型,我们通常定义模型似然为均值是模型输出的高斯分布p(y|fW(x))=N(fW(x),σ2)” role=”presentation” style=”position: relative;”>p(y|fW(x))=N(fW(x),σ2)p(y|fW(x))=N(fW(x),σ2)
  5. BNN很容易进行构建,但不易计算,这是因为用于估计后验概率p(W|X,Y)=p(Y|X,W)p(W)/p(Y|X)” role=”presentation” style=”position: relative;”>p(W|X,Y)=p(Y|X,W)p(W)/p(Y|X)p(W|X,Y)=p(Y|X,W)p(W)/p(Y|X),最终对简单分布的参数进行优化而不是优化原BNN的参数,这样做可以解决对BNN中所有权值求平均值的难题。
  6. Dropout变分推理是常用的在大型复杂模型中进行近似推理的方法。通过在对网络进行训练时在每层之前加入一个Dropout,以及在测试时加入Dropout进行采样(称为蒙特卡洛dropout)从而实现近似计算。换句话说,这个方法相当于我们利用简单的分布qθ∗(W)” role=”presentation” style=”position: relative;”>qθ(W)qθ∗(W)为简单分布的优化参数(实际为带dropout的权值矩阵)。
    L(θ,p)=−1N∑i=1Nlog⁡p(yi|fWi^(xi))+1−p2N||θ||2” role=”presentation” style=”text-align: center; position: relative;”>L(θ,p)=1Ni=1Nlogp(yi|fWi^(xi))+1p2N||θ||2L(θ,p)=−1N∑i=1Nlog⁡p(yi|fWi^(xi))+1−p2N||θ||2
    L(\theta,p)=-\frac{1}{N}\sum_{i=1}^N\log p(y_i|f^{\hat{W_i}}(x_i))+\frac{1-p}{2N}||\theta||^2
  7. 在回归问题中,针对高斯似然,观测噪声参数为σ” role=”presentation” style=”position: relative;”>σσ,负对数似然可以进一步简化为下式,可以用来计算输出中的噪声值:
    −log⁡p(yi|fWi^(xi))∝12σ2||yi−fWi^(xi)||2+12log⁡σ2” role=”presentation” style=”text-align: center; position: relative;”>logp(yi|fWi^(xi))12σ2||yifWi^(xi)||2+12logσ2−log⁡p(yi|fWi^(xi))∝12σ2||yi−fWi^(xi)||2+12log⁡σ2
    -\log p(y_i|f^{\hat{W_i}}(x_i))\propto \frac{1}{2\sigma^2}||y_i-f^{\hat{W_i}}(x_i)||^2+\frac{1}{2}\log\sigma^2
  8. 我们可以通过大量观测数据减小权值的认知不确定性,但在边际化(近似)权值的后验分布时会引入预测不确定性(prediction uncertainty)。
  9. 在分类问题中,预测不确定性可以利用蒙特卡洛积分来近似,其中T为模型采样个数,其权值为Wi^∼qθ∗(W)” role=”presentation” style=”position: relative;”>Wi^qθ(W)Wi^∼qθ∗(W)
    p(y=c|x,X,Y)≈1T∑t=1TSoftmax(fWt^(x))” role=”presentation” style=”text-align: center; position: relative;”>p(y=c|x,X,Y)1Tt=1TSoftmax(fWt^(x))p(y=c|x,X,Y)≈1T∑t=1TSoftmax(fWt^(x))
    p(y=c|x,X,Y)\approx\frac{1}{T}\sum_{t=1}^TSoftmax(f^{\hat{W_t}}(x))
  10. 在回归问题中,这一认知不确定性可以通过预测方差来进行计算,其中预测均值为E(y)≈1T∑t=1TfWt^(xt)” role=”presentation” style=”position: relative;”>E(y)1TTt=1fWt^(xt)E(y)≈1T∑t=1TfWt^(xt)全取相同场数时)。
    Var(y)≈σ2+1T∑t=1TfWt^(xt)TfWt^(xt)−E(y)TE(y)” role=”presentation” style=”text-align: center; position: relative;”>Var(y)σ2+1Tt=1TfWt^(xt)TfWt^(xt)E(y)TE(y)Var(y)≈σ2+1T∑t=1TfWt^(xt)TfWt^(xt)−E(y)TE(y)
    Var(y)\approx\sigma^2+\frac{1}{T}\sum_{t=1}^Tf^{\hat{W_t}}(x_t)^Tf^{\hat{W_t}}(x_t)-E(y)^TE(y)

2. 异方差的偶然不确定性计算

为了计算回归问题中的偶然不确定性,我们需要对观测噪声参数σ” role=”presentation” style=”position: relative;”>σσ进行调整。同方差回归假设每一个输入的观测噪声为恒值,异方差回归则假设观测噪声是随输入而变化的。当部分观测空间具有更高级别的噪声时,异方差模型是十分有效的。在非BNN中,观测噪声通常是固定的,作为权值衰减的一部分。实际上是可以将其作为数据的函数来进行学习:

LNN(θ)=−1N∑i=1N12σ(xi)2||yi−f(xi)||2+12log⁡σ(xi)2” role=”presentation” style=”text-align: center; position: relative;”>LNN(θ)=1Ni=1N12σ(xi)2||yif(xi)||2+12logσ(xi)2LNN(θ)=−1N∑i=1N12σ(xi)2||yi−f(xi)||2+12log⁡σ(xi)2
L_{NN}(\theta)=-\frac{1}{N}\sum_{i=1}^N\frac{1}{2\sigma(x_i)^2}||y_i-f(x_i)||^2+\frac{1}{2}\log\sigma(x_i)^2
λ” role=”presentation” style=”position: relative;”>λλ找一个单独的值,这种方法不是用来计算认知不确定性,因为认知不确定性是模型属性,而此处我们计算的数据属性。

四、将两种不确定性在同一模型中进行结合

目前两种不确定性通常是分开研究的。通常通过网络模型参数的概率分布来研究认知不确定性,首先通过将先验分布置于模型的权重上进行建模,然后尝试计算这些权重随着数据变化的规律;通过研究网络输出来研究偶然不确定性,通常是对模型的输出进行拟合。例如在回归问题中,我们可以把输出建模为随着高斯随机噪声而衰减,此时,我们可以认为噪声的方差是不同输入的函数。

在这一节中,我们提出一些即可以让我们对两种不确定性分别进行研究,又可以同时对两种不确定性同时进行研究的模型。将回归问题中的偶然不确定性看作学习的损失衰减可以使得损失值对噪声更加鲁棒。我们将异方差回归问题中的这一想法进行扩展在分类问题中进行使用,从而知道如何学习分类问题中损失衰减。

1.将异方差偶然不确定性和认知不确定性相结合

  1. 在上一节中,为了同时计算两种不确定性,我们通过将一个分布放置在模型权值上从而将异方差NN转化成BNN,在本节中,我们将专门构建一个用于视觉模型的BNN。
  2. 为了构建这一系统,我们需要找到BNN模型f” role=”presentation” style=”position: relative;”>ff的偶然不确定性的描述方式。我们利用之前提到的dropout变分分布来近似BNN的后验,但这一次同时结合预测均值和预测方差:
    [y^,σ^2]=fW^(x)” role=”presentation” style=”text-align: center; position: relative;”>[y^,σ^2]=fW^(x)[y^,σ^2]=fW^(x)
    [\hat y,\hat \sigma^2]=f^{\hat W}(x)
  3. 我们利用高斯似然来对偶然不确定性建模,这给出了在给定输出标注下的最小化目标值x” role=”presentation” style=”position: relative;”>xx的个数:
    LNN(θ)=1D∑i=112σ−2||yi−y^i||2+12log⁡σ^i2” role=”presentation” style=”text-align: center; position: relative;”>LNN(θ)=1Di=112σ2||yiy^i||2+12logσ^2iLNN(θ)=1D∑i=112σ−2||yi−y^i||2+12log⁡σ^i2
    L_{NN}(\theta)=\frac{1}{D}\sum_{i=1}\frac{1}{2}\sigma^{-2}||y_i-\hat y_i||^2+\frac{1}{2}\log\hat\sigma_i^2
  4. 这一损失包含两个部分通过模型得到的随机样本的残差回归——利用参数的不确定性;以及一个不确定性的正则化项。我们不需要通过“不确定的标注”来学习不确定性,我们仅需要监督回归任务的学习。我们从损失函数中直接学到方差σ2” role=”presentation” style=”position: relative;”>σ2σ2来训练网络,如下所示,这样做的好处在于对数方差比方差具有更好的数值稳定性,避免损失中分母项出现0。同时,指数映射可以回归不受约束的标量值,可以给出有效方差的正域。
    LNN(θ)=1D∑i=1exp⁡(−si)||yi−y^i||2+12si” role=”presentation” style=”text-align: center; position: relative;”>LNN(θ)=1Di=1exp(si)||yiy^i||2+12siLNN(θ)=1D∑i=1exp⁡(−si)||yi−y^i||2+12si
    L_{NN}(\theta)=\frac{1}{D}\sum_{i=1}\exp(-s_i)||y_i-\hat y_i||^2+\frac{1}{2}s_i
  5. 总的来说,对于像素y” role=”presentation” style=”position: relative;”>yy的采样结果。
    Var(y)≈1T∑t=1Ty^t2−(1T∑t=1Ty^t)2+1T∑t=1Tσ^t2” role=”presentation” style=”text-align: center; position: relative;”>Var(y)1Tt=1Ty^2t(1Tt=1Ty^t)2+1Tt=1Tσ^2tVar(y)≈1T∑t=1Ty^t2−(1T∑t=1Ty^t)2+1T∑t=1Tσ^t2
    Var(y)\approx\frac{1}{T}\sum_{t=1}^T\hat y_t^2-(\frac{1}{T}\sum_{t=1}^T\hat y_t)^2+\frac{1}{T}\sum_{t=1}^T\hat\sigma_t^2

2.将异方差不确定性作为学习损失衰减

我们发现允许网络预测不确定性使得其可以通过exp⁡(−si)” role=”presentation” style=”position: relative;”>exp(si)exp⁡(−si)高效的训练损失残差。这一行为与一个智能鲁棒的回归函数是类似的,它允许网络适应残差的权重,甚至允许网络学习减弱错误标签的影响,这使得模型对噪声的鲁棒性增强:针对预测出高不确定性的输入,模型将对损失函数产生较小的影响。

这一模型不鼓励对所有的输入产生高不确定性(通过log⁡σ2” role=”presentation” style=”position: relative;”>logσ2log⁡σ2值会过于夸大残差的影响,同样会对模型进行惩罚。值得强调的是,这种学习衰减不是一种特殊设计的结构,而是模型概率解释的结果。

3.将异方差不确定性应用于分类问题中

  1. 这种在回归问题中异方差NN学习损失衰减的特质在分类问题中也同样适用。因为分类问题往往存在跟输入有关的不确定性,因此分类问题中的异方差NN需要特定的模型。为此,我们调整标准分类模型,使处于对数空间中的中间异方差回归不确定性边际化,从而得到异方差分类NN。在分类问题中,NN将会对每一个像素i” role=”presentation” style=”position: relative;”>ii
    x^i|W∼N(fiW,(σiW)2)” role=”presentation” style=”text-align: center; position: relative;”>x^i|WN(fWi,(σWi)2)x^i|W∼N(fiW,(σiW)2)
    \hat x_i|W\sim N(f_i^W,(\sigma_i^W)^2)
    p^i=Softmax(x^i)” role=”presentation” style=”text-align: center; position: relative;”>p^i=Softmax(x^i)p^i=Softmax(x^i)
    \hat p_i=Softmax(\hat x_i)
  2. 我们期望的模型对数似然如下所示,其中c” role=”presentation” style=”position: relative;”>cc是分类,可以给出损失函数:
    log⁡EN(x^t;ftW,(σtW))[p^i,c]” role=”presentation” style=”text-align: center; position: relative;”>logEN(x^t;fWt,(σWt))[p^i,c]log⁡EN(x^t;ftW,(σtW))[p^i,c]
    \log E_{N(\hat x_t;f_t^W,(\sigma_t^W))}[\hat p_{i,c}]
  3. 理想情况下,我们想分析整合出这个高斯分布,但目前没有分析解决的方案。因此我们采用蒙特卡洛积分来近似目标,对一元数组通过softmax进行采样。我们注意到这个操作是非常快的,因为我们只执行一次计算(将输入经过一次模型便可计算得到对数值)。我们只需要在网络计算的一小部分对数值中抽样,因此并不会增加测试时的计算时间。因此数值稳定的损失函数如下所示,其中xi,t,c′” role=”presentation” style=”position: relative;”>xi,t,cxi,t,c′个元素。
    x^i,t=fiW+σiWϵt,ϵ∼N(0,I)” role=”presentation” style=”text-align: center; position: relative;”>x^i,t=fWi+σWiϵt,ϵN(0,I)x^i,t=fiW+σiWϵt,ϵ∼N(0,I)
    \hat x_{i,t}=f_i^W+\sigma_i^W\epsilon_t, \epsilon\sim N(0,I)
    Lx=∑ilog⁡1T∑texp⁡(x^i,t,c−log⁡∑c′exp⁡x^i,t,c′)” role=”presentation” style=”text-align: center; position: relative;”>Lx=ilog1Ttexp(x^i,t,clogcexpx^i,t,c)Lx=∑ilog⁡1T∑texp⁡(x^i,t,c−log⁡∑c′exp⁡x^i,t,c′)
    L_x=\sum_i\log\frac 1 T\sum_t\exp(\hat x_{i,t,c}-\log\sum_{c'}\exp\hat x_{i,t,c'})

五、实验结果

本文在像素级的深度回归和语义分割问题上对所提出的模型进行了测试。为了展示本文所提出的可以学习的损失衰减的鲁棒性(对不确定性建模的好处之一),我们在CamVid, Make3D和NYUv2 Depth数据集上进行了测试,并取得了目前最好的性能。在实验中,我们利用了DenseNet的框架(用于深度回归问题),并对其稍微进行了改进(在CamVid上进行测试比改进前的性能提高了0.2%)。在所有的实验中,我们将训练图像裁剪成224x224,batch的大小为4,然后利用全尺寸图进行精调,batch大小为1,采用RMS-Prop优化方法,学习率为0.001,权值衰减率为10−4” role=”presentation” style=”position: relative;”>10410−4,在每一个卷积层后使用,本文中我们使用50个蒙特卡洛dropout采样。我们利用上文提到的损失函数进行MAP推理从而对偶然不确定性进行建模。在实际实验过程中,我们采用的是拉普拉斯先验而不是高斯先验,因为其采用的L1距离描述残差比高斯采用的L2距离更适合视觉回归问题。

语义分割

在此实验中,我们采用了CamVid和NYUv2数据集,其中CamVid是道路场景数据集包含367张训练图片以及233张测试图片,11个类别,实验结果如表一a所示,可以看出偶然不确定性对性能影响更大,结合两种不确定时系统性能最佳。NYUv2数据集是一个具有挑战的室内分类数据集,包含40中语义类别,实验结果如表一b所示。
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?

像素级深度回归

在此实验中,我们采用了Make3D和NYUv2 Depth数据集,实验结果如表二所示,结果表明偶然不确定在此类问题中发挥了很大作用,如图五、图六所示,在图像深度较深,反射表面以及遮挡边界处的偶然不确定性值很大,这些地方往往是单目深度算法容易失败的地方。反观由于数据量太少,认知不确定很难发挥大作用。总的来说,我们通过直接学习系统噪声和复杂概念的衰减从而提高了非贝叶斯网络的性能,例如我们观察到遥远物体和物体和遮挡边界的偶然不确定性是比较高的。
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?

六、分析:偶然不确定性和认知不确定性描述的本质是什么?

不确定性度量的质量

在图二中我们给出了回归问题和分类问题的PR曲线,PR曲线说明了我们的模型性能可以通过消除不确定性大于某一阈值的像素来提高。这表示了不确定性的两种行为,一是不确定性测量与精度是相关的,因为所有曲线都是严格递减函数;二是两种不确定性的曲线是相似的,即使当只有一个不确定性能被建模时,它会在一定程度上弥补另一不确定性。
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?
在图三中我们用我们模型在测试集上的校准图分析不确定性度量。对于分类问题而言,我们通过将我们模型预测的概率离散化成一些数,然后画出正确预测的标注的频率对应的数,不确定性质量越高的预测应该与$y=x$更加接近。对于回归问题而言,我们可以通过比较预测分布的变化阈值内的残差频率来形成校准图
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?

与训练样本距离的不确定性

两个结论:
1. 偶然不确定性无法通过更多数据解释。
2. 偶然不确定性也不会因为与训练集不同的样本而增加,而认知不确定性会。
在表三中我们给出了在子集不断增加的数据上训练模型的精度与不确定性,结果表明认知不确定性将随训练集增大而减小,结果同时表明偶然不确定性保持相对稳定,不能被更多数据解释。利用不同的数据集进行测试时认知不确定性会稍微增加。
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?

实时应用

在NVIDIA Titan X上一张640x480的照片的处理时间为150ms。偶然不确定性增加的时间可以忽略不计,认知不确定性蒙特卡洛采样是比较耗时的

七、结论

本文提出了一种新的贝叶斯深度学习框架可以从输入中学习偶然不确定性并与认知不确定性进行结合提高系统性能。

对以下情形计算偶然不确定性是比较重要的:
1. 具有大量数据的情况,这种情况下认知不确定性是可以被解释的。
2. 实时系统,偶然不确定性不会影响实时性。

对以下请性计算认知不确定性是比较重要的:
1. 对安全性要求较高的应用,因为认知性能可以识别出当前场景与训练集是否一致。
2. 小数据集情况。

两种不确定性并不相互排斥,将两者结合可以得到更好的性能。找到一个实时计算认知不确定性的系统是深度学习未来研究的重要方向。




本文转自:http://blog.csdn.net/weixin_39779106/article/details/78968982

原论文链接

一、摘要:

  1. 主要有两大类不确定性,偶然不确定性(aleatoric uncertainty)和认知不确定性(epistemic uncertainty),偶然不确定性用来描述观测中固有的噪声;认知不确定性则是用来描述模型中的不确定性。认知不确定性往往比较难计算,但现在可以利用基于贝叶斯深度学习的方法进行求解。本文利用贝叶斯深度学习方法对两种不确定性进行建模用以解决计算机视觉中的相关问题。
  2. 本文提出了一种结合偶然不确定性以及认知不确定性的贝叶斯深度学习架构。本文利用该架构完成素级的语义分割和深度回归的任务。
  3. 同时,基于所提出的不确定性公式,本文针对以上问题设计了新的损失函数,这使得衰减项对噪声具有更高的鲁棒性,同时得到目前性能最好的语义分割和深度回归结果。

二、介绍:

  1. 很多机器学习算法可以很好地将高维空间的数据映射成低维数组,但很少考虑这些映射的准确率,从而导致很多灾难性的后果。
  2. 量化不确定性在计算机视觉领域可以被分为回归和分类两大类。现存的描述不确定性的方法有粒子滤波法,条件随机场法。深度学习方法往往很难描述不确定性。例如在分类问题中,深度学习算法常常更够给出归一化的得分向量,但是不需要计算模型的不确定性。基于贝叶斯的深度学习算法则可以在拥有深度学习高性能的同时计算出模型的不确定性。
  3. 同方差不确定性(homoscedastic)和异方差不确定性(heteroscedastic)。偶然不确定性是同方差不确定性,是模型固有不确定性;认知不确定性是异方差不确定性,是由于每个输入的噪声不同造成的。
  4. 在大数据背景下对偶然不确定性进行建模是十分重要的,偶然不确定性往往是不能通过大量数据进行解释的,因此本文提出一种统一的贝叶斯深度学习框架对偶然不确定性进行映射并将其与认知不确定性相结合,本文所提出的框架可同时在分类和回归问题中进行使用。

创新点:

  1. 我们掌握了对偶然和认知不确定性的精确的描述方法,特别的,我们提出了一种新的基于不确定性的 分类方法。
  2. 通过明确表示出偶然不确定性而获得的隐含衰减(the implied attenuation)减少了噪声的影响,基于此,我们提出的模型可以提高非贝叶斯模型性能的1-3%。
  3. 本文通过表征两种不确定性的特性以及比较两种模型的性能和计算时间来研究如何对两者进行权衡。

三、相关工作:

1. 在贝叶斯深度学习中如何对认知不确定性进行建模:

  1. 根据先验分布对神经网络权重进行初始化,例如利用高斯分布初始化。
  2. 贝叶斯神经网络(BNN)的权值不是特定的数值,而是用概率分布来表示。在对权值进行优化时,不直接优化数值,而是对所有可能的权值进行平均(也称为边缘化‘marginalisation’)。
  3. 定义BNN络的随机输出为fW(x)” role=”presentation” style=”position: relative;”>fW(x)fW(x)
  4. 针对回归模型,我们通常定义模型似然为均值是模型输出的高斯分布p(y|fW(x))=N(fW(x),σ2)” role=”presentation” style=”position: relative;”>p(y|fW(x))=N(fW(x),σ2)p(y|fW(x))=N(fW(x),σ2)
  5. BNN很容易进行构建,但不易计算,这是因为用于估计后验概率p(W|X,Y)=p(Y|X,W)p(W)/p(Y|X)” role=”presentation” style=”position: relative;”>p(W|X,Y)=p(Y|X,W)p(W)/p(Y|X)p(W|X,Y)=p(Y|X,W)p(W)/p(Y|X),最终对简单分布的参数进行优化而不是优化原BNN的参数,这样做可以解决对BNN中所有权值求平均值的难题。
  6. Dropout变分推理是常用的在大型复杂模型中进行近似推理的方法。通过在对网络进行训练时在每层之前加入一个Dropout,以及在测试时加入Dropout进行采样(称为蒙特卡洛dropout)从而实现近似计算。换句话说,这个方法相当于我们利用简单的分布qθ∗(W)” role=”presentation” style=”position: relative;”>qθ(W)qθ∗(W)为简单分布的优化参数(实际为带dropout的权值矩阵)。
    L(θ,p)=−1N∑i=1Nlog⁡p(yi|fWi^(xi))+1−p2N||θ||2” role=”presentation” style=”text-align: center; position: relative;”>L(θ,p)=1Ni=1Nlogp(yi|fWi^(xi))+1p2N||θ||2L(θ,p)=−1N∑i=1Nlog⁡p(yi|fWi^(xi))+1−p2N||θ||2
    L(\theta,p)=-\frac{1}{N}\sum_{i=1}^N\log p(y_i|f^{\hat{W_i}}(x_i))+\frac{1-p}{2N}||\theta||^2
  7. 在回归问题中,针对高斯似然,观测噪声参数为σ” role=”presentation” style=”position: relative;”>σσ,负对数似然可以进一步简化为下式,可以用来计算输出中的噪声值:
    −log⁡p(yi|fWi^(xi))∝12σ2||yi−fWi^(xi)||2+12log⁡σ2” role=”presentation” style=”text-align: center; position: relative;”>logp(yi|fWi^(xi))12σ2||yifWi^(xi)||2+12logσ2−log⁡p(yi|fWi^(xi))∝12σ2||yi−fWi^(xi)||2+12log⁡σ2
    -\log p(y_i|f^{\hat{W_i}}(x_i))\propto \frac{1}{2\sigma^2}||y_i-f^{\hat{W_i}}(x_i)||^2+\frac{1}{2}\log\sigma^2
  8. 我们可以通过大量观测数据减小权值的认知不确定性,但在边际化(近似)权值的后验分布时会引入预测不确定性(prediction uncertainty)。
  9. 在分类问题中,预测不确定性可以利用蒙特卡洛积分来近似,其中T为模型采样个数,其权值为Wi^∼qθ∗(W)” role=”presentation” style=”position: relative;”>Wi^qθ(W)Wi^∼qθ∗(W)
    p(y=c|x,X,Y)≈1T∑t=1TSoftmax(fWt^(x))” role=”presentation” style=”text-align: center; position: relative;”>p(y=c|x,X,Y)1Tt=1TSoftmax(fWt^(x))p(y=c|x,X,Y)≈1T∑t=1TSoftmax(fWt^(x))
    p(y=c|x,X,Y)\approx\frac{1}{T}\sum_{t=1}^TSoftmax(f^{\hat{W_t}}(x))
  10. 在回归问题中,这一认知不确定性可以通过预测方差来进行计算,其中预测均值为E(y)≈1T∑t=1TfWt^(xt)” role=”presentation” style=”position: relative;”>E(y)1TTt=1fWt^(xt)E(y)≈1T∑t=1TfWt^(xt)全取相同场数时)。
    Var(y)≈σ2+1T∑t=1TfWt^(xt)TfWt^(xt)−E(y)TE(y)” role=”presentation” style=”text-align: center; position: relative;”>Var(y)σ2+1Tt=1TfWt^(xt)TfWt^(xt)E(y)TE(y)Var(y)≈σ2+1T∑t=1TfWt^(xt)TfWt^(xt)−E(y)TE(y)
    Var(y)\approx\sigma^2+\frac{1}{T}\sum_{t=1}^Tf^{\hat{W_t}}(x_t)^Tf^{\hat{W_t}}(x_t)-E(y)^TE(y)

2. 异方差的偶然不确定性计算

为了计算回归问题中的偶然不确定性,我们需要对观测噪声参数σ” role=”presentation” style=”position: relative;”>σσ进行调整。同方差回归假设每一个输入的观测噪声为恒值,异方差回归则假设观测噪声是随输入而变化的。当部分观测空间具有更高级别的噪声时,异方差模型是十分有效的。在非BNN中,观测噪声通常是固定的,作为权值衰减的一部分。实际上是可以将其作为数据的函数来进行学习:

LNN(θ)=−1N∑i=1N12σ(xi)2||yi−f(xi)||2+12log⁡σ(xi)2” role=”presentation” style=”text-align: center; position: relative;”>LNN(θ)=1Ni=1N12σ(xi)2||yif(xi)||2+12logσ(xi)2LNN(θ)=−1N∑i=1N12σ(xi)2||yi−f(xi)||2+12log⁡σ(xi)2
L_{NN}(\theta)=-\frac{1}{N}\sum_{i=1}^N\frac{1}{2\sigma(x_i)^2}||y_i-f(x_i)||^2+\frac{1}{2}\log\sigma(x_i)^2
λ” role=”presentation” style=”position: relative;”>λλ找一个单独的值,这种方法不是用来计算认知不确定性,因为认知不确定性是模型属性,而此处我们计算的数据属性。

四、将两种不确定性在同一模型中进行结合

目前两种不确定性通常是分开研究的。通常通过网络模型参数的概率分布来研究认知不确定性,首先通过将先验分布置于模型的权重上进行建模,然后尝试计算这些权重随着数据变化的规律;通过研究网络输出来研究偶然不确定性,通常是对模型的输出进行拟合。例如在回归问题中,我们可以把输出建模为随着高斯随机噪声而衰减,此时,我们可以认为噪声的方差是不同输入的函数。

在这一节中,我们提出一些即可以让我们对两种不确定性分别进行研究,又可以同时对两种不确定性同时进行研究的模型。将回归问题中的偶然不确定性看作学习的损失衰减可以使得损失值对噪声更加鲁棒。我们将异方差回归问题中的这一想法进行扩展在分类问题中进行使用,从而知道如何学习分类问题中损失衰减。

1.将异方差偶然不确定性和认知不确定性相结合

  1. 在上一节中,为了同时计算两种不确定性,我们通过将一个分布放置在模型权值上从而将异方差NN转化成BNN,在本节中,我们将专门构建一个用于视觉模型的BNN。
  2. 为了构建这一系统,我们需要找到BNN模型f” role=”presentation” style=”position: relative;”>ff的偶然不确定性的描述方式。我们利用之前提到的dropout变分分布来近似BNN的后验,但这一次同时结合预测均值和预测方差:
    [y^,σ^2]=fW^(x)” role=”presentation” style=”text-align: center; position: relative;”>[y^,σ^2]=fW^(x)[y^,σ^2]=fW^(x)
    [\hat y,\hat \sigma^2]=f^{\hat W}(x)
  3. 我们利用高斯似然来对偶然不确定性建模,这给出了在给定输出标注下的最小化目标值x” role=”presentation” style=”position: relative;”>xx的个数:
    LNN(θ)=1D∑i=112σ−2||yi−y^i||2+12log⁡σ^i2” role=”presentation” style=”text-align: center; position: relative;”>LNN(θ)=1Di=112σ2||yiy^i||2+12logσ^2iLNN(θ)=1D∑i=112σ−2||yi−y^i||2+12log⁡σ^i2
    L_{NN}(\theta)=\frac{1}{D}\sum_{i=1}\frac{1}{2}\sigma^{-2}||y_i-\hat y_i||^2+\frac{1}{2}\log\hat\sigma_i^2
  4. 这一损失包含两个部分通过模型得到的随机样本的残差回归——利用参数的不确定性;以及一个不确定性的正则化项。我们不需要通过“不确定的标注”来学习不确定性,我们仅需要监督回归任务的学习。我们从损失函数中直接学到方差σ2” role=”presentation” style=”position: relative;”>σ2σ2来训练网络,如下所示,这样做的好处在于对数方差比方差具有更好的数值稳定性,避免损失中分母项出现0。同时,指数映射可以回归不受约束的标量值,可以给出有效方差的正域。
    LNN(θ)=1D∑i=1exp⁡(−si)||yi−y^i||2+12si” role=”presentation” style=”text-align: center; position: relative;”>LNN(θ)=1Di=1exp(si)||yiy^i||2+12siLNN(θ)=1D∑i=1exp⁡(−si)||yi−y^i||2+12si
    L_{NN}(\theta)=\frac{1}{D}\sum_{i=1}\exp(-s_i)||y_i-\hat y_i||^2+\frac{1}{2}s_i
  5. 总的来说,对于像素y” role=”presentation” style=”position: relative;”>yy的采样结果。
    Var(y)≈1T∑t=1Ty^t2−(1T∑t=1Ty^t)2+1T∑t=1Tσ^t2” role=”presentation” style=”text-align: center; position: relative;”>Var(y)1Tt=1Ty^2t(1Tt=1Ty^t)2+1Tt=1Tσ^2tVar(y)≈1T∑t=1Ty^t2−(1T∑t=1Ty^t)2+1T∑t=1Tσ^t2
    Var(y)\approx\frac{1}{T}\sum_{t=1}^T\hat y_t^2-(\frac{1}{T}\sum_{t=1}^T\hat y_t)^2+\frac{1}{T}\sum_{t=1}^T\hat\sigma_t^2

2.将异方差不确定性作为学习损失衰减

我们发现允许网络预测不确定性使得其可以通过exp⁡(−si)” role=”presentation” style=”position: relative;”>exp(si)exp⁡(−si)高效的训练损失残差。这一行为与一个智能鲁棒的回归函数是类似的,它允许网络适应残差的权重,甚至允许网络学习减弱错误标签的影响,这使得模型对噪声的鲁棒性增强:针对预测出高不确定性的输入,模型将对损失函数产生较小的影响。

这一模型不鼓励对所有的输入产生高不确定性(通过log⁡σ2” role=”presentation” style=”position: relative;”>logσ2log⁡σ2值会过于夸大残差的影响,同样会对模型进行惩罚。值得强调的是,这种学习衰减不是一种特殊设计的结构,而是模型概率解释的结果。

3.将异方差不确定性应用于分类问题中

  1. 这种在回归问题中异方差NN学习损失衰减的特质在分类问题中也同样适用。因为分类问题往往存在跟输入有关的不确定性,因此分类问题中的异方差NN需要特定的模型。为此,我们调整标准分类模型,使处于对数空间中的中间异方差回归不确定性边际化,从而得到异方差分类NN。在分类问题中,NN将会对每一个像素i” role=”presentation” style=”position: relative;”>ii
    x^i|W∼N(fiW,(σiW)2)” role=”presentation” style=”text-align: center; position: relative;”>x^i|WN(fWi,(σWi)2)x^i|W∼N(fiW,(σiW)2)
    \hat x_i|W\sim N(f_i^W,(\sigma_i^W)^2)
    p^i=Softmax(x^i)” role=”presentation” style=”text-align: center; position: relative;”>p^i=Softmax(x^i)p^i=Softmax(x^i)
    \hat p_i=Softmax(\hat x_i)
  2. 我们期望的模型对数似然如下所示,其中c” role=”presentation” style=”position: relative;”>cc是分类,可以给出损失函数:
    log⁡EN(x^t;ftW,(σtW))[p^i,c]” role=”presentation” style=”text-align: center; position: relative;”>logEN(x^t;fWt,(σWt))[p^i,c]log⁡EN(x^t;ftW,(σtW))[p^i,c]
    \log E_{N(\hat x_t;f_t^W,(\sigma_t^W))}[\hat p_{i,c}]
  3. 理想情况下,我们想分析整合出这个高斯分布,但目前没有分析解决的方案。因此我们采用蒙特卡洛积分来近似目标,对一元数组通过softmax进行采样。我们注意到这个操作是非常快的,因为我们只执行一次计算(将输入经过一次模型便可计算得到对数值)。我们只需要在网络计算的一小部分对数值中抽样,因此并不会增加测试时的计算时间。因此数值稳定的损失函数如下所示,其中xi,t,c′” role=”presentation” style=”position: relative;”>xi,t,cxi,t,c′个元素。
    x^i,t=fiW+σiWϵt,ϵ∼N(0,I)” role=”presentation” style=”text-align: center; position: relative;”>x^i,t=fWi+σWiϵt,ϵN(0,I)x^i,t=fiW+σiWϵt,ϵ∼N(0,I)
    \hat x_{i,t}=f_i^W+\sigma_i^W\epsilon_t, \epsilon\sim N(0,I)
    Lx=∑ilog⁡1T∑texp⁡(x^i,t,c−log⁡∑c′exp⁡x^i,t,c′)” role=”presentation” style=”text-align: center; position: relative;”>Lx=ilog1Ttexp(x^i,t,clogcexpx^i,t,c)Lx=∑ilog⁡1T∑texp⁡(x^i,t,c−log⁡∑c′exp⁡x^i,t,c′)
    L_x=\sum_i\log\frac 1 T\sum_t\exp(\hat x_{i,t,c}-\log\sum_{c'}\exp\hat x_{i,t,c'})

五、实验结果

本文在像素级的深度回归和语义分割问题上对所提出的模型进行了测试。为了展示本文所提出的可以学习的损失衰减的鲁棒性(对不确定性建模的好处之一),我们在CamVid, Make3D和NYUv2 Depth数据集上进行了测试,并取得了目前最好的性能。在实验中,我们利用了DenseNet的框架(用于深度回归问题),并对其稍微进行了改进(在CamVid上进行测试比改进前的性能提高了0.2%)。在所有的实验中,我们将训练图像裁剪成224x224,batch的大小为4,然后利用全尺寸图进行精调,batch大小为1,采用RMS-Prop优化方法,学习率为0.001,权值衰减率为10−4” role=”presentation” style=”position: relative;”>10410−4,在每一个卷积层后使用,本文中我们使用50个蒙特卡洛dropout采样。我们利用上文提到的损失函数进行MAP推理从而对偶然不确定性进行建模。在实际实验过程中,我们采用的是拉普拉斯先验而不是高斯先验,因为其采用的L1距离描述残差比高斯采用的L2距离更适合视觉回归问题。

语义分割

在此实验中,我们采用了CamVid和NYUv2数据集,其中CamVid是道路场景数据集包含367张训练图片以及233张测试图片,11个类别,实验结果如表一a所示,可以看出偶然不确定性对性能影响更大,结合两种不确定时系统性能最佳。NYUv2数据集是一个具有挑战的室内分类数据集,包含40中语义类别,实验结果如表一b所示。
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?

像素级深度回归

在此实验中,我们采用了Make3D和NYUv2 Depth数据集,实验结果如表二所示,结果表明偶然不确定在此类问题中发挥了很大作用,如图五、图六所示,在图像深度较深,反射表面以及遮挡边界处的偶然不确定性值很大,这些地方往往是单目深度算法容易失败的地方。反观由于数据量太少,认知不确定很难发挥大作用。总的来说,我们通过直接学习系统噪声和复杂概念的衰减从而提高了非贝叶斯网络的性能,例如我们观察到遥远物体和物体和遮挡边界的偶然不确定性是比较高的。
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?

六、分析:偶然不确定性和认知不确定性描述的本质是什么?

不确定性度量的质量

在图二中我们给出了回归问题和分类问题的PR曲线,PR曲线说明了我们的模型性能可以通过消除不确定性大于某一阈值的像素来提高。这表示了不确定性的两种行为,一是不确定性测量与精度是相关的,因为所有曲线都是严格递减函数;二是两种不确定性的曲线是相似的,即使当只有一个不确定性能被建模时,它会在一定程度上弥补另一不确定性。
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?
在图三中我们用我们模型在测试集上的校准图分析不确定性度量。对于分类问题而言,我们通过将我们模型预测的概率离散化成一些数,然后画出正确预测的标注的频率对应的数,不确定性质量越高的预测应该与$y=x$更加接近。对于回归问题而言,我们可以通过比较预测分布的变化阈值内的残差频率来形成校准图
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?

与训练样本距离的不确定性

两个结论:
1. 偶然不确定性无法通过更多数据解释。
2. 偶然不确定性也不会因为与训练集不同的样本而增加,而认知不确定性会。
在表三中我们给出了在子集不断增加的数据上训练模型的精度与不确定性,结果表明认知不确定性将随训练集增大而减小,结果同时表明偶然不确定性保持相对稳定,不能被更多数据解释。利用不同的数据集进行测试时认知不确定性会稍微增加。
What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?

实时应用

在NVIDIA Titan X上一张640x480的照片的处理时间为150ms。偶然不确定性增加的时间可以忽略不计,认知不确定性蒙特卡洛采样是比较耗时的

七、结论

本文提出了一种新的贝叶斯深度学习框架可以从输入中学习偶然不确定性并与认知不确定性进行结合提高系统性能。

对以下情形计算偶然不确定性是比较重要的:
1. 具有大量数据的情况,这种情况下认知不确定性是可以被解释的。
2. 实时系统,偶然不确定性不会影响实时性。

对以下请性计算认知不确定性是比较重要的:
1. 对安全性要求较高的应用,因为认知性能可以识别出当前场景与训练集是否一致。
2. 小数据集情况。

两种不确定性并不相互排斥,将两者结合可以得到更好的性能。找到一个实时计算认知不确定性的系统是深度学习未来研究的重要方向。