我已经在卷积神经网络(CNN)上工作了一段时间,主要是用于语义分割/实例分割的图像数据。我经常将网络输出的softmax可视化为“热图”,以查看特定类别的每个像素激活的数量。我将低激活率解释为“不确定” /“不确定”,将高激活率解释为“某些” /“自信”的预测。基本上这意味着解释SOFTMAX输出(值的范围内)作为模型的概率或(未)确定性量度。
(例如,我已经解释了在其像素上平均具有低softmax激活的对象/区域,这样CNN很难检测到,因此CNN对于预测这种对象“不确定”。)
在我看来,这通常是有效的,将额外的“不确定”区域样本添加到训练结果中可以改善这些结果。但是,我现在从不同方面经常听到,使用/解释softmax输出作为(不确定性)度量不是一个好主意,并且通常不鼓励这样做。为什么?
编辑:为了澄清我在这里要问的问题,到目前为止,我将在回答这个问题时详细阐述我的见解。但是,以下所有论点都没有向我说明**为什么它通常是个坏主意**,正如同事,主管反复说明的那样,例如“ 1.5”
在分类模型中,在管道末端(softmax输出)获得的概率向量通常被错误地解释为模型置信度
或在“背景”部分中:
尽管将卷积神经网络的最终softmax层给出的值解释为置信度分数可能很诱人,但我们需要注意不要过多地阅读它。
上面的资料源认为将softmax输出用作不确定性度量是不好的,原因是:
对真实图像的不可察觉的扰动可以将深层网络的softmax输出更改为任意值
这意味着softmax输出对于“不可察觉的扰动”并不稳健,因此它的输出不能用作概率。
另一篇论文提到“ softmax输出=置信度”的想法,并认为通过这种直觉网络可以很容易地被愚弄,从而产生“无法识别图像的高置信度输出”。
(...)与特定类别相对应的区域(在输入域中)可能比该类别的训练示例所占用的该区域中的空间大得多。结果是,图像可能位于分配给某个类别的区域内,因此在softmax输出中被分类为具有较大的峰值,而仍然与训练集中该类别中自然出现的图像相距甚远。
这意味着与训练数据相距甚远的数据永远不应获得很高的置信度,因为模型“无法”确定它(因为它从未见过)。
但是:这不是简单地质疑整个NN的泛化特性吗?即,具有softmax损失的NN不能很好地推广到(1)“无法察觉的扰动”或(2)远离训练数据的输入数据样本,例如无法识别的图像。
按照这种推理,我仍然不明白,为什么在实践中,没有经过抽象和人为改变的数据与训练数据(即大多数“真实”应用程序)相比,将softmax输出解释为“伪概率”是一个不好的选择理念。毕竟,它们似乎很好地代表了我的模型所确定的内容,即使它是不正确的(在这种情况下,我需要修复我的模型)。而且模型不确定性是否总是“仅”为近似值?