Ernesto Curbelo , Luca Martino , David Delgado-Gómez
{"title":"pyLAIS: A Python package for Layered Adaptive Importance Sampling","authors":"Ernesto Curbelo , Luca Martino , David Delgado-Gómez","doi":"10.1016/j.softx.2024.101976","DOIUrl":null,"url":null,"abstract":"<div><div>Monte Carlo (MC) techniques are widely used to draw from complex distributions and/or for the calculation of related integrals. The most famous families of MC methods are Markov Chain Monte Carlo (MCMC) and importance sampling (IS). There are many separate implementations and packages, available online regarding MCMC or IS methods. Moreover, both techniques present different drawbacks and advantages. In this paper, we introduce a flexible Python implementation of the so-called layered adaptive importance sampling (LAIS) algorithm. LAIS combines the benefits of MCMC and IS schemes: the exploration of the state space by Markov chains and the low variance estimations provides by advanced and modern IS schemes. More precisely, LAIS allows the sampling of complex distributions and/or approximation of integrals involving complex distributions, through the combination of – possibly sophisticated – MCMC schemes and multiple importance sampling (MIS) techniques. In addition, the modular nature of the algorithm itself provides a great flexibility in choosing the desired MCMC techniques, invariant distributions, proposal densities and MIS approaches.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"29 ","pages":"Article 101976"},"PeriodicalIF":2.4000,"publicationDate":"2024-11-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"SoftwareX","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S2352711024003467","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0
Abstract
Monte Carlo (MC) techniques are widely used to draw from complex distributions and/or for the calculation of related integrals. The most famous families of MC methods are Markov Chain Monte Carlo (MCMC) and importance sampling (IS). There are many separate implementations and packages, available online regarding MCMC or IS methods. Moreover, both techniques present different drawbacks and advantages. In this paper, we introduce a flexible Python implementation of the so-called layered adaptive importance sampling (LAIS) algorithm. LAIS combines the benefits of MCMC and IS schemes: the exploration of the state space by Markov chains and the low variance estimations provides by advanced and modern IS schemes. More precisely, LAIS allows the sampling of complex distributions and/or approximation of integrals involving complex distributions, through the combination of – possibly sophisticated – MCMC schemes and multiple importance sampling (MIS) techniques. In addition, the modular nature of the algorithm itself provides a great flexibility in choosing the desired MCMC techniques, invariant distributions, proposal densities and MIS approaches.
蒙特卡罗(Monte Carlo,MC)技术被广泛应用于复杂分布的抽取和/或相关积分的计算。最著名的 MC 方法系列是马尔可夫链蒙特卡罗(MCMC)和重要性采样(IS)。网上有许多关于 MCMC 或 IS 方法的独立实现和软件包。此外,这两种技术都有不同的缺点和优点。在本文中,我们将介绍一种灵活的 Python 实现,即所谓的分层自适应重要度采样(LAIS)算法。LAIS 结合了 MCMC 和 IS 方案的优点:马尔可夫链对状态空间的探索和先进的现代 IS 方案提供的低方差估计。更确切地说,LAIS 通过结合(可能是复杂的)MCMC 方案和多重重要性采样(MIS)技术,可以对复杂分布进行采样和/或对涉及复杂分布的积分进行近似。此外,该算法本身的模块化特性为选择所需的 MCMC 技术、不变分布、提议密度和 MIS 方法提供了极大的灵活性。
期刊介绍:
SoftwareX aims to acknowledge the impact of software on today''s research practice, and on new scientific discoveries in almost all research domains. SoftwareX also aims to stress the importance of the software developers who are, in part, responsible for this impact. To this end, SoftwareX aims to support publication of research software in such a way that: The software is given a stamp of scientific relevance, and provided with a peer-reviewed recognition of scientific impact; The software developers are given the credits they deserve; The software is citable, allowing traditional metrics of scientific excellence to apply; The academic career paths of software developers are supported rather than hindered; The software is publicly available for inspection, validation, and re-use. Above all, SoftwareX aims to inform researchers about software applications, tools and libraries with a (proven) potential to impact the process of scientific discovery in various domains. The journal is multidisciplinary and accepts submissions from within and across subject domains such as those represented within the broad thematic areas below: Mathematical and Physical Sciences; Environmental Sciences; Medical and Biological Sciences; Humanities, Arts and Social Sciences. Originating from these broad thematic areas, the journal also welcomes submissions of software that works in cross cutting thematic areas, such as citizen science, cybersecurity, digital economy, energy, global resource stewardship, health and wellbeing, etcetera. SoftwareX specifically aims to accept submissions representing domain-independent software that may impact more than one research domain.