分布外(OOD)检测是机器学习的一个子领域,其关注点在于识别那些与模型训练数据不属于同一统计分布的输入。在部署系统中,模型经常会遇到新颖的、异常的或来自不同领域的输入,而未能识别这些输入可能导致错误的预测,并带来潜在的严重后果。OOD检测旨在标记此类输入,以便系统能够做出适当的响应,例如拒绝预测、上报给人工处理或触发备用机制。
该问题与异常检测或新颖性检测等相关任务有所不同,尽管这些术语有时会被交替使用。OOD检测通常假设存在一个已知的训练分布,并侧重于分布支持范围之外的输入,而异常检测则可能同时考虑分布内的稀有事件。在现代深度学习中,OOD检测已成为在安全关键领域(如自动驾驶、医学诊断和金融欺诈检测)部署神经网络的关键组成部分。
方法与途径
早期的OOD检测方法依赖于分类网络的softmax置信度分数,观察到模型对OOD输入往往赋予较低的置信度。然而,神经网络常常过度自信,这种方法被证明并不可靠。后续研究引入了更稳健的技术,包括温度缩放,它通过调整softmax分布来更好地区分分布内样本和OOD样本。其中一种名为ODIN(用于神经网络的分布外检测器)的方法将温度缩放与输入预处理相结合,以放大这种差异。
另一类方法使用特征空间中的距离度量。例如,深度最近邻(DNN)方法计算测试输入的特征表示与训练类别中心之间的距离,并将远离所有类别中心的输入标记为OOD。基于马氏距离的方法则将特征分布建模为多元高斯分布,并使用马氏距离作为评分,在基准数据集上表现出较强的性能。
生成模型也被用于OOD检测。使用生成式AI的方法,如变分自编码器(VAE)和生成对抗网络(GAN),试图显式建模训练分布,并衡量测试输入在该分布下的似然度。然而,基于似然的方法有时会赋予OOD输入更高的似然度,这一反直觉的现象促使了进一步研究,以探究深度生成模型为何会出现这种行为。
评估与基准
OOD检测的标准基准通常使用CIFAR-10、CIFAR-100和ImageNet等数据集作为分布内数据,而OOD集合则来自SVHN、Tiny ImageNet或LSUN等其他数据集。常用的评估指标包括接收者操作特征曲线下面积(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检测将成为构建可信赖且稳健系统的关键。
参见
- 异常检测
- 置信度校准
- 分布偏移
- 鲁棒性