介绍 Fortuna:用于不确定性量化的库 PlatoBlockchain 数据智能。 垂直搜索。 人工智能。

介绍 Fortuna:不确定性量化库

正确估计预测不确定性是涉及关键决策的应用程序的基础。 不确定性可用于评估模型预测的可靠性、触发人为干预或决定模型是否可以在野外安全部署。

介绍 财神,一个用于不确定性量化的开源库。 Fortuna 提供校准方法,例如共形预测,可以应用于任何经过训练的神经网络以获得校准的不确定性估计。 该库还支持许多贝叶斯推理方法,这些方法可以应用于用 编写的深度神经网络 亚麻. 该库使运行基准测试变得容易,并将使从业者能够利用先进的不确定性量化技术构建强大而可靠的 AI 解决方案。

深度学习过度自信的问题

如果您曾经看过经过训练的深度神经网络分类器返回的类概率,您可能会发现一个类的概率比其他类大得多。 像这样的东西,例如:

p = [0.0001, 0.0002, …, 0.9991, 0.0003, …, 0.0001]

如果大多数预测都是这种情况,则您的模型可能过于自信。 为了评估分类器返回的概率的有效性,我们可以将它们与在 holdout 数据集上实现的实际精度进行比较。 实际上,很自然地假设正确分类的数据点的比例应该大致匹配预测类别的估计概率。 这个概念被称为 校准 [郭晨等,2017].

不幸的是,许多训练有素的深度神经网络都被错误校准,这意味着预测类别的估计概率远高于正确分类的输入数据点的比例。 换句话说,分类器过于自信了。

过于自信在实践中可能会出现问题。 由于 AI 产生的过度自信的健康诊断,医生可能不会下令进行相关的额外测试。 自动驾驶汽车可能会决定不刹车,因为它自信地判断前方的物体不是人。 州长可能会决定疏散一个城镇,因为人工智能估计发生重大自然灾害的可能性太高。 在这些应用和许多其他应用中,经过校准的不确定性估计对于评估模型预测的可靠性、求助于人类决策者或决定模型是否可以安全部署至关重要。

Fortuna:不确定性量化库

有许多已发表的技术可以估计或校准预测的不确定性,例如贝叶斯推理 [威尔逊股份公司,2020 年], 温标 [郭晨等,2017]和共形预测 [Angelopoulos AN 等人,2022 年] 方法。 然而,现有的不确定性量化工具和库的范围很窄,无法在一个地方提供广泛的技术。 这导致了巨大的开销,阻碍了在生产系统中采用不确定性。

为了填补这一空白,我们推出了 Fortuna,这是一个用于不确定性量化的库,它汇集了文献中的主要方法,并通过标准化和直观的界面向用户提供它们。

例如,假设您有训练、校准和测试数据加载器 tensorflow.Tensor 格式,即 train_data_loader, calib_data_loadertest_data_loader. 此外,你有一个深度学习模型,用 亚麻,即模型。 然后您可以使用 Fortuna 来:

  1. 适合后验分布;
  2. 校准模型输出;
  3. 进行校准预测;
  4. 估计不确定性估计;
  5. 计算评估指标。

以下代码为您完成所有这些工作。

from fortuna.data import DataLoader
from fortuna.prob_model.classification import ProbClassifier
from fortuna.metric.classification import expected_calibration_error

# convert data loaders
train_data_loader = DataLoader.from_tensorflow_data_loader(train_data_loader)
calib_data_loader = DataLoader.from_tensorflow_data_loader(calib_data_loader)
test_data_loader = DataLoader.from_tensorflow_data_loader(test_data_loader)

# define and train a probabilistic model
prob_model = ProbClassifier(model=model)
train_status = prob_model.train(train_data_loader=train_data_loader, calib_data_loader=calib_data_loader)

# make predictions and estimate uncertainty
test_inputs_loader = test_data_loader.to_inputs_loader()
test_means = prob_model.predictive.mean(inputs_loader=test_inputs_loader)
test_modes = prob_model.predictive.mode(inputs_loader=test_inputs_loader, means=test_means)

# compute the expected calibration error and plot a reliability diagram
test_targets = test_data_loader.to_array_targets()
ece = expected_calibration_error(preds=test_modes, probs=test_means, targets=test_targets)

上面的代码使用了几个默认选项,包括 SWAG [Maddox WJ 等人,2019] 作为后验推理方法,温度缩放 [郭晨等,2017] 校准模型输出和标准高斯先验分布,以及后验拟合和校准过程的配置。 您可以轻松配置所有这些组件,如果您正在寻找特定配置或想要比较多个配置,我们强烈建议您这样做。

使用方式

