0%

【阅读笔记】 Generalied ODIN:Detecting Out-of-distribution Image without Learning from Out-of-distribution Data

Abstract

对于和训练集同分布的数据,深度神经网络已经获得了惊人的性能,但对于其他数据集性能会明显变差。因此,检测一个样本是不是OoD对于能拒绝或警示这种样本的系统是重要的。包含 一些小数据集的OoD benchmarks下的工作在近期已经取得了巨大的进展。然而,这些方法很多都需要神经网络训练、调参的时候同时有in-distribution和out-of-distribution的数据。后者是难以先验定义的,不同的OoD数据会产生不同的学习效果。本文的工作基于一个流行的方法:ODIN。这个方法提出两个重要的策略,不需要OoD的数据,同时改进了OoD的检测性能。本文具体的提出了分解置信度的方法以及改进input preprocessing的方法。本文展示了这两者都得能显著提高检测OoD的性能。并且,作者在更大规模的图像数据集上进行了分析,表明数据的分布迁移有两种:语义迁移和非语义迁移。这两者会让问题的难度变得非常不同,这提供了一个关于ODIN-like的策略何时能有效的分析。

Introduction

先进的机器学习模型,具体来说是深度神经网络,通常在静态封闭世界假设下设计的。这些模型需要引入测试集和训练集独立同分布的假设。在真实世界,数据分布会以复杂和动态的方式进行迁移。更坏的是,新概念(如新的分类对象)可能在任何时刻输入到模型中。这样的类内的迁移或者是新概念的数据都会导致灾难性的失败,因为模型依然是基于封闭世界假设来预测的。这些失效经常是无声的,模型不会输出明显的错误。

以上的问题已经被规范为一个检测问题,即判断一个输入数据是不是in-distribution的数据,或者是out-of-distribution。这个问题已经被研究了很多年,也以各种观点被讨论了,例如rejection, anomaly detection, open set recognition, uncertainty estimation。最近几年,一个流行的基于神经网络检测的baseline使用了类别的后验概率(即softmax)的最大值,这个方法可以在有些情况是一个良好的区分in-distribution和out-of-distribution的指示器。

ODIN,基于训练好的神经网络分类器,提供两个策略,temperature scaling和input preprocessing,使得用最大的输出概率检测OoD变的更有效。这个方法的性能已经深入的确认了,并且和很多其他的OoD检测方法都在相同的评估准则下进行了比较。ODIN的方法,比很多流行策略都要好,例如MC-Dropout,DeepEnsemble,PixelCNN++,OpenMax等等。

尽管ODIN的方法非常高效,它仍需要OoD的数据集来调超参。这样做的问题是,用一个OoD数据集调好的最佳超参数,换一个OoD数据集可能就不再理想。事实上,其他的基于神经网络的方法,在同样的问题设置下,都有同样的要求,观点上都是通过精挑细选OoD数据集来规范后验学习概率,这样就使得OoD的数据置信度比In-Distribution的置信度要低。最近,还有文章使用生成式模型来建模OoD相对于In-Distribution的边界。

尽管上面的工作展示了OoD数据参与学习是有效的,但其实OoD范围在高维空间是很宽泛的,比如说像素空间,因此很难被完美覆盖,潜在的导致了学习的选择偏差。一些以往的工作也尝试了不用OoD数据集参与学习,例如用单词嵌入作为额外的监督;或者使用度量学习的标准。然而这俩方法的报告性能都和ODIN差不多,表明不用OoD数据集参与训练是一个有挑战的设置。

在本文的工作中,作者遵循着ODIN的设置,采用两个相应的策略,不需要OoD数据来解决问题。首先,作者提出一个新的概率的视角来分解网络预测的置信度。增加了一个明确采用封闭世界假设的变量来表示数据是不是in-distribution的,然后讨论它在分解后的概率的角色。收到概率观点的启发,我们使用除数结构作为分类器,这鼓励了神经网络的行为更像分解后的置信度效果。如下图(Figure1)所示。

