综述:广义的分布外检测(异常检测、开集识别、OOD检测)

如题所述

1. 分布外检测(Out-Of-Distribution,OOD)对于确保机器学习系统的可靠性和安全性至关重要。例如,在自动驾驶中,当遇到从未见过的非常规情形或物体时,系统应发出警告并将控制权交给人类。自2017年以来,这个问题越来越受到研究者的关注,各种解决方案层出不穷,主要包括基于分类、基于密度、基于重构和基于距离的方法。
2. 异常检测(Anomaly Detection,AD)、新类检测(Novelty Detection)、开集识别(Open Set Recognition,OSR)和离群检测(Outlier Detection,OD)在动机和方法上与分布外检测紧密相关,但它们各自定义和问题设定不同,经常使读者和实践者感到困惑。实际上,这五个问题(AD、ND、OSR、OOD、OD)可以统一在广义的分布外检测框架下,都可以视作分布外检测的特例或子任务,并且能够轻易地被区分。
3. 异常检测目的在于在测试阶段检测异常的样本,“异常”指的是偏离预定义的“正常”。这种偏离可能是协变量漂移或是语义漂移导致的。异常检测可以分为两个子任务:与异常检测的区别在于动机上,新类检测中并不像异常检测把没见过的“新”样本看做错误的或是有害的,而是将珍视这些新样本为后续模型的学习资源;新类检测首要关注的是语义漂移;新类检测中,没有限制ID样本属于单个类,在训练集中可以有多个类别的样本。
4. 新类检测目的在于检测出不属于任何训练类别的测试样本。检测到的新奇样本通常预备用于未来程序的构建,比如特异性更强的分析、当前模型的增量学习等。依据训练类别数量的差异,新类检测分为:OSR需要一个多类别分类器来同时1)精确地分类 训练类别的 测试样本(ID);2)识别出测试样本中 不属于训练类别 的样本(OOD)。OSR = multi-class ND。
5. 分布外检测目的在于检测测试样本,当某个样本显著区别于其他的样本时,认为它是“离群”的。在异常检测、新类检测、开集识别、分布外检测的问题设定中,都存在这训练-测试的流程,要挑出测试中出现的不属于训练分布的样本。而离群检测无“训练分布”、“测试分布”,而是直接挑出所有可见样本中显著区别于其他的那些样本。
6. 给定同构的ID数据,最直接的方法是1)基于密度的方法,这些方法估计ID的密度,拒绝那些偏离估计的OOD的测试样本。其他的方法包括:2)依靠图片重构的质量来识别异常样本,3)直接学习一个决策边界来区分ID和OOD样本,4)基于距离的方法,5)基于元学习的方法。
7. 基于密度的方法尝试去建模正常数据(ID数据)的分布,这种做法基于一个实践假设:异常的测试样本在估计的密度模型下游较低的概率值,而正常样本概率值较高。参数密度估计假设ID样本的密度能够被表示为某种定义好的分布。一种方法是在训练数据上拟合一个多变量高斯分布,并且度量测试样本与训练样本的期望之间的马氏距离(协方差距离,计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系)。其他的工作采用了更复杂的假设,认为训练分布是混合的高斯分布或是泊松分布等。
8. 非参数密度估计考虑了更贴合实际的情形:预定义的分布不能够建模真实分布。可以简单地用直方图对训练分布进行建模。核密度估计(KDE)进一步使用核函数作为离散直方图的连续替代版,它可以灵活地使用点权重和带宽去控制估计的分布。
9. 虽然经典的密度估计方法在很多任务上获得了很好的AD性能,但它们更适合低维任务。对于计算机视觉任务中的高维数据,这些方法的计算性和可伸缩性受到影响。为缓解维数灾难,有些方法通过特征工程降维。
10. 通过由潜在嵌入重建出输入,自编码器能学到无标签数据的高效表达。变分自编码器将输入的图片编码为服从高斯分布的潜在向量。习得的潜在嵌入可被视为输入的低维表示。传统密度估计方法可以应用在这些深度表示之上。
11. 生成对抗网络由一个生成网络和一个判别网络构成,两者在零和博弈中相互竞争。典型地,生成网络学习从潜在空间到所研究数据分布的映射,而判别网络试图分辨生成器生成的数据和真实数据。然而,不同于基于自编码器/变分自编码器的范式,少了一个编码器使得GAN难以直接为一张输入图片找到相应的嵌入。针对这个问题,ADGAN对一个给定的样本,在潜在空间搜索一个好的表示。如果找不到这样的表示,这个样本被认为是异常的。该方法计算代价极高。
12. 规范化的流描述了一个概率分布经过一系列可逆映射的转化过程。通过重复施加变量变化的规则,初始的密度“流”过了一系列可逆映射。因此,使用规范化的流的方法能够直接估计输入空间的可能性。基于流的方法有优雅的数学表示,但是它们同样仅对低维特征敏感。若不进行降维,基于流的方法计算代价高。
13. 除通过生成式模型获取可视化嵌入外,一些方法主要通过扩充模型容量来增加提取到的特征的表示能力,这或许可以让正常(ID)能被更精确地特征化为密度估计。这些策略包括数据增强,对抗训练,蒸馏,损失函数增强,使用浅表/局部特征。
14. 基于能量的方法使用一个标量能量评分来表述变量概率密度,这个标量采用非标准化的负对数概率,然而,和标准的深度学习模型相比,训练基于能量的方法代价昂贵,因为马尔可夫链蒙特卡洛法(MCMC,在概率空间,通过随机采样估算兴趣参数的后验分布)采样和估计需要积分运算。
15. 为解决这个难题,研究者提出了评分匹配方法和随机梯度之类的方法来支持高效训练。
16. 现有工作也探索了使用频域分析方法做异常检测。人类通过图片的低频信息来理解图片,而CNN更多依赖高频信息来做决策。人们提出了CNN核平滑和谱引导的数据增强之类的方法去抑制高频分量的影响。还有一些工作发现,对低频分量的对抗攻击也很难被检测到,因此提出基于频率的方法专注于感官异常检测(尤其是检测对抗样本),或许不适用于语义异常检测。
17. 基于重构的方法的核心在于在ID数据上训练得到的编解码器(encoder-decoder)框架通常对ID和OOD样本返回不同的效果。模型表现的差异可以被用作异常检测的指标。模型表现的差异可以用特征空间的差异或是重构误差来度量。
18. 系数重构假定每个正常样本都能被有限个基础函数精确重构,而异常数据的重构开销则更大,因此生成了稠密表示。稀疏表示的典型技巧包括基于L1正则的核PCA和低阶嵌入网络。
19. 重构误差方法依赖于以下假设:在正常数据上训练得到的重构模型在输入为正常测试样本时会输出更高质量的结果。深度重构模型(包括自编码器AE、变分自编码器VAE、生成对抗网络GAN和U-Net等)都能够被用作这类方法的backbone。
20. 除去这种结合AE/VAE和重构误差这种标准做法,其他方法使用了更加精细的策略,比如通过memorized normality重构,调整模型架构、部分/有条件的重构。
21. 在半监督设定下的异常检测中,CoRA分别在ID样本和OOD样本上训练,得到两个自编码器。这两个自编码器的重构误差被用作异常检测的指标。
22. GAN中的判别器本质上是通过计算重构误差实现异常检测。更进一步,GAN的变种,比如去噪声的GAN和类别-条件GAN通过增加重构难度获得了更好的性能。有些方法利用重构图片在下游任务中的表现来进一步放大异常样本的重构误差。集成也能够优化模型性能。
23. 异常检测、单类别的新类检测通常被形式化为无监督学习问题,将所有的ID样本看做一类。
24. 开集识别和多类新类检测都关注ID样本包含多个类别的情形。分类问题中,一般采用独热编码来编码类别信息。然而,独热编码忽略了类别间的内在联系。举例来说,“狗”-“猫”,“狗”-“车”之间有相同的距离显然不合情理。有些工作考虑这一点,尝试利用新类的标签空间上的信息来解决这个新类检测问题。重分配大的语义空间,形成已知类别的层次化分类。
25. 基于标签组织重设,自上而下的分类策略和分组softmax训练被证实有效。应一组工作使用词向量嵌入来自动地构建标签空间。
26. 测试时,标签(同所有不同头给出的嵌入向量距离最小的标签被
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