Fortuna 简介:不确定性量化库
正确估计预测不确定性对于涉及关键决策的应用至关重要。不确定性可用于评估模型预测的可靠性、触发人为干预或决定模型是否可以在野外安全部署。
我们介绍了
对深度学习过度自信的问题
如果你曾经看过经过训练的深度神经网络分类器返回的类别概率,你可能会发现一个类别的概率比其他类别大得多。例如,像这样:
p = [0.0001,0.0002,...,0.9991,0.0003,...,0.0001]
如果大多数预测都是这样,那么你的模型可能过于自信。为了评估分类器返回的概率的有效性,我们可以将其与在抵御数据集上获得的实际精度进行比较。事实上,很自然地假设正确分类的数据点的比例应与预测类别的估计概率大致相匹配。这个概念被称为 校准
不幸的是,许多经过训练的深度神经网络校准不当,这意味着预测类别的估计概率远高于正确分类的输入数据点的比例。换句话说,分类器过于自信。
在实践中,过于自信可能会有问题。由于人工智能做出的健康诊断过于自信,医生可能不会下令进行额外的相关检查。自动驾驶汽车可能会决定不刹车,因为它自信地评估出前面的物体不是人。州长可能会决定撤离城镇,因为人工智能估计发生重大自然灾害的可能性太高。在这些应用和许多其他应用中,校准后的不确定性估计值对于评估模型预测的可靠性、回归人类决策者或决定模型是否可以安全部署至关重要。
Fortuna:不确定性量化库
有许多已发布的技术可以估计或校准预测的不确定性,例如贝叶斯推断
为了填补这一空白,我们推出了Fortuna,这是一个用于不确定性量化的库,它汇集了文献中的重要方法,并通过标准化和直观的界面向用户提供这些方法。
此外,你还有一个用
例如,假设你有 Tens
orFlow.Tensor
格式的训练、校准和测试数据加载器,即 train_data_loader、calib_data_loader 和 test_data_loader。
- 拟合后验分布;
- 校准模型输出;
- 做出经过校准的预测;
- 估计不确定性估计;
- 计算评估指标。
以下代码可以为你完成所有这些操作。
上面的代码使用了多个默认选项,包括 作为后验推理方法的 S
使用模式
Fortuna 提供三种使用模式:1/ 从 Flax 模型 开始 ,2/ 从模型输出 开始 ,3/ 从 不确定性估计开始。 他们的管道如下图所示,每个管道都从其中一个绿色面板开始。上面的代码片段是使用 Fortuna 的示例,从 Flax 模型开始,它允许使用贝叶斯推理程序训练模型。或者,您可以从模型输出开始,也可以直接从自己的不确定性估计值开始。后两种模式都 与 框架无关 ,可帮助您从 训练 的模型开始获得经过校准的不确定性估计值。
1/ 从不确定性估计开始
从不确定性估算开始,兼容性要求最低,这是与库交互的最快级别。这种使用模式为分类和回归提供了共形预测方法。它们采用 n umpy.ndarray
格式的不确定性估计值,并返回严格的预测集,这些预测保留了用户给定的概率水平。在一维回归任务中,共形集可以被视为置信度或可信区间的校准版本。
请注意,如果您在输入中提供的不确定性估计值不准确,则等角集可能很大且无法使用。因此,如果您的应用程序允许,请考虑下面详细介绍的 “ 从模型输出 开始 ” 和 “ 从 Flax 模型 开始 ” 使用模式。
2/ 从模型输出开始
此模式假设你已经在某个框架中训练了一个模型,并使用每个输入数据点的 n umpy.ndarray
格式的模型输出到达 Fortuna。此使用模式允许您校准模型输出、估计不确定性、计算指标和获得等角集。
与 “ 从不确定性估计值 开始 ” 使用模式相比, 从模型输出 开始 可以 提供更好的控制,因为它可以确保对不确定性估计值进行了适当的校准。但是,如果模型是使用经典方法训练的,则模型不确定性(又名认识论)的量化结果可能很差。为了缓解此问题,请考虑 “ 从 Flax 模型 开始 ” 使用模式。
3/ 从 Flax 模型开始
从 Flax 模型开始,比 “从 不确定性估计 开始” 和 “从 模型输出 开始 ” 使用模式具有更高的兼容性要求,因为它需要用
贝叶斯方法的工作原理是通过模型参数的不确定性来表示在给定有限信息的情况下哪个解是正确的不确定性。这种不确定性被称为 “认识论” 的不确定性。由于神经网络可以表示许多不同的解,对应于其参数的不同设置,因此贝叶斯方法对深度学习的影响尤其大。我们提供了许多可扩展的贝叶斯推理程序,这些程序通常可用于提供不确定性估计,并提高准确性和校准,基本上没有训练时间开销。
结论
我们宣布Fortuna正式上市,这是一款用于深度学习中不确定性量化的库。Fortuna汇集了文献中的重要方法,例如共形方法、温度标度和贝叶斯推理,并通过标准化和直观的界面将其提供给用户。要开始使用 Fortuna,您可以查阅以下资源:
-
GitHub -
官方文档
试试 Fortuna,告诉我们你的想法!
作者简介

Gianluca Detommaso 是 亚马逊云科技 的应用科学家。他目前正在研究深度学习中的不确定性量化。在业余时间,Gianluca喜欢练习运动,吃美味的食物和学习新技能。
马蒂亚斯·西格 是 亚马逊云科技 的首席应用科学家 。
塞德里克·阿尚博 是 亚马逊云科技 的首席应用科学家,也是欧洲学习与智能系统实验室的研究员。