2
$\begingroup$

I would be very grateful to people with experience in using neural network models in neuroscience for advice!

What approach would you recommend for building neural networks?

I am choosing between TensorFlow, PyTorch and Keras. An important aspect for me is to be able to easily access the params of the NN (especially the weights). I want to build encoding models of biological neurons so for me model transparency, interpretability and exploration capacity is as important (if not more) than performance metrics or efficiency.

Thanks!

$\endgroup$
1
  • $\begingroup$ Welcome! Overall I believe this is a good question. You state quite specifically what you are trying to achieve and why you are asking for this information. However, the starting sentence is begging for 'opinion-based' answers, which is not a suitable question on Stack Exchange, as you will learn by reading the help section. You could edit the question to make more clear you are asking specifically for recommendations in terms of "encoding models of biological neurons" in which "transparency, interpretability and exploration capacity" is the most important. $\endgroup$
    – Steven Jeuris
    Aug 22, 2019 at 9:31

2 Answers 2

4
$\begingroup$

If you're looking at computational models of actual neurons and biological neural networks, there are a number of tools out there which are specifically for the purpose. The most commonly used are:

  • NEST is well maintained and a common tool for network dynamics.
  • Brian2 is flexible and easy to use.
  • NEURON is particularly popular when one is interested in biologically detailed single neurons and their interactions.

Writing bio-plausible neural models in Tensorflow or Torch is certainly possible, but those tools are particularly useful when you want to efficiently train a network (normally by backpropagation), and bio-plausible models are not commonly written using these tools. However, I am aware of at least two tools that simulate spiking networks in Torch. These are used because the authors were interested in porting models similar to convolutional neural networks, but with spikes:

  • SpykeTorch High-speed simulator of convolutional spiking neural networks with at most one spike per neuron.
  • Sinabs used to port CNNs to neuromorphic hardware
$\endgroup$
3
$\begingroup$

If you want to build a neural network as a biological simulation, maybe none of these are the best options, since they are more suitable for deep neural networks. If you want to mimic synapses using some model as Hodgkin and Huxley, you must use some different approaches. For that, you may use NEURON environment (https://neuron.yale.edu/neuron/), which has some implementations of the theoretical models behind action potentials. It comes with a gui, but personally I don't like it, so I just code everything using their python's library.

On the other hand, if you are just looking for a way to model a network, without adding too much complexity, then any of your examples are probably are ok to build directed graphs.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.