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/