为什么 softmax 输出不是深度学习模型的良好不确定性度量?

机器算法验证 可能性 深度学习 卷积神经网络 不确定 软最大
2022-02-10 10:37:09

我已经使用卷积神经网络 (CNN) 有一段时间了,主要是用于语义分割/实例分割的图像数据。我经常将网络输出的 softmax 可视化为“热图”,以查看某个类的每像素激活有多高。我将低激活解释为“不确定”/“不自信”,将高激活解释为“确定”/“自信”预测。基本上,这意味着将 softmax 输出(在内的值)解释为模型的概率或(非)确定性度量。(0,1)

例如,我已经解释了一个在其像素上平均具有低 softmax 激活的对象/区域对于 CNN 来说很难检测到,因此 CNN 对于预测这种对象是“不确定的”。

在我看来,这通常是有效的,并且在训练结果中添加额外的“不确定”区域样本可以改善这些结果。然而,我现在经常从不同方面听到使用/解释 softmax 输出作为(非)确定性度量不是一个好主意,通常不鼓励。为什么?


编辑:为了澄清我在这里问什么,我将详细说明我迄今为止在回答这个问题时的见解。但是,以下论点都没有让我明白**为什么这通常是一个坏主意**,正如同事、主管反复告诉我的那样,并且在“1.5”节中也有说明

在分类模型中,在管道末端获得的概率向量(softmax 输出)经常被错误地解释为模型置信度

在“背景”部分

尽管将卷积神经网络的最终 softmax 层给出的值解释为置信度分数可能很诱人,但我们需要注意不要对此进行过多解读。


上面的原因是使用 softmax 输出作为不确定性度量是不好的,因为:

对真实图像的不可察觉的扰动可以将深度网络的 softmax 输出更改为任意值

这意味着 softmax 输出对“不可察觉的扰动”并不稳健,因此它的输出不能用作概率。

一篇论文提出了“softmax 输出 = 置信度”的想法,并认为有了这种直觉,网络很容易被愚弄,产生“无法识别的图像的高置信度输出”。

(...) 对应于特定类的区域(在输入域中)可能比该区域中该类的训练示例所占用的空间大得多。这样做的结果是,图像可能位于分配给某个类别的区域内,因此在 softmax 输出中被分类为具有较大的峰值,同时仍远离训练集中该类别中自然出现的图像。

这意味着远离训练数据的数据永远不应获得高置信度,因为模型“无法”确定它(因为它从未见过)。

然而:这通常不是简单地质疑整个 NN 的泛化特性吗?即,具有 softmax 损失的 NN 不能很好地推广到(1)“不可察觉的扰动”或(2)远离训练数据的输入数据样本,例如无法识别的图像。

按照这个推理,我仍然不明白,为什么在实践中没有抽象和人为改变的数据与训练数据(即大多数“真实”应用程序)相比,将 softmax 输出解释为“伪概率”是不好的主意。毕竟,它们似乎很好地代表了我的模型所确定的内容,即使它不正确(在这种情况下,我需要修复我的模型)。模型不确定性不总是“仅”一个近似值吗?

4个回答

这个问题可以比目前的答案更准确地回答。修复预测概率(神经网络的 softmax 层的输出)与其真实概率(代表置信度的概念)之间的偏差,称为校准曲线或可靠性曲线。

许多深度神经网络的问题在于,尽管它们往往在预测方面表现良好,但它们由 softmax 层的输出产生的估计预测概率不能可靠地用作真实概率(作为每个标签的置信度)。在实践中,它们往往太高了——神经网络对他们的预测“过于自信”。

川高等。al. 与 Kilian Weinberger 合作,在本文中开发了一种用于校准神经网络预测概率的有效解决方案:https ://arxiv.org/abs/1706.04599

本文还解释了在正确校准预测概率时如何将预测概率解释为置信度度量。

softmax 置信度和不确定性之间的关系比很多工作听起来要复杂得多。

首先,有两个独立的问题经常被混为一谈。

  • 校准- 90% 的 softmax 置信度是否意味着 90% 的时间都是正确的?这是在训练分布上评估的。我们对绝对置信度值感兴趣。
  • 不确定性——当网络不知道某事时,softmax 的置信度会降低吗?这是通过将训练分布上的 softmax 置信度与其他一些数据(通常称为分布外,OOD)进行比较来评估的。如果在训练分布上,softmax 置信度在 92-100% 范围内,那么在 OOD 数据上它应该是 <92%。我们对相对置信度值感兴趣。

校准。深度神经网络通常会为任何输入输出非常高的 softmax 置信度(例如 >95%),并且众所周知,它的校准很差。据我所知,这是相当没有争议的。经典参考:Guo 等人的《现代神经网络的校准》。.

不确定。这个问题不太明确。有一些众所周知的方法可以使 softmax 置信度失败,例如放大输入或创建对抗性示例Softmax 置信度还混淆了两种不同的不确定性来源(偶然性和认知性)。这些反例引起了很多关注,导致声称(以不同的强度提出)softmax 置信度不确定。

鉴于这些失败模式,有时会忘记的是,将 softmax 置信度天真地解释为不确定性实际上在许多不确定性任务上表现得相当好此外,许多声称“捕获不确定性”的方法通常都不会超过 softmax 置信度。

Pearce 等人的论文 “Understanding Softmax Confidence and Uncertainty”。,调查为什么 softmax 置信度在这些不确定性基准中表现合理,描述了未修改的神经网络的两个属性,在某些情况下,这似乎有助于 softmax 置信度不确定。

Softmax 在可用类之间分配“概率”0-1。它不表达不确定性,它不是 PDF 功能。如果你想表达不确定性,你应该研究贝叶斯神经网络。看看这篇论文:深度学习中的不确定性 一些相当新的概率框架:

Zoubin Ghahramani(剑桥大学)的有趣主题演讲

看看这篇论文:混合密度网络

我想你可以实现它并作为最后一层添加到 CONVNET。如果您确实实施它,请不要忘记分享是关怀 ;-) 祝你好运

ML 中所谓的 softmax 与多项逻辑方程具有相同的方程。后者可用于计算概率。在实践中,它被广泛用于估计抵押贷款竞争风险框架中的违约概率,例如参见方程式。4 在本文中。

因此,我会说你的直觉并没有完全偏离标准。然而,在上述抵押贷款建模示例中,因变量是贷款违约的概率度量。您有一个抵押贷款池并观察违约数量。单个抵押贷款可以是当前的也可以是违约的,其违约的概率是不可观察的。我们只观察离散事件。但是,我们确实对概率进行了建模。

这与机器学习有何不同?这取决于。我可以决定将其应用于抵押贷款违约,那么它根本不会有太大的不同。另一方面,在不同的应用程序中,这可能不起作用。如果您没有像我的示例中那样明确地对概率进行建模,那么您的模型输出可能无法恰当地表示概率。