PyAutoFit: An Open-Source Framework for Automated Bayesian Inference
A major trend in astronomy and data science is the rapid adoption of Bayesian statistics for data analysis and modeling. With modern data-sets growing by orders of magnitude in size, the focus is now on developing methods capable of applying these inference techniques to large samples of data. To this aim, I present PyAutoFit, an open-source framework for automated Bayesian inference. For highly complex models, it is difficult to robustly determine the best-fit regions of parameter space using a single non-linear optimization. PyAutoFit breaks non-linear fitting down into a series of simpler tasks, termed `phases’, that are linked together. Initial phases fit a simplified model, followed by phases that gradually increase the model complexity. The unique aspect of PyAutoFit is that as the model complexity increases, the information gained in earlier phases is fed to subsequent phases, guiding the non-linear search through parameter space and enabling accurate fitting of models of arbitrary complexity. To achieve this, PyAutoFit interfaces non-linear Bayesian optimization (e.g. MCMC, nested sampling, genetic algorithms) with Python classes, ensuring the modeling framework can be generalized to any software project. It is currently used by two open-source projects, for modeling images of gravitational lenses and tracking radiation damage in space based imaging devices, and I will encourage adoption by other software projects.