-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pipeline for mean-field approximation of spiking networks #179
Comments
Yessss I was waiting for this issue ❤️ Some comments on your comments:
It would be great to have a nicer wrapper around the procompute functions, I agree. It should ideally stay part of the same package I think, since it's not really part of the core of neurolib (rather "just" one of the models, namely
I don't get this, can you explain? What does the computation have to do with
I'm a bit skeptical on this point. K's and J's do not affect the computation of the quantities, that's why they don't need to be remembered. I would discourage saving additional files (parameters) in another format (
How is this different from the existing ALN Model with different quantities? A My thoughts:
|
My initial thought was to make this under the
well yes: the table contains the transfer function for
yes, but see my comments up: problems are: number of populations within one ALN node; functions for computing ALN parameters as
yes! agreed! I'd definitely divide this work into more PRs
yes and no. Yes in the sense that you can just compute different cascades and work out the parameters of ALN. But it is necessary to include an option for more than 2 populations within one node inside the ALN's
yes, two main points: extending existing ALN to include more populations, based on the user's spiking network model, plus having functions to derive ALN parameters (not necessary saving to json) from spiking network parameters at hand |
So you want to build a modular ALNModel, is that the goal? With a varying number of populations? I thought that's exactly what MultiModel is for, I think I don't get it. You could simply create multiple ALNMass models and connect them the usual MultiModel way, but with support for multiple transfer functions.
The parameters c, J, and K are the same as in a spiking network, they don't need to be computed from anything. And they do not affect the transfer functions. The transfer function is computed from a single neuron. You're referring to "deriving mean field model for a spiking network". I think it's more precise to say that the ALNModel is an approximation of the AdEx population with synapses. We can't approximate any spiking network with the ALNModel. I don't think it makes a lot of sense to automate every step. The use case is just too special. If someone wants to make a new model, they should exactly know what they are doing and build the model accordingly. If we just allow any parameter configuration to be translated into an ALNModel, we would have to do a lot of testing. We don't even know in which parameter regimes the ALNModel is valid or not, it's all been tested only in one or two regimes. So all in all, I would suggest the following, just to save energy and time. Obviously this is just a suggestion:
The rest should be the researchers job. Including verifying if the mean-field approximation is valid/working at all, which would take immense amount of time for each constructed model and probably result in a research paper. |
I agree with all points. My initial thoughts were in the direction of:
But you are probably right, that you cannot approximate every spiking network with ALN model just using different parameters and different cascades and optionally not using adaptation. |
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:
models/aln/aln-precalc/precompute_quantitites/
so I'd refactor a bit and move it somewhere elseBaseMeanFieldNeuralMass
on par with base forNeuralMass
inMultiModel
.. it'd contain the dynamics based on number of populations, etcK
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...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 computationIdeas? Critique?
The text was updated successfully, but these errors were encountered: