MSP(Maximum-Softmax-Probabilities)
MSP方法(Maximum-Softmax-Probabilities)
A Baseline For Detecting Misclassified And Out-Of-Distribution Examples In Neural Networks - ICLR 2017
采用的是后处理方法 #post-hoc
思想
作者巧妙的规避了显式的设定置信度阈值的评价方法,而是采用了两个阈值无关的评价准则,与AUPR。值得说明的一点是,虽然这两个评价指标不需要定义阈值,但是在实际应用中,需要在ROC曲线或者PR曲线上选择合适的点,也就是合适的置信度阈值来进行OOD判断
OOD检测本质上是一个二分类问题,对于测试样本,我们是知道它们的真实标签的,也就是0-1标签,表示是ID样本还是OOD样本。同样的,我们的模型利用Softmax输出的最大置信度作为当前样本是ID数据的概率。利用这两组数值,我们就可以计算AUPR与AUROC。在计算AUPR的时候,作者将ID看作正样本计算AUPRin,将OOD样本看作正样本计算AUPRout,这两个指标分别反映了网络检测ID的能力与检测OOD的能力。AUPR以及AUROC这两个指标都是越大越好。
评估指标选择
AUROC
- 提出检测分类器的指标是AUROC,而不是ACC。原因是ACC无法很好地面对正负样本失衡问题,如果负类的可能性远高于正类,那么模型会总是猜测负类并获得较高的ACC
- 采用了接收者工作特征曲线下面积(AUROC)指标,这是一种与阈值无关的表现评估(Davis & Goadrich, 2006)
- 此外,AUROC可以被解释为一个积极的例子比一个消极的例子有更大的检测器得分/值的概率(Fawcett, 2005)。因此,随机正例检测器对应于50% AUROC,而“完美”分类器对应于100%
AUPR
- AUROC没有解决threshold selection(阈值选择)问题
- 当正类和负类的基本利率(base rates)差异很大时,AUROC并不理想,AUPR会根据这些不同的正和负基本利率进行调整。
那么如何计算AUROC与AUPR呢?OOD检测本质上是一个二分类问题,对于测试样本,我们是知道它们的真实标签的,也就是0-1标签,表示是ID样本还是OOD样本。同样的,我们的模型利用Softmax输出的最大置信度作为当前样本是ID数据的概率。利用这两组数值,我们就可以计算AUPR与AUROC。在计算AUPR的时候,作者将ID看作正样本计算AUPRin,将OOD样本看作正样本计算AUPRout,这两个指标分别反映了网络检测ID的能力与检测OOD的能力。AUPR以及AUROC这两个指标都是越大越好。
模型
大多数分类器都是对于输出的逻辑 (logit) 进行softmax 函数计算后得到预测概率,然后取概率最大值作为预测的类别。由于softmax 函数是使用指数函数进行计算的,因此对逻辑值微小增加,最后的预测概率会发生显著的增加,类似于“赢者通吃”的现象,softmax函数可以认为是指示函数 (indicator function) 的平滑近似。
当分类器进行ID分类时,选择最大概率的类作为输出的类。当遇到OOD数据时,由于模型只有ID类的概率,因此此时无法进行OOD检测。理想情况下,当遇到OOD数据时,模型因为无法识别该样本,因此应该输出一个均匀分布,对所有ID类的概率都相等,此时熵(entropy)最大。实际上很难发生这种情况,OOD类可能由于某些特征与ID类有些相似,此时模型也会因为 softmax 函数的缘故,并不会出现均匀分布的情况,而是某个类的概率显著比其他高,分类器此时很难进行OOD检测。
但是分类器对于ID数据和OOD数据输出的最大概率也有区别:对于OOD数据的最大概率会比ID数据的最大概率低,因此可以通过这种方法,将该概率认为置信度来进行OOD检测。当分类器遇到ID样本时,输出的类概率高 (置信度高) ,遇到OOD样本时,输出的概率虽然比较高,但是相对于ID样本是低的 (置信度低),因此可以设置一个阈值来作为ID和OOD样本的检测边界。
实验
实验的目标是检测一个样本是否被错误分类,或者是否属于模型未见过的分布(即分布外样本)。为此,实验使用了神经网络模型的softmax probability来进行检测
在每个样本上,模型通过软最大函数计算出各个类别的概率,并返回概率最大值作为该样本的预测类别。这就是文中提到的maximum/predicted class probability
AUROC 指标相对基础版本高,说明模型能识别大部分正例样本,且好于基础base版本
AUPRSUCC高于 BASE 说明模型好于基础版本,AUPRSUCC和AUPRERR有很大的差距,说明可以通过设定预测出的得分阈值,检测是否是错误样本;wrong mean值高,说明如果只单独计算softmax无法检测出是否是错误样本,这点在论文中已有描述。这里AUROC没有设定AUROC_ERR和AUROC_SUCC 是因为这俩个结果是一致的 $AUROC = P(S > E) = P(-E > -S)$.
实验的核心目的是**检测样本是否属于分布内(In-distribution)**,而不是对样本进行具体类别的预测。也就是说,这些实验关注的是模型是否能够判断一个样本是来自训练数据的分布(即“分布内”样本),还是来自不同的分布(即“分布外”样本)。
可以看出,相对于真实数据集,高斯噪声以及均匀噪声是很容易被检测出来的,它们被模型赋予了很低的置信度,对应的,它们的AUROC以及AUPR指标都很高。
总而言之,AUROC是综合反应模型检测效果的,AUPRin反应的是模型检测ID数据的能力,AUPRout反应的是模型检测OOD数据的能力,较高的指标寓意着性能更好的检测模型。
补充
AUPR Succ(精确度-召回率曲线下的面积,针对正确分类的样本)和AUPR Err(精确度-召回率曲线下的面积,针对错误分类的样本)之间的区别主要在于它们分别评估模型在正确分类样本和错误分类样本上的表现。
AUPR Succ(针对正确分类的AUPR)
- 定义:AUPR Succ衡量的是模型在正确分类样本上的表现。具体来说,这个指标评估的是模型对正确分类的正类样本(即模型正确识别的正类样本)的精确度(Precision)和召回率(Recall)之间的平衡。
- 计算方法:
- 在计算AUPR Succ时,所有被正确分类的样本(即模型预测类别与真实类别一致的样本)都被视为“正类”。
- 然后,基于这些“正类”样本,我们计算每个阈值下的精确度和召回率,绘制精确度-召回率(PR)曲线,并计算该曲线下的面积(即AUPR Succ)。
- 结果越高,说明模型在正确分类的样本上的表现越好,精确度和召回率的平衡较好。
- 适用情况:AUPR Succ用于评估模型在“成功”分类样本上的精确度和召回率的平衡,通常适用于模型已经表现良好的情况,特别是在正类样本和负类样本不平衡的情况下,AUPR Succ是一个非常有意义的指标。
AUPR Err(针对错误分类的AUPR)
- 定义:AUPR Err衡量的是模型在错误分类样本上的表现。这个指标关注的是模型错误地将正类样本分类为负类的情况,计算错误分类(误判的正类样本)作为正类的精确度和召回率。
- 计算方法:
- 在计算AUPR Err时,所有被错误分类的样本(即模型预测类别与真实类别不一致的样本)被视为“正类”。
- 然后,基于这些“错误分类”样本,我们计算每个阈值下的精确度和召回率,绘制精确度-召回率(PR)曲线,并计算该曲线下的面积(即AUPR Err)。
- AUPR Err反映了模型在误分类样本上的表现。AUPR Err值越高,说明模型越能识别和区分错误分类的样本。
- 适用情况:AUPR Err用于评估模型在“错误分类”样本上的精确度和召回率的平衡,通常适用于分析模型的误差以及模型在识别错误时的能力。
AUPR Succ和AUPR Err的区别
- 关注的样本不同:
- AUPR Succ关注的是模型正确分类的样本,它评估的是模型对正确分类的样本(正类)的精确度和召回率。
- AUPR Err关注的是模型错误分类的样本,评估的是模型对错误分类的样本(正类被错误地分类为负类)的精确度和召回率。
- 精确度和召回率的目标不同:
- AUPR Succ的目标是最大化模型在正确分类样本上的精确度和召回率,即我们希望模型能够正确识别更多的正类,同时尽量避免将负类错误地分类为正类。
- AUPR Err则是分析模型如何处理错误分类的样本,特别是模型是否能够识别出那些被错误分类为负类的正类样本。在这个情况下,模型的表现并不依赖于它识别出多少正类,而是它识别出多少原本应该是正类的样本并避免将其误分类。
- 在实际应用中的意义:
- AUPR Succ适用于评估模型在正类样本上的表现,特别是在样本不平衡时,能够说明模型对正类样本的识别能力。
- AUPR Err则用于分析模型如何识别错误分类的样本,帮助我们了解模型在处理“难例”时的表现。
举个例子
假设我们有一个二分类任务,任务是区分“猫”和“狗”。在测试集上,我们得到以下样本:
- 正确分类的样本:例如,模型将猫图像预测为猫,狗图像预测为狗。
- 错误分类的样本:例如,模型将猫图像预测为狗,狗图像预测为猫。
AUPR Succ:
- 我们将正确分类的猫图像和狗图像视为正类,计算精确度和召回率,并绘制PR曲线。我们希望模型能够正确识别这些猫和狗,避免错误分类。
AUPR Err:
- 对于被错误分类的猫图像和狗图像,我们将它们视为正类,计算它们在误分类时的精确度和召回率。我们希望模型能够检测到这些错误分类的样本,并提高其识别能力。
总结
- AUPR Succ衡量的是模型在正确分类样本上的精确度和召回率的表现,适用于评估正确分类的能力。
- AUPR Err衡量的是模型在错误分类样本上的精确度和召回率的表现,适用于评估模型在识别错误时的能力。 这两个指标从不同的角度衡量模型的性能,结合使用可以帮助我们全面了解模型在正类和负类样本上的表现。