目录

  • 摘要
  • 深度神经网络不确定性的起因
    • A.数据获取
    • B.深度神经网络设计与训练
    • C.推理
    • D.预测性不确定度建模
    • E.不确定性分类

摘要

基本的神经网络不能提供确定性估计,或者存在过度或过低的置信度,也就是说,校准得很糟糕。而不确定度至关重要的来源分为可还原的模型不确定度与不可还原的数据不确定度。本文充分讨论了基于deterministic neural networks, Bayesian neural networks, ensemble of neural networks, and test-time data augmentation的不确定性建模。对于一个实际应用,我们讨论了不同的不确定性度量,神经网络的校准方法,并给出了现有基线和可用实现的概述。

深度神经网络不确定性的起因

神经网络的非线性函数表示:
fθ:X→Yfθ(x)=y.f_\theta: \mathbb{X} \rightarrow \mathbb{Y} \qquad f_\theta(x)=y~.fθ​:X→Yfθ​(x)=y .

有限数据集:
D=(X,Y)={xn,yn}n=1N⊆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ω表示现实世界一只鸟,xxx表示鸟的图片,yyy表示鸟的label。在测量过程中,可能遇到随机噪声,信息发生损失。下面建模xxx的随机性:
x∣ω∼px∣ω.x\vert\omega \sim p_{x\vert \omega}~.x∣ω∼px∣ω​ .

等效地,对应的目标变量y也可以推出:
y∣ω∼py∣ω.y\vert\omega \sim p_{y\vert \omega}~.y∣ω∼py∣ω​ .

神经网络在基于 NNN 个现实世界情境 ω1,...,ωN\omega_1,...,\omega_Nω1​,...,ωN​得到的x∣ωix|\omega_ix∣ωi​ and y∣ωiy|\omega_iy∣ωi​有限数据集上训练:
D={xi,yi}i=1N.\mathcal{D}=\{x_i, y_i\}_{i=1}^N~.D={xi​,yi​}i=1N​ .

在收集训练数据时,有两个因素会引起在这个数据上训练神经网络时的不确定性。
首先采样空间应该被训练数据充分覆盖,需要考虑不在xix_ixi​中出现的新样本x∗x^*x∗,因此诞生了第一个产生不确定性的因素。

因素1:真实世界情况的变化性
大部分的真实世界环境是高度可变的,几乎不断受到变化的影响。这些变化影响例如温度、光照、混乱、物理对象的大小和形状等参数。环境的变化也会影响目标的表达,例如雨后的植物和旱灾后的植物看起来是很不一样的。当真实世界的情况和训练集相比发生改变时,就叫分布偏移。神经网络对于分布的平移是敏感的,这会导致神经网络性能的巨大变化。

第二个因素是基于测量系统,对样本和对应目标之间的相关性有直接的影响。测量系统生成的用于描述ωi\omega_iωi​的xix_ixi​和yiy_iyi​可能没有包含足够的信息来学习从xix_ixi​到yiy_iyi​直接的映射。也就是说可能存在高度不同的信息wiw_iwi​和wjw_jwj​(例如城市和森林)却有着非常类似的相应的测量xix_ixi​与xjx_jxj​(例如温度)或者类似的对应目标yiy_iyi​与yjy_jyj​(例如都把样本标注成森林的噪声)。这直接导致了第二个不确定性因素。

因素2:测量系统的错误和噪声
测量本身就可能成为神经网络预测不确定性的来源。这可能是由测量中的限制性信息引起的,例如图像分辨率,或没有测量反例,或不够充分的信息模态。而且这可能是由噪声引起的,例如传感器噪声,因为移动或者机械应力引起的测量不精确。再进一步,错误的标签也是不确定性来源,它可以被视作测量系统中的错误和噪声。它作为标注噪声将通过训练阶段降低正样本的置信度而影响模型。

B.深度神经网络设计与训练

