使用二元神经元激活模式检测分布外样本

Bartłomiej Olber1,2, Krystian Radlak1,2, Adam Popowicz2,
Michal Szczepankiewicz3, Krystian Chachuła1
1Warsaw University of Technology 2Silesian University of Technology 3NVIDIA

{bartlomiej.olber.stud, krystian.radlak, krystian.chachula}@pw.edu.pl
adam.popowicz@polsl.pl msz@nvidia.com
摘要

深度神经网络(DNN)在各种应用中都具有出色的性能。 尽管研究界付出了巨大的努力,但分布外 (OOD) 样本仍然是 DNN 分类器的一个重大限制。 在自动驾驶汽车、无人机和机器人等安全关键应用中,将以前未见过的输入识别为新颖的能力至关重要。 现有的 OOD 样本检测方法将 DNN 视为黑盒,并评估输出预测的置信度得分。 不幸的是,这种方法经常失败,因为 DNN 没有经过训练来降低它们对 OOD 输入的置信度。 在这项工作中,我们介绍了一种新的 OOD 检测方法。 我们的方法是基于对基于 ReLU 的架构中神经元激活模式 (NAP) 的理论分析。 由于从卷积层提取的激活模式的二进制表示,所提出的方法不会引入高计算开销。 广泛的实证评估证明了其在各种 DNN 架构和七个图像数据集上的高性能。

1简介

即使是专为图像识别任务设计的最高效的深度神经网络 (DNN) 架构,也无法确保它们在运行过程中不会出现故障。 因此,自动驾驶汽车、无人机和机器人等安全关键应用的部署仍然是一个未解决的问题[9, 35] 使用安全机制(例如运行时监视器)是一种可行的策略,可以在 DNN 发生故障时保持系统处于安全状态。 在安全关键型应用中设计和开发此类监视器是一项重大挑战[10, 48] 因此,需要定义稳健的指标,以便在运行时检测和控制 DNN 的故障,并减轻其性能限制造成的潜在危险。

DNN 通过从现实场景中采样的一组输入进行训练。 然而,由于输入图像的变化很大,训练数据集无法包含输入样本的所有可能变体。 尽管预计训练后的模型可以在未知输入上表现良好,尤其是那些与训练数据相似的输入,但不能保证它们对于呈现之前未考虑的对象的 OOD 噪声样本 [15 ] 虽然 DNN 训练技术应该允许网络实现高泛化能力,但确保安全关键系统训练模型的可靠性也至关重要,这样任何异常输入都会导致网络决策的可信度较低。

确保 DNN 安全性的根本挑战是估计给定的输入样本是否来自 DNN 训练所用的相同数据分布。 这很难估计,因为网络通常在接收新图像样本时推断其决策。 错误识别外围样本的另一个原因可能是输入数据随时间的分布变化(例如对象外观随时间的变化)[19]

在大量文献中,这个问题被表述为检测输入数据是来自分布内(ID)还是分布外(OOD)的问题。 这已经研究了很多年,并在以下方面进行了讨论:样本拒绝、异常检测、开放集样本识别、熟悉与不熟悉的样本或不确定性估计[2,24,38]

在这项工作中,我们提出了一种用于识别 OOD 图像样本的新颖算法。 在我们的方法中,我们提取 DNN 各个隐藏层上的二元神经元激活模式,并将它们与训练过程中收集的模式进行比较。 通过测量任何测试样本提取的二进制模式与训练期间提取的模式之间的汉明距离,我们可以识别 OOD 样本。

本文的主要贡献如下:

  • 我们引入 NAP - 一种从全连接层和卷积层中提取二进制模式并根据模式估计分类器的预测不确定性的算法。 所提出的方法优于最先进的 OOD 检测方法。 此外,该算法非常简单,可以轻松融入现有的 DNN 架构。

  • 我们提供了扩展的实证评估,比较了从 DNN 不同层收集的激活模式的影响,这可能会激发该领域的未来研究。

  • 我们发布了最大的 OOD 检测评估框架。 该框架包含 17 种 OOD 方法(包括所提出的基于 NAP 的方法),可以直接在两种最先进的 DNN 架构和 7 个数据集上进行测试,从而可以针对新方法、架构和数据集简单扩展框架。 111https://github.com/safednn-group/nap-ood

2相关工作

在文献中,已经提出了大量为 DNN 的 OOD 样本检测而设计的算法[50] 最有前途的一组方法是基于隐藏层的激活分析。 这种类型的方法已在专门的问题领域得到应用,例如网络安全恶意软件分类[7]、自动驾驶安全监视器[22,4,17]或解释患者医疗诊断决定[46] 此外,从与领域无关的角度来看,有几个主题可以纳入激活分析。

在这一组中,一些方法主要根据激活分析得出 OOD 分数。 [46] 中的作者专注于可解释的人工智能。 他们从 DNN 的激活层导出二进制模式,然后计算汉明距离以找到感知上最相似和最不相似的已知地面实况图像,然后使用这些图像来解释 DNN 模型做出的决策。 [39] 的作者表示需要检测数据集中的稀有子类,因为它们可能会降低 DNN 的性能。 他们提出了一种基于倒数第二层激活的简单统计分析的方法来处理该问题。 在作品[22][17][4]中,隐藏层的激活输出被处理以构建安全监视器。 论文[22]展示了k-means聚类和抽象框的利用。 [17]中,作者独立地为每个神经元构建了一个GMM,并根据先前构建的模型的平均值和标准差为每个神经元建立了安全区间。 此外,他们使用投票系统来提高决策的正确性。 [4]中给出的方法利用二元激活模式和汉明距离进行 OOD 样本检测。 然而,所提出的方法存在显着的效率问题,使得该方法无法扩展到任何现代 DNN 架构。 [34]中,作者证明了激活函数选择本身对于OOD不确定性校准方法非常重要。 他们提出了 Matérn 激活函数,该函数改进了 Monte Carlo Dropout [11] 不确定性估计。

