This repository provides a list of papers that are interesting or influential about Predictive Coding. If you believe I have missed any papers, please contact me at beren@millidge.name or make a pull request with the information about the paper. I will be happy to include it.
Predictive Coding is a neurophysiologically-grounded theory of perception and learning in the brain. The core idea is that the brain always maintains a prediction of the expected state of the world, and that this prediction is then compared against the true sensory data. Where this prediction is wrong, prediction errors are generated and propagated throughout the brain. The brain's 'task' then is simply to minimize prediction errors.
The key distinction of this theory is that it proposes that prediction-errors, rather than predictions, or direct representation of sense-data is in some sense the core computational primitive in the brain.
Predictive coding originated in studies of ganglion cells in the retina, in light of theories in signal processing, about how it is much more efficient to send only 'different' or 'unpredicted signals' than repeating the whole signal every time -- see delta-encoding.
Predictive coding has several potential neurobiologically plausible process theories proposed for it -- see 'Process Theories' section, although the empirical evidence for precise prediction error minimization in the brain is mixed
Predictive coding has also been extended in several ways. It can be understood as a variational inference algorithm under a Gaussian generative model and variational distribution. It can be setup as an autoencoder (predict your input, or next-state), or else in a supervised learning fashion.
Predictive coding can also be extended to a hierarchical model of multiple predictive coding layers -- as in the brain -- as well as using 'generalised coordinates' which explicitly model the higher order derivatives a state in order to be able to explicitly model dynamical systems.
More recent work has also focused on the relationship between predictive coding and the backpropagation of error algorithm in machine learning where under certain assumptions, predictive coding can approximate this fundamental algorithm in a biologically plausible fashion. Although the exact details and conditions still need to be worked out.
There has also been much exciting work trying to merge predictive coding with machine learning to produce highly performant predictive-coding-inspired architectures.
- Surveys and Tutorials
- Classics
- Neurobiological Process Theories
- Neuroscience applications
- Relationship to Backpropagation
- PC-inspired machine learning
- Extensions and Developments
- Relationship to FEP
- A tutorial on the free-energy framework for modelling perception and learning , (2017) by Bogacz, Rafal [bib]
This is a great review which introduces the basics of predictive coding and its interpretation as variational inference. It also contains sample MATLAB code that implements a simple predictive coding network. I would start here.
- Predictive Coding: a Theoretical and Experimental Review , (2021) by Millidge, Beren, Seth, Anil and Buckley, Christopher L [bib]
This review walks through the mathematical framework and potential neural implementations in predictive coding, and also covers much recent work on the relationship between predictive coding and machine learning.
- The free energy principle for action and perception: A mathematical review , (2017) by Buckley, Christopher L, Kim, Chang Sub, McGregor, Simon and Seth, Anil K [bib]
This is a fantastic review which presents a complete walkthrough of the mathematical basis of the Free Energy Principle and Variational Inference, and derives predictive coding and (continuous time and state) active inference. It also presents the 'full-construct' predictive coding including with hierarchical layers and generalised coordinates in an accessible fashion. I would reccomend reading this after Bogacz' tutorial (although be prepared -- it is a long and serious read)
- A review of predictive coding algorithms , (2017) by Spratling, Michael W [bib]
A short and concise review of predictive coding algorithms up to 2017.
- Predictive coding , (2011) by Huang, Yanping and Rao, Rajesh PN [bib]
A nice review of simple predictive coding architectures with a focus on their potential implementation in the brain.
- Predictive coding in the visual cortex: a functional interpretation of some extra-classical receptive-field effects , (1999) by Rao, Rajesh PN and Ballard, Dana H [bib]
A key influential early paper proposing predictive coding as a general theory of cortical function.
- Predictive coding: a fresh view of inhibition in the retina , (1982) by Srinivasan, Mandyam Veerambudi, Laughlin, Simon Barry and Dubs, Andreas [bib]
One of the earliest works proposing predictive coding in the retina.
- A theory of cortical responses , (2005) by Friston, Karl [bib]
An early but complete description of predictive coding as an application of the FEP and variational inference under Gaussian and Laplace assumptions. Also surprisingly readable. This is core reading on predictive coding and the FEP
- Learning and inference in the brain , (2003) by Friston, Karl [bib]
The first paper establishing the links between predictive coding and variational inference.
- Attention, uncertainty, and free-energy , (2010) by Feldman, Harriet and Friston, Karl [bib]
Makes a conjectured link between precision in predictive coding and attention in the brain.
- Hierarchical models in the brain , (2008) by Friston, Karl [bib]
Presents the 'full-construct' predictive coding model with both hierarchies and generalised coordinates.
- DEM: a variational treatment of dynamic systems , (2008) by Friston, Karl J, Trujillo-Barreto, N and Daunizeau, Jean [bib]
Extends predictive coding to generalised coordinates, and derives the necessary inference algorithms for working with them -- i.e. DEM, dynamic expectation maximisation.
- Generalised filtering , (2010) by Friston, Karl, Stephan, Klaas, Li, Baojuan and Daunizeau, Jean [bib]
- Variational filtering , (2008) by Friston, Karl J [bib]
Foundational treatment of variational inference for dynamical systems, as represented in generalised coordinates. Also relates variational filtering to other non-variational schemes like particle filtering and Kalman filtering.
- Surfing uncertainty: Prediction, action, and the embodied mind , (2015) by Clark, Andy [bib]
Andy's book is great for a high level overview, strong intuition pumps for understanding the theory, and a fantastic review of potential evidence and neuropyschiatric applications.
- Dynamic predictive coding by the retina , (2005) by Hosoya, Toshihiko, Baccus, Stephen A and Meister, Markus [bib]
- Canonical microcircuits for predictive coding , (2012) by Bastos, Andre M, Usrey, W Martin, Adams, Rick A, Mangun, George R, Fries, Pascal and Friston, Karl J [bib]
A key process theory paper. Proposing perhaps the default implementation of predictive coding in cortical layers.
- Predictive coding as a model of biased competition in visual attention , (2008) by Spratling, Michael W [bib]
Demonstrates that predictive coding is equivalent to popular biased competition models of neural function.
- Dopamine role in learning and action inference , (2020) by Bogacz, Rafal [bib]
- Reconciling predictive coding and biased competition models of cortical function , (2008) by Spratling, Michael W [bib]
- Neural elements for predictive coding , (2016) by Shipp, Stewart [bib]
Another great overview of a potentially neurobiologiclaly plausible process theory for predictive coding.
- Reflections on agranular architecture: predictive coding in the motor cortex , (2013) by Shipp, Stewart, Adams, Rick A and Friston, Karl J [bib]
A process theory of predictive coding including action predictions which implement active inference (continuous version).
- Cerebral hierarchies: predictive processing, precision and the pulvinar , (2015) by Kanai, Ryota, Komura, Yutaka, Shipp, Stewart and Friston, Karl [bib]
- Great expectations: is there evidence for predictive coding in auditory cortex? , (2018) by Heilbron, Micha and Chait, Maria [bib]
- Predictive coding in sensory cortex , (2015) by Kok, Peter and de Lange, Floris P [bib]
- Evaluating the neurophysiological evidence for predictive processing as a model of perception , (2020) by Walsh, Kevin S, McGovern, David P, Clark, Andy and O'Connell, Redmond G [bib]
A great review delving deep into the evidence for predictive coding being implemented in the brain. Evidence is currently somewhat lacking, although the flexibility of the predictive coding framework allows it to encompass a lot of the findings here.
- Fitting predictive coding to the neurophysiological data , (2019) by Spratling, MW [bib]
- Predictive processing: a canonical cortical computation , (2018) by Keller, Georg B and Mrsic-Flogel, Thomas D [bib]
- Predictive coding is a consequence of energy efficiency in recurrent neural networks , (2021) by Ali, Abdullahi, Ahmad, Nasir, de Groot, Elgar, van Gerven, Marcel AJ and Kietzmann, Tim C [bib]
- The predictive coding account of psychosis , (2018) by Sterzer, Philipp, Adams, Rick A, Fletcher, Paul, Frith, Chris, Lawrie, Stephen M, Muckli, Lars, Petrovic, Predrag, Uhlhaas, Peter, Voss, Martin and Corlett, Philip R [bib]
- An interoceptive predictive coding model of conscious presence , (2012) by Seth, Anil K, Suzuki, Keisuke and Critchley, Hugo D [bib]
- Extending predictive processing to the body: emotion as interoceptive inference , (2013) by Seth, Anil K and Critchley, Hugo D [bib]
- An aberrant precision account of autism , (2014) by Lawson, Rebecca P, Rees, Geraint and Friston, Karl J [bib]
- A predictive coding perspective on autism spectrum disorders , (2013) by Van Boxtel, Jeroen JA and Lu, Hongjing [bib]
- Predictive coding: an account of the mirror neuron system , (2007) by Kilner, James M, Friston, Karl J and Frith, Chris D [bib]
- Predictive coding as a model of response properties in cortical area V1 , (2010) by Spratling, Michael W [bib]
- Predictive coding explains binocular rivalry: An epistemological review , (2008) by Hohwy, Jakob, Roepstorff, Andreas and Friston, Karl [bib]
- An approximation of the error backpropagation algorithm in a predictive coding network with local hebbian synaptic plasticity , (2017) by Whittington, James CR and Bogacz, Rafal [bib]
- Predictive Coding Approximates Backprop along Arbitrary Computation Graphs , (2020) by Millidge, Beren, Tschantz, Alexander and Buckley, Christopher L [bib]
- Can the Brain Do Backpropagation?---Exact Implementation of Backpropagation in Predictive Coding Networks , (2020) by Song, Yuhang, Lukasiewicz, Thomas, Xu, Zhenghua and Bogacz, Rafal [bib]
- Predictive Coding Can Do Exact Backpropagation on Convolutional and Recurrent Neural Networks , (2021) by Salvatori, Tommaso, Song, Yuhang, Lukasiewicz, Thomas, Bogacz, Rafal and Xu, Zhenghua [bib]
- Representation learning with contrastive predictive coding , (2018) by Oord, Aaron van den, Li, Yazhe and Vinyals, Oriol [bib]
- Continual learning of recurrent neural networks by locally aligning distributed representations , (2020) by Ororbia, Alexander, Mali, Ankur, Giles, C Lee and Kifer, Daniel [bib]
- The neural coding framework for learning generative models , (2020) by Ororbia, Alexander and Kifer, Daniel [bib]
- Backprop-Free Reinforcement Learning with Active Neural Generative Coding , (2021) by Ororbia, Alexander and Mali, Ankur [bib]
- Spiking Neural Predictive Coding for Continual Learning from Data Streams , (2019) by Ororbia, Alexander [bib]
- Deep predictive coding networks for video prediction and unsupervised learning , (2016) by Lotter, William, Kreiman, Gabriel and Cox, David [bib]
- Video representation learning by dense predictive coding , (2019) by Han, Tengda, Xie, Weidi and Zisserman, Andrew [bib]
- Deep predictive coding network for object recognition , (2018) by Wen, Haiguang, Han, Kuan, Shi, Junxing, Zhang, Yizhen, Culurciello, Eugenio and Liu, Zhongming [bib]
- Deep predictive coding networks , (2013) by Chalasani, Rakesh and Principe, Jose C [bib]
- Deep predictive coding network with local recurrent processing for object recognition , (2018) by Han, Kuan, Wen, Haiguang, Zhang, Yizhen, Fu, Di, Culurciello, Eugenio and Liu, Zhongming [bib]
- Meaningful representations emerge from sparse deep predictive coding , (2019) by Boutin, Victor, Franciosini, Angelo, Ruffier, Franck and Perrinet, Laurent [bib]
- Hierarchical Predictive Coding Models in a Deep-Learning Framework , (2020) by Hosseini, Matin and Maida, Anthony [bib]
- PredNet and Predictive Coding: A Critical Review , (2020) by Rane, Roshan Prakash, Sz{"u}gyi, Edit, Saxena, Vageesh, Ofner, Andr{'e} and Stober, Sebastian [bib]
- Relaxing the constraints on predictive coding models , (2020) by Millidge, Beren, Tschantz, Alexander, Seth, Anil and Buckley, Christopher L [bib]
This paper investigates how serveral biologically implausible aspects of the standard predictive coding algorithm -- namely requiring symmetric forward and backward weights, nonlinear derivatives, and 1-1 error unit connections can be relaxed without unduly harming performance of the network.
- Making Predictive Coding Networks Generative , (2019) by Orchard, Jeff and Sun, Wei [bib]
- Tightening the Biological Constraints on Gradient-Based Predictive Coding , (2021) by Alonso, Nick and Neftci, Emre [bib]
This paper further looks at how various implausibility of the predictive coding algorithm can be relaxed, and focuses especially on the question of how negative prediction errors could be represented, as well as invents a divisive prediction error scheme -- where prediction errors are the activities divided by the predictions.
- A Predictive-Coding Network That Is Both Discriminative and Generative , (2020) by Sun, Wei and Orchard, Jeff [bib]
- Dopamine role in learning and action inference , (2020) by Bogacz, Rafal [bib]
To contribute, please make pull requests adding entries to the bibtex file.
The README file was generated from bibtex using the bibtex_to_md.py
file.
The keywords to use for each classification ('Classic','Backprop') can be found at the bottom of the .py file.
This code and structure is heavily inspired by https://github.com/optimass/continual_learning_papers.