Package: neuralfields
Neural Fields – Old Idea, New GloryAboutIn 1977, Shun-ichi Amari introducedneural fields, a class of potential-based recurrent neural networks [1].
This architecture was developed as a simplistic model of the activity of neurons in a (human) brain.
It's main characteristic is the lateral in-/exhibition of neurons though their accumulated potential.
Due to its simplicity and expressiveness, Amari’s work was highly influential and led to several follow-up papers such
as [2-6] to only name a few.SupportIf you use code or ideas from this repository for your projects or research,please cite it.@misc{Muratore_neuralfields,
  author = {Fabio Muratore},
  title = {neuralfields - A type of potential-based recurrent neural networks implemented with PyTorch},
  year = {2023},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/famura/neuralfields}}
}FeaturesThere are two variants of the neural fields implemented in this repository: one calledNeuralFieldthat matches
the model of Amari closely using 1D convolutions, as well as another one calledSimpleNeuralFieldthat replaces the
convolutions and introduces custom potential dynamics function.Both implementations have by modern standards very few, i.e., typically less than 1000, parameters. I suggest that you
start with theNeuralFieldclass since it is more expressive. However, theSimpleNeuralFieldhas the benefit of
operating with typically less than 20 parameters, which allows you to use optimizers that otherwise might not scale.Both,NeuralFieldandSimpleNeuralField, model classes are subclasses oftorch.nn.Module, hence able to process
batched data and run on GPUs.Theexamplescontain a script for time series learning.
However, it is also possible to use neural fields as generative models.This repository is a spin-off fromSimuRLacrawhere the neural fields have
been used as the backbone for control policies. InSimuRLacra, the focus is on reinforcement learning for
sim-to-real transfer. However, the goal of this repository is to make the implementationas general as possible,
such that it could for example be used as generative model.Time series learning exampleTime series generation exampleGetting StartedTo install this package, simply runpipinstallneuralfieldsFor further information, please have a look at thegetting started guide.
In the documentation, you can also find thecomplete reference of the source code.References[1] S-I. Amari.Dynamics of pattern formation in lateral-inhibition type neural fields. Biological Cybernetics.
1977.[2] K. Kishimoto and S-I. Amari.Existence and stability of local excitations in homogeneous neural fields. Journal
of Mathematical Biology, 1979.[3] W. Erlhagen and G. Schöner.Dynamic field theory of movement preparation. Psychological Review, 2002.[4] S-I. Amari, H. Park, and T. Ozeki.Singularities affect dynamics of learning in neuromanifolds. Neural
Computation, 2006.[5] T. Luksch, M. Gineger, M. Mühlig, T. Yoshiike,Adaptive Movement Sequences and Predictive Decisions based on
Hierarchical Dynamical Systems. International Conference on Intelligent Robots and Systems, 2012.[6] C. Kuehn and  J. M. Tölle.A gradient flow formulation for the stochastic Amari neural field model. Journal of
Mathematical Biology, 2019.