DNN的设计包含了神经网络的显示建模以及它的随机训练过程。神经网络设计和训练引入的问题结构假设称为归纳偏置。我们在架构配置 s 中总结了关于网络结构(参数量,层,激活函数等)和训练过程(优化算法,正则化,增广等)的所有建模者决策。网络架构定义给出了第三个神经网络不确定性的因素:

因素3:模型架构错误
一个神经网络的架构对性能有直接的影响, 因此对于预测的不确定度也一样。例如参数的数量影响记忆容量,会导致训练数据的欠拟合和过拟合。关于神经网络的确定度,我们知道越深的网络对于他们的softmax输出会过度自信,就是说他们在最高概率概率分数的类别上预测的的概率太高。

对于一个给定的网络架构sss和一个训练数据集DDD,神经网络的训练是一个随机过程,因此神经网络的结果fθf_\thetafθ​是基于一个随机变量,
θ∣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生成和权重初始化)。所有的这些决策影响了局部最优,因此不太可能两个训练过程得到同样的模型参数。训练数据集如果在数据分布中存在单一区域的不平衡或低覆盖率,也会引入网络学习参数的不确定性,正如在数据获取中已经描述的那样。这可以通过应用数据增强来增加多样性,或者通过平衡单个类或区域对损失函数的影响来缓解。

因为训练过程是基于给定的训练数据集DDD,数据获取过程的错误(例如label噪声)就会导致训练过程的错误。

C.推理

推理描述了一个新的样本x∗x^*x∗通过神经网络得到的预测y∗y^*y∗。这是网络是为一个特定任务训练的。如果采样的样本不是这个任务的,那就会引起错误,成为不确定性的来源。

因素5:未知数据引起的错误
特别是在分类任务中,一个从W1W_1W1​世界衍生样本训练出的神经网络也有能力处理W2W_2W2​世界衍生的样本。例如在猫和狗图片上训练出来的网络接收到鸟的样本。在这里,不确定性的来源不在于数据获取过程,因为我们假设一个世界只包含一个预测任务的可行输入。尽管实际结果可能等价于传感器上有太多的噪声或传感器完全故障,但这里考虑的数据代表一个有效的样本,但用于不同的任务或领域。

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⁡yp(y∣x∗).(RealMAP)y^* = \arg \max_y p(y | x^*)~. \tag{RealMAP}y∗=argymax​p(y∣x∗) .(RealMAP)

因为建模是基于不可见的隐变量ω\omegaω,所以一般都是基于一个包含N个样本及其目标的训练数据集 D={xi,yi}i=1ND=\{x_i, y_i\}_{i=1}^ND={xi​,yi​}i=1N​做一个近似表示。这样对一个新的样本x∗x^*x∗,上面两个公式对应的分布和MAP估计,在已知的样本上可通过下面两式预测:
p(y∗∣x∗)=∫Dp(y∗∣D,x∗)(DIST)p(y^*\vert x^*) = \int_D p(y^*\vert \mathcal{D},x^*) \tag{DIST}p(y∗∣x∗)=∫D​p(y∗∣D,x∗)(DIST)

y∗=arg⁡max⁡yp(y∣D,x∗).(MAP)y^* = \arg \max_y p(y | \mathcal{D},x^*)~. \tag{MAP}y∗=argymax​p(y∣D,x∗) .(MAP)

