Rethinking Reconstruction Autoencoder-Based Out-of-Distribution Detection
Rethinking Reconstruction Autoencoder-Based Out-of-Distribution Detection
-
- 摘要
- 1引言
- 2相关工作
- 3前提
- 4方法
摘要
在某些场景中,分类器需要检测远离其训练数据的分布外样本。具有理想的特性,基于重构自动编码器的方法通过使用输入重构误差作为新颖性与正常性的度量来解决这个问题。我们将这种方法的本质形式化为四元域转换,其内在偏见只查询条件数据不确定性的代理。因此,改进的方向被形式化为最大限度地压缩自动编码器的潜在空间,同时确保其作为描述的域转换器的重构能力。由此,我们引入了包括语义重构、数据确定性分解和标准化L2距离的策略,以大幅改进原始方法,这些方法共同在各种基准测试中建立了最先进的性能,例如,CIFAR-100与TinyImagenet-crop在Wide-ResNet上的FPR@95%TPR为0.2%。重要的是,我们的方法无需任何额外的数据、难以实现的结构、耗时的流程,甚至不会损害已知类别的分类精度。代码已在github上发布。https://github.com/SDret/Pytorch-implementation-for-Rethinking-Reconstruction-Autoencoder-Based-Out-of-Distribution-Detection。
1引言
监督性判别深度分类器实际上是在一个静态封闭世界的假设下设计的,其中模型在部署环境中面对的数据应该是从与训练集相同的分布中采样的。然而,对于在野外的应用,如关键安全的自动驾驶车辆,测试数据往往很难提前知道。更糟糕的是,神经网络,特别是那些基于 relu 或 softmax 构建的网络,可以轻易地对完全无法识别或无关的样本产生不仅是错误的,而且是任意自信的类别预测,因此,赋予系统标记或放弃未知预测的能力是重要的。
分布外(OoD)检测是一种二元分类,用于检测从与训练数据不同的分布中采样的输入[11]。许多现有的方法依赖于使用来自其他类别[28, 32]、对手[15, 19]或训练样本的留出子集[30]的标记为OoD的数据进行训练或调整。然而,对于具有大尺寸(例如,图像)的数据[20],覆盖OoD的全空间是棘手的,这导致一个捕获OoD分布有限方面的监督方法在没有数据选择偏见的情况下很难泛化[24]。同时,通过引入具有额外训练目标的OoD数据,分类器在分布内(ID)图像上的准确性会波动[28,30]。这些因素暴露了OoD检测的无监督性质。
在一类无监督方法中,输入重构残差被视为一种新颖度度量,以避免上述问题[22]。基本的假设是,一个学会重建ID样本的自动编码器在测试期间无法相对地重建OoD[5]。然而,已经广泛报道,自动编码器可以更好地有效地重建各种OoD样本[7, 22],导致这些方法在应用于具有挑战性的多类OoD检测任务时性能较差。在本文中,我们从四元域转换的角度,以精确的方式研究异常值的重构问题,通过形式化两个具体的前提条件,其中输入的重构误差是一个有效的数据不确定性度量。首先,其潜在特征位于编码ID样本的域内。其次,解码器具有足够的重构能力来桥接ID图像和它们的潜在表示的域。
预设条件1要求系统捕获潜在表示的异常值。我们不依赖在高维度中表现弱的核密度估计器[1, 7, 23],类似于考虑紧凑潜在表示的方案[2, 3],我们最小化一个正则化损失以限制ID潜在特征分布在某个特定空间内。结合输入重构的训练,当这个空间被足够压缩时,任何潜在特征的异常值都会位于其外部。
存在一个耦合问题,即过度限制的潜在空间可能无法为大规模ID图像提供足够的重构能力,这违反了预设条件2。为了缓解这个问题,我们将重构目标从图像改为其提取的激活向量(AV)特征,以减少对潜在空间表达能力的不必要要求。进一步地,从域转换的角度,我们推导出一个基本方程来模拟输入重构误差和数据确定性之间的内在联系。通过概率链规则,我们进一步将其因式分解,将数据确定性表示为由逐层编码器特征重构误差定义的条件密度的乘积。尽管从整个编码过程中累积的大量信息损失使得很难直接从紧凑的潜在空间恢复输入以满足预设条件2,但存在一个等价的预设条件可以被满足,因为它只要求分别恢复每个不可逆编码层后丢失的信息。因此,受以上概念的启发,我们提出了一个理论上定义良好的OoD检测框架,即逐层语义重构。
在这个框架中,我们只使用一个全连接(FC)层和softmax函数作为编码器架构,并利用简单的交叉熵损失来限制潜在空间。我们提供了实验证据和数学洞察,表明在这样的设置下,潜在特征的最大值可以作为过滤出可能被重构的OoD数据的领域亲和力。由于分类器倾向于在OoD数据上产生较小的神经激活[25, 27],为了使我们的方法对其具有鲁棒性,我们使用提出的归一化L2距离来评估重构的准确性。
我们的贡献主要有三方面:首先,我们为理解基于自编码器的OoD检测建立了一个新的视角,找出了一种通过最大限度地压缩自编码器的潜在空间同时保留对ID数据的足够重构能力来改进它们的方向。基于此,其次,我们开发了一个逐层语义重构的框架。第三,我们使用各种基准数据集对我们的提议进行了全面的分析,并进行了消融和鲁棒性研究,以展示其效能,表明基于自编码器的方法的潜力并不像以前显示的那样黯淡。
• 我们的方法在各种具有挑战性的基准测试中,与SOTA(最先进)方法的性能相当。
• 作为一个辅助模块,我们的OoD检测器的训练方式与分类器是正交的。
• 我们的方法在无监督的效率和适用性模式下运行,不需要额外的数据。
2相关工作
自编码器由一个编码器组成,用于将输入投影到一个维度较少的潜在空间(也称为瓶颈特征),以及一个解码器,用于从其潜在表示中恢复输入。在训练过程中,输入会依次通过编码器和解码器进行处理,以最小化重构误差,这是输入和解码器的重构输出之间的L2距离差异。基于重构的自编码器OoD检测器的基本假设是,专门训练来恢复ID样本的自编码器无法成功地重构OoD样本。因此,重构误差成为测试中OoD检测的一个可能有效的决策函数。然而,与这个期望相反,据报道,自编码器能够准确地重构不同类型的OoD样本[18, 29]。
在[6]中指出,训练样本中的大量噪声使得难以学习大多数ID样本的稳健潜在表示。因此,提出了一种神经网络扩展的稳健主成分分析(RPCA)[4]。在[7]中,将Mahalanobis距离和自编码器的OoD检测方法合并到一个统一的框架中,假设后者可以因此得到增强。最近关于潜在空间自回归的工作[2]提出通过应用自回归密度估计器来约束自编码器从恒等函数中,以最小化ID潜在特征分布的微分熵。我们的提议也利用了限制ID潜在特征分布的优势。不同的是,我们寻求一个最大限度地压缩的潜在空间,紧密覆盖ID潜在代码的领域,以得到这个领域的近似值,而无需参数密度估计器[26]。两种方法的比较详细地在实验部分中进行,结果显示我们的方法在相当大的范围内优于现有的方法。
3前提
在这一部分,我们将介绍我们框架的概念。正式地,我们假设存在一个由所有ID图像特征化的域 X \subset R^N。当样本 z 不在 X 中时,我们将其视为OoD样本。本质上,任何 x \in X 是一个ID样本,任何 z \in Z = R^N - X是一个OoD。对于一个在ID样本数据集上训练的自编码器,由编码器 E(·) 和解码器 D(·) 组成,让 E(x) 的域,对于所有的 x \in X,被 SID \subset R^M 所覆盖。在假设解码器具有足够的重构能力,可以作为 SID \rightarrow X 的域转换器的情况下,E(·) 和 D(·) 是学习 X 和 SID 之间的前向和后向映射关系的函数:

