Evidence Learning

Paper:Evidential Deep Learning to Quantify Classification Uncertainty

传统的神经网络在执行分类任务的时候,存在一个缺陷,也就是无法表达“我不知道”。

  • 过分自信。由于使用的是 Softmax,即使面对未见过的样本,也会给一个高概率。
  • 无法区分不确定性。也就是分不清当前样本到底是样本本身导致的不确定,还是因为模型没见过导致的不确定。

论文的核心直觉是什么?让模型预测每个类别的证据量。

具体来说,模型引入了迪利克雷分布。

什么是迪利克雷分布?

迪利克雷的参数为

其中 代表第 个类别的证据。一般来说,

这里的数字 1 代表一个先验,也就是没有任何证据时的初始状态。因此迪利克雷分布可以反应三种状况:

  • 所有 ,代表完全不确定。
  • 某个 非常大,代表很确定。
  • 当所有 都很大时,代表模型很相信自己的预测,但确实这个样本长得像很多类别。

论文具体是如何解决?

模型输出一个向量 ,代表每个类别的证据量。然后迪利克雷的参数定义为 。总强度为 ,则模型整体的不确定性定义为:

那么损失函数如何设计呢?完整的损失函数设计如下:

可以看到包含两部分,一部分是分类损失,一部分是 KL 散度损失。

其中 KL 散度的公式中的 为:

对于正确类别 ;对于错误类别,

由此可知,在计算 KL 散度前,模型会手动把正确类别的证据设置成 1。

现在让我们理解一下这个公式:

  • 为参数为 的迪利克雷分布。
  • 为 KL 散度。

可以分情况考虑:

  • 分布内,且易分类的样本:模型会给某个类别大量的证据(比如50),模型将该类别证据清零,于是 KL 的参数序列为 ,因此惩罚只有分类损失。
  • 分布外;或者分布内难分类:其他类别的证据很大,模型的 KL 损失很大,迫使模型将所有迪利克雷参数向 1 优化。

一些细节

注意这里的退火系数:

在训练初期,模型没有见到多少数据,预测基本都是错的。这个时候如果系数很大,模型容易崩溃,不稳定。

另外就是分类误差项:

注意这里不是交叉熵,作者发现平方和更加稳定。另外损失函数的第二项是方差项,希望迪利克雷分布的方差越小越好。


Evidence Learning
https://d4wnnn.github.io/2026/03/30/Notion/Evidence Learning/
作者
D4wn
发布于
2026年3月30日
许可协议