Modular, general-purpose generative architectures for intelligent behaviour.
This page outlines the architecture and inference procedures used in our neuro-inspired active inference agent, developed as part of our work on general-purpose intelligent systems. The agent is based on predictive coding, variational message passing, and the free energy principle.
The agent is structured as a 7-module generative model, with components handling perception, dynamics, action selection, and learning. The latent state evolves according to:
\[ x_{t+1} = f(x_t, a_t) + \omega_t, \quad y_t = g(x_t) + \epsilon_t \]where \( x_t \) is the hidden state, \( a_t \) the action, \( y_t \) the sensory input, and \( \omega_t, \epsilon_t \) are noise terms.
The agent selects actions and updates beliefs to minimise variational free energy:
\[ \mathcal{F}(q) = \mathbb{E}_q [\log q(x) - \log p(x, y)] \]Action is selected by planning over expected free energy (EFE):
\[ G(a) = \mathbb{E}_q [ D_{KL}[q(s) \| p(s)] - \mathbb{E}_{q(s)}[\log p(o|s)] ] \]Each timestep consists of:
The Pong agent plays a 2D paddle game using an active inference loop. It observes a partial and noisy visual input of the ball and paddle positions, and uses belief updates and action selection to intercept the ball.
The agent uses a low-rank Laplace posterior over state variables and updates belief online during gameplay.
This agent navigates a 2D/3D environment (gridworld or room maze) toward a target using visual or proprioceptive cues. The belief update and action selection loop is as follows:
Inference and control are implemented with online updates to the posterior over latent states and forward rollout over dynamics.