跳转到主要内容

Lighning-UQ-Box:深度学习中不确定性量化的工具箱

项目描述

Lightning-UQ-Box logo

docs style tests codecov

lightning-uq-box

lightning-uq-box 是一个 PyTorch 库,提供了一系列用于现代神经网络架构的不确定性量化(UQ)技术。

我们希望为协作开源努力提供一个起点,使从业者更容易将UQ纳入他们的工作流程,并消除可能的学习障碍。此外,我们希望这可以成为比较UQ框架中方法的途径,并可能促进神经网络新UQ方法的开发。

该项目目前正在积极开发中,但我们仍然希望尽早得到反馈、功能请求或贡献。请查看贡献指南获取更多信息。

此库的目标有三点

  1. 提供适用于现代深度神经网络的多种不确定性量化方法的实现,这些方法与各种神经网络架构兼容,并有不同的理论基础
  2. 简化在给定数据集上比较UQ方法的过程
  3. 关注实验的可重复性,使用最少模板代码和标准评估协议

为此,每种UQ方法本质上都是一个Lightning模块,它可以与Lightning数据模块训练器一起使用,以执行您所需任务的训练、评估和推理。该库还利用Lightning命令行界面(CLI)来提高实验的可重复性和大规模实验的设置。

安装

$ pip install lightning-uq-box

UQ方法

在下表中,您可以查看Lightning-UQ-Box通过以下指标支持哪些UQ方法/任务组合

  • ✅ 支持的
  • ❌ 不适合此任务
  • ⏳ 进行中

当然,实现的方法并不是详尽的,因为新方法的数量持续增加。有关我们正在跟踪或计划支持的方法概述,请参阅此问题

UQ方法的分类

以下章节旨在通过某些共同点对不同的UQ方法进行概述。我们同意可能还有其他分组,并欢迎建议以改进此概述。我们还在API文档中遵循此分组,以便更容易导航。

单前向传递方法

不确定性量化方法(UQ方法) 回归 分类 分割 像素级回归
分位数回归(QR)
深度证据(DE)
均值方差估计(MVE)

近似贝叶斯方法

不确定性量化方法(UQ方法) 回归 分类 分割 像素级回归
贝叶斯神经网络VI ELBO(BNN_VI_ELBO)
贝叶斯神经网络VI(BNN_VI)
深度核学习(DKL)
确定性不确定性估计(DUE)
拉普拉斯近似(Laplace)
蒙特卡洛Dropout(MC-Dropout)
随机梯度Langevin动力学(SGLD)
谱归一化高斯过程(SNGP)
随机权重平均高斯(SWAG)
深度集成

生成模型

不确定性量化方法(UQ方法) 回归 分类 分割 像素级回归
分类与回归扩散(CARD)
概率UNet
分层概率UNet

事后方法

不确定性量化方法(UQ方法) 回归 分类 分割 像素级回归
测试时间增强(TTA)
温度缩放
符合性分位数回归(Conformal QR)
正则化自适应预测集(RAPS)

教程

我们尝试提供许多不同的教程,以便用户可以更好地理解实现的方法,并了解它们如何应用于不同的问题。前往教程页面开始。如果您在教程页面顶部导航到火箭图标,也可以在Google Colab上启动这些教程。

文档

我们旨在提供所有包含UQ方法的详尽文档,包括一些理论背景,以及说明这些方法在玩具数据集上应用的教程。

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

lightning-uq-box-0.1.0.tar.gz (117.7 kB 查看哈希)

上传时间

构建分布

lightning_uq_box-0.1.0-py3-none-any.whl (162.2 kB 查看哈希)

上传于 Python 3

由以下机构支持