当编码时,X和Z可能会有重叠,如果我们将编码的OoD样本的域表示为SOoD,它可以被分解为SOoD = SOoD∩SID + SOoD∩(RM-SID)。使用等式2,任何编码到SID∩SOoD的OoD样本都可以被解码回X。对于这部分OoD样本,我们预期会有更大的重构误差,因为它们被解码到了一个不同的域X。此外,对于这些OoD样本,它们在RN中离X越远,重构误差可能就越大。这与数据确定性度量的特性是一致的。

图1. 描述的四元域转换的示意图。对于编码到 SID \cap SOoD 的OoD样本 z1,其潜在表示 E(z1) 可能等于ID样本 x 的表示。因此,E(z1) 可以被解码为 X 中的一个不同的样本 x,从而导致大的重构误差。然而,对于潜在表示 E(z2) 位于 SID 外部的OoD样本 z2,并不能保证它不能被很好地重构。
然而,对于具有潜在特征 E(z) \in SOoD \cap (R^M - SID) 的OoD样本 z,并不能保证阻止其重构。尽管 E(z) 可能远离编码的ID数据,但 z 可能位于由自编码器的参数和架构确定的流形上,在该流形上,数据可以被精确地重构。一个例子是所有元素都为零的OoD图像。在经过没有移位操作的自编码器处理后,其重构自然会全为零,从而导致OoD的完美重构。自然地,与图1中图示的概念一起封装,对于一个不可知的输入 r,给定 E(r) \in SID,其重构误差是数据不确定性 P(r \notin X) 的有效度量。这个概念被建模为:

