什么是 out-of-distribution data  | 什么是ODD data_数据


在我们的生活中,测试一个机器学习的分类器是否有效,一个标准是统计或者对抗检测(statistically or adversarially detecting)测试样本与训练分布有足够的距离。

许多分类任务,如语音识别、目标检测和图片分类,已经可以使用神经网络(DNNs)进行精准分类。然而,确定预测不确定性仍然是一项困难的任务。经过良好校准的预测不确定性非常重要,因为它可以用于各种机器学习应用。

用softmax进行分类的神经网络会产生“过度自信的结果”,因为我们知道softmax有个通病,即使遇到它没见到的东西,softmax也会给这个陌生的东西计算出一个概率。Loss可以用于那些“有容忍度”的模型,比如产品建议之类的,就是你说错了也不会有太大问题。但是在机器人或医学等“零容忍度”的领域使用此类系统是有风险的,因为它们可能会导致致命事故。

由于训练数据不能覆盖生活中的方方面面,模型的泛化能力有限。一个有效的人工智能系统应该能够识别出OOD数据,标记出超出其能力范围的样本并请求人工干预Out-of-Distribution (OOD)

举个例子:在一个猫咪品种识别的任务中,不同的猫咪照片是所谓的“in-distribution”样本,而其他动物乃至于不是动物的东西,比如狗、人、房子之类的都是“out-of-distribution”。

真实平时生活中,数据分布通常是随时间变化,一直跟踪所用数据集的分布变化成本非常昂贵,所以我们要做的不是一直去维护训练数据,而是要能识别出那些超出模型能力的数据。

OOD识别对于防止人工智能系统做出不正确的预测至关重要。

常见的OOD识别方法:

  • Ensemble Learning
  • Averaging– for regression tasks, averaging the predictions of all models is simple, but for classification problems, we can average the softmax probabilities.
  • Weighted Averaging— In this methodology, different weights are allocated to models, and the final prediction is computed using a weighted average.
  • Maximum Voting– the final prediction is based on the majority of the models’ predictions.
  • Using Binary Classification model
  • 添加一个二分类校准器。需要在一个数据集上测试训练过的模型,并将回答正确的例子标记为正例,而将回答错误的例子标记为负例。然后,使用这个带注释的数据集,可以训练一个二分类模型来预测传入的样本是正类还是负类。这样可以简单地对模型进行调整,通过在校准器训练中引入OOD样本来检测OOD数据。
  • MaxProb
  • 对于分类模型,最后使用softmax进行分类,取概率最大的值。有人认为这是一种简单并有效的能检测到分布外数据的方法。但是我认为就是这个才可能导致检测不出来分布外数据。
  • Temperature scaling
  • 类似于一个柔和版的softmax,因为softmax导致模型对自己的分类结果“很自信”,Temperature scaling可以 让结果看起来没那么“自信”。