0%

【阅读笔记】 A Baseline for Detecting Misclassified and Out-of-Distribution Examples In Neural Networks

Abstract

本文考虑样本检测中两个相关的问题:误分类和OoD。作者利用来自softmax分布的概率提出了一个检测的baseline。相比于错误分类的样本和OoD的样本,被正确分类的样本倾向于有更大的maximum softmax概率(后文统称为置信度)。接着,baseline的各方面性能通过关于计算机视觉、自然语言处理、自动语音识别的一些任务被进行评估。作者然后说明了baseline有时是可以被超越的,展示了这个检测领域的任务未来可探索的空间。

Introduction

当训练分布和测试分布有差异的时候,应用于现实任务的机器学习分类器往往会工作失败。更糟糕的是,面对错误,这些分类器仍然会给出较高的置信度而不会报错,即使错的离谱。分类器如果不能指出自己什么时候可能是错的,它的使用就会收到限制并可能导致严重事故。例如,一个医学的诊断模型可能始终以较高的置信度进行归类,即使模型应该把不太确定的困难样本标记并留给人工处理。由此导致的未标记的错误诊断会阻碍机器学习技术未来在医疗领域的发展。作者还指出一个更普遍而重要的事情:评估一个模型何时发生错误在人工智能安全领域中饱受关注。

softmax输出经常产生高置信度的预测,这是因为softmax概率是由快速递增的指数函数所计算的。 因此给softmax的输入(logits)一个微小的增量,会导致输出分布的质变。因为softmax函数是指示函数的平滑近似,所以OoD样例输出一个均匀分布并不常见。实际上,随机高斯噪声输入到一个MNIST图像分类器会得到一个高达91%的预测置信度。作者在实验中表明softmax的预测概率和可信度相关性很弱。

但实验工作也表明,错误样本或OoD样本的预测结果,也会倾向于给出相对于正确样本较低的预测概率。因此,尽管预测概率的结果单独看是有误导性的,收集正确样本的预测概率数据对于检测异常样本是有效的。

这些预测概率构筑了作者的检测baseline,作者在各个领域展示了这个方法的功效,如计算机视觉、自然语言处理、自动语义识别任务等。作者也指出,尽管这些预测概率创建了一个一贯有用的basline,但有时效率也会很低,这表明了其具有改进的空间。此后作者贡献了一个比baseline更好的方法(在部分但不是全部任务中),提供了未来检测的研究思路。这个方法通过评估神经网络输入重构(input reconstruction)的质量来判断异常样本。

除了basline的方法,作者另一个贡献性的成果就是标准任务以及评估指标的设计。具体的来说,就是在三个研究领域内,用标准神经网络结构训练充分的大量任务。对于OoD检测,提供OoD的样本(不同的数据集或扭曲的实际输入)参与测试。作者希望其他研究团队在未来继续推动这些任务,并超过本文提出的basline的性能。

总的来说,尽管softmax分类器概率不是一个直接有用的置信度估计,但是用来估计模型的置信度也不是那么悲观。简单的统计来自softmax分布数据就是一个有效的检测OoD的方法,作者用实验进行了展示。这些创造了一个很强的检测错误和OoD的baseline,在未来有改进的空间。

Problem Formulation and Evaluation

本文关心两个问题。一个是错误正确分类的预测。另一个是In DistributionOut of Distribution的检测。针对两个问题,作者提出了一个简单的baseline,并使用两组评估参数进行性能评估。作者指出,比较检测器的性能不是简单的使用精度。在检测过程中有两个类,检测器对正类和负类各输出一个打分。如果负类的个数原比正类数目多,那么检测器始终设置预测为负类也会得到很高的精度,但这是误导性的。必须设置具体的打分阈值,这样正例也可能被正确划分,但是这样就需要对false negativesfalse positives进行权衡。