还有一些严格针对内部激活进行操作的不确定性估计方法。 这项工作[33]提出了一种有趣的不确定性测量技术,该技术利用隐藏层激活的聚合统计特性来捕获跨类区分能力。 [40] 中给出的方法基于潜在表示的密度。 将重建损失应用于密度可产生高质量的不确定性估计,从而实现 OOD 检测。 正如论文 [41][37] 中的作者得出的结论,使用各种隐藏层(浅层、中层、深层等)的输出有好处.)而不是只关注 DNN 的最后一层。

在描述 ODIN 方法[31]的论文中,作者从经验和理论上证明了温度重新缩放[13]和输入扰动[12]可以提供经过良好校准的 softmax 分数,可以在其上构建 OOD 检测器。 在工作[30]中,作者测量了特征空间上测试样本的概率密度,并采用相对于最接近的类条件分布的马哈拉诺比斯距离。 该方法实现了出色的 OOD 检测效率。 [21]之前的工作展示了异常值暴露技术,该技术解决了广泛遇到的分类器对 OOD 样本过度自信的问题。 他们建议在 DNN 的训练阶段将 OOD 惩罚纳入损失函数中。 此外,基于亥姆霍兹能量评分[28]的算法最近变得非常流行,其中EnergyOOD [32]及其升级版本 - ReAct [47] 和 ASH [8] 建立了最先进的性能水平。

[23] 的工作中引入了一种完全不同的方法,其中作者关注足以满足 OOD 检测任务的梯度空间。 最先进的异常检测方法[43][42]采用中心损失的预训练特征,并将其与对比学习相结合。 尽管重点放在一类分类上,但引入的方法是有效的 OOD 检测器,将已知分布视为正常类,将语义转移分布视为 OOD 样本。

3 二元神经元激活模式

与简单的线性分类器相比,DNN 因线性层之间的非线性激活函数而具有更高的表达能力。 最重要的之一是 [36] 中引入的 ReLU 非线性。 基于 ReLU 的神经网络已经在许多领域取得了最先进的结果,但 ReLU 激活的计算结构非常简单。 ReLU 非线性只有两种状态:“非活动”和“活动”。 充分训练的网络的表达能力取决于为不同输入选择适当激活的能力。 [14] 从理论上证明,DNN 在训练过程中使用的激活模式比理论上可能的少得多。 此外,在[16]中,作者提出非线性结构在基于 ReLU 的架构中训练期间自下而上收敛(较低层首先稳定),并在模式集变化上显示出稳定的分布。

这些发现自然激发了一种简单但令人惊讶的有效方法,其中 NAP 的比较允许在推理阶段测量预测不确定性。 在这种方法中,DNN 中的每一层 l 基于处理后的输入数据生成激活向量 Al 我们将 DNN 层 l 上的激活模式 Al 定义为输入 xi,i=1,,n 的可训练参数向量 θ 作为分配每个神经元的信号 zj,j=1,,m