通常情况下(DIST)(DIST)(DIST)式给定的分布是未知的,只能根据DDD中给定的数据估计。对于这种估计,神经网络为许多任务和应用形成了一个非常强大的工具。
神经网络的预测会遇到数据相关错误以及模型相关错误,因此与y∗y^*y∗有关的预测不确定性通常分为数据不确定性(也叫统计或者偶然不确定度)和模型不确定性(也叫系统或认知不确定性)。在基础研究上,一种额外的显式的分布不确定性建模用于建模训练数据分布未覆盖区域样本的不确定性。
1)模型和数据不确定性:模型不确定性涵盖了模型缺陷、训练过程中的错误、模型结构能力不足、缺乏未知样本的知识或者训练数据覆盖问题等。
与此相反,数据不确定性与直接来源于数据的不确定性有关。数据不确定性是由用一个数据样本去表示真实世界以及用(RealDIST)(RealDIST)(RealDIST)式表示分布的信息损失引起的。例如,在回归任务中,输入和目标测量的噪声引起数据不确定性使得网络无法正确学习。在分类任务中,样本没有包含足够的信息来100%确认一个类别,在预测时就会引起数据不确定性。信息损失是测量系统的问题,比如用某个分辨率的图像像素去表示真实世界的信息,或者标注过程中引起的错误。考虑上述5个神经网络预测的不确定性因素,模型不确定性覆盖因素I,III,IV,V,数据不确定度与II相关。而模型不确定度理论上可以通过优化结构、学习过程或训练数据来降低,数据不确定度是无法解释的。因此,dnn有能力处理不确定性输入,有能力消除或量化模型不确定度以及给出一个数据不确定度的正确预测,对于大量真实世界的任务以及安全性很重要的应用是至关重要的。
贝叶斯框架提供了一个推出深度学习不确定度的实用工具。在贝叶斯建模中,模型不确定度被形式化为模型参数θ\thetaθ上的概率分布,而数据不确定度被形式化为给定参数模型fθf_\thetafθ​时模型输出y∗y^*y∗的概率分布。预测y∗y^*y∗的分布预测如下:
p(y∗∣x∗,D)=∫p(y∗∣x∗,θ)⏟Datap(θ∣D)⏟Modeldθ.(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)=∫Datap(y∗∣x∗,θ)​​Modelp(θ∣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(在一个假设分布上),例如交叉熵或平均平方误差。
甚至有了(BayesRule)(BayesRule)(BayesRule)的重写,(DMPred)(DMPred)(DMPred)给定的预测分布依然很难解决。为了克服这个问题,许多不同的方法被提出来近似预测分布。

2)分布不确定性:依赖用于量化y∗y^*y∗不确定度的方法,预测性分布可进一步分解为数据的、分布的以及模型的部分:
p(y∗∣x∗,D)=∫∫p(y∣μ)⏟Datap(μ∣x∗,θ)⏟Distributionalp(θ∣D)⏟Modeldμ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)=∫∫Datap(y∣μ)​​Distributionalp(μ∣x∗,θ)​​Modelp(θ∣D)​​dμdθ .(DDMPred)