面对这样的问题,本文使用AUROC曲线指标,这也是一个依赖于阈值的性能评估方法。Roc曲线是真正例关于假正率的曲线,此外,AUROC可以被认为是一个正例比一个反例有更大检测器分值的概率。比如说,一个随机的正例预测器的AUROC大概是50%,而一个完美的分类器的 AUCROC应该是100%。

AUROC回避了阈值选取的问题,而AUPR曲线有时认为含有更多的信息。这是因为当正类和反类有较大的基本比率时AUROC不太理想,而AUPR调节了正反基本比率。因此本文设置AUPR为第二个评估指标。PR曲线刻画了P和R的关系,即查准率和查全率的关系。一个baseline的检测器的AUPR大概和查准率相等,而一个完美的检测器大概是100%的AUPR。这导致,正类的基本比率很大的影响了AUPR,因此检测中需要指定什么类是正例。有鉴于此,本文的正类设为正确分类或正常的样本时作者展示了AUPRs。本文的正类设为错误分类或异常样本时作者展示了面积。把错误分类或异常样本设为正类的方法是将检测器分值乘以负一,然后打上正例的标签。注意:把错误分类和异常样本当成正例不会影响AUROC的值。

在第三部分作者开始了实验并描述了一个简单的baseline,这个baseline使用了神经网络分类器的置信度(即 maximum softmax probability)。在第四部分,作者描述了一个方法,它使用额外的、经过训练的辅助模型组件来重构输入。

Softmax Prediction Probability as a Baseline

接下来,作者检索最大的softmax预测概率来检测一个样本是否被错分类或是否为OoD。具体来说,本文把测试集中正确分类和错误分类的样本分开,对于每个样本计算其softmax置信度。对于这两个类我们得到了PR和ROC曲线的面积。这些面积总结了不同阈值的二分类器用打分值(置信度)进行区分的能力。“Succ”检测器把正确分类的样本看作正例;“Err”检测器把错误分类的样例看作正例,并把置信度取反作为检测器的打分值。

对于“In”的检测器,正例为In Distribution的样本和正确分类的测试样本。使用softmax置信度作为预测分类的一个分值。而“Out”检测器把OoD的样本作为正类,并使用前面提到的概率的相反数。因为“Succ”、“Err”、“In”、“Out”的AUPRs依赖于正例的比率,作者列出了一个使用基础值的随机检测器能达到的面积。在接下来的结果中,作者列出了错误分类样本的平均预测概率,以展示softmax置信度是一个孤立来看,误导性的信心指数。“Pred.Prob(mean)”列展示了OoD样本也有相同的缺点。

先不考虑标签,作者先从视觉相关的数据集开始实验,然后考虑自然语言处理和自动语义识别中的任务。接下来的所有实验表明,根据Wilcoxon秩和检验,AUROCs与随机基线的不同是有很高的统计显著性的。

Computer Vision

在计算机视觉任务中,作者使用了三个数据集:MNIST,CIFAR-10,CIFAR-100。MNIST是一个手写体数字的数据集,有60000个训练数据和10000个测试数据集;CIFAR-10有10个不同的类,50000个训练集和10000个测试集;CIFAR-100有100个不同的类,50000个训练集和10000个测试集。

由下表(Table 1),可知正确分类和错误分类的样本是充分可分辨的,其中数字都是百分比。

接着,作者考虑使用softmax分布去区分OoD和ID。本文把所有测试集样本作为ID,把现实图像和噪声作为OoD。对于CIFAR-10和CIFAR-100,使用了来自SUN数据集的现实图像,包含397个不同的场景。对于MNIST,使用来自三个源的灰度现实图像。其中,Omniglot是手写字母而不是手写数字;notMNIST是打字体的数字;CIFAR-10bw是黑白的CIFAR-10图像。合成的“Gaussian”数据是一个随机正态分布噪声,“Uniform”数据是随机均匀分布噪声。如果必要,图像会被调整大小。

结果如下表(Table 2)所示

