Introductory Notes
Summary
PolyChord is a tool for data scientists to train their models on data
Data Modelling
Numerical modelling (in a broad sense) is the integral part of how we understand and use data. In order to extract information from data, one first constructs a model. One then 'fits' or 'trains' the model before using the model to extract information about the data, and make further predictions. Modelling acts to compress big data into a manageable and usable tool.
Models come in many flavours, the two broad classes being Generative and Discriminative. Scientific models tend to be generative, whilst machine learning models (such as neural networks) tend to be discriminative. Both types however require model fitting or training.
Model Fitting
Models will in general have some a-priori unknown parameters, giving them flexibility to describe a variety of datasets. Choosing these parameters is crucial to getting a good fit, and a poor choice will render a purportedly powerful model unable to make accurate predictions or recover useful information. Conversely, 'over-fitting' a model can also lead to undesirable results, giving misleading information and poor extrapolative ability.
Image source: http://jitkomut.eng.chula.ac.th/matlab/eng_probs.html
Tuning these model parameters by hand is impossible for all but the simplest models. One must instead turn to computational algorithms to determine the optimal choice of parameters. This process is termed parameter fitting, model training or optimisation depending on the field that you are in.
Existing Algorithms
This simplest approach to model fitting is to use some kind of minimisation/maximisation algorithm (e.g. gradient descent). Such approaches can get trapped in local minima, giving a bad fit to a potentially good model. Even if they find the best solution, there is a potential with naive minimisation that the model may be over-fitted.
A more modern approach is to use Markov-Chain-Monte-Carlo (MCMC) to generate samples from the distribution. This solves the overfitting problem by averaging over a set of typical models, rather than choosing a naive "best fit". However, traditional chain-based approaches still suffer from the possibility of getting trapped in local minima, and in general require a lot of user intervention and tuning to produce an efficient sampler.
PolyChord
PolyChord is a tool for fitting models to data.
PolyChord functions as a probability sampler and probabilistic integrator; generating samples from an unnormalised probability distribution, whilst simultaneously computing the normalising constant. In the language of Bayesian statistics, it is a posterior sampler and evidence calculator. PolyChord takes as inputs the likelihood and prior, and outputs posterior samples and a value for the normalisation constant. The normalisation constant is essential for performing Bayesian model comparison and marginalisation.
In comparison to alternative approaches, PolyChord is a hands-off sampler, requiring minimal user intervention and little knowledge of the probability distribution's properties. PolyChord is capable of learning in a consistent manner the shape of a complicated distribution as it converges.
PolyChord is particularly good at navigating multi-modal distributions with complicated parameter degeneracies, producing correct answers for distributions which are 'bananas'(rosenbrock), or 'bunches of grapes'(rastrigin).
It is also uniquely capable of computing the Bayesian evidence. This is a quantity crucial for comparing competing models in a Bayesian manner, allowing one to select the best model for describing and using the data.