pymdp: A Python library for active inference in discrete state spaces

by   Conor Heins, et al.

Active inference is an account of cognition and behavior in complex systems which brings together action, perception, and learning under the theoretical mantle of Bayesian inference. Active inference has seen growing applications in academic research, especially in fields that seek to model human or animal behavior. While in recent years, some of the code arising from the active inference literature has been written in open source languages like Python and Julia, to-date, the most popular software for simulating active inference agents is the DEM toolbox of SPM, a MATLAB library originally developed for the statistical analysis and modelling of neuroimaging data. Increasing interest in active inference, manifested both in terms of sheer number as well as diversifying applications across scientific disciplines, has thus created a need for generic, widely-available, and user-friendly code for simulating active inference in open-source scientific computing languages like Python. The Python package we present here, pymdp (see, represents a significant step in this direction: namely, we provide the first open-source package for simulating active inference with partially-observable Markov Decision Processes or POMDPs. We review the package's structure and explain its advantages like modular design and customizability, while providing in-text code blocks along the way to demonstrate how it can be used to build and run active inference processes with ease. We developed pymdp to increase the accessibility and exposure of the active inference framework to researchers, engineers, and developers with diverse disciplinary backgrounds. In the spirit of open-source software, we also hope that it spurs new innovation, development, and collaboration in the growing active inference community.


Neural Network Distiller: A Python Package For DNN Compression Research

This paper presents the philosophy, design and feature-set of Neural Net...

Introducing PyCross: PyCloudy Rendering Of Shape Software for pseudo 3D ionisation modelling of nebulae

Research into the processes of photoionised nebulae plays a significant ...

EXONEST: The Bayesian Exoplanetary Explorer

The fields of astronomy and astrophysics are currently engaged in an unp...

Trieste: Efficiently Exploring The Depths of Black-box Functions with TensorFlow

We present Trieste, an open-source Python package for Bayesian optimizat...

MFGLib: A Library for Mean-Field Games

Mean-field games (MFGs) are limiting models to approximate N-player game...

Niimpy: a toolbox for behavioral data analysis

Behavioral studies using personal digital devices typically produce rich...

Open and reusable deep learning for pathology with WSInfer and QuPath

The field of digital pathology has seen a proliferation of deep learning...

Please sign up or login with your details

Forgot password? Click here to reset