OOD(Out-of-distribution)检测是机器学习的一个子领域,关注识别与模型训练数据不属于同一统计分布的输入。在部署系统中,模型经常遇到新颖、异常或来自不同领域的输入,未能识别这些输入可能导致错误的预测,并带来潜在的严重后果。OOD检测旨在标记此类输入,使系统能够做出适当的响应,例如拒绝预测、升级给人工处理或触发备用机制。
该问题与异常检测或新颖性检测等任务有所不同,尽管这些术语有时会被混用。OOD检测通常假设已知训练分布,并关注位于该分布支持范围之外的输入,而异常检测也可能考虑分布内的稀有事件。在现代深度学习中,OOD检测已成为在自动驾驶、医疗诊断和金融欺诈检测等安全关键领域部署神经网络的关键组成部分。
方法与途径
早期的OOD检测方法依赖于分类网络的softmax置信度得分,观察到模型倾向于对OOD输入赋予较低的置信度。然而,神经网络往往过度自信,这种方法被证明并不可靠。后续研究引入了更稳健的技术,包括温度缩放,它调整softmax分布以更好地区分分布内和OOD样本。名为ODIN(Out-of-Distribution detector for Neural networks)的方法将温度缩放与输入预处理相结合,以放大这种差异。
另一类方法使用特征空间中的距离度量。诸如深度最近邻(DNN)等方法计算测试输入的特征表示与训练类别中心之间的距离,标记远离所有类别中心的输入。基于马氏距离的方法将特征分布建模为多元高斯分布,并使用马氏距离作为得分,在基准数据集上表现出较强的性能。
生成模型也被用于OOD检测。使用生成式AI模型的方法,如变分自编码器(VAE)和生成对抗网络(GAN),尝试显式建模训练分布,并衡量测试输入在该模型下的似然度。然而,基于似然的方法有时会赋予OOD输入更高的似然度,这一反直觉的现象促使了进一步研究,以探究深度生成模型为何会出现这种行为。
评估与基准
OOD检测的标准基准包括使用CIFAR-10、CIFAR-100和ImageNet等数据集作为分布内数据,并从SVHN、Tiny ImageNet或LSUN等其他数据集中抽取OOD样本。常用的评估指标包括接收者操作特征曲线下面积(AUROC)、在固定真正例率下的假正例率(FPR@TPR)以及检测错误率。这些指标使研究人员能够在不同设置和阈值下比较各种方法。
近年来,基准已扩展到更具挑战性的场景,例如语义偏移(OOD输入来自新颖类别)和协变量偏移(输入分布变化但标签空间保持不变)。OpenOOD基准于2021年推出,提供了一个统一框架,用于在多个任务和数据集上评估OOD检测方法,有助于标准化比较。
挑战与局限
尽管取得了进展,OOD检测仍然是一个未解决的问题。一个主要挑战是过度自信问题:深度网络往往对远离训练分布的输入产生高置信度的预测。这在大型语言模型(LLM)中尤为突出,因为其输入空间是离散且高维的,难以定义什么构成OOD输入。对于基于Transformer的模型,OOD检测通常涉及分析token级别的概率或嵌入,但这些方法仍处于早期阶段。
另一个挑战是维度灾难。在高维空间中,距离变得不那么有意义,密度估计也变得难以处理。这影响了基于距离和基于似然的方法。此外,OOD检测方法通常对超参数的选择和具体架构很敏感,这使得在不同模型之间进行泛化变得困难。
还存在理论上的局限性:如果不对OOD分布做出假设,就无法保证完美的检测。这促使了关于稳健OOD检测的研究,这类研究通常需要对数据生成过程施加限制性假设。
应用与未来方向
OOD检测广泛应用于安全关键系统。例如,在自动驾驶中,感知系统必须识别训练中未遇到的对象或场景,如异常的道路障碍物。Waymo和Tesla Autopilot等公司投入大量资源进行稳健的OOD检测以防止事故。在医疗保健领域,OOD检测有助于标记与训练集不同的医学图像,降低误诊风险。在金融领域,它可以识别偏离正常模式的欺诈交易。
对于大型语言模型,OOD检测用于识别超出范围或对抗性的提示,帮助减轻幻觉和滥用问题。该领域的研究仍在进行中,方法利用Transformer的内部表示或生成token的不确定性。
未来的方向包括开发与模型无关的OOD检测方法,这些方法可应用于不同的架构,包括神经网络和Transformer。此外,持续学习也引起了关注,模型需要在适应新分布的同时检测OOD输入。随着AI系统日益普及,可靠的OOD检测对于构建可信赖且稳健的系统将至关重要。
参见
- 异常检测
- 置信度校准
- 分布偏移
- 鲁棒性