注意到平均预测置信度,即Pred.Prob(mean)大于75%,但如果预测概率单独翻译为信心,那么CIFAR-100的softmax分布应该会更均匀的。这再次表明softmax概率不应该看作是信心的直接表示。幸运的是,OoD的样本和ID的样本在概率预测上有着充分大的差异,这使得成功检测成为可能,并且可以获得较大的PR和ROC曲线面积。

为了可复现性,作者具体的给出了模型的结构。MNIST的分类器有三层,256的神经元宽度,由30轮Adam训练的全连接网络。网络使用了非线性的激活函数(),其中是标准正态分布的累积分布函数。作者根据(Hendrycks & Gimpel, 2016c)初始化了权重。对于CIFAR-10和CIFAR-100,本文分别训练了宽度为40和4的剩余网络,轮次为50回合,使用随机梯度下降,使用重启动,使用非线性激活函数,使用标准镜像以及裁剪数据增强。

Natural Language Processing

接下来作者介绍了一些自然语言处理方面的任务和使用的架构。 #### Sentiment Classification 第一个NLP任务是一个二值情感分类问题,使用了IMDB数据集————一个极化电影评论的数据集,有25000个训练集和25000个测试集评论。这个任务让我们可以确定一个由相对较小的数据集训练的分类器是否可以产生信息丰富的softmax分布。这个任务使用一个线性分类器,以维数为50的可训练的随机初始化词向量的平均值作为输入。作者挑出5000个训练集评论,用Adam法训练15轮并早停。下表(Table 3)展示了softmax分布在正确和不正确分类的样本上的不同,因此预测概率使得我们能够可靠的检测哪个样本被正确分类,哪个被错误分类。

然后作者使用Customer Review(Hu&Liu,2004)和Movie Review(Pang et al.,2002)数据集作为OoD样本,前者有产品的评论而不单单是电影,后者有来自专业影评的片段而不是业余的长篇评论。所有的IMDB测试集样本都作为in-distribution样本,而来自Customer Review和500条和来自Moview Review的1000条测试评论是OoD样本。下表(Table 4)展示了检测结果,前面的Table2有相同的结论。

Text Categorization

通过文本分类任务,作者希望判断对于相似于ID的OoD,softmax分布是否依然有用。在任务中,分类器被训练来预测他们处理的文本的主题。20 Newgroups(Lang,1995) 数据集中有20个不同的新闻组主题,共20000个文档。The Reuters 8(Lewis et al.,2004)数据集中有8个不同的新闻主题,近8000个故事。The Reuters 52数据集有52个新闻主题,略超过9000个新闻故事。这个数据集的单个主题最多只能有3条故事。

对于20 Newsgroups数据集,作者用20个轮次训练了一个30维词向量上的线性分类器。同时Reuter 8和Retuers 52使用单层神经网络,一袋单词输入,非线性激活函数,全部用Adam法进行优化了5轮。训练在一个主题子集上进行,选出了20 Newsgroups中的5个主题,Reuters 8中的2个主题,Reuters 52中的12个主题,作为OoD的样本。下表(Table 5)展示了这些数据集和结构可以可靠的检测错误分类的主题。

下表(Table 6)说明了softmax预测概率可以检测出OoD的主题。

Part-of-Speech Tagging

对新闻热线和社交媒体文本进行词性标注是下一个挑战。本文使用了Wall Street Journal portion of the Penn Treebank (Marcus et al., 1993)数据集,包含45个不同的词性标签。对于社交媒体,作者使用POS-annotated tweets (Gimpel et al., 2011; Owoputi et al.,2013)数据集,包含25个标签。WSJ标注器训练了一个双向长短期记忆递归神经网络(Hochreiter & Schmidhuber, 1997),共3层,每层128个神经元,并随机初始化词向量,在90%的语料库上进行训练,10轮随机梯度下降,batch size是32。而tweet标注器更加简单:两层神经网络,带有非线性激活函数的,权重初始化根据(Hendrycks &Gimpel, 2016c),预训练词向量在5600万条tweets语料库上训练(Owoputi et al.,2013),一个大小为256的隐层,在1000个tweets数据上训练30轮,用Adam法优化,用327条验证集tweets早停。下表(Table 7)是错误检测结果。

