How to describe a neural network model
In their lucid and educational '09 paper, Nordlie et al attempt to create standards for the description of neural network models in the academic lit. This is a great idea--gains from standardization are huge--and also a great paper to learn about what a neural network model actually entails. Since this is in PLoS comp bio and, bless its editors, it is OA/CC, I will quote liberally. First, they have the following working definition of a model:
A neuronal network model is an explicit and specific hypothesis about the structure and microscopic dynamics of (a part of) the nervous system.
Where:
The model must be explicit, i.e., all aspects of the model must be specified.
The model must be specific, i.e., all aspects must be defined so detailed that they can be implemented unequivocally.
The model specifies the structure (placement and type of network elements; source, target and type of connections) and dynamics of components (ion channels, membrane potential, spike generation and propagation).
The model does not describe the dynamics of the model as a whole, which is an emerging property of the model.
Here is how their full description of what a model must entail:
A complete model description must cover at least the following three components: (i) The network architecture, i.e., the composition of the network from areas, layers, or neuronal sub-populations. (ii) The network connectivity, describing how neurons are connected among each other in the network. In most cases, connectivity will be given as a set of rules for generating the connections. (iii) The neuron and synapse models used in the network model, usually given by differential equations for the membrane potential and synaptic currents or conductances, rules for spike generation and post-spike reset. Model descriptions should also contain information about (iv) the input (stimuli) applied to the model and (v) the data recorded from the model, just as papers in experimental neuroscience do, since a reproduction of the simulations would otherwise become impossible.
The above is essential to a neural network model, while below are some of the useful steps for describing your model:
1) Include output data for each individual neuron type to test stimuli, as opposed to responses only from the whole network. This will avoid the scenario under which:
[R]esearchers who attempt to re-implement a model and find themselves unable to reproduce the results from a paper, will not be able to find out whether problems arise from neuron model implementations or from a wrong network setup.
2) Keep the description of your model and the explanation for why you chose your model separate, for the sake of clarity.
3) Describe the topology of the network in your model unambiguously. It may be best to describe this topology on basis of how the regions connect to one another. Or, if your network is of the human brain and is at a high enough level, you could use a publicly available, standard space, such as the one that the human connectome project should soon release.
4) In defining the connections between your neurons (i.e., how they are probabilistically generated), pay special attention to these three details:
May neurons connect to themselves?
May there be multiple connections between any pair of neurons?
Are connection targets chosen at random for a fixed sender neuron (divergent connection), senders chosen at random for fixed target (convergent connection), or are sender and receiver chosen at random for each connection?
One benefit of connectomics research is that it would allow neural networks to be run on real, validated data sets instead of on probabilistic connections, simplifying these descriptions.
5) Figures should be informative but not overwhelming. Nordlie et al draw a model of the thalamocortical pathway using diagram styles from three of the papers they surveyed, here:
The middle diagram is the most informative, as it has parameters (weights and probabilities) shown next to its connection lines, and line widths proportional to the product of weight and probability. Really, what would be ideal here is some sort of standardization, like in physics diagrams. (A little physics envy isn't always a bad! thing) In particular, these are their suggestions:
Unordered populations are shown as circles;
Populations with spatial structure are shown as rectangles;
Pointed arrowheads represent excitatory, round ones inhibitory connections;
Arrows beginning/ending outside a population indicate that the arrows represent a set of connections with source/target neurons selected from the population;
Probabilistic connection patterns are shown as cut-off masks filled with connection probability as grayscale gradient; the pertaining arrows end on the outside of the mask.
6) Describe the equations for membrane potential, spike generation, spike detection, reset and refractory behavior using math as well as prose.
Anecdotally, it seems to me that systems biologists tend to use R while neuroscientists are more into MATLAB. This jives with the engineering feel of the neuro community, and I certainly don't mean to start a programming language flame war, but I do wonder if moving towards to the open-access programs R or Python might be useful.
I truly learned a lot from this paper, and in case the authors ever read this post, I'd like to thank them for putting effort into writing it so carefully and clearly, and apologize for any mistakes I may have made in summarizing it.
Reference
Nordlie E, Gewaltig M-O, Plesser HE (2009) Towards Reproducible Descriptions of Neuronal Network Models. PLoS Comput Biol 5(8): e1000456. doi:10.1371/journal.pcbi.1000456