【OpenPCDet】Uncertainty Estimation学习笔记(一)

Saturday, Nov 30, 2024 | 1 minute read | Updated at Saturday, Nov 30, 2024

@

为什么要研究uncertainty?

训练好的[神经网络模型本质是一个拥有大量确定参数的函数,不管你给什么输入,它都能给你一个输出。这会导致两种我们不愿意看到的意外情况:

  • 对明明错误的预测结果,模型输出的[置信度]却很高
  • 对没有见过的输入(OoD,Out-of-ditribution),比如给一个识别猫/狗的模型输入一张桌子图片,模型一定会输出:”这是猫“ or “这是狗”,而不是告诉我们 “它似乎不是猫,也不是狗”

所以,我们希望模型能输出 uncertainty,辅助使用模型的人进行更好地决策。比如上面的例子中,我们希望对错误分类的样本、OoD样本,模型能够给出一个较高的uncertainty。

uncertainy是什么?

参考NIPS2017年的论文 What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision? ,Gal阐述了两种uncertainty:Aleatoric uncertainty(i.e. data uncertainty) 和 Epistemic uncertainty(i.e. model uncertainty),即随机不确定度(也称数据不确定度),和认知不确定度(也称模型不确定度)。

Epistemic uncertainty可以通过增加数据解决,比如下图:只有一个data point的时候,符合要求的模型有很多种可能,uncertainty很高。当数据点增加,模型逐渐确定,uncertainty减小。

image
image

How?怎么计算不确定度

1.Epistemic uncertainty建模

image
image
Monte-Carlo 和 Ensemble 对一个随机分布,不确定性建模的方法有很多,标准差、方差、风险值(VaR)和熵都是合适的度量。在深度学习中,建模不确定度需要用到Bayesian DeepLearning。从Bayesian的角度,深度学习训练的本质是求一个posterior distribution $P(W|D)$ ,其中W是参数,D是数据。根据bayes theorem(贝叶斯定理),我们有 $P(W|D)=\frac{P(D|W)P(W)}{P(D)}$ 但是这个公式没法用,因为 $P(D)$ 理论上代表的是真实的数据分布,无法获取; $P(W)$ 在神经网络中也是不存在的,因为模型训练好以后,所有参数都是确定的数,而不是distribution,没法计算 $P(W)$ 。于是我们想到bayes theorem的另一个公式: $P(D)=\sum_i{P(D|W_i)P(W_i)}$

如果我们知道所有W,那么就可以计算 $P(D)$了,但这也是不可能的。不过我们可以用蒙特卡洛法 (Monte-Carlo)多次采样逼近:多次采样W计算 $P_i (D)$ ,得到$P(D)$的近似分布,进而得到 $P(W|D)$ 的估计。具体来说,有3种方式:

  • Ensembles方法 用类似bootstrap 的方法,对数据集D,采样N次,用N次的结果分别训练模型,然后ensemble模型结果。这个方法的好处是接近真实的Monte-Carlo方法
  • MCDropout方法 在网络中加入Dropout层,在测试时也打开Dropout,让Dropout成为采样器。对采样N次的结果进行ensemble处理得到最后的uncertainty。这个方法的好处是不用做很多实验,节省成本,但是由于使用了Dropout,单次训练的时间会变长。
  • MCDropConnect方法 和加Dropout的思路差不多。不过这里不用加Dropout layer,而是通过随机drop connection,来达到随机采样 的目的。

从理论层面,MC-Dropout是variantianl inference(BNN的重要概念之一)的近似。

2.Aleatoric uncertainty建模

image
image
image
image
有三种方式可以建模Aleatoric Uncertainty,这里介绍Probabilistic Deep Learning。从表格可以看出,其实就是在原始任务基础上,增加probability prediction,这个probability可用于measure uncertainty。 比如分类任务原来只输出类别,现在还需要输出probability。为了准确表示uncertainty,这里的probability要求calibrated probability ,不能直接用用softmax输出的score。由此,对目标检测 任务也有Probabilistic Object Detection

参考博客: https://zhuanlan.zhihu.com/p/166617220 https://proceedings.neurips.cc/paper/2017/hash/2650d6089a6d640c5e85b2b88265dc2b-Abstract.html https://www.cs.ox.ac.uk/people/yarin.gal/website/thesis/thesis.pdf

© 2021 - 2026 古月月仔的博客

🌱 Powered by Hugo with theme Dream.

关于我
  • 我是古月月仔
  • Shimizu Tou||Ethan Hu
  • 分享技术学习笔记与生活感悟杂谈
  • 现居: 上海 中国
  • 家乡: 平遥 山西
日常效率工具
  • 📝Typora — Markdown极简编辑器。
  • 📓Notion — 一站式笔记工作空间。
  • 🔗N8N — 强大的节点编排工作流工具。
  • 🤖Gemini — 好用的智能 AI 助手。
  • IamgetoUrl - 快速将图片转为URL。
  • Anyconv - 多种文件格式转换在线工具。
  • PDF24 - PDF编辑操作在线工具箱。
内容与资源工具
  • Mixamo - Adobe提供的免费角色动画库。
  • Bunlock-Music - 用于解密.ncm,.qmc类音频格式的工具。
  • EasyGIT - 一款在线GIF动图制作工具。
  • Alphacoders - 海量高清壁纸和影视/游戏原图社区。
  • 哲风壁纸 -中文壁纸分享与交流社区。
  • 爱给网 - 免费音效、配乐、视频模板等海量媒体素材。
  • 模之屋 - 专注于分享各类3D模型的社区。
我的爱好
  • 🚀 喜欢折腾各种好玩的应用技术
  • 📸 业余摄影爱好者
  • 🎮 各类游戏玩家
  • 💻 数码产品折腾爱好者
  • 📚 正在阅读:《人类简史》
  • 🎬 经典重温:《爱乐之城》