\chapter{Literature review}

\section{Predictive coding}

\subsection{Predictive coding networks.} 
Our proposed models form a subset of the PC models \cite{rao1999predictive,friston2003learning, friston2005theory}, characterized by neural architectures (e.g., neurons and dendrites) encoding the mismatch between internally generated predictions and sensory inputs, i.e., error signals. Linear PC was first introduced for the compression of timeseries data in the 1950s \cite{elias1955predictive}. In the neurosciences, it was originally proposed to explain the efficient processing of visual inputs to the retina \cite{srinivasan1982predictive} and subsequently used to model hierarchical processing in the visual cortex, with a special focus on extra-classical receptive field effects 
\cite{rao1999predictive}. As noted above, PC is a particular class of variational inversion schemes for hierarchical generative models under Gaussian or parametric assumptions \cite{friston2008hierarchical}. 
% Under state space generative models, the corresponding scheme is known as a Kalman filter for linear models – and an extended Kalman filter for non-linear models \cite{rao1999optimal}. 
Some versions of PC deal with state space models and implicit predictions about dynamics \cite{rao1999optimal}; it was later extended to account for a range of neuronal responses from various brain regions such as the retina and auditory cortex \cite{huang2011predictive}. The versatility of the PC framework enabled it to be later adopted as a general, high-level model for representation learning in the brain \cite{friston2003learning,friston2005theory}, i.e., models for describing how sensory inputs are represented in the cortex. The explicit rPCNs described in this work are essentially the PC models with parameters encoding the precision (covariance) matrix \cite{friston2003learning, friston2005theory,bogacz2017tutorial} with a single layer architecture. These models introduced the covariance matrix to represent the uncertainty of different input features, by differentially weighting error signals derived from different input sources. However, to our knowledge they have never been tested in AM tasks. Earlier works have also identified the implausibility of the learning rule for the covariance parameters, and addressed this issue by introducing additional inhibitory interneurons on top of error neurons \cite{bogacz2017tutorial}. On the other hand, our implicit/dendritic rPCNs naturally circumvents the implausible learning rule by introducing a new set of recurrent weights $W$. Furthermore, our nonlinear rPCN is reminiscent of the sparse coding schemes of the kind found in independent component analysis \cite{olshausen1996emergence}. This suggests an interesting relationship between sparse coding, PC and the properties evinced by the numerical studies above.

In recent years, multiple lines of research have revealed the potential of PC in modelling various brain functions and in performing complex machine learning tasks. Most notably, the exploration of purely hierarchical PCNs in AM tasks by Salvatori et al. \cite{salvatori2021associative} has directly inspired our work, and their model was also employed in our work to construct the hybrid PCN. Recurrent PCNs for AM tasks have also been proposed recently \cite{salvatori2022learning}. However, the covariance-learning property of these recurrent PCNs, as well as their connections to earlier PCNs with precision matrices \cite{friston2003learning,friston2005theory,bogacz2017tutorial}, were not fully investigated in these works. More broadly, the approximation of PC to backpropagation \cite{rumelhart1986learning}, the most commonly used learning rule of modern artificial neural networks, has been extensively investigated and discussed in recent works \cite{whittington2017approximation,song2020can,salvatori2022reverse,millidge2022predictive,alonso2022theoretical,rosenbaum2022relationship}. The PC algorithm has also been scaled to adapt to various modern machine learning architectures \cite{salvatori2022learning,pinchetti2022predictive,byiringiro2022robust,salvatori2021predictive,salvatori2022incremental} and studies have also shown that it can approximate backpropagation in arbitrary computational graphs \cite{millidge2022predictive2}. These studies suggest that it is possible to implement PC within modern deep neural networks, making our PC-based AM networks potential candidates of efficient memory-storage machines in artificial intelligence.

\section{Other computational models of the brain}
\subsection{Hopfield Networks}

\subsection{Kalman Filters}

\subsection{Recurrent Neural Networks}