Welcome to Neuromorphic Neural Network Simulator Documentation

green

Introduction

The Field Programmable Gate-Arrays(FPGAs) cluster offers a powerful hardware platform capable of performing realistic simulations of Biological Neural Systems(BNS). However, making use of such powerful platform is not easy and not all users have enough understanding and experetise to exploit such hardware. Having a user friendly software platform to interact with the FPGAs in a much higher abstraction level will allow more researchers to make use of such powerful hardware without having to spend a lot of time actually understanding and programming the platform. Such user interface takes away a certain level of abstraction and makes it intuitive and easy to generate desired biologically inspired neural network with desired neuron models, synpase models, network size, network topology and desired stimulation configuration for the neural network. Here, we discuss web based user interface that we developed to interface with the FPGA cluster that allows users to easily and intuitively create desired network to be run on the FPGA cluster.

Note

So far only biologically inspired spiking neuron models are implemented.

Overview of the platform

The simulator platform is mainly composed of three distinct functional layers - software layer (Web Interface), intermediate layer (Interface Manager(IM)) and hardware layer (FPGA cluster). Software layer is the user interface which acts as front end part of the platform that allows users to interact with the platform.

The web interface is linked to the interface manager (IM) which works as an intermediate node between web interface and the FPGA clusters and manages flow of packets to and from both FPGAs and web interface. IM receives the simulation initialisation files, which contains all the information about the simulation in the xml format, from the web interface generated by the users which are then sent to the appropriate FPGA nodes for simulation. Once the simulation has completed, the results packets are sent by the FPGA clusters to the IM with correct information of simulation and user for correct redirection. IM then handles the incoming packets from the FPGA cluster and send it to the users.

The simplified version of the workflow can be shown as below:

_images/dataflow.jpg

Figure1: Simplified work flow of the whole process

Some of the key features of the web interface are listed below:

  • Custom network of spiking neurons with parameterisable simulation and models with custom stimulation parameters.
  • Parameterisable neuron models from the model library(Current Models: Integrate and Fire, Leaky Integrate and Fire, Izhekevich).
  • User specification of neurons with same or different neuron models. If you want same models with different paramters then you can also do that.
  • Selection of layered or non-layered network. Layered network would be a feedforward network where the first layer is the input layer and last layer is the output.
  • Selection of same or different neruon models on each layer. All the neurons in a single layer will have the same neuron model.
  • Topology selection; fully interconnected, random or probabilistic(30% connection at the moment)
  • Simulation parameter configuration, such as simualtion time, timestep size, watchdog period etc.
  • Stimulation parameter configuration such as start and end time and voltage. [Only step stimulation is implemented at the moment]
  • Visualisation of the spike train obtained after the simulation as raster plot.

Requirements

The following requirements should be met:

  • Mozilla or Google chrome browser (Recommended).
  • CPU requirements

Disclaimer

  • The contents of the platform remains a sole Intellectual property of Nottingham Trent University.

Bug reports

Did you find a bug? Open an issue on github . Thank you.

Platform Features

This part of the documentation is focused to provide a comprehensive details of the interface for users to make it easier to understand capabilities and limitations for the desired simulation. This section covers all the components of the interface and how they all come together during network creation with different possibilities for different types of neuron models, network type, stimulation and capabilities to control how the simulation runs.

The interface employs configuration options presented in the form of questionnaires for easy and straightforward configuration. We will cover different aspects of the interface followed with an exemplary tutorials on how to use the platform.

The simulation workflow is simplied as a flow of events in a sequential order.

User Account

All the users must create an account before proceeding with the simulation for a simple reason that all the configurations and results are to be stored in a corresponding user folder.

_images/registration.png

Once the account has been successfully created, users can access all the previous simulations or current simulations. The users can also start, stop or abort simulations at any time.

_images/manageacc.png

Simulation Parameters

The first step of the network creation is defining the simulation parameters. Here, we define basic parameters for the simulation such as timestamp size, no.of neurons, units for simulation, how long to run the simulation etc.

The user has to choose wether to have all the neurons with the same model or have a combination of different models. In case of different model option, the user has to choose how many of the neurons will use a different model.

Parameter Description
Timestamp Time bin size
No.of Neurons Total no of neurons
Are all neurons same model? Same models for all the neurons or use different models
How many different models? If different model is chosen
Simulation units either in milliseconds or seconds
Simulation time How long to run the simulation in units selected earlier
Watchdog time Time in ms to wait for a packet

Neuron Models

The simulator covers most widely used neuron models from a simplest Integrate and Fire Model to a rather complex Hodgkin-Huxley(in progress) models. All the models are parametrisable with easy interface to change the parameters. Also, a network can have a combination of these models. For examples, for a layered feedforward network, input layer can be comprised of one model and the next layer be another and so on.

Note

No two models can be in the layer for a layered network

Integrate and Fire

Integrate and Fire(InF) is one of the simplest and earliest neuron model. The model is given by,

I(t)=C_\mathrm{m} \frac{d V_\mathrm{m}(t)}{dt}

which is simply the time derivative of the law of capacitance, Q=CV. With input current applied, the membrane potential increases with time until it reaches a threshold voltage V_{th} at which point a spike (delta function) occurs and the voltage is reset back to the resting potential. One of the major shortcoming of this model is the fact that there is no sense of time-dependent memory meaning the voltage is retained if it is below threshold. In real neurons, there is diffusion of ions which reduces the voltage.