我们注意到这个除法结构和temperature scaling紧密联系,且scaling依赖于输入而不是调好的超参数;第二,作者构建了ODIN中输入预处理的方法,然后研究出一个有效的策略去调节到微扰级别这个超参数,并且只需要in-distribution的数据。

接着,作者对基准图像数据集(如CIFAR10/100、TinyImageNet、LSUN、SVHN以及更大规模的数据集DomainNet)进行广泛的评估,以调查所提议的策略有用或没用。结果表明,这两种策略可以显著提高ODIN的性能,其性能接近甚至在某些情况下超过使用OoD数据调优的最先进方法。最后,我们在DomainNet上的系统评估揭示了两种分布迁移类型检测的相对难度:语义迁移和非语义迁移。这两者的区别是,迁移中是否包含新的类别。

综上所述,本文的贡献有三个方面:

  • 给出了分解置信度的新角度
  • 提出一个不需要OoD调参的改进版input preprocessing的方法
  • 在没有OoD数据参与学习的设置下,结合实验进行综合分析

Background

本文研究了分类问题中的OoD检测设置问题。以一个数据集开始, in-distribution数据集为, 以及对于C个类,类别标签是从分布中抽样生成的。然后我们有一个具有区分力的模型,其中是从中学习到的参数,以更好的预测各个类的后验概率

当学好的分类器放置到开放世界中,他会遭遇到来自不同分布的数据。从所有可能的OoD位置采样是很困难的,例如维度很高的图像空间。注意我们可以在概念上把迁移的类别分为语义迁移和非语义的迁移。非语义迁移的数据是从分布中抽样的。而语义迁移的样本来自于同一个对象类,但以不同的形式进行表达,例如卡通和素描图片。这样的迁移也是domain adaptation中广泛被讨论的问题。对于语义迁移的情况,从中抽取样本。换句话说,这些样本的类型在训练集的中都是看不到的。以下是一个图示(Figure2)。

对于开方世界的模型,上述的差异引出了两个自然需要解决的问题:模型在遇到时,怎么能避免进行预测;当模型遇到时拒绝低置信度的预测。在本文中,作者提出了一个明确的二值域变量来表达决定。前者表示,后者表示。注意到模型通常是无法区分这两种情况的,我们仍然可以说以上的问题都可以通过估计变量来回答。

最后的目标也就是发现一个评分函数,其与后验概率相关。较高的评分表明一个较高的后验概率。最后二值的决定可以用一个阈值来处理。选择的阈值受限于应用需求和性能度量计算。有了上面的标注,我们可以把baseline方法当作是一个特例,其中从一个标准的从交叉熵训练的神经网络分类器中获取。然而,可以是一个可学习的带参函数,不同的OoD方法可以按具体的参数和学习步骤来归类。方法间一个最关键的差异是,是否用OoD的数据参与训练过程。

本节描述了和本文最相关的两个方法:ODINMahalanobis。这两个方法将作为评估时两个很强的baseline进行比较,而且马氏距离是比ODIN更有优势的。注意到,这个两个方法都是用训练一个普通的分类器(单入口单出口),然后有一个打分函数,有额外的超参数需要调。按两个方法原本的工作,打分函数里的超参数都是需要OoD的数据去调的。本文将会描述不需要OoD去调超参数的方法。

ODIN

该方法包含两个策略,即temperture scaling和input preprocessing。前者是把打分函数设置如下:

尽管ODIN的原始方法需要用OoD数据集调超参数,但其也展示了很大的时候通常是效果很好的,并且建议设置超过1000。因此本文遵循建议,在实验中把设置为1000。

Mahalanobis

马氏距离同样包含了两个部分:马氏距离的计算和输入预处理。马氏距离的打分函数如下:

  • :网络的第层输出特征
  • :第i个类的特征均值
  • :N个类的特征的协方差矩阵
  • :超参数,每个层参与集成的权重

原文的马氏距离需要OoD数据调优,本文就采用基础情况,即

