文章目录[隐藏]
目录
Detecting out-of-distribution inputs in deep neural networks using an early-layer output
前言
之前的系列专栏中,有的文章是从网络结构入手,提高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检测方法。目前作者好像还没有开源代码,此方法的实际性能还需要进一步验证。
版权声明:本文为CSDN博主「DS..」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36478718/article/details/122648730
暂无评论