为什么对于深度学习模型,softmax输出不是一个好的不确定性度量?


22

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

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

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


编辑:为了澄清我在这里要问的问题,到目前为止,我将在回答这个问题时详细阐述我的见解。但是,以下所有论点都没有向我说明**为什么它通常是个坏主意**,正如同事,主管反复说明的那样,例如“ 1.5”

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

在“背景”部分中

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


上面的资料源认为将softmax输出用作不确定性度量是不好的,原因是:

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

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

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

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

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

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

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


4
使用SoftMax不是)不确定(uncertainty量度,这是一个功能是,在变换值0 1 -01个
蒂姆

2
01个01个

我喜欢您这样说:“毕竟,它们似乎很好地代表了我的模型所确定的内容,即使它不正确(在这种情况下,我需要修复我的模型)。”
HeyWatchThis,

Answers:


14

该问题的答案可以比当前答案更精确。固定预测概率(神经网络的softmax层的输出)与其真实概率(代表置信度的概念)之间的偏差称为校准或可靠性曲线。

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

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

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


1
谢谢@cgnorthcutt,我听到过很多人提起这个话题,从那以后一直在寻找这篇论文,真的很棒
泰奥菲尔佩斯

美丽,谢谢。对于感兴趣的人,这里是到摘要(而不是本文)的链接:arxiv.org/abs/1706.04599
Waylon Flinn

3

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

因此,我想说的是您的直觉并不完全正确。但是,在上述抵押建模示例中,因变量是贷款违约的概率度量。您拥有抵押池并观察违约数。单一抵押可以是当前抵押贷款,也可以是默认抵押贷款,其违约概率不可观察。我们仅观察到离散事件。但是,我们确实对概率建模。

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


感谢您的回答。因此,可以归结为:在某些情况下,这实际上是一种有效的方法,但是由于它不健壮并且不(轻易)知道它是否适用于特定任务,因此通常不是一个好主意?
Honeybear

我不会在诸如“ robust”之类的术语上折腾,因为它们在统计中具有非常特定的含义,但是您可以理解我的论点。如果专门为概率建模,则可能最终会使用softmax方程,将输出解释为概率是可以的。通常,softmax输出与概率不对应。
阿克萨卡尔州

1

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

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

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

我想您可以实现它并作为CONVNET的最后一层添加。如果您实施了它,别忘了共享是关心的事情;-)祝您好运


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.