我们注意到马氏距离和ODIN一样也都用到了input preprocessing的策略,又会引入需要OoD调优的超参数。因此本文还会给出一个不需要OoD调参的input preprocessing方法。

Approach

The Decomposed Confidence

我们知道softmax分类器倾向于输出一个较高置信度的预测结果,比如把高斯噪声放到MNIST图像分类器中会给出高达91%的预测概率。这是因为softmax是高度平滑的指示函数,会给出一个很陡的概率分布结果而不是一个类之间概率平缓的结果。我们也承让这个观点,并更深远的考虑把这个当作是softmax设计中的缺陷。为了解决这个限制,我们的启发是重新思考输出的形式,也就是后验概率,这个概率没有考虑到的域。换句话说,目前的方法是建立在封闭世界假设的情况下的。因此,作者在分类器中使用明确的变量,用条件概率的规则将其改写为商的形式如下:

上面的公式提供了一个概率的视角解释为什么分类器会过度自信。考虑到,很自然的想到,C个类中的最大的联合概率是比较小的(如0.09),同时期望对应的也是比较小的(如0.1)。因此,计算条件概率以后还是可能会给出一个比较高的概率结果(0.9)。这展示了高度的自信是怎么导致的。基于公式4,作者把叫做已分解的置信度。

一个直接的解决方案来解决上述问题,就是学习一个分类器来预测联合概率分布,这样既考虑了标签又考虑了变量。而获取一个联合概率分布的分类器比获得一个OoD的检测器要好,这是因为前者既能通过来进行分类,又可以通过给定阈值来拒绝预测(博主个人理解是找个合适的阈值和进行比较)。这样的观点和有些工作相关,比如添加额外的损失惩罚项到预测OoD概率不均匀的分类器中。然而这样的策略还是需要OoD去参与和调节训练的。

不使用OoD的数据集,没有一个主流的方法能够学到。这个场景非常像无监督学习,需要插入关于学习的假设和先验知识。在本文中,作者使用了公式4的除法结构作为先验知识来设置分类器,提供分类器分解概率置信度的能力。

对于分类器的除法结构,作者定义第i个类的输出logit为,并且可以写成除法的形式:

这个商然后用指数函数归一化,变成softmax,然后被当成条件概率,这个条件概率受限于交叉熵损失。

在softmax指数归一化的影响下,交叉熵损失将会以两种方式减小,增加或者减小。换句话说,当数据不是in-distribution总的高密度区域时,趋向于比较小的值。这样,也会比较小以最小化交叉熵损失。其他的情况,也就是数据在高密度区域,会很容易变大,因此不鼓励变小。这些对分子分母的讨论和条件概率分解后的分子分母有着相似性,这样单独看分子分母的分布,OoD和ID是有较小的重叠的,这也是的本质性质,如之前图1所展示的那样。

Design Choices

尽管除法结构提供了一个趋势,但它不能保证分解置信度的效果一定发生。的特点可以极大的影响分解发生的可能性。因此我们讨论了一系列简单的设计选择,来考察分解通常是不是能够获得的。

具体而言,使用,其中:

  • :网络倒数第二层,后面还要套上线性层、BN、sigmoid函数
  • :sigmoid函数
  • 表示可学习的权重

对于,我们研究了三个相似性的度量: + 内积: + 欧氏距离的相反数: + 余弦相似性:

因此整个网络在倒数第二层后分为两个分支。在训练时,模型计算softmax函数处理后的logit的交叉熵;在测试阶段,类别的预测将由来给出,俩者预测结果是一样的。对于OoD检测,score函数是。如果令那么将退化为baseline。本文把三个变量的方法分别成为Deconf-I,Deconf-E和DeConf-C。为了简单起见,用作为scores,而的使用之后会具体说明。 #### Temperature Scaling

A Modified Input Preprocessing Strategy

Experiments

Experimental Settings

Results and Discussion

Semantic Shift versus Non-semantic Shift

Conclusion