Fortuna 提供三种使用模式: 1/ 从亚麻模型开始,2 / 从模型输出开始, 和 3/ 从不确定性估计开始. 它们的管道如下图所示,每个管道都从其中一个绿色面板开始。 上面的代码片段是从 Flax 模型开始使用 Fortuna 的示例,它允许使用贝叶斯推理过程训练模型。 或者,您可以从模型输出开始或直接从您自己的不确定性估计开始。 后两种模式都是 独立于框架 并帮助您从 训练有素的模型.

1/ 从不确定性估计开始

从不确定性估计开始具有最小的兼容性要求,并且它是与库交互的最快级别。 这种使用模式为分类和回归提供了共形预测方法。 这些采取不确定性估计 numpy.ndarray 格式化并返回保留用户给定概率水平的严格预测集。 在一维回归任务中,共形集可以被认为是置信度或可信区间的校准版本。

请注意,如果您在输入中提供的不确定性估计不准确,保形集可能会很大且无法使用。 因此,如果您的应用程序允许,请考虑 从模型输出开始 和 从亚麻模型开始 使用模式详述如下。

2/ 从模型输出开始

此模式假设您已经在某个框架中训练了一个模型,并且到达 Fortuna 时模型输出为 numpy.ndarray 每个输入数据点的格式。 这种使用模式允许您校准模型输出、估计不确定性、计算指标和获取共形集。

相比 从不确定性估计开始 使用模式, 从模型输出开始 提供更好的控制,因为它可以确保不确定性估计得到适当校准。 然而,如果模型是用经典方法训练的,那么模型(又名认知)不确定性的量化结果可能很差。 为了缓解这个问题,请考虑 从亚麻模型开始 使用模式。

3/ 从亚麻模型开始

从 Flax 开始的模型对兼容性的要求比 从不确定性估计开始从模型输出开始 使用模式,因为它需要编写的深度学习模型 亚麻. 但是,它使您能够用可扩展的贝叶斯推理程序代替标准模型训练,这可能会显着改善预测不确定性的量化。

贝叶斯方法的工作原理是通过模型参数的不确定性来表示在给定有限信息的情况下哪个解决方案是正确的不确定性。 这种类型的不确定性称为“认知”不确定性。 由于神经网络可以表示许多不同的解决方案,对应于其参数的不同设置,贝叶斯方法在深度学习中的影响尤其大。 我们提供了许多可扩展的贝叶斯推理程序,这些程序通常可用于提供不确定性估计,以及改进的准确性和校准,基本上没有训练时间开销。

结论

我们宣布了 Fortuna 的普遍可用性,这是一个用于深度学习不确定性量化的库。 Fortuna 汇集了文献中的主要方法,例如共形方法、温度标度和贝叶斯推理,并通过标准化和直观的界面将它们提供给用户。 要开始使用 Fortuna,您可以查阅以下资源:

试试 Fortuna,让我们知道您的想法! 我们鼓励您为图书馆做出贡献或留下您的建议和贡献——只需创建一个 问题 或打开一个 拉请求. 在我们这边,我们将继续改进 Fortuna,增加其对不确定性量化方法的覆盖范围,并添加更多示例来展示其在多种场景中的实用性。


关于作者

介绍 Fortuna:用于不确定性量化的库 PlatoBlockchain 数据智能。 垂直搜索。 人工智能。

 

詹卢卡·德托马索 是 AWS 的应用科学家。 他目前致力于深度学习中的不确定性量化。 在业余时间,Gianluca 喜欢运动、吃美食和学习新技能。

介绍 Fortuna:用于不确定性量化的库 PlatoBlockchain 数据智能。 垂直搜索。 人工智能。阿尔贝托·加斯帕林 自 2021 年 XNUMX 月起成为亚马逊社区购物的应用科学家。他的兴趣包括自然语言处理、信息检索和不确定性量化。 他是美食和美酒爱好者。

介绍 Fortuna:用于不确定性量化的库 PlatoBlockchain 数据智能。 垂直搜索。 人工智能。米歇尔·多尼尼 是 AWS 的高级应用科学家。 他领导着一个致力于负责任人工智能的科学家团队,他的研究兴趣是算法公平性和可解释的机器学习。

介绍 Fortuna:用于不确定性量化的库 PlatoBlockchain 数据智能。 垂直搜索。 人工智能。马蒂亚斯·西格 是 AWS 的首席应用科学家。

介绍 Fortuna:用于不确定性量化的库 PlatoBlockchain 数据智能。 垂直搜索。 人工智能。塞德里克·阿尔尚博 是 AWS 的首席应用科学家,也是欧洲学习和智能系统实验室的研究员。

介绍 Fortuna:用于不确定性量化的库 PlatoBlockchain 数据智能。 垂直搜索。 人工智能。安德鲁·戈登·威尔逊 是纽约大学 Courant 数学科学研究所和数据科学中心的副教授,也是 AWS 的亚马逊访问学者。 他特别致力于贝叶斯和概率深度学习、可扩展高斯过程、贝叶斯优化和受物理学启发的机器学习的构建方法。

时间戳记:

更多来自 AWS机器学习