深度学习中的不确定性:What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision

2023-10-27

转载 : https://zhuanlan.zhihu.com/p/98756147
原文:What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision? (NIPS 2017)

深度学习模型给出的预测结果并不总是可靠的。在无人驾驶等安全性要求较高的领域中,完全依赖深度模型进行决策有可能导致灾难性的后果。如果能够让深度学习模型对于错误的预测给出一个较高的不确定性,我们就能判断一个预测结果可信程度。因此,我们需要对不确定性进行建模。

衡量不确定性最直观的方法就是方差。对于一组数据在这里插入图片描述 ,其方差的计算公式如下:

在这里插入图片描述

一个单独输出值是得不到方差的。如果说我们能够用同一个模型,对同一个样本进行T次预测,而且这T次的预测值各不相同,就能够计算方差。问题是同一个模型同一个样本,怎么得到不同的输出呢?概率学家就说了,我们让学到的模型参数在这里插入图片描述不是确定的值,而是一个分布,那么就可以从这个分布中采样,每一次采样,得到的weight都是不同的,这样结果也是不同的,目的就达到了。

但是,怎么学习这样的分布呢?概率学家又说了,有现成的呀,dropout就是。使用了dropout来训练DNN时,模型的参数可以看成是服从一个伯努利分布在预测的时候,仍然将dropout打开,预测T次,均值就是最终的预测值,而方差就是不确定度。这样就得到深度学习的不确定度了。这种方法也被称为MC Dropout贝叶斯神经网络

但是,不确定性有两种。一种称之为偶然不确定性(Aleatoric Uncertainty),是由于观测数据中的固有噪声导致的。这种不确定性是无法被消除的。另外一种称之为感知不确定性(Epistemic Uncertainty),与模型相关,是由于训练不完全导致的。如果给它更多的训练数据来弥补现有模型知识上的不足,这种不确定性从理论上来说是可以消除的。MC Dropout只能得到关于模型的感知不确定性,而不能捕获数据的偶然不确定性,这是有问题的。这就是本文要解决的问题了。

贝叶斯神经网络

假定模型参数服从一个高斯先验分布: 在这里插入图片描述 。给定观测数据集 [公式] 时,可以使用贝叶斯推断来计算模型参数的后验分布 [公式] 。对于回归任务,通常假定似然是一个高斯分布:[公式] 。其中, [公式] 为模型的输出, [公式] 为噪声项。而对于分类任务,则经常对输出进行归一化,用softmax对其进行压缩处理: [公式]

贝叶斯神经网络虽然很好定义,但是实际操作起来比较困难。主要原因在于边际分布 [公式] 没法算。而这一项又是贝叶斯推断所必需的。因此只能通过近似的方法来逼近真实的参数分布。

贝叶斯推断公式:
在这里插入图片描述
Dropout变分推断是一种常用的近似方法。这种方法在除了在训练时要使用dropout之外,在预测时,也要将dropout打开,执行T次预测取其平均值。理论证明这种方法等价于在最小化KL散度。

利用Dropout进行训练时,其最小化目标为
在这里插入图片描述
其中,第一项为负对数似然,第二项为正则化参数。p 为dropout中的随机失活率。 [公式] 。N为数据点个数。

在回归任务中,通常假设似然是一个高斯分布,那么负对数似然可以写为如下形式:

[公式]

[公式] 表示模型输出值的噪声,一定意义上衡量了输出的不确定程度。

感知不确定性

感知不确定性是关于模型参数的。为了捕获这个不确定性,我们可以从模型参数的分布中采样多次,得到T 个模型,用这T个模型对同一个样本做预测,看看 T次的预测结果有多么的不稳定。

对于分类问题,T次预测的概率为:
在这里插入图片描述
其中,在这里插入图片描述。不确定性可以用熵来衡量: [公式]

对于回归问题,不确定性可以用输出值的方差来表示: [公式]
其中, [公式] 表示输出的均值。

偶然不确定性

偶然不确定性衡量的是数据本身存在的噪声,某种程度上衡量了一个instance的预测难度,因此可以将它看作是instance的一个函数:对于预测结果比较离谱的instance,这个函数值应该比较大;而对于容易预测的instance,相应的函数值应该较小。可以用以下的损失函数来对其进行建模,

[公式]
[公式] 即表示Xi偶然不确定性。这里没有对模型参数执行变分推断,而是用了MAP,只能得到一组单一的模型参数值而不是一个分布,因而也无法捕获模型参数的感知不确定性。由此而实现了两种不确定性的分离。