Al(xi,θ):={azj,j=1,,m}{0,1},where (1)
azj={1,if zj(xi,θ)>=0.0,otherwise. (2)

激活向量的每个单元都可以用作特征来表示由训练数据集中的某个样本激活的 DNN 部分。 我们在训练过程中收集所有样本的二进制模式Al(xi,θ),并比较从测试样本中提取的二进制模式,以确定测试样本是否 OOD。 1 显示了总结我们方法的简化图。 在所呈现的图表中,红色表示训练数据集的 NAP 提取,而蓝色表示新样本是否来自已知分布的测试过程。

虽然前馈网络和全连接层的 NAP 提取很简单,但卷积层的 NAP 提取方法在 3.2 节中介绍。

Refer to caption
图1 所提出的使用二元神经元激活模式的 OOD 检测方法的思想。

对于基于 ReLU 的架构,可以注意到,对于每层 l 的每个神经元 zj,如果神经元未激活,则应用于其权重的梯度为空。 222The proof is provided in the supplementary material该属性证明简化的二进制模式可能足以代表 ID 样本,并且我们不需要对网络激活值进行操作。

3.1 使用NAP检测OOD样本

主要期望是,训练后的模型在预测与该阶段中看到的样本类似的样本输出时应该更加确定。 因此,通过测试样本和训练样本之间的距离来衡量的相似度应该与模型的不确定性直接相关。 在所提出的方法中,我们计算给定测试样本的 NAP 与从集合中提取的样本之间的最小汉明距离。 测试样本v的距离可以定义如下:

dmin(v,θ)=min{d(v,u),uAsl(θ)}, (3)

其中d(v,u)表示二进制向量vu之间的汉明距离(两个二进制模式之间的汉明距离等于它们之间不同位的数量); Asl(θ)={Al(xi,θ),i=1,,n}是为所选层l的训练数据库提取的所有NAP的集合。

计算测试样本的汉明距离需要为所有已知的训练图像创建一组二进制激活模式。 根据激活模式的数量和维度等因素,有两种有效的方法来计算最小距离。 在第一种方法中,对于每个传入模式,与训练阶段中收集的所有模式执行异或运算。 选择异或结果具有最少阳性数的样本作为最相似的样本。 尽管这种方法需要计算和比较训练集中每个模式的结果,但现代库可以很好地并行化简单的异或运算。 尽管如此,由于典型的数据集包含数万甚至数十万个样本,因此操作数量相当大,但仍然可以在 GPU 上高效计算。

在第二种方法中,训练集中的模式需要存储在专用于快速解决最近邻搜索问题的数据结构中(例如,球树或基于二进制哈希的近似最近邻搜索方法[3 ])。 这些方法提供了快速的查询速度并大大减少了存储,这使得我们即使对于非常大的训练数据集也能够有效地应用所提出的 NAP 方法。 在这项工作中,我们使用第一种方法,它提供了足够的效率来实现基于 NAP 的检测器作为实时应用程序中的运行时监视器,这在实验部分得到了证明。

3.2 从卷积层中提取NAP

卷积层是计算机视觉任务中使用的大多数现代 DNN 架构的支柱。 它们将多维特征表示从一层转发到另一层,直到特征最终由一维向量表示。 从卷积层中提取相关激活模式比全连接层更复杂。 我们方法的主要新颖之处之一是我们提出如何提取 DNN 中卷积层的二进制激活模式。 多维层的简单扁平化将导致 NAP 的长度极大。

据我们所知,尚未提出如何提取卷积层的二进制激活模式。 我们意识到所提出的方法只是生成这种模式的多种可能方法之一,对此主题的更深入研究将是未来研究工作的主题。

为了结合隐藏卷积层的潜力,同时缓解数据高维问题,我们建议将卷积层中的所有通道自适应池化为单个值。 我们通过这样的过程将提取层中所有通道的输出压缩为向量。 建议将卷积层 X(H×W 元素、C 通道)的 t 类型聚合器池化为 C-元素向量Y可以用以下公式表示:

poolt(X)Y. (4)

在本研究中,我们评估了两种类型的池化:平均池化和最大池化。 在进行的实验中,我们证明最大池化为 OOD 检测提供了更好的结果,因此,我们推荐它作为从卷积层提取二进制激活模式的默认方法。 这种池化背后的直觉是,我们从每个通道中提取最强的模式,这使我们能够从每个层中删除大部分不重要的值。

接下来,池化后收到的值需要转换为二进制 NAP。 为此,我们通过可配置的自适应激活函数传播向量,该函数使用每层的单独阈值对值进行二值化。 作为阈值,我们使用给定激活模式的值的 p 百分位数。 对于每一层。 我们使用给定激活模式中值的 p 百分位作为阈值。 这导致将表示最不显着激活的通道的向量元素归零。 实际上,这使我们能够根据激活幅度自动为每一层选择最重要的通道子集。

2描述了提取卷积层二元激活模式的示例。 可以看出,卷积层首先针对选定的卷积层中的每个通道进行池化,然后进行二值化。 用于获得由卷积层中的总数 N 个通道和网络的神经层区域中的 M 个元素组成的网络激活模式的通用公式可以表示为如下:

Al(xi,p)=[α{poolt(V0),Pp0},,α{poolt(VN),PpN},
α{VN+1,PpN+1},,α{VN+M,PpN+M}],
α{x,p}={1x>p0x<=p, (5)

其中 α 是二值化函数,Vi 是激活向量中的第 i 值(二值化之前),PpN 是激活向量中第 N 个位置处的 p 百分位值(在假定数据集中)。

Refer to caption
图2 提出的从卷积层提取二元激活模式的方法。

3.3 不确定性阈值估计

为了判定一个新样本是否是OOD,需要定义一个判定标准。 在提出的 NAP 方法中,我们使用为测试样本提取的二进制模式与从训练数据集中收集的样本提取的所有二进制模式之间的汉明距离。 如果到最近的二进制模式的汉明距离高于假定的阈值τ,则样本被分类为OOD。

对于 ID 和 OOD 样本,将相应的距离集分别称为 DinDout i 个图像样本到 ID 集中最近邻居的距离 di 计算如下:

di={minj(HD(A(xi,θ),A(xj,θ))):jAin,ij}, (6)

其中 ij 是样本编号,Al(xi,θ) 是第 i 个样本的激活模式,Asl(θ)是ID集中所有样本的集合,HD(a,b)是样本ab之间的汉明距离。

分离阈值是使用穷举搜索方法估计的,其中决策阈值 τ 被建立为一个值,该值最小化训练 NAP 和验证 OOD 数据集之间计算的汉明距离分布之间的类内方差。

3.4 方法自动配置

所提出的方法需要根据以下参数进行调整:(1) 神经网络层,(2) p-百分位值,或 (3) 池化类型 t 。针对各种 DNN 模型和各种数据集分布,最准确地区分 ID 模式与 OOD 模式。 找到这三个参数的最佳组合是一个模型问题,甚至是一个分层问题。 我们的策略是将自动配置问题分为以下两个子问题:(1)参数pt的逐层优化,(2)模型方面的规范最相关的层。 优化过程归结为根据使用验证集Dv获得的OOD检测结果选择所描述的参数。

首先,我们为模型中的每个激活层网格搜索最佳的 pt 在此步骤中,独立分析每一层的 OOD 检测效率。 在我们最初的实验中,我们注意到没有普遍最佳的层可以区分。 根据网络架构和训练数据集,某些层的性能优于其他层。 因此,我们从 k 层中提取 NAP,这些层在验证数据集上产生最高的 OOD 检测精度,其中 k 是任意奇数。 然后,我们根据为 k 层计算的汉明距离创建一个多数投票分类器。 在我们的实验中,k 是另一个需要针对所提出的基于 NAP 的 OOD 检测器进行调整的参数。

优化准则 为了找到NAP方法的最佳超参数,需要定义适当的优化准则。 在这项工作中,我们分析了其中两个:(1) OOD 验证精度和 (2) 距离阈值 τ(越低越好)。 尽管准确度标准的合理性是显而易见的,但阈值标准的合理性可能并不明显。 我们遵循这样的直觉:对于验证和测试分布之间可能的转变,低阈值比高阈值更稳健。 第三个混合标准是两者的组合,它试图在保持相当低的 τ 的同时获得较高的验证精度。 在我们的实验中,我们在以下方案中应用这些标准:

  1. 1.

    对于网络的每一层,通过混合准则选择最佳的p参数(在此步骤中,准则是恒定的)。

  2. 2.

    为每个层选择最佳池化类型 t 及其在上一步中选择的 p 参数(在这里,我们使用不同的标准进行实验)。

  3. 3.

    选择 k 层,为之前步骤中选择的参数提供最佳验证精度(标准不变)。

获得的ptτk参数共同构成NAP配置。 请注意,pτ 参数针对每个层进行调整,但 t 仅针对卷积层进行调整。

3.5 组合多层距离

假设算法已经建立了配置,并且我们可以获得来自多个层的二进制模式的汉明距离,这些模式可以组合成一个集成决策算法,将测试样本分类为 OOD。 在这项工作中,我们比较了两个决策标准。 第一个决策算法(投票方案 1)根据以下定义将汉明距离组合成单个不确定性分数:

score=lLdlscaledτlscaled (7)

其中dlscaled是从第l层获得的缩放最近汉明距离; τlscaled是为第l层建立的缩放汉明距离阈值; L 是一组选定的要监视的图层。

第二个决策算法是简单的多数投票分类器(投票方案 2),其中每一层独立投票样本是否为 OOD。 最终的决定是采用k投票的方式。 这将 k 参数强制为奇数。

4实验

OOD 评估协议 我们按照 OD 测试框架[44]中提出的方法评估了针对 OOD 检测任务提出的二进制 NAP。 假设面临现实世界任务挑战的 OOD 检测器将暴露于仅属于两个分布(ID 和 OOD)的样本,这一假设可能很棘手。 OOD 检测方法可能不够稳健,无法用于安全关键环境,除非能够提供涵盖所有可能语义空间的数据集。 Shafaei等人[44]引入了OOD测试,这是一种三(而不是二)数据集评估方法,旨在更可靠地评估OOD方法。 事实证明,三组评估方案获得的结果置信度更高、更可靠。

在此评估过程中,数据分为三组:源训练 Ds、验证 Dv 和测试 Dt 子集。 原始 ID 图像仅包含在 Ds 中,而 OOD 样本分为两个截然不同的组:DvDt 数据集如图3所示。 可靠的 OOD 检测器应该经过训练才能区分 DsDv,但其识别 OOD 的泛化能力应该在 Dt 上针对 Ds

Refer to caption
图3 两个数据集 OOD 评估的谬误。 如果未知测试分布 DtDv 不同,则源分布 Ds 和验证分布 Dv 之间建立的阈值可能表现不佳。

模型和数据集 在我们的评估中,我们使用了预训练的 VGG-16 [45] 和 ResNET-50 [18] 以及七个数据集( MNIST [29]、FashionMNIST [49]、NotMNIST、CIFAR10、CIFAR100 [26]、STL10 [5] 和 TinyImagenet) 进行评估。 OOD 评估协议下的每种方法均在同一组 308 个实验中进行测试,其中包含所有兼容的三元组数据集。 作为 DsDvDt,我们使用上述七个数据集中的所有可能组合。

指标 除了准确性(在原始 OD 测试框架中仅计算该指标)之外,我们还使用受试者工作特征曲线下面积 (AUROC) 作为主要评估指标,因为它是合适的指标用于具有平衡数据的二类判别任务。

方法 我们将我们的方法与几种最先进的 OOD 检测方法进行比较,以创建最大的 OOD 评估框架。
在我们的比较中,我们使用了 OD 测试框架 [44] 中实现的方法:OpenMax [1]ScoreSVM [6]LogisticSVMBinClassPbThreshold [20]ODIN[31]0>,ReconstThreshold1>,K-NNSVM2>,K-MNNSVM3> , K-BNNSVM4>, K-VNNNSVM5> [25]6>(其中 K 表示最近邻居的数量),MCDropout7> [11]8> 和 DeepEnsemble9> [27]0>。 此外,我们还集成了最近提出的最先进的 OOD 检测方法:Mahalanobis [30]OutlierExposure [21] ,能量 [32],ReAct [47],GradNorm [23]MeanShiftedAD0> [43]1> 和 ASH-B2> [8]3>。 对于所有方法,我们都使用官方论文实现中提供的参数配置。

自适应配置策略 在所提出的方法中,我们评估了几种自动配置策略和对多层距离进行评分的方法。 在选项卡中。 1,我们使用准确性指标展示了所分析的网络架构的超参数优化的最终结果。 消融研究中包含的超参数如下:优化标准的选择、投票层数以及多个投票层的 OOD 决策算法。 在上标括号中,我们将每种网络架构的最佳配置分别注释为 NAP1 和 NAP2 下一小节中将使用这些配置与最先进的 OOD 检测器进行比较。 此外,补充材料中还提供了更多记录 NAP 超参数对 OOD 检测性能影响的结果。

表1 选定超参数的 OD 测试性能。 粗体结果表示 OD 测试比较中包含的设置。
Model Criterion #k - nb of layers Vote scheme 1 Vote scheme 2
Accuracy
VGG valid. acc. 3 81.39% 79.57%
5 81.94% 80.92%
7 82.01% 82.35%
9 82.23%[NAP1] 83.26%[NAP2]
threshold 3 79.74% 80.21%
5 79.55% 81.09%
7 79.87% 81.72%
9 79.91% 82.18%
ResNET valid. acc. 3 79.05% 77.75%
5 79.03% 77.46%
7 79.15% 77.11%
9 79.15%[NAP1] 77.50%
threshold 3 79.38% 79.54%
5 79.82%[NAP2] 78.41%
7 78.71% 76.72%
9 77.95% 76.42%

时间效率 所有实验均在Pytorch v1.8环境和Python v3.9客户端中进行,运行在Intel PC上 R CoreTM i7-3930K CPU 3.20 GHz 和 GeForce GTX 1080 Ti。 所有方法都集成到相同的框架中,并在相同的设置上比较计算时间。 表 2 总结了评估方法的时间效率。 2. NAP 方法的执行时间与其他最先进的方法(例如 ODIN)(VGG 和 ResNET 架构为 10 和 20 毫秒)相当,并且比最高效的 Mahalanobis 方法快得多,使其能够在实际中使用- 时间应用程序。

表2 最先进的 OOD 探测器每张图像的平均处理时间的比较。 我们方法的结果以粗体突出显示。
Method Time [s]
VGG ResNet
ASH-B 0.004 0.009
BinClass 0.002 0.007
DeepEns. 0.012 0.038
Energy 0.003 0.008
GradNorm 0.010 0.027
Log.SVM 0.003 0.006
MC-Dropout 0.003 0.007
Mahalanobis 0.217 0.086
MeanShiftedAD 0.231 0.314
ODIN 0.010 0.028
OpenMax 0.035 0.040
OutlierExposure 0.003 0.008
PbThresh 0.002 0.007
ReAct 0.003 0.008
ScoreSVM 0.002 0.006
Ours (NAP) 0.008 0.015

与最先进的 OOD 检测比较 最后,我们将之前实验中建立的最佳配置与 OOD 检测文献中提出的竞争方法进行了比较。 使用 AUROC 度量获得的结果如图 4(a) 所示,而准确度度量则如图 4(b) 所示。 所呈现的比较中的每种方法都在同一组 308 个实验中进行了测试,然后取平均值,其中所有数据集分别用作训练 Ds、验证 Dv 和测试 Dt.

执行的评估表明,对于两个考虑的指标,所提出的二进制 NAP 远远优于最先进的 OOD 检测方法。 通过适当选择超参数,基于 NAP 的方法可以比 VGG 架构上第二好的 Mahalanobis 获得高 3.4% 的 AUROC 分数;比 ResNET 上第二好的 ODIN 高 0.1%; VGG 的准确率比第二好的 Mahalanobis 高 1.2%; ResNET 上的准确率比第二好的 Mahalanobis 高 1.1%。 这种方法不仅紧密依赖于分类器的架构,而且还依赖于底层分类器的训练方式和训练效果。 为了公平评估的目的,为所有架构和Ds训练数据集统一设置超参数。 但它们可以针对每个 DsDv 任务进行进一步优化。 我们建议默认使用以下策略之一: (1) 投票数 - 5;自动配置标准-阈值。 该策略实现了两种架构的最佳 AUROC 值以及最佳和第二好的准确率。 (2) 票数 - 9;自动配置标准 - 验证准确性。 这在 ResNET 上产生了第二好的 AUROC 值(略低于 ODIN),但在其他所有情况下都占主导地位,在 VGG 上表现尤其好。

此外,我们评估了所有方法的性能并汇总了每个数据集的结果。 这些结果显示在表中。 3. 虽然当对所有数据集的结果进行平均时,所提出的 NAP 变体优于最先进的方法,但我们可以观察到 NAP 对于特定数据集可能会获得稍差的结果。

Refer to caption
(a) AUROC
Refer to caption
(b) Accuracy
图4 所提出的 NAP 方法在所有数据集上采用各种配置和最先进的 OOD 检测方法的平均评估结果:(a) AUROC 和 (b) 准确性。 后缀/VGG或/Res表示网络架构。
表3 针对每个训练数据集进行 OD 测试 AUROC。 所有数据集和每个数据集的最佳结果以粗体突出显示。 请注意,我们方法的 NAP_2 版本是多数投票系统,无法为其计算 AUROC 指标。
Model Method All MNIST FMNIST CIFAR10 CIFAR100 STL10 TImagenet All MNIST FMNIST CIFAR10 CIFAR100 STL10 TImagenet
AUROC Accuracy
VGG ASH-B@90 0.6935 0.9801 0.9029 0.5341 0.4971 0.7122 0.4991 0.6555 0.9297 0.7807 0.5343 0.5048 0.6363 0.5116
BinClass 0.7721 0.9802 0.8485 0.7251 0.5944 0.7737 0.6989 0.6846 0.9281 0.6826 0.6604 0.5664 0.6631 0.5955
DeepEns. 0.7744 0.9878 0.8967 0.8410 0.6005 0.7774 0.5602 0.7257 0.9491 0.7992 0.7853 0.5594 0.6675 0.5935
Energy 0.8148 0.9882 0.9512 0.8634 0.7448 0.8664 0.4996 0.7261 0.9470 0.8348 0.70.16 0.6546 0.70.80 0.4996
GradNorm 0.7911 0.9801 0.8703 0.8398 0.6988 0.7086 0.6404 0.7433 0.9336 0.7963 0.7826 0.6459 0.6719 0.6211
Log.SVM 0.8368 0.9793 0.9177 0.8227 0.7289 0.8693 0.7070 0.7481 0.9087 0.8003 0.7378 0.6215 0.7622 0.6588
MC-Dropout 0.7979 0.9762 0.8635 0.8236 0.7205 0.7022 0.6837 0.7329 0.9285 0.7794 0.7520 0.6483 0.6228 0.6433
Mahalanobis 0.8836 0.9999 0.9863 0.8872 0.6816 0.9104 0.8434 0.8229 0.9390 0.9213 0.8296 0.6747 0.8343 0.7425
MeanShiftedAD 0.7995 0.9950 0.9666 0.8381 0.7700 0.7213 0.4961 0.7454 0.9745 0.8926 0.7473 0.6637 0.6832 0.4955
Ours (NAP_1) 0.9137 0.9996 0.9836 0.8359 0.7720 0.9520 0.9289 0.8223 0.9814 0.9125 0.7440 0.6768 0.8232 0.7761
Ours (NAP_2) N/A N/A N/A N/A N/A N/A N/A 0.8326 0.9901 0.9396 0.7401 0.6808 0.7954 0.8168
ODIN 0.8650 0.9808 0.8883 0.9152 0.7841 0.8913 0.7494 0.7860 0.9335 0.8047 0.8209 0.6861 0.7844 0.6945
OpenMax 0.6400 0.7249 0.5000 0.6395 0.6095 0.7638 0.6330 0.6239 0.6927 0.5000 0.5768 0.5857 0.7467 0.6604
OutlierExposure 0.8420 0.9361 0.9075 0.8466 0.7520 0.8360 0.7730 0.7454 0.9166 0.8020 0.7375 0.6471 0.7229 0.6383
PbThresh 0.7615 0.9371 0.7412 0.8245 0.7018 0.6936 0.6696 0.7272 0.9144 0.7311 0.7709 0.6426 0.6735 0.6281
ReAct 0.8120 0.9699 0.9556 0.8576 0.7423 0.8743 0.4988 0.7236 0.9299 0.8437 0.7008 0.6532 0.7043 0.4988
ScoreSVM 0.8335 0.9873 0.9697 0.8357 0.6608 0.8781 0.6810 0.7726 0.9408 0.8989 0.7348 0.5923 0.7702 0.6880
ResNet ASH-B@90 0.8021 0.9499 0.8482 0.8638 0.7048 0.8455 0.6262 0.7305 0.9037 0.7727 0.7333 0.6297 0.7183 0.6226
BinClass 0.7451 0.9947 0.7613 0.6791 0.6376 0.7001 0.6698 0.6947 0.9027 0.6703 0.6523 0.5974 0.6607 0.6657
DeepEns. 0.7214 0.9544 0.8512 0.7791 0.5423 0.6562 0.5432 0.6585 0.8475 0.7604 0.6878 0.5328 0.5900 0.5225
Energy 0.8248 0.9762 0.9070 0.8940 0.6555 0.8238 0.7090 0.7318 0.9165 0.8095 0.7466 0.5722 0.7139 0.6311
GradNorm 0.6311 0.7946 0.4771 0.4379 0.7415 0.3733 0.8494 0.5940 0.6744 0.5021 0.4861 0.6719 0.4252 0.7346
Log.SVM 0.7710 0.9292 0.8404 0.7315 0.7176 0.7230 0.6621 0.6913 0.8531 0.7330 0.6357 0.5811 0.6352 0.6813
Mahalanobis 0.8459 0.9959 0.9805 0.8485 0.6537 0.7579 0.8175 0.7892 0.9383 0.9148 0.7724 0.6465 0.7491 0.6997
MeanShiftedAD 0.8427 0.9984 0.9733 0.9343 0.8161 0.6495 0.6588 0.7756 0.9739 0.9001 0.8447 0.7031 0.6268 0.5836
Ours (NAP_1) 0.8527 0.9998 0.9875 0.8482 0.6523 0.7847 0.8253 0.7915 0.9892 0.9294 0.7605 0.5798 0.7368 0.7314
Ours (NAP_2) 0.8567 0.9996 0.9874 0.8355 0.6614 0.8053 0.8328 0.7982 0.9875 0.9422 0.7557 0.5969 0.7397 0.7419
ODIN 0.8561 0.9247 0.8337 0.9231 0.7597 0.8886 0.8316 0.7734 0.8630 0.7519 0.8387 0.6720 0.7868 0.7474
OpenMax 0.6054 0.6755 0.5000 0.6388 0.5613 0.6271 0.6430 0.5836 0.6531 0.5000 0.6064 0.5413 0.5847 0.6218
OutlierExposure 0.7774 0.9172 0.8436 0.8228 0.6058 0.7510 0.7286 0.6753 0.8593 0.7067 0.6876 0.5510 0.6155 0.6197
PbThresh 0.7615 0.9170 0.8341 0.8453 0.5833 0.7540 0.6537 0.7032 0.8704 0.7652 0.7814 0.5264 0.6850 0.6054
ReAct 0.8462 0.9825 0.9230 0.8961 0.6821 0.9064 0.7141 0.7490 0.9296 0.8091 0.7516 0.5727 0.8164 0.6318
ScoreSVM 0.8085 0.9902 0.8041 0.7679 0.6883 0.6528 0.8982 0.6971 0.8962 0.7194 0.6367 0.60.01 0.5987 0.6916
1-NNSVM 0.7956 0.9975 0.9864 0.8226 0.7813 0.6683 0.4921 0.7321 0.9735 0.8879 0.6899 0.6490 0.6295 0.5265
1-BNNSVM 0.6680 0.9996 0.9984 0.4787 0.4920 0.4833 0.4623 0.7203 0.9919 0.9763 0.5686 0.5596 0.6174 0.5443
1-MNNSVM 0.6678 0.9995 0.9962 0.4743 0.4945 0.4824 0.4648 0.7090 0.9853 0.9577 0.5536 0.5519 0.5947 0.5430
1-VNNSVM 0.6165 0.9270 0.7904 0.4919 0.4916 0.4808 0.4519 0.6466 0.8679 0.7156 0.5751 0.5501 0.5947 0.5448
8-NNSVM 0.7865 0.9963 0.9845 0.8178 0.7499 0.6661 0.4818 0.7257 0.9721 0.8802 0.6948 0.6363 0.6049 0.5277
8-BNNSVM 0.6629 0.9997 0.9983 0.4702 0.4727 0.4821 0.4618 0.7164 0.9901 0.9723 0.5755 0.5344 0.6193 0.5472
8-MNNSVM 0.6641 0.9995 0.9965 0.4661 0.4839 0.4814 0.4609 0.7115 0.9831 0.9569 0.5601 0.5498 0.60.33 0.5505
8-VNNSVM 0.6155 0.9424 0.7860 0.4862 0.4820 0.4806 0.4495 0.6597 0.8790 0.70.64 0.6111 0.5682 0.6172 0.5534
AEThre./BCE 0.7315 1.0000 0.8846 0.6802 0.5434 0.6599 0.5898 0.7481 0.9982 0.8408 0.7423 0.5930 0.6598 0.6308
AEThre./MSE 0.7739 0.9999 0.9650 0.7828 0.7501 0.7251 0.4100 0.70.52 0.9296 0.8230 0.6538 0.6346 0.6222 0.5340

5结论

在这项工作中,我们介绍了一种为图像识别问题设计的 DNN 检测 OOD 数据的新方法。 大量的实验可以为基于 NAP 的卷积神经网络找到最佳配置,从而有效地识别 OOD 样本。 所提出的方法明显优于最先进的方法所取得的结果。 此外,所提出的方法适用于二进制向量,并且由于提取的特征的二进制表示而具有非常低的计算复杂度。 我们相信这项工作将激发在 OOD 检测背景下进一步检验 NAP 的理论特性。

致谢

这项工作得到了国家研究与发展中心 LIDER/51/0221/L-11/19/NCBR/2020 项目的支持。

参考

  • [1] Abhijit Bendale and Terrance Boult. Towards open set deep networks, 2015.
  • [2] Abhijit Bendale and Terrance E. Boult. Towards open set deep networks. In 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 1563–1572, 2016.
  • [3] Yuan Cao, Heng Qi, Wenrui Zhou, Jien Kato, Keqiu Li, Xiulong Liu, and Jie Gui. Binary hashing for approximate nearest neighbor search on big data: A survey. IEEE Access, 6:2039–2054, 2018.
  • [4] Chih-Hong Cheng, Georg Nührenberg, and Hirotoshi Yasuoka. Runtime monitoring neuron activation patterns, 2018.
  • [5] Adam Coates, Andrew Ng, and Honglak Lee. An analysis of single-layer networks in unsupervised feature learning. Journal of Machine Learning Research - Proceedings Track, 15:215–223, 01 2011.
  • [6] Corinna Cortes and Vladimir Naumovich Vapnik. Support-vector networks. Machine Learning, 20:273–297, 2004.
  • [7] Scott E. Coull and Christopher Gardner. Activation analysis of a byte-based deep neural network for malware classification. CoRR, abs/1903.04717, 2019.
  • [8] Andrija Djurisic, Nebojsa Bozanic, Arjun Ashok, and Rosanne Liu. Extremely simple activation shaping for out-of-distribution detection. In The Eleventh International Conference on Learning Representations, ICLR 2023, 2023.
  • [9] Fabio Falcini and Giuseppe Lami. Deep learning in automotive: Challenges and opportunities. In Software Process Improvement and Capability Determination, pages 279–288, 2017.
  • [10] Håkan Forsberg, Joakim Lindén, Johan Hjorth, Torbjörn Månefjord, and Masoud Daneshtalab. Challenges in using neural networks in safety-critical applications. In 2020 AIAA/IEEE 39th Digital Avionics Systems Conference (DASC), pages 1–7, 2020.
  • [11] Yarin Gal and Zoubin Ghahramani. Dropout as a bayesian approximation: Representing model uncertainty in deep learning, 2016.
  • [12] Ian J. Goodfellow, Jonathon Shlens, and Christian Szegedy. Explaining and harnessing adversarial examples, 2015.
  • [13] Chuan Guo, Geoff Pleiss, Yu Sun, and Kilian Q. Weinberger. On calibration of modern neural networks, 2017.
  • [14] Boris Hanin and David Rolnick. Deep ReLU Networks Have Surprisingly Few Activation Patterns. 2019.
  • [15] Matan Haroush, Tzviel Frostig, Ruth Heller, and Daniel Soudry. Statistical testing for efficient out of distribution detection in deep neural networks. CoRR, abs/2102.12967, 2021.
  • [16] D Hartmann, D Franzen, and S Brodehl. Studying the evolution of neural activation patterns during training of feed-forward relu networks. Front. Artif. Intell, 4:642374, 2021.
  • [17] Vahid Hashemi, Jan Křetínský, Stefanie Mohr, and Emmanouil Seferis. Gaussian-based runtime detection of out-of-distribution inputs for neural networks. In Lu Feng and Dana Fisman, editors, Runtime Verification, pages 254–264, 2021.
  • [18] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition, 2015.
  • [19] Franz Hell, Gereon Hinz, Feng Liu, Sakshi Goyal, Ke Pei, Tetiana Lytvynenko, Alois Knoll, and Chen Yiqiang. Monitoring perception reliability in autonomous driving: Distributional shift detection for estimating the impact of input data on prediction accuracy. In Computer Science in Cars Symposium, CSCS ’21, 2021.
  • [20] Dan Hendrycks and Kevin Gimpel. A baseline for detecting misclassified and out-of-distribution examples in neural networks, 2018.
  • [21] Dan Hendrycks, Mantas Mazeika, and Thomas Dietterich. Deep anomaly detection with outlier exposure, 2019.
  • [22] Thomas A. Henzinger, Anna Lukina, and Christian Schilling. Outside the box: Abstraction-based monitoring of neural networks. In ECAI, 2020.
  • [23] Rui Huang, Andrew Geng, and Yixuan Li. On the importance of gradients for detecting distributional shifts in the wild, 2021.
  • [24] Alex Kendall and Yarin Gal. What uncertainties do we need in bayesian deep learning for computer vision? In Advances in Neural Information Processing Systems, volume 30. Curran Associates, Inc., 2017.
  • [25] Diederik P Kingma and Max Welling. Auto-encoding variational bayes, 2014.
  • [26] Alex Krizhevsky. Learning multiple layers of features from tiny images. 2009.
  • [27] Balaji Lakshminarayanan, Alexander Pritzel, and Charles Blundell. Simple and scalable predictive uncertainty estimation using deep ensembles, 2017.
  • [28] Yann Lecun, Sumit Chopra, Raia Hadsell, Marc Aurelio Ranzato, and Fu Jie Huang. A tutorial on energy-based learning. MIT Press, 2006.
  • [29] Yann LeCun and Corinna Cortes. The mnist database of handwritten digits. 2005.
  • [30] Kimin Lee, Kibok Lee, Honglak Lee, and Jinwoo Shin. A simple unified framework for detecting out-of-distribution samples and adversarial attacks, 2018.
  • [31] Shiyu Liang, Yixuan Li, and R. Srikant. Enhancing the reliability of out-of-distribution image detection in neural networks, 2020.
  • [32] Weitang Liu, Xiaoyun Wang, John D. Owens, and Yixuan Li. Energy-based out-of-distribution detection, 2021.
  • [33] Lakmal Meegahapola, Vengateswaran Subramaniam, Lance Kaplan, and Archan Misra. Prior activation distribution (pad): A versatile representation to utilize dnn hidden units, 2019.
  • [34] Lassi Meronen, Christabella Irwanto, and Arno Solin. Stationary activations for uncertainty calibration in deep learning, 2020.
  • [35] Khan Muhammad, Amin Ullah, Jaime Lloret, Javier Del Ser, and Victor Hugo C. de Albuquerque. Deep learning for safe autonomous driving: Current challenges and future directions. IEEE Transactions on Intelligent Transportation Systems, 22(7):4316–4336, 2021.
  • [36] Vinod Nair and Geoffrey E. Hinton. Rectified linear units improve restricted boltzmann machines. In Proc. of the 27th Int. Conf. on on Machine Learning, ICML’10, page 807–814, 2010.
  • [37] Yaniv Ovadia, Emily Fertig, Jie Ren, Zachary Nado, D Sculley, Sebastian Nowozin, Joshua V. Dillon, Balaji Lakshminarayanan, and Jasper Snoek. Can you trust your model’s uncertainty? evaluating predictive uncertainty under dataset shift, 2019.
  • [38] Guansong Pang, Chunhua Shen, Longbing Cao, and Anton Van Den Hengel. Deep learning for anomaly detection: A review. 54(2), 2021.
  • [39] Colin Paterson and Radu Calinescu. Detection and mitigation of rare subclasses in neural network classifiers. CoRR, abs/1911.12780, 2019.
  • [40] Janis Postels, Hermann Blum, Yannick Strümpler, Cesar Cadena, Roland Siegwart, Luc Van Gool, and Federico Tombari. The hidden uncertainty in a neural networks activations, 2021.
  • [41] Janis Postels, Francesco Ferroni, Huseyin Coskun, Nassir Navab, and Federico Tombari. Sampling-free epistemic uncertainty estimation using approximated variance propagation, 2019.
  • [42] Tal Reiss, Niv Cohen, Liron Bergman, and Yedid Hoshen. Panda: Adapting pretrained features for anomaly detection and segmentation, 2021.
  • [43] Tal Reiss and Yedid Hoshen. Mean-shifted contrastive loss for anomaly detection, 2021.
  • [44] Alireza Shafaei, Mark Schmidt, and James J. Little. A less biased evaluation of out-of-distribution sample detectors. In BMVC, 2019.
  • [45] Karen Simonyan and Andrew Zisserman. Very deep convolutional networks for large-scale image recognition, 2015.
  • [46] Martin Stano, Wanda Benesova, and Lukas Samuel Martak. Explaining predictions of deep neural classifier via activation analysis. CoRR, abs/2012.02248, 2020.
  • [47] Yiyou Sun, Chuan Guo, and Yixuan Li. React: Out-of-distribution detection with rectified activations, 2021.
  • [48] Francesco Terrosi, Lorenzo Strigini, and Andrea Bondavalli. Impact of machine learning on safety monitors. In Mario Trapp, Francesca Saglietti, Marc Spisländer, and Friedemann Bitsch, editors, Computer Safety, Reliability, and Security, pages 129–143, 2022.
  • [49] Han Xiao, Kashif Rasul, and Roland Vollgraf. Fashion-mnist: a novel image dataset for benchmarking machine learning algorithms, 2017.
  • [50] Jingkang Yang, Kaiyang Zhou, Yixuan Li, and Ziwei Liu. Generalized out-of-distribution detection: A survey, 2021.