Juliacon 2024

Cognitive computational modeling made easy with Julia
2024-07-10 , If (1.1)

Two packages are presented here for cognitive computational modeling. ActionModels.jl builds on Turing, and provides an easy interface for agent-based modeling and hierarchical Bayesian parameter estimation - including regressions, using TuringGLM - of action models of the kind used in computational psychiatry, cognitive modeling, and game theory. As an example, HierarchicalGaussianFiltering.jl then provides easy access to the HGF, a complex and generally applicable predictive processing model.


With the computational turn psychiatry, cognitive science and neuroscience, there has been an increase in demand for computational cognitive modeling; that is, building computational models of cognitive processes such as learning, perception, memory and decision making. These models can be used for simulation, providing theoretically founded empirical predictions. Often, they are also fitted to participant behaviour in order to estimate per-participant model parameters - used for assessing and building theories based on empirical data, and for finding differences between for example clinical populations, which may in turn be used for diagnostic purposes. The current gold-standard in the field is to use probabilistic languages for Markov Chain Monte Carlo sampling for Bayesian parameter estimation. Due to sparsity of data, and inherent hierarchical structures of many experimental designs, models benefit from hierarchical parameter estimation. The estimated parameters are then often used in regression analyses to test for correlations with experimental implementations and other predictors, but since this is done in a separate step, information is lost. The optimal strategy is therefore to have hierarchical regression and cognitive model in the same model. This is for many researchers, however, often not technically feasible, for it requires knowledge of specialized modeling languages like STAN, and to be able to specify custom regressions and hierarchical parameter structures by hand. Simultaneously, programming custom models can be complicated in itself, providing a technical barrier that is arguably among the greatest limitations for cognitive computational modeling.
Leveraging Julia's powerful modeling library Turing, and exploiting the solution to the two-language problem present in other available software solutions, ActionsModels.jl provides a generally applicable and easy-to-use framework for cognitive and behavioural modeling. Needing only a simple input-output structure specified by the user - and containing an array of the most used cognitive models from the field - this package lets the user flexibly simulate from one or multiple models, and provides an easy, TuringGLM-based framework for including multilevel regressions (i.e., statistical models) and cognitive models (or, more generally, action models) in one framework. This should make cognitive computaitonal modeling available to the broader scientific community without sacrificing the customisability that high-end users will rely on. As an example of using the package for complex models, I also present HierarchicalGaussianFiltering.jl, which implements the generalized Hierarchical Gaussian Filter (HGF), a generally applicable variational Bayesian predictive processing based computational model of learning and perception. In its new, generalized form, the HGF can be used to create cognitive models for a variety of tasks and contexts - and can, due to its close relation to the Kalman Filter, also be used for signal processing in volatile and noisy environments.

See also:

PhD student affiliated with Aarhus University and University College London. Specialized in computational cognitive modeling and motion capture research. Also dancer and martial artist.