基于模拟的推理。
项目描述
sbi
:基于模拟的推理
sbi
是一个为基于模拟的推理而设计的Python包,旨在满足研究人员和实践者的需求。无论您需要精细控制还是易于使用的界面,sbi
都能满足您的需求。
使用sbi
,您可以使用贝叶斯推理进行参数推理:给定一个模拟现实世界过程的模拟器,SBI根据观察数据估计模拟器参数的完整后验分布。这个分布表示最可能的参数值,同时量化不确定性,并揭示参数之间的潜在相互作用。
sbi
的关键特性
sbi
结合了灵活性和易用性
- 低级接口:对于需要最大程度控制推理过程的人来说,
sbi
提供低级接口,允许您微调工作流程的许多方面。 - 高级接口:如果您更倾向于简单和高效,
sbi
还提供了高级接口,可快速轻松地实现复杂的推理任务。
此外,sbi
支持一系列最先进推理算法(以下列出了实现的方法)
- 摊销方法:这些方法可以在多个观察之间重用后验估计器,无需重新训练。
- 顺序方法:这些方法专注于单个观察,优化所需的模拟次数。
除了推理之外,sbi
还提供
- 验证工具:内置方法来验证和验证推断后验的准确性。
- 绘图和分析工具:全面的功能用于可视化和分析结果,帮助您轻松解释后验分布。
开始使用sbi
非常简单,只需几行代码
from sbi.inference import NPE
# Given: parameters theta and corresponding simulations x
inference = NPE(prior=prior)
inference.append_simulations(theta, x).train()
posterior = inference.build_posterior()
安装
sbi
需要Python 3.9或更高版本。虽然GPU不是必需的,但在某些情况下可以提高性能。我们建议使用带有conda
的虚拟环境进行简单设置。
要安装sbi
,请按照以下步骤操作
-
创建Conda环境(如果使用Conda)
conda create -n sbi_env python=3.9 && conda activate sbi_env
-
安装
sbi
:无论您是否使用conda
,都可以使用pip
安装sbi
。
pip install sbi
- 测试安装:打开Python提示并运行
from sbi.examples.minimal import simple
posterior = simple()
print(posterior)
教程
如果您是sbi
的新用户,我们建议从我们的入门教程开始。
您也可以直接在浏览器中访问和运行这些教程,方法是在Codespace中打开它们。为此,单击GitHub存储库上的绿色“代码”按钮,并选择“使用Codespaces打开”。这提供了一个完全功能的环境,您可以在其中通过Jupyter笔记本探索sbi
。
推理算法
以下推理算法目前可用。您可以在此处找到运行每种方法的方法说明。
神经后验估计:摊销(NPE)和顺序(SNPE)
-
(S)NPE_A
(包括摊销单轮NPE
),来自Papamakarios G和Murray I的论文《使用贝叶斯条件密度估计的快速ε-free推理模拟模型》(NeurIPS 2016)。 -
(S)NPE_C
或APT
,来自Greenberg D,Nonnenmacher M和Macke J的论文《无似然推理的自动后验变换》(ICML 2019)。 -
TSNPE
,来自Deistler M,Goncalves P和Macke J的论文《可扩展和无忧的基于模拟推理的截断提案》(NeurIPS 2022)。 -
FMPE
,来自Wildberger J,Dax M,Buchholz S,Green S,Macke J H和Schölkopf B的论文《可扩展基于模拟推理的流匹配》(NeurIPS 2023)。 -
NPSE
,来自Geffner T,Papamakarios G和Mnih A的论文《基于模拟推理的组合得分建模》(ICML 2023)。
神经似然估计:摊销(NLE)和顺序(SNLE)
(S)NLE
或仅SNL
,来自Papamakarios G,Sterrat DC和Murray I的论文《顺序神经似然》(AISTATS 2019)。
神经比率估计:摊销(NRE)和顺序(SNRE)
-
(S)NRE_A
或AALR
,来自Hermans J,Begy V和Louppe G的论文《具有摊销近似似然比的无似然推理》(ICML 2020)。 -
(S)NRE_B
或SRE
,来自Durkan C,Murray I和Papamakarios G的论文《关于对比学习用于无似然推理》(ICML 2020)。 -
(S)NRE_C
或NRE-C
,来自Miller BK,Weniger C和Forré P的论文《对比神经比率估计》(NeurIPS 2022)。 -
BNRE
,来自Delaunoy A,Hermans J,Rozet F,Wehenkel A和Louppe G的论文《通过平衡神经比率估计实现可靠的基于模拟的推理》(NeurIPS 2022)。
神经变分推理,摊销(NVI)和顺序(SNVI)
SNVI
,来自Glöckler M,Deistler M,Macke J的论文《基于模拟推理的变分方法》(ICLR 2022)。
混合神经似然估计(MNLE)
MNLE
,来自Boelts J,Lueckmann JM,Gao R,Macke J的论文《用于决策模型的可扩展和高效的基于模拟推理》(eLife 2022)。
反馈和建议
我们欢迎您对如何使用sbi
来解决您的推理问题提出任何反馈(见讨论),并愿意接收错误报告、pull请求和其他反馈(见贡献)。我们希望保持一个积极的社区;请阅读我们的行为准则。
致谢
sbi
是delfi
包的继任者(使用PyTorch)。它最初是Conor M. Durkan的lfi
的分支。作为社区项目运行。请参阅致谢。
支持
sbi
已由德国联邦教育与研究部(BMBF)通过 ADIMEM 项目(FKZ 01IS18052 A-D)、SiMaLeSAM 项目(FKZ 01IS21055A)和图宾根人工智能中心(FKZ 01IS18039A)支持。自2024年起,sbi
由 appliedAI 欧洲研究所支持。
许可
Apache License 版本 2.0(Apache-2.0)
引用
如果您使用 sbi
,请考虑引用 sbi 软件论文,除了描述您所使用的特定 sbi-算法(s)的原研文章。
@article{tejero-cantero2020sbi,
doi = {10.21105/joss.02505},
url = {https://doi.org/10.21105/joss.02505},
year = {2020},
publisher = {The Open Journal},
volume = {5},
number = {52},
pages = {2505},
author = {Alvaro Tejero-Cantero and Jan Boelts and Michael Deistler and Jan-Matthis Lueckmann and Conor Durkan and Pedro J. Gonçalves and David S. Greenberg and Jakob H. Macke},
title = {sbi: A toolkit for simulation-based inference},
journal = {Journal of Open Source Software}
}
上述引用指的是 sbi
项目的原始版本,并具有持久 DOI。此外,sbi
的新版本可通过 Zenodo 引用,我们在每个版本中创建一个新的 DOI。
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
构建分发
sbi-0.23.2.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 96b6dea2acb410d871bb2ea5b6c0b487aa6d270ac35900b4859981af4a2eab7c |
|
MD5 | 67bbbf0a85590bc1efa35b3bbfecd484 |
|
BLAKE2b-256 | 45398cb92c60202bb225f2ace04a2d8b4fca8595c6af5dc7379e52422be4d1bc |
sbi-0.23.2-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4ac0d75513ff569fb0e55a4ae236a2a1c829b8215de3d31037ad1db1e69696c2 |
|
MD5 | 1b37263d25e4a3c699742bc5f21286a4 |
|
BLAKE2b-256 | 5c0cf2cedca72693f063ddd4aa504431696a3bacd0ead763ca42065a35cd0180 |