(DDMPred)(DDMPred)(DDMPred)中分布的部分表示实际网络输出的不确定度,例如分类任务可能是一个狄利克雷分布,它是给定softmax输出下分类分布上的分布。这种方式建模的分布不确定度是输入分布的一个变化引起的不确定度,而模型不确定度是由构建和训练dnn的过程引起的不确定度。如(DDMPred)( 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不确定度,例如样本重叠和系统标注噪声。

下一篇:深度神经网络的不确定性(中)

深度神经网络的不确定性(上)相关推荐

  1. 深度神经网络的不确定性(中)

    目录 不确定度估计方法 A.Single Deterministic Methods B.Bayesian Neural Networks C. Ensemble Methods D. Test Ti ...

  2. #今日论文推荐#快到离谱,图像识别仅需1纳秒!光子深度神经网络PDNN登上Nature

    #今日论文推荐#快到离谱,图像识别仅需1纳秒!光子深度神经网络PDNN登上Nature 现在,美国研究者开发的一个光子神经网络 (photonic deep neural network,PDNN), ...

  3. 深度神经网络混合精度训练

    深度神经网络混合精度训练 Mixed-Precision Training of Deep Neural Networks 论文链接:https://arxiv.org/abs/1710.03740 ...

  4. 科普丨深度神经网络与生命的意义

    几周前,我正从工作中的一个项目逐渐交接过度到另一个项目里.这为我提供了一个非常好的空档期,去阅读一些与我感兴趣而且目前科技还没有完全解决的主题相关文章.机器学习就是我最想看的主题之一.这个领域已经深深 ...

  5. 深度神经网络为什么有效,神经网络处理什么问题

    神经网络优缺点, 优点:(1)具有自学习功能.例如实现图像识别时,只在先把许多不同的图像样板和对应的应识别的结果输入人工神经网络,网络就会通过自学习功能,慢慢学会识别类似的图像.自学习功能对于预测有特 ...

  6. 深度神经网络的应用,深度神经网络应用

    神经网络研究与应用这块用python好还是matlab? 两者或许无所谓好与坏.只要自己喜欢用,那就是好的,但是目前代码数量来看,可以学习的源代码MATLAB有非常多的源码.最重要的是,MATLAB里 ...

  7. 深度神经网络的训练过程,深度神经网络训练方法

    深度学习和神经网络的区别是什么 . 这两个概念实际上是互相交叉的,例如,卷积神经网络(Convolutionalneuralnetworks,简称CNNs)就是一种深度的监督学习下的机器学习模型,而深 ...

  8. 人工神经网络与深度神经网络

    想学习深度学习需要什么样的基础 很多小伙伴对深度学习的理解都有一些误解,今天就为你一一解答.很多人第一反应是深度学习特别高大上,需要一定基础才能学习,但是关于需要学习深度学习所需要的基础其实存在很多误 ...

  9. 神经网络和深度神经网络,图神经网络和神经网络

    神经网络与深度神经网络有什么区别 谷歌人工智能写作项目:神经网络伪原创 深度学习与神经网络有什么区别 找深度学习和神经网络的不同点,其实主要的就是:原来多层神经网络做的步骤是:特征映射到值好文案.特征 ...

最新文章

  1. git 换行符LF与CRLF转换问题
  2. 关于svn更新失败,clearup异常解决
  3. Jmeter性能测试之后置处理器Json提取器的使用
  4. errorEruda解决移动端真机调试,bug收集问题
  5. Hibernate之lazy延迟加载
  6. 删除binlog mysql_mysql中删除binlog的方法?mysql中如何删除binlog?
  7. java数据从本地文件中取出_java 从数据库取数据并存入本地文本中
  8. redis管道的使用
  9. leetcode207. 课程表(dfs/bfs)
  10. python用turtle画小人-画一个心送给心爱的小姐姐,Python绘图库Turtle
  11. 【C语言】利用二维数组输出成绩
  12. Android Studio 嵌入X5WebView
  13. 塞班手机刷linux,14年前的E680携带linux系统把诺基亚塞班系统按在地板摩擦
  14. 理论 - 半波偶极子天线原理与计算
  15. php使用ffmpeg将音乐wav格式转为mp3格式
  16. 达梦数据库语句句柄个数超上限或系统内存不足
  17. canvas多重阴影发光效果
  18. 示波器20M硬件带宽限制与数字滤波高低通功能
  19. python处理FITS文件 2:astropy.io.fits介绍及打开FITS文件
  20. python学习笔记02-分支循环(图灵学院视频笔记)

热门文章

  1. Geoserver发布wms地图服务(shape数据)(地图工具篇.5)
  2. 朝代更替中的上下五千年
  3. 【2019年07月22日】A股最便宜的股票
  4. 浙江工业大学计算机学院推免生,浙江工业大学2017年计算机科学与技术学院拟接收推免生名单...
  5. 计算机硬盘容量分配,500G的硬盘怎样合理分配容量
  6. PSP课程(一): PSP简介
  7. 不能为虚拟电脑xxxx打开一个新的任务解答
  8. hive函数整理(最全)
  9. SSH框架连接Oracle的一个简单项目
  10. MTI雷达原理的学习