对于满足等式2的解码器 D(·),应用适当的距离度量 Dist(·,·) 来计算重构误差,并使用某个单调递减函数 F(·) : R \rightarrow [0, 1] 将重构误差映射为概率。注意到 P(r \in X) = P(r \in X, E(r) \in SID) + P(r \in X, E(r) \notin SID),根据 SID 的定义,我们有 P(r \in X, E(r) \notin SID) = 0,因此:

为了估计 P(E(r) \in SID),我们可以在训练阶段对ID潜在特征应用额外的正则化损失,强制它们驻留在一个已知的紧凑空间中,以更好地近似SID,而不是用像高斯这样的特定分布家族来拟合在训练的自编码器中提取的 E(x) \in SID,在限制性假设下得到一个有偏的密度估计器。这个想法在图2中表示。由于SID被这个受限的潜在空间覆盖,随着对ID潜在特征施加的限制力量的增加,为了保留联合学习的重构任务的能力,模型隐含地寻求更大地使用这个潜在空间。这意味着一个受限的潜在空间可能会被SID更多地填充。因此,估计 P(E(r) \in SID) 大致等于估计 E(r)在这个受限潜在空间中的概率。
然而,在OoD检测设置中,这个正则化器同时与一个问题耦合在一起,那就是过度限制的潜在空间可能导致在ID图像中重构的困难。这可能违反了基本的假设,即 D(·) 作为 SID \rightarrow X 的域转换器,将 F(Dist(r,D(E(r)))) 推离了 P(r \in X|E(r) \in SID) 的准确估计。因此,这里的主要兴趣是在保留其重构ID数据的能力的同时,最大限度地压缩自编码器的潜在空间。
从这个角度出发,特别是那些具有大空间分辨率的图像并不是重构目标的好选择。满足图像的等式2需要精确地恢复与OoD检测无关的无数细节。因此,对数据收集、计算,甚至更糟糕的是,对潜在空间的大小,都提出了不必要的要求,这并不利于估计 P(E(r) \in SID)。
由于分类器中提取的高级特征可以被视为获取了原始图像的几乎所有信息(除了较少的类别代表性细节)的学习表示,并且在这个主题中经常暗示有一个训练过的分类器,为了避免在像素空间上重构的复杂性,我们转向重构AV特征,这是分类器倒数第二层的输出,作为图像的低维语义表示来量化数据的正常性。如文献中所述,基于图像的检测器对图像尺度敏感。相反,AVs可以设置为固定大小,并且只保留最相关的任务信息,减轻了原始方法对图像尺度的敏感性。此外,一个优点是它不需要输入图像和访问训练过的模型,这对隐私有影响。在接下来的部分,我们将把不可知图像的AV特征表示为 v,并将从ID图像中提取的AV特征的域表示为 V \subset R^H,其中 H 表示 v 的维度。
随着潜在空间不断被压缩,其中丢失的输入信息部分增加。注意到这部分无法恢复的信息是从编码器的每一个不可逆层累积起来的,我们将 P(v \in V) 进行因式分解,以避开直接从缺乏表达能力的潜在空间恢复输入的困难:对于一个具有 n 层的编码器 E(·),我们将给定输入AV v 时第 i 层的输出特征表示为 fi(v),i = 1, . . . , n。如果我们将 fi(v),v \in V 的域表示为 Fi,那么自然有 P(f1(v) \in F1, f2(v) \in F2, ..., fn(v) \in Fn|v \in V) = 1。因此 P(v \in V) = P(v \in V) \cdot 1 = P(v \in V) \cdot P(f1(v) \in F1, f2(v) \in F2, ..., fn(v) \in Fn|v \in V) = P(v \in V, f1(v) \in F1, f2(v) \in F2, ..., fn(v) \in Fn)。假设这个编码器的前向传播形成了一个马尔可夫过程 v \rightarrow f1(v) \rightarrow f2(v) \rightarrow ... \rightarrow fn(v),任何特征都可以由其前面的任何特征确定。因此,P(fi(v) \in Fi, fi+1(v) \in Fi+1, ..., fn(v) \in Fn) = P(fi(v) \in Fi),然后我们有:

扩展自等式3,F(Dist(fi(v),Di+1(fi+1(v)))) 可以用作 P(fi(v) \in Fi|fi+1(v) \in Fi+1) 的估计,其中 i = 1, ..., n-1,Di+1 是一个能够从 fi+1(v) 恢复 fi(v) 的解码器,对于所有的 v \in V。替换后,我们得到了正式的公式:

与等式4相比,等式5的重新表述使我们能够在不直接从受限的潜在空间重构输入的情况下,近似 P(v \in V),这需要在一轮中恢复大量累积的信息损失。相反,它可以通过一系列的解码器 Di 来完成,这些解码器专注于恢复每个单独编码层后丢失的信息,这只是总信息损失的一个较小的划分部分,因此相对容易恢复。由于解码器的重构能力与其作为定义的条件概率的估计器的性能密切相关,因此当潜在空间过度受限时,等式5允许在实践中更好地估计输入的确定性。

图2. 当对潜在代码施加的限制力量增加时,SID转换的示意图。在训练过程中,潜在代码从潜在空间(红点圆)的任何偏差都会受到严重的惩罚。通过足够地收紧这个空间,原则上它将主要被用来满足联合学习的重构任务。因此,检测SID的异常值大致等于识别出这个潜在空间外的特征。
4方法
在建立了框架之后,我们必须指定 Dist(·, ·)、F(·) 和正则化器的形式。在这里,我们按顺序给出了我们简单但有效的设计。
通过最小化像L2距离这样的重构差异,我们可以训练等式5中的解码器(假设重构误差遵循高斯分布)。然而,这样的范数相关距离度量在测试时作为 Dist(·, ·) 使用并不合适。显然,具有较小L2范数的特征倾向于具有较小的L2重构损失。为了为支持这种直觉设定理论基础,我们讨论并证明了输入的L2重构误差的上界是确定的,并且与其L2范数近似成正比。
由于我们的自编码器的输入是一维的AV特征,因此自然会选择全连接(FC)网络作为编码器和解码器的架构。值得注意的是,卷积层、快捷连接和平均池化在本质上都是线性映射,因此它们的额外使用不会影响接下来的讨论。对于一个具有L层的全连接自编码器,我们将第l层全连接层的权重矩阵表示为 W_l \in R^{n_l \times n_{l-1}},偏置项表示为 b_l \in R^{n_l},激活函数表示为 \sigma(·),输入表示为 x \in R^H。然后,第l层的预激活输出可以递归地写成:

尽管在深度学习的背景下,激活函数在全空间中总是非线性的,但在某个多面体中,它们可以被近似地视为线性的。例如,给定一个在 R^1 中的输入,如果只考虑 [0, +∞) 或 (−∞, 0) 的区域,relu 是线性的。Sigmoid 可以在 (−∞, −α),[−α, α) 或 [α, +∞) 的区域中被近似为线性,其中 α > 0。为了简单起见,在接下来的讨论中,我们将 relu 视为应用的激活函数 σ(·)。类似于[10],我们的全连接自编码器可以被表示为一个分段仿射函数。

其中,对于 l = 1, ..., L - 1,Λ_l(x) \in R^{n_l \times n_l} 是定义为以下形式的对角矩阵:

其中,Γ \in R^{H \times H} 和 B \in R^H 是定义为以下形式的矩阵:

我们还可以让

Γ和B的所有可能变体的总数是 2 \prod_{i=1}^{L-1} n_i,Γ和B的具体形式由输入x所在的RH中定义为 \prod_{i=1}^{L-1} n_i 个半空间交集的多面体确定。因此,给定一个输入,其L2重构误差的上界是确定的,并且与其范数近似成正比。这个结果明确支持了我们的主张,即范数较小的特征倾向于具有较小的L1或L2重构损失。例如,给定一个范数接近零的特征,其重构误差大约是 |B|。而对于范数趋近于无穷的特征,其重构误差倾向于比 |B| 大得多。
不幸的是,神经网络倾向于在模型不熟悉的输入上产生较小的神经激活,即OoD。因此,应用L1或L2距离来评估重构精度的Eq.5中的正常性度量可以为OoD产生相对较大的值(见sec.5.3)。这与我们的期望相反。因此,我们提出将归一化的L2距离(NL2)作为Dist(·, ·)的具体形式来计算残差。