简单来说,感知不确定性是用多次预测结果的方差来决定的,在多次预测中,所用的模型参数都是不一样的,因此这种做法捕获了模型参数的感知不确定性。而偶然不确定性是由样本的特征决定的,和模型参数是无关的。

将两种不确定性结合

回归任务

为了将两种不确定性结合到同一个模型中,我们需要两组输出:一组是最终的预测结果 [公式] ,另一组是样本的偶然不确定性 [公式] 。即

[公式]

通过最小化以下的损失函数来训练模型:

[公式]

在论文中的深度回归任务中,D 表示图片X中的像素点数量,i 为像素的索引。上面的损失包含了两部分:一部分是回归模型的残差,用于捕获模型参数的感知不确定性;另一部分是像素点的偶然不确定性,充当正则化项。注意到,在学习偶然不确定性时,其实是不需要标记的。
如果一个像素i 很难预测对,为了最小化整个损失, [公式] 会相应地变大,而 [公式] 又会防止 [公式] 变得无穷大。并不需要 [公式] 的ground truth。

实际训练中, [公式] 其实相当于一项自适应的权重,对于难以预测的样本,数据中存在较多的固有噪声,这项权重比较小;而对于容易预测的样本,数据中存在的固有噪声比较少,这项权重会比较大。这会让模型在训练过程中区别地对待不同的样本。

分类任务

在分类任务中,对于一个像素i,模型会输出一个预测向量fi,然后再通过softmax操作得到一组概率Pi。假定预测向量服从一个高斯分布:

[公式]

这里 [公式][公式] 是网络参数为 W 时的输出。相当于对向量 [公式] 施加了一个方差为 [公式]的噪声。

训练模型的损失函数可以写为:

[公式]

第二项实则为交叉熵损失函数化简后的结果。

交叉熵损失的简单推导:
假定一共有C个类别,像素i 属于类别c, [公式] ,那么像素 i 交叉熵损失为
[公式]

因为要执行T次预测,因此损失也要取T次的平均,由此得到了公式 (1)。

简单来说,贝叶斯神经网络或者MC Dropout能够捕获感知不确定性,额外添加的 [公式] 则用来捕获偶然不确定性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习中的不确定性:What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision 的相关文章

  • Nginx配置汇总

    一 Nginx概念 Nginx是目前负载均衡技术中的主流方案 几乎绝大部分项目都会使用它 Nginx是一个轻量级的高性能HTTP反向代理服务器 同时它也是一个通用类型的代理服务器 支持绝大部分协议 如TCP UDP SMTP HTTPS等

