Description
I recently worked out the mean-field approximation of the spiking model of the hippocampus, more-or-less successfully. This process can be automated to a large extent.
The idea is to allow users to go from their spiking networks with multiple populations (LIF/EIF/AdEx neurons + conductance-/current-based synapses) to mean-field approximation in the light of ALN. The actual equations for the mean-field model are the same (slight adjustments w.r.t number of population), the only difference would be the precomputed linear-nonlinear cascade and the model parameters. The cascade computation depends on single neuron parameters in the spiking model and the parameters of the mean-field approximation depend on both the synaptic parameters and the network parameters (number of neurons, probability of connection, etc.).
Some things to consider:
- code for computing the cascade is already part of neurolib in
models/aln/aln-precalc/precompute_quantitites/
so I'd refactor a bit and move it somewhere else - the cascade computation should work as a single function with arguments as per single neuron parameters, i.e. user enters necessary neuronal parameters into the function and the function does everything and saves the cascade
- I'd create something like
BaseMeanFieldNeuralMass
on par with base forNeuralMass
inMultiModel
.. it'd contain the dynamics based on number of populations, etc - some functions will be necessary to compute the mean-field parameters (the
K
s,J
s,c
s, etc)... these would live under the same subpackage as the code for cascade computation and would save params as jsons next to the cascade - jsons, because default model parameters in MultiModel are dicts and json is practically a dict... - finally a final model would be created by subclassing the
BaseMeanFieldNeuralMass
into a new mean-field model.. user would define the name of the model, some basic attributes, like default noise input, etc. but the dynamics would be the same as ALN, the parameters would be loaded from json based on computation and the linear-nonlinear cascade would be loaded based on the computation - profit!
Ideas? Critique?