Out-of-distribution Detection系列专栏(十)

目录

前言

Detecting out-of-distribution inputs in deep neural networks using an early-layer output

Motivation

Methodology

Experiments


前言

之前的系列专栏中,有的文章是从网络结构入手,提高OOD检测的能力;也有的文章是从距离度量方法入手,用生成式模型来提高OOD检测的效果。本次专栏我们要介绍的方法从特征入手,筛选出最适合做OOD检测的特征,从而提升检测能力。

Detecting out-of-distribution inputs in deep neural networks using an early-layer output

论文链接:https://arxiv.org/pdf/1910.10307.pdf

Motivation

作者认为,之前的OOD检测方法都是基于分类网络的最后一层特征改进的,然而这一层特征相对于OOD检测来讲,更适合做ID数据的分类,因此,作者期望找到一个最适合做OOD检测的卷积层特征,并在此基础上,使用One-Class SVM训练了一个单类别分类器(只使用正样本,也就是ID数据)。

在上图中,作者给出了不同卷积层特征的可视化结果,用了UMAP降维方法。这里需要说明的一点是,无论是UMAP还是tSNE等等,这些降维方法得到的特征二维分布并不能代表在高维空间中,特征的真实分布情况,因此仅能辅助理解,并不能用于证明或作为实验有效的依据。图片中,可以看到在不同的卷积层中,OOD特征和ID特征的分布状态是不一样的,显然有一些层的特征更容易区分OOD和ID数据(c和d),而另外一些层上,这两类特征则被混淆在一起了(a和b)。 

Methodology

用OODL(optimal OOD discernment layer)表示最佳判别层,可以有效的区分ID数据特征和OOD数据特征。作者使用的分类方法是One-Class SVM,也就是单类别支撑向量机。为了找到最适合做ID和OOD数据分类的特征层,作者直接遍历所有的卷积层,然后在验证集上计算OSVM的分类性能,性能最佳的层用来做OOD数据检测。这个方法非常直白,但是效果还是比较不错的。

 上面的流程图展示了搜索OODL的遍历方法。另外,为了进一步增加上述方法的性能,还可以使用ODIN中提出的Input Preprocessing方法。

Experiments

首先,作者使用不同的卷积层特征训练OSVM,并统计其对应的ID数据和OOD数据的分类性能。从下图中汇总的结果来看,不同层特征对于ID和OOD数据分类的性能确实有着较大的差异,这也验证了文章的动机是可行的。

实验部分的设计都是比较基础的设置,定义一系列ID数据和OOD数据,评测AUROC,AUPRin以及AUPRout等指标结果。 

从实验结果来看,OSVM超过了Max-softmax以及ODIN和MD等方法。这里需要说明的一点是,MD方法使用了OOD数据,因此其性能往往是非常好的,常被用作潜在的upper bound,并不适合与传统的OOD检测方法相对比。但是在这里的实验中,OSVM显著超过了MD方法的性能,这一点可能需要大家实际复现实验,再次确认。

 上图是在不同模型和不同数据集上,OSVM+OODL的性能表现,也基本都大大超越了之前设计的OOD检测方法。目前作者好像还没有开源代码,此方法的实际性能还需要进一步验证。

### 回答1: Out-of-distribution是指在模型训练时未曾出现过的数据分布,也称为“未知数据”。在模型面对未知数据时,其预测结果可能会出现误差或不确定性。因此,对于模型的鲁棒性和泛化能力的提升,需要对out-of-distribution数据进行有效的识别和处理。 ### 回答2: out-of-distribution(OoD)是指模型在测试阶段遇到了其训练数据集之外的样本或类别。当模型只使用特定的数据集进行训练时,它可能无法处理那些与训练数据不同的输入。这些新的样本可能是在颜色、形状、大小等方面与训练数据有所不同,也可能属于未在训练数据中出现过的类别。 遇到OoD样本的问题是模型的泛化能力不足。模型在训练数据中表示和学习的特征可能过于特定,无法推广到训练数据集之外的样本。这可能导致模型的预测不准确或不可靠。 为了解决OoD问题,有几种方法可以采取。一种常见的方法是收集更多来自OoD分布的样本,并将其添加到训练数据中,以使模型能够更好地学习如何处理这些新样本。另一种方法是使用一些先验知识或规则,对OoD样本进行检测和筛选,以避免对其进行错误预测。 同时,一些研究者提出了一些用于检测OoD样本的新颖性评估方法。这些方法通过利用模型在训练样本和OoD样本上的输出差异来判断一个样本是否属于OoD类别。这种方法可以帮助我们识别OoD样本,并采取相应的措施,以提高模型的泛化性能。 综上所述,解决out-of-distribution问题是训练一个具有较强泛化能力的模型的重要步骤。只有当模型能够有效处理新的样本和未见过的类别时,才能提高模型的可靠性和适用性。 ### 回答3: "out-of-distribution"是指数据集中没有包含的数据样本或样本类别。在机器学习深度学习中,数据集通常用于训练和测试模型的性能。然而,在现实世界中,我们会遇到无法准确分类的新数据,这些数据就属于"out-of-distribution"。这可能是因为这些数据具有与训练数据不同的特征,或者因为数据集的覆盖范围有限。 "out-of-distribution"的出现可能会对模型的性能和鲁棒性产生负面影响。由于模型没有前面没有见过这些类型的数据,它可能会对其进行错误的分类或给出不确定的预测结果。这种情况在实际应用中特别重要,因为我们希望模型能够在各种不同的情况下表现得可靠和准确。 为了解决"out-of-distribution"问题,一种常见的方法是通过收集更多具有代表性的训练数据来增加数据集的覆盖范围。这样模型可以更好地学习不同类型的数据特征,并提高对"out-of-distribution"数据的泛化能力。另外,使用先进的模型架构和优化算法也可以增强模型的鲁棒性。 除了增加训练数据和改进模型架构外,还可以使用一些检测方法来识别"out-of-distribution"的样本。这些方法可以根据模型的置信度、预测熵或数据分布等特征来判断样本是否属于训练集之外的数据。这些方法可以帮助我们发现并处理那些可能造成模型失效的"out-of-distribution"数据。 总之,"out-of-distribution"是指在训练数据之外的数据样本或样本类别。对于机器学习深度学习任务,了解和解决"out-of-distribution"问题是提高模型性能和鲁棒性的关键。通过增加训练数据、改进模型架构和使用检测方法,我们可以减少"out-of-distribution"带来的负面影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值