随机推荐

  • hadoop.2.6.0安装hive.1.2.2

    文章目录 1 hadoop 2 6 0的安装 2 hive 1 2 2的安装 2 1 前提 2 2 解压 错误1 提示 1 hadoop 2 6 0的安装 参考 https blog csdn net qq 21383435 article
  • 请别再问我Spark的MLlib和ML库的区别

    机器学习库 MLlib 指南 MLlib是Spark的机器学习 ML 库 其目标是使实际的机器学习可扩展和容易 在高层次上 它提供了如下工具 ML算法 通用学习算法 如分类 回归 聚类和协同过滤 特征提取 特征提取 转换 降维和选择 管道
  • sharding-jdbc系列(一):概念

    前话 前段时间公司项目比较忙 天天都忙于码代码 最近好不容易项目上线了 后期就是试运行解决线上问题 要闲一些了 看了下公司以前的一些项目 发现其中居然有用到sharding jdbc 想到以前自己也使用过 但是仅仅是会用过 对一些原理还不了
  • antd pro component - EditableProTable 表单重置

    antd pro component EditableProTable 受控情况之下 改变 dataSource之后 但是表格编辑组件还是记录上次编辑状态记录的数据 没有及时更新 解决办法就是手动更新表单 其实整个表格就是一个form 开始
  • 数据分析36计(24):因果推断结合机器学习估计个体处理效应

    个体异质性为何重要 传统的因果推断分析 主要关注焦点是平均处理效应 Average Treatment Effect 许多科学和工程都会面临这样的挑战 从个性化的医疗救治方案 到定制型的营销建议都需要了解异质性处理效应 即个体层面的因果效应
  • 延时队列的几种实现方式(只有原理,并没有源码)

    延时队列 需求描述 场景一 在淘宝下了订单 过半个小时未支付就取消订单 场景二 还是淘宝 别问 问就是淘宝资深剁手党 发货后超过15天未确认就自动收货 需求分析 本质上都是超过xxx时间 就异步去做一件事 说到异步那基本上就是搞个定时任务去
  • 推荐 4 个本周 火火火火 的开源项目

    本期推荐开源项目目录 1 一个集成了主流 AI 大模型的 APP 2 模拟人类行为的小镇 3 离线 OCR 软件 4 流程图编辑框架 01 一个集成了主流 AI 大模型的 APP 该开源项目集成了主流的大语言模型 绘图模型 基于Flutte
  • 第七站:吃透JavaScript中的函数

    欢迎来到 JavaWeb的奇妙冒险 教学系列 在这里 我们将继续探索Web开发的精彩世界 本站将为你揭开JavaScript中变量的神秘面纱 让我们在学习的过程中既轻松愉快 又能掌握高质量的知识 准备好进入第七站的学习之旅了吗 让我们开始吧
  • 【C++11】右值引用和移动语义 万能引用和完美转发

    文章目录 1 右值引用和移动语义 1 1 左值引用和右值引用 1 2 右值引用的使用场景 1 3 新的类功能 2 万能引用与完美转发 2 1 万能引用的基本介绍和使用 2 2 完美转发 2 3 完美转发的实际应用场景 3 可变参数模板 3
  • C++继承(一)

    目录 继承方式 继承同名成员处理方式 父类与子类中都有相同的成员 继承同名静态成员处理方式 继承中的对象模型 继承中构造和析构函数 菱形继承 多继承语法 在多种接口需要相同输出时 C 的继承相对于传统方式更有利也更方便维护 C 继承语法 c
  • React + css3 实现circle圆环进度条加载

    需求效果图 如上图所示 需求 动态获取不同的分数 圆环展示对应的百分比分数值 正确率 70 以下提示文案 还需要继续加油哦 正确率 70 90 以下提示文案 不错 再加把劲 正确率 90 及以上提示文案 真棒 数据描述 不同的测试分数显示不
  • 如何用Git LFS管理超过50MB的文件

    首先说明 Github对文件上传尺寸有50MB的限制 如果想要上传大于50MB的文件 必须用Git Large File System进行管理 一般情况下 超额的这部分大型文件是各种包啊什么的 比如Unity项目内的一些package 本身
  • Spring IOC的实现机制

    1 什么是Spring IOC Spring IOC Inversion of Control 控制反转 是Spring框架的核心特性之一 它是一种设计模式 通过该模式 对象的创建 依赖注入和生命周期管理等操作由容器负责 而不是由程序员手动
  • Spring-cloud 导致应用收到多次ApplicationPreparedEvent

    最近排查发现DubboComponent被重复注册 怀疑ApplicationPreparedEvent收到了多次 public final class DubboConfigApplicationListener implements A
  • 华为OD机试 -配置文件恢复(C++ & Java & JS & Python)

    描述 有6条配置命令 它们执行的结果分别是 命 令 执 行 reset reset what reset board board fault board add where to add board delete no board at a
  • SPI 及 NOR Flash 介绍

    一 SPI 1 SPI的含义 SPI 串行外设设备接口 Serial Peripheral Interface 是一种高速的 全双工 同步的通信总线 SPI接口主要应用在存储芯片 AD转换器以及LCD中 SPI接口主要应用在存储芯片 AD转
  • Springboot 配置文件中用户名密码加密

    原配置文件内容 详细操作步骤 1 在pom xml文件中加依赖
  • 探究vite——新一代前端开发与构建工具(一)

    Vite 法语意为 快速的 发音 vit 是一种新型前端构建工具 能够显著提升前端开发体验 它主要由两部分组成 一个开发服务器 它基于 原生 ES 模块 提供了 丰富的内建功能 如速度快到惊人的 模块热更新 HMR 一套构建指令 它使用 R
  • 设计模式,命令模式,c++实现,提升内聚性,消除功能类与高层的耦合

    命令模式 给功能类集设置一个接口人 执行者 执行所有需求命令 避免外部 调用者 直接调用某个功能类的内部函数产生大量耦合 用于类间解耦 命令模式是一个高内聚的模式 将一个请求封装为一个对象 使用不同的请求把客户端参数化 对请求排队或者记录请
  • 深度学习中的不确定性:What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision

    转载 https zhuanlan zhihu com p 98756147 原文 What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision NI