There are four parameters for this neuron model:

Parameter Description
Absolute Refractory period Inactive period after a spike
Threshold voltage Voltage at which a neuron emits a spike
Reset voltage Membrane voltage neuron drop to after a spike
Action potential Initial membrane potential

Leaky Integrate and Fire

The memory problem present in Integrate and Fire model is mitigated in Leaky Integrate and Fire model by introducing a ‘leakage’ of membrane potential, reflecting diffusion of ions that takes place throught the membrane to return the membrane potential to a resting potential value. The model can be described with,

I(t)=\frac{V_\mathrm{m}(t)}{R_\mathrm{m}} + C_\mathrm{m} \frac{d V_\mathrm{m}(t)}{dt}

where R_{m} is the membrane resistance. The leakage term \frac{V_\mathrm{m}(t)}{R_\mathrm{m}} is introduced which governs the leakage of ions resulting the voltage to return back to resting potential when no input current is applied.

Parameter Description
Absolute Refractory period Inactive period after a spike
Threshold voltage Voltage at which a neuron emits a spike
Reset voltage Membrane voltage neuron drop to after a spike
Capacitance Membrane capacitance
Resistance Membrane resistance which governs current leakage
Action potential Initial membrane potential

Izhikevich

Integrate and fire and Leaky integrate and fire models are simplest neurons models which replicates some dynamics of the neurons but they are not biologically plausible models. For a more biologically plausible models many neurons models are proposed but they get complex resulting in large computational requirements which again is not very useful to model a network of such neurons. Izhikevich neuron model falls in the middle, encompassing biological plausibility and simple and efficient enough to model computationally.

Izhikevich model reduces a complex biologically plausible Hodgkin and Huxley model to a two-dimensional(2-D) system of ordinary differential equations of the form,

v^{ '} & = 0.04v^{2} + 5v + 140 - u + I

u^{'} & = a(bv - u)

with auxiliary after-spike resetting

if v \geq V_{th}, then \begin{cases} v \leftarrow c \\ u \leftarrow u + d \end{cases}

Here, v represents the membrane potential of the neuron and u represents a membrane recovery variable, which accounts of ionic (in)activation. When the membrane potential reaches a threshold, V_{th}, the membrane voltage is reset back to the resting potential. Please refer to Izhikevich paper for detailed information.

The parameters that are available for users to configure from the interface are:

Parameter Description
a Describes time scale of the recovery variable u
b Describes sensitivity of the recovery variable u
c Describes after-spike reset value of v
d Describes after-spike reset of the recovery variable u
Threshold voltage Threshold potential for spike
Initial action potential Starting membrane potential
Initial membrane recovery Initial membrane recovery value
Action potential Initial action potential
Membrane recovery Membrane recovery value(u)

Custom Models

—Under Developement——

Topology

In terms of the topology, we are looking into an architecture of the network and interconnections among neurons. The architecture of the simulated neuronal network can be divided as layered and non layered. Layered networks that can be implemented with this platform is a feedforward network. No recurrency is possible at the moment for a layered network. Different neuron models can be implemented for each layer, for eg. input layer can be of Leaky Integrate and Fire neuons and layer 2 can be Izhikevich or any combination of the available neuron models.

Within layered and non-layered networks, how the neurons are connected can also be altered. Manual connection is not a suitable choice since it is labourous and takes very long time to configure one by one. Hence, three differnt options for automatic interconnections are presented. Please see Interconnections for more details about the options.

Architecture

The first step of the network creation is specifying whether to create a layered or non layered network.

_images/layernolayer.png

Figure: First step of network creation

Layered

The figure below shows a typical graphical representation of what a layered network is. The first layer in the layered network is the input layer where stimulus are applied and the last layer is the readout layer. The interconnections among neurons between the layers is described in Interconnections.

_images/topology_layered.png

Figure: Graphical illustration of the layered network

Number of layers need to be specified. Neuron are numbered in an increasing order from the first layer to the last. The menu guides to select number of neurons in each layer along with neuron models for each layer if different neuron model option is selected.

_images/no_of_layers.png
_images/no_of_neurons.png
Non-layered

In contrast to layered network, non layered network has no apparent layered structured. Any two neurons can be connected to each other. The user has full control over which neurons can be assigned as input neurons and output neurons.Recurrency is also possible in this type of non layered topology. The topology can be illustrated as shown in the figure below.

_images/topology_nonlayered.png

Figure: Graphical illustration of the non-layered network

Interconnections

In addition to layer topology, interconnections among different neurons is also configurable with the web interface.

Fully interconnected network
Randomly connected network
Probabilistic network

Stimulation

External sensory stimuli are transduced into electrical signals which results a specific network response. Hence, ability to apply stimulation is very important for any kind of spiking neural network simulators. Here, we present available options for the stimulation and plans for further stimulation options.

Step current

Frequency based

Biphasic stimulation

Results

Deals with results collation and further analysis

Examples and Tutorials

This section will shows the features of the web app. —to be completed——–

Developers Documentation

Developers page—–in progress….

This section will include details on the codebase.

Contact

If any questions please contact Nikesh Lama @ nikesh.lama2015@my.ntu.ac.uk