共形推断为在关键应用中对可信 AI 日益增长的需求,提供了一种统计上合理且实用的解决方案。在医疗和金融等高风险决策中,我们需要对不确定性有一个可靠的估计。因为当模型在这些领域犯错时,可能会产生严重的后果。
为什么共形推断如此重要
它是一个用于不确定性量化的框架。这种方法可以将任何点预测转化为统计上有效的预测区域,对于分类问题,这可能是一组类别;对于回归问题,这可能是一个区间。共形推断是一个灵活的模型,可以应用于任何黑盒预测器,而它之所以更有用,是因为它能够产生带有严格保证的预测集或区间。
> 严格保证意味着你可以信任覆盖率水平。例如,如果你设置了 80% 的置信水平,共形预测确保至少有 80% 的时间,真实标签会包含在预测集中。
关键术语
在这里我们将看到共形推断中使用的一些关键术语。
1. 非一致性分数
非一致性分数是一个数值度量,它显示了在给定模型输出的情况下,一个预测是多么“不寻常”。它将启发式的不确定性分数(例如分类中的 softmax 置信度)转化为具有统计意义的、经过严格校准的分数。我们使用非一致性分数来确定我们的预测区域。这个分数决定了我们预测区域的质量。因此,选择正确的非一致性分数非常重要。
> 启发式不确定性分数是一种近似的或基于规则的度量,用于估计模型对特定预测的不确定程度。
2. 校准
校准是调整这些启发式分数的过程,使它们能够反映真实的、统计上有效的概率。这是通过使用一个单独的数据集来实现的,该数据集称为校准集,它在训练期间未被使用。我们评估模型输出在这个集合上的表现,并确定非一致性分数的阈值。
3. 显著性水平
显著性水平限制了共形预测算法中错误的频率。例如,选择显著性水平 alpha 为 0.1 意味着我们的真实值最多有 10% 的时间可能位于我们的预测集之外。
共形预测背后的直觉
想象一下,我们有一个包含 10,000 张胸部 X 光图像的数据集。任务是将每张图像分类到一个疾病类别,例如肺炎、结核病或无异常。然而,仅仅分配一个标签是不够的。我们还希望有 90% 的把握确信正确的诊断包含在我们的预测中。为了实现这一点,我们应用共形预测。
为了实现它,我们需要:
- 一个非一致性分数函数 A(x, y),用于衡量给定输入 x 的标签 y 有多么“奇怪”或“不一致”。
- 一个显著性水平 α ∈ (0,1)。
- 一个从训练中保留的校准集 \{(xi, yi)\}{i=1}^{n{\text{cal}}}
对于我们的非一致性分数,我们使用模型的一个启发式输出,比如分配给每个类的 softmax 分数。由于我们处理的是多类分类,我们将非一致性分数定义为 1 - softmax(true class)。这个分数反映了模型对正确诊断的不确定性。
我们将数据分为三部分:
- 训练集 \mathcal{D}_{\text{train}}
: 用于训练模型
- 校准集 \mathcal{D}_{\text{cal}} : 用于确定非一致性阈值。
- 测试集 \mathcal{D}_{\text{test}} : 用于评估
多类分类中的非一致性分数
假设模型输出 softmax 概率 f(x) = [p1, p2, \ldots, p_K],真实标签 y 的非一致性分数定义为:
A(x, y) = 1 – f_y(x)
fy(x) 是分配给真实类别 y 的 softmax 概率。fy(x) 的值越低,非一致性分数就越高,这表明了更高的不确定性。
1. 校准步骤
假设我们有一个 n{\text{cal}}= 5 个样本的校准集。对于每个样本 (xi, y_i),我们使用前面提到的非一致性分数计算公式来计算非一致性分数。
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20250607124948532849/sampledataforconformalinference.webp">sampledataforconformalinference样本分数
- 对非一致性分数进行排序 – [0.05, 0.15, 0.20, 0.30, 0.40]
- 假设我们要达到 90% 的覆盖率,所以 α = 0.1。
- 计算阈值索引:
> k = \lceil (1 – \alpha)(n_{\text{cal}} + 1) \rceil = \lceil 0.9 \times 6 \rceil = 6(取 5.4 的上界)
- 我们只有 5 个分数,所以索引 6 超出了范围。
在这种情况下,我们将默认取排序后的校准集中的最大分数。这意味