当前位置: 首页 > news >正文

Evidential Deep Learning和证据理论教材的区别(主要是概念)

最近终于彻底搞懂了Evidential Deep Learning,之前有很多看不是特别明白的地方,原来是和证据理论教材(是的,不只是国内老师写的,和国外的老师写的教材出入也比较大)的说法有很多不一样,所以特地写了这一篇来做一下笔记。

证据理论做模式识别的话第一件事是构建辨识框架(FoD)及其幂集,第二件事是写基本概率指派,基本概率指派就是一个函数,名为BPA或mass函数。ENN这里构建FoD及其幂集和证据理论的做法是一样的,但是注意ENN所构建的mass函数是由这样的二元组构成的:
< b , u > : ∑ i = 1 K b i + u = 1 <\mathbf{b},u>:\sum_{i=1}^{K}b_i+u=1 <b,u>:i=1Kbi+u=1
其中 b = { b 1 , . . . , b K } \mathbf{b}=\{b_1,...,b_K\} b={b1,...,bK} K K K类目标的belief, u u u是uncertainty。需要注意的是如果按照我们国内证据理论的教材的话,其实 b \mathbf{b} b u u u都是belief,只不过 b \mathbf{b} b是赋予给单子集的belief, u u u是赋予给FoD的belief(然后呢,赋予给FoD的belief的语义是“我只知道待测样本在这些目标之间,但是具体是哪一个我不知道”的belief,这确实是一种uncertainty,但这只是证据理论所建模的uncertainty的一种),从国内证据理论教材的角度来讲,ENN还需要对介于单子集和FoD之间的那一部分假设赋予belief,但是ENN选择了直接赋为0的操作,这种操作是可以的,但是也应该要说明一下的,文章的话是直接把这块省略了。

第二个就是NN的输出是 e i e_i ei,然后有了 e i e_i ei那么上面的 b i = e i / S b_i=e_i/S bi=ei/S S = ( ∑ i = 1 K e i ) + K S=(\sum_{i=1}^{K}e_i)+K S=(i=1Kei)+K就可以算了,文章里面把这个 e i e_i ei叫证据evidence,但是我觉得这么叫其实是有误导作用的。正常来讲,证据理论里面的一条证据evidence,也可以叫一个证据体a body of evidence,其实是说一个基本概率指派函数,也就是一个mass函数,然后全体mass函数的集合构成了全体证据。

另外知乎上还有人问这个图咋来的。配套的文字是在我们的第一组评估中,我们使用相同的LeNet架构在MNIST训练集上训练模型,并在包含字母(而非数字)的notMNIST数据集上进行测试。因此,我们期望得到最大熵(即不确定性)的预测。在图3的左面板中,我们展示了所有使用MNIST数据集训练的模型在可能熵范围[0, log(10)]内的经验累积分布函数(CDF)。图中越接近右下角(即熵值越大)的曲线越理想,这表明所有预测都具有最大熵[24]。显然,我们模型的不确定性估计明显优于基线方法。
在这里插入图片描述
MNIST就是手写数据集,一共有10个类,所以范围是[0,log10]。我们知道证据理论里面只知道证据是没法解读的,必须把证据里面的 < b , u > <\mathbf{b},u> <b,u>转译成概率分布才可以。一般来说,证据理论的话最经典的会用Pignistic Transformation完成这个任务,但是这篇论文呢没用,它直接用 p i = α i / S p_i = \alpha_i/S pi=αi/S α i = e i + 1 \alpha_i=e_i+1 αi=ei+1这么做的。有了 p i p_i pi,不就有了NN预测的概率了嘛,然后就可以算熵了。这篇基本可以肯定用的是Shannon 熵,而不是证据理论里面的那些熵。就是不知道为什么,ENN的结果里不确定性都这么大。像作者所说的“图中越接近右下角(即熵值越大)的曲线越理想”更是让人觉得费解。。

http://www.xdnf.cn/news/7777.html

相关文章:

  • test ssl java
  • 【C++指南】哈希驱动的封装:如何让unordered_map/set飞得更快更稳?【上】
  • 数据结构学习笔记 :二叉搜索树与高效查找算法详解
  • React 列表渲染基础示例
  • DFS/BFS专练-搞定图论基础!(从海岛问题过渡至图论基础应用C++/C)
  • 无刷电机槽数相同、转子极数不同的核心区别
  • Nacos安装及数据持久化
  • ESP32之本地HTTP服务器OTA固件升级流程,基于VSCode环境下的ESP-IDF开发(附源码)
  • 【Spring Boot】MyBatis入门:连接Mysql数据库、测试单元、连接的常见错误
  • 汇编语言中的数据
  • 基于C++(MFC)的细胞识别程序
  • 人工智能在后端开发中的革命:从架构到运维
  • 前端:uniapp中uni.pageScrollTo方法与元素的overflow-y:auto之间的关联
  • 极狐GitLab 项目导入导出设置介绍?
  • 架构师面试(三十一):IM 消息收发逻辑
  • 手撕STL——vector
  • 利用DeepSeek设计一个HTML批量转换工具设计
  • Hadoop的三大结构及其作用?
  • hadoop的三大结构及各自的作用
  • yarn的定义
  • 「数据可视化 D3系列」入门第九章:交互式操作详解
  • 自动驾驶与机器人算法学习
  • 【区块链通用服务平台及组件】京北方分布式身份管理平台 | FISCO BCOS 应用案例
  • java八股之并发编程
  • 医院数据中心智能化数据上报与调数机制设计
  • 仿腾讯会议项目开发——界面关闭功能实现
  • Flink介绍——实时计算核心论文之Kafka论文详解
  • java输出、输入语句
  • Vue3 Composition API与十大组件开发案例详解
  • 杂记-LeetCode中部分题思路详解与笔记-HOT100篇-其四