其中,\tilde{f} 代表 f 的重构。应该注意的是,\tilde{f} 是用 |f| 而不是它自身的范数进行归一化的。使用NL2距离,重构是在 f 在单位超球面上的投影和其等比例缩放的重构之间进行评估的。因此,特征范数的负面影响被消除。
F(·) 将重构误差转化为条件概率,可以从前面的讨论中测量为内点重构误差的归属度。在这里,我们将这种归属度解释为,对于给定的特征,其重构误差小于ID图像的特征的概率,这自然是ID特征的重构误差的互补累积密度函数(CCDF)。假设ID数据的重构误差服从高斯分布,我们有:

其中,Ψ(·)是高斯分布的互补累积密度函数(CCDF),μ 和 σ 是从验证数据中得到的高斯参数。由于当一个值接近0时,微小的减少会导致其数值大小的显著变化,而我们在等式5中的正常性度量是等式7中多个项的乘积,这些项的范围在0到1之间,随着编码器层数的增加,最终的估计甚至对于训练数据也可以迅速塌陷到零。为了避免这种情况,我们在等式7中引入了加法项 KaTeX parse error: Unexpected character: '' at position 1: ̲,以防止它在ID验证数据的特征上产生小于0.1的值。
为了准确估计 P(E(v) \in SID),即等式5中的 P(fn(v) \in Fn),将ID AVs编码到紧密覆盖SID的可描述的紧凑空间是必要的。由于分类器 M(·) 被优化为将ID图像转换为AV特征,这些特征能够通过线性变换(最后的FC层)和softmax函数转换为接近其对应的one-hot标签的概率向量,隐含地在相同的分类损失下进行了 v \rightarrow Wv \rightarrow SoftMax(Wv) 的编码过程,对于任何 v \in V,都存在 δ \rightarrow 0 满足:

其中,y \in Y := \{1, ..., c\} 表示将成员资格分配给 c 个ID类之一的真实值,S 表示softmax函数。Q是在概率的归一化空间中定义的,如果 δ 足够小,Q 内的每个点都可能对应于ID数据的预测后验概率。近似地,对于 \forall p \in Q,存在 v \in V 满足 E(v) = S(Wv) = p,即对于 \forall p \in Q,p \in SID。此外,由于 SID \subset Q 来自等式8,我们强调,只要 δ 足够小,Q 就是这样一个易处理的紧凑空间,紧密覆盖了 SID。

从根本上讲,为了尽可能地保证 δ 很小,我们建议不要在训练 M(·) 的过程中引入像权重衰减这样的额外损失项,以免分散其生成能够完全最小化分类损失的ID AVs,即 δ。因此,我们提出的编码器只包括一个全连接层和随后的softmax,正则化项就是应用于 M(·) 训练的同样的分类损失(这里,我们假设了交叉熵)。
由于 SID \approx Q 对于一个小的 δ,通过估计 S(Wv)y 大于ID数据的概率,可以对 P(S(Wv) \in SID) 进行建模,其中 y 索引最大值。因此,类似于等式7,我们将 P(S(Wv) \in SID) 表示为参数化高斯的CDF Φ(S(Wv)y),其中参数为 (µ_0, σ_0)。在使用了我们提出的两层编码器,并将等式6和7代入等式5后,我们得到了最终的正常性度量:

考虑到在校准概率空间中的softmax得分可以更好地区分OoD和ID,我们在等式9中应用温度缩放的logits Wv_T 和概率 S(Wv_T)。由于 Wv \rightarrow Wv_T 是一一映射,恢复其中丢失的信息的项被忽略。通过从总结在Alg.1中的训练流程中获取 W,D1,D2 和分布的参数,我们可以为每个测试图像计算等式9的正常性得分,并依赖于可以在没有OoD数据的情况下设置的阈值来确定数据的异常性(参见sec.5.3)。如果输入被识别为ID,那么建议从分类器中输出预测作为其在已知类别中的标签分配。整个框架在图3中绘制。

