C/C++教程

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

本文主要是介绍Out-of-distribution Detection系列专栏(二),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

前言

A baseline for detecting misclassified and out-of-distribution examples in neural networks

ID与OOD

OOD研究中常用的数据集以及实验构造方式

OOD实验的基本设置

Max-Softmax方法的主要思想

评价指标

AUROC与AUPR的计算方法


前言

这是OOD检测专栏的第二篇文章,也是OOD检测比较正式的开篇之作,在此篇文章中,关于OOD检测任务的描述,衡量指标以及一些实验构造方法都被详细的定义,为后续关于OOD的研究奠定了基础。

A baseline for detecting misclassified and out-of-distribution examples in neural networks

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

本篇文章是使用深度学习方法做OOD检测的开篇之作,在介绍文章之前,我们先说明一下什么是OOD,什么是ID。

ID与OOD

ID指的是in-distribution数据,也就是我们熟悉的训练数据;OOD指的是out-of-distribution,在不同的领域也可能被叫做outlier或者是anomaly data,说的是与ID分布不一致的数据。其实ID和OOD的界定比较模糊,通常我们是将语意信息相差较大的两个数据集构成ID和OOD。例如,我们在CIFAR-10上训练好了一个图像分类网络,那么对于这个网络来讲,CIFAR-10数据集的图像就是ID数据,而MNIST,或者是SVHN,以及LSUN等数据集就可以看做是OOD。通常一个比较难以回答的问题就是,在CIFAR-100上训练好的网络,那么CIFAR-10对于网络来说是OOD吗?因为二者相似性很高。在我看来,我们构造验证试验的时候,还是需要尽量选取语义信息具有差异性的两个数据集构成ID与OOD。

OOD研究中常用的数据集以及实验构造方式

在OOD研究中,常用的数据集主要是一些小规模数据,超大规模数据集目前还没有在研究中大范围的看到,这里介绍一下经常使用的几个并说明实验的构造方法。

MNIST,Fashion- MNIST,Omniglot:这是三个单通道的灰度数据集。MNIST与Fashion-MNIST大家都比较熟悉,一个是手写数字,一个是服装图像。Omniglot是一个在小样本学习中经常使用的数据集,它里面包含了1623个类别,每个类别仅有20个样本。在OOD检测中,通常是使用MNIST作为ID数据,将Fashion-MNIST与Omniglot的混合作为OOD数据;或者是将Fashion- MNIST作为ID数据,将MNIST与Omniglot的混合作为OOD数据。由于Omniglot并不适合训练常规的分类网络,因此通常不作为ID数据。

CIFAR-10,CIFAR-100,TinyImageNet,LSUN,SVHN:这是5个RGB三通道的彩色数据集。CIFAR-10与CIFAR-100大家应该都比较熟悉,在分类网络的评测中经常看到它们。TinyImageNet是类似于ImageNet数据集的一个规模较小的数据集,它里面包含有200个种类的数据。LSUN是一个大规模的场景识别数据集,包含厨房、客厅、卧室等等之类的图像。SVHN是街景数字识别,主要是一些门牌号上的数字。这些数据集的下载链接都比较容易找到,我把它们列在文章的最后。在OOD实验设计中,通常是有以下几种设计方法,当然这些组合方案并不绝对,只是为了方便与大家常用的组合进行比较:

  • CIFAR-10作为ID数据,SVHN、LSUN、TinyImageNet作为OOD数据
  • CIFAR-100作为ID数据,SVHN、LSUN、TinyImageNet作为OOD数据
  • SVHN作为ID数据,LSUN、CIFAR-10、TinyImageNet作为OOD数据

因为需要在ID数据上训练分类网络,因此,在设计实验时,通常会选择不太复杂的数据集作为ID,而将其他数据作为OOD数据。

OOD实验的基本设置

在OOD检测中,我们通常约定不可以使用任何形式的OOD数据,我们能接触到的只有ID数据,这也是符合OOD研究的目的的。在实际使用中,网络不可能会见到所有的OOD图像,因此,如果在网络接触到的OOD数据上评测它的拒识能力是没有意义的。在一些方法中,作者使用了OOD数据来finetune网络,这样得到的指标结果是偏高的,并且说服力不强。

Max-Softmax方法的主要思想

在后续的专栏中,我们使用Max-Softmax来指代本文章中提出的方法。在实验中,作者发现了虽然卷积神经网络会赋予OOD样本很高的置信度,但是从统计规律来看,ID数据的置信度是要高于OOD样本的置信度的。这里的置信度指的是Softmax激活函数输出的所有类别的置信度的最大值。用这个最大的置信度来判断样本是ID还是OOD就是所谓的Max-Softmax方法。因此,这篇文章是直接使用传统的卷积神经网络来检测OOD样本的,检测的依据是网络输出的置信度的最大值。

评价指标

如何评价方法检测OOD的能力需要统一的标准。在本文中,作者巧妙的规避了显式的设定置信度阈值的评价方法,而是采用了两个阈值无关的评价准则,AUROC与AUPR。值得说明的一点是,虽然这两个评价指标不需要定义阈值,但是在实际应用中,需要在ROC曲线或者PR曲线上选择合适的点,也就是合适的置信度阈值来进行OOD判断。

那么如何计算AUROC与AUPR呢?OOD检测本质上是一个二分类问题,对于测试样本,我们是知道它们的真实标签的,也就是0-1标签,表示是ID样本还是OOD样本。同样的,我们的模型利用Softmax输出的最大置信度作为当前样本是ID数据的概率。利用这两组数值,我们就可以计算AUPR与AUROC。在计算AUPR的时候,作者将ID看作正样本计算AUPRin,将OOD样本看作正样本计算AUPRout,这两个指标分别反映了网络检测ID的能力与检测OOD的能力。AUPR以及AUROC这两个指标都是越大越好。

AUROC与AUPR的计算方法

To Do

这篇关于Out-of-distribution Detection系列专栏(二)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!