对于OoD的检测,我们用WSJ标注器对tweets以及来自English Web Treebank(Bies et al., 2012)的网络日志数据进行标注。结果为下表(Table 8)。

因为网络日志数据比起tweets,风格上更接近新闻热线,所以检测一个网络日志数据是OoD更加困难。事实上,由于词性标注是在单词级别上完成的,我们根据单词和上下文特征判断每个单词是否是OoD。考虑到这一点,我们发现tweets的单词更容易成功检测为OoD。

Automatic Speech Recognition

本节考虑的任务是使用softmax值去构建整个序列而不是决定一个输入的分类。这个序列预测系统使用一个双向的LSTM(长短期人工神经网络),这个LSTM具有两层和剪切的非线性激活函数,用RMSProp算法优化了60回合,训练集为80%的TIMIT语料库(Garofolo et al., 1993)。这个LSTM用连接时序分类(CTC)进行训练(Graves et al., 2006),以预测给定MFCCs、能量、前两个25ms帧情况下的手机序列。当用CTC进行训练的时候,LSTM学会让他的电话标签概率瞬间飙升,而大部分其他的预测为空白符号。这样,softmax的使用就不同于经典的分类问题,并为检测方法提供了独特的测试。

本节不去展示这个系统在正确分类和错误分类样本上的检测性能,因为错误不是二值的而是沿着一系列的编辑距离排列。但是本节可以展示OoD的检测。将TIMIT音频和来自Aurora-2数据集(Hirsch & Pearce, 2000)的真实噪声混合,并将TIMIT音频的音量保持在100%,噪声音量保持在30%,给出平均信噪比为5。人耳仍然可以清晰的听到扬声器,但手机识别器会混淆因为预测的编辑距离增加了一倍以上。更多的OoD样本使用的是来自THCHS-30 dataset(Wang & Zhang,2015)的测试样本,这是一个中文的语料库。下表(Table 9)展示了结果。

很重要的是,当执行检测的时候,softmax概率被计算而空白符号的logit被忽略。有了空白符号的存在,softmax的分布大部分时间步都以较高置信度预测为空白符号;但若无空白符号,就更容易区分正常和异常的分布。通过这个修改,softmax预测概率就可以检测出OoD。

Abnormality Detection with Auxiliary Decoders

看到了softmax预测概率使异常检测成为可能,作者接下来展示了其他对于检测很有用的信息。为了证明这一点,作者利用学习到的神经网络的内部表征。首先训练一个普通的分类器然后附加一个辅助解码器来重构输入,如下图。

辅助解码器有时可以提高分类性能。译码器和打分器用ID样本一起训练。此后,图中蓝色的层被冻结。然后,在无噪声、有噪声的训练样本上训练红色层,然后红色层的sigmoid的输出代表着输入的正常程度评分。因此,有噪声的样本是异常类,无噪声的样本是正常类,而sigmoid被训练成为输入所属的输出类型。训练完成后就得到一个普通的分类器、一个辅助的解码器和一个被称为异常模块的模块。异常模块对检测是有益的,这表明存在可能的研究途径去超越baseline。 ### TIMIT 作者使用不同的网络结构重做TIMIT任务,以测试异常模块的性能,并展示这些辅助组件对检测的改进程度。这个系统有3层,1024个神经元宽度,有一个辅助解码器和一个异常模块。该网络以11帧为输入,必须预测中心帧的手机,每帧26个特征。权重根据(Hendrycks & Gimpel, 2016c)来初始化。网络训练20轮次,异常模块训练2轮次。异常模块看到的是无噪声的样本,而负样本则是TIMIT和诸如白噪声、棕噪声(光谱密度和成比例的噪声)、粉色噪声(光谱密度和成比例的噪声)在不同音量下的混合。

可以注意到,异常模块的训练噪声和测试集的噪声不是一个类型。尽管如此,下表(Table 10)展示了把简单的噪声样本看作现实扭曲音频后得到的高效检测结果。

作者指出,检测异常样本是通过比较干净样本的典型异常模块输出和扭曲样本的输出。这些来自于Aurora-2的噪声以30%的音量加入到TIMIT中。同时THCHS-30也被用作为中文语音数据集。与之前不同的是,THCHS-30是用作训练样本而不是测试集样本,因为全连接网络会充分快速的评估整个训练集。值得一提的是,全连接深度神经网络具有抗噪性(Seltzer et al., 2013),但异常模块仍然可以检测OoD。检测的显著性体现在:网络分类在整个测试集(非核心数据集)上的错误率是29.69%,且扭曲样本的平均分类错误率是30.43%————这和性能显著下降的双向LSTM明显不同。因为分类退化程度很小,softmax统计数据本身不能提供一个有用的OoD检测。而与之相反的是,异常模块提供一个分数去检测不同但相似的样本。在实践中,确定一个样本是否是OoD非常重要,而异常模块是有用的。

MNIST

最后,和之前实验相似的,作者训练了一个MNIST分类器,网络有三层,宽度256。本节实验同样使用一个辅助解码器和异常模块而不是仅仅依靠softmax统计。异常样本则是对训练图像进行模糊、旋转或添加高斯噪声。异常模块的收益结果如下表(Table 11)。

这对比基于softmax预测概率的OoD检测来说,也有效果上的提升。并且即使是非常不同的样本,异常模块也可以进一步提高检测性能。

Discussion and Future Work

异常模块表明,在某些情况下basline是可以通过利用网络提取的特征打败的,暗示了无数的研究方向。利用类间方差可能是未来一个不错的研究思路:如果一个样本和另一个预测类的样本的距离异常远,那么这个样本可能是一个OoD(Giryes et al., 2015)。另一个方法就是把总结一层激活情况的向量输入到RNN中,每一层都有一个向量。这样对于OoD的样本,RNN可以判断出激活模式是异常的。让检测粒度更细也是一个想法:OoD样本是known-unknown还是unknown-unknown?另一个方法是除了检测正确的分类外,还要输出正确检测的概率。作者表示,这些都是改进错误、提高OoD检测性能的一些思路。

作者希望,任何新的检测方法都能在本文研究中选择的各种任务和架构上进行测试。一个基本的展示包括下面的数据集:MNIST,CIFAR,IMDB以及tweets,因为仅针对视觉的展示可能不合适其他的结构或数据集。报告AUPR和AUROC的值非常重要,底层分类器的准确性也很重要,因为一个恒负的分类器在错误检测中会得到一个最大的AUPR(假定错误是正类)。同时,未来的研究不需要使用本文的精确值进行比较。机器学习系统在不断演化,因此没必要把精确的架构和本文的数据集捆绑到一起评估,人们可以简单的选择各种数据集和架构,很可能就和本文一样,然后将他们的检测方法和基于softmax预测概率的检测器进行比较。在OoD检测这个未充分探索的挑战中,作者对试图超越baseline的其他研究者给出了以上建议。

Conclusion

本文展示了一个softmax预测概率的baseline,可以检测各种架构、数据集上的错误分类样本和OoD样本。然后,本文提出异常模块,这个模块为测试集中正常样本和异常样本的区分提供了较高的分数。异常模块的实验表明,baseline在某些情况下是可以被打败的,这意味着未来是有研究空间的。作者希望其他研究者探索更好地预测异常样本的架构,或者追寻更可靠的检测分类错误和OoD的方法,因为知道一个机器学习系统什么时候失败对我们是非常重要的。