Connections in the brain can be both excitatory (which increase the probability of a post-synaptic action potential), and inhibitory (which decrease the probability of a post-synaptic action potential). Most attention has been given to excitatory connections, and understanding of the functional meaning of inhibitory connections has focused on the role of lateral inhibition as a competitive mechanism, which can sharpen distinctions between different inputs. However, in a recent paper (see link below), we have proposed another, perhaps even more important, functional role that lateral inhibition can play: noise reduction through the introduction of negative correlation into the noise, which provides a more rapid cancellation of noise in pooled neurons, providing an enhanced central limit effect for a population of neurons with similar response properties, as is typically found in cortical columns.
In order to study the effect of lateral inhibition on noise reduction and correlation in neural systems, we developed a simple model and tested it on a stimulus tracking task. The model consists of a number of columns, each containing a group of neurons (see the Figure 1 below). Neurons have a particular response (in terms of their membrane potential, which controls whether or not the neuron emits an action potential) to the position of the input stimulus; a neuron will be most active when the input stimulus is in the optimal-response location for that neuron, and the activity will decrease as the stimulus moves further away. The neurons in any one column each have the same response properties, but the optimal response location varies across columns (all neurons across all columns have the same parameter values in every other respect). The neural activity, which is triggered by the stimulus, plus a lot of background noise reflecting the noisy neural environment, can be characterised by counting the number of spikes that occur for each neuron in a short time period (called the estimation window). The estimation window which slides along with time, thereby always giving a current estimate based on only recent neural activity. The combined activity for a given column of neurons gives the contribution of that column to the current position estimate; the contribution of all the columns is aggregated to give an overall position estimate. Finally, we can compare this position estimate with the actual stimulus position, to evaluate the model's performance.

Figure 1
For each run, there are two simultaneous simulations: the test condition, which is a model with lateral inhibitory connections, and the control condition, which is the same model but without the lateral inhibitory connections. The comparison of these two conditions thus allows us to examine the effect of lateral inhibition, using a cortical model with spiking neurons, performing a real task. More details of the model, and our findings, can be found in our paper, available for download here. The software that we wrote to implement our model has also been made available for download here, and we have added some simple instructions for its use (see below).
Our software is written in the MATLAB programming language, and requires this in order to be run. It was written under version 7.01 of MATLAB, though it may also function correctly in earlier versions. The package consists of three files: 2 m-files, which contain program code, and one fig-file, which contains graphical data. All three files are contained in a single zip archive for downloading (see link below).
The software has been designed with both ease of use and speed of execution in mind. For the latter, numerous optimisations have been applied to the code, meaning that in spite of simultaneously running two numerical simulations, each containing hundreds of spiking neurons, it does not generally take long to run, completing in a matter of seconds on most machines with default simulation values. For the former, a GUI has been provided which allows for the easy configuration of simulation parameters (and some display options), as well as displaying results, and giving a running status. Both the GUI and the main program code can be edited to suit the purposes of anyone running the code, which has been extensively commented to aid this purpose. Our only requirement is acknowledgement of our authorship of the original code in any software based on it or modified from it, and citation of our paper where it has been used for research purposes.
There are three simple steps to run the software:-
The simulation will then run with its default settings, generating an output in another window as its running, and further output after it's completed. To exit from the software, simply click the 'Exit' button in the GUI window.
This is the part of the software that is used to control the simulations, set the parameter values, and display numerical results. Figure 2 shows the GUI window. The three large buttons at the top allow a simulation to be started, the software tool to be completely closed (this will close any other windows it may have opened as well), and the default simulation values to be restored. On the top-right, there is an option to have online display. This will show the stimulus position, the position estimates from the two networks (one with, and without, lateral inhibitory connections), and the spiking activity of all of the neurons in all of the columns in the current estimation window. This display is updated continually as the simulation runs, allowing an intuitive visualisation of the stimulus-tracking task However, it also slows things down quite considerably, hence when running long simulations, or when the online display is not needed, these is the option to switch this off.

Figure 2
The left-hand panel contains three sets of parameter values that can be entered/changed simply by typing the desired value in the corresponding box. The simulation parameters control the total length of the simulation, the time the stimulus spends in one position before moving to another ('Input Time'), and the size of the estimation window used (i.e. how far back from the current time should be included in the spike count; 'Estimation Time'). The neuron parameters control how many neurons are in each column, how many columns are to be used, and (for the network with inhibitory connections only) the strength of the inhibitory connections between neurons in the same column. Finally, the input parameters section allows control of three parameters which essentially scale the stimulus (lambda core), control the extent to which the input stimulus is position-dependent (c), and determine the spatial resolution of the the neurons in terms of the input space (see the paper for more details about these).
The right-hand panel displays the output for the two networks, updated at the end of a simulation run. It shows (for each of them) the overall firing rate, the mean number of spikes per neuron in the estimation window, the mean estimation range for each stimulus location (a measure of estimate reliability), the mean correlation between neural outputs (spike trains) within a column, and the mean-squared error between the position estimate at the end of each period in which the stimulus was in one location, and the actual stimulus position at that time (averaged across all periods).
Finally, at the bottom is a status line, which either prompts for the simulation to be started, or warns that the simulation is currently running (useful in cases where online display has been switched off).
In addition to showing numerical results in the main GUI window, the software produces a number of other output displays to assist with analysis. Figure 3 presents the online display that is continually updated while the simulation is running. It contains all the columns for each network, and shows the spike train for each neuron within the current estimation window. It also displays the stimulus position (square), and the position estimates from the two networks.

Figure 3
Figure 4 gives the position estimates from both networks, along with the actual (target) stimulus position.

Figure 4
Figure 5 shows the autocorrelation of the position estimate for both networks. This provides a measure of reliability (a more reliable estimate will have a lesser tendency to rapidly switch between widely differing values).

Figure 5
Figure 6 displays the correlation curves for the two networks, alongside a baseline that shows that minimum possible correlation for a network with the given number of neurons in each column. For the case of a moving stimulus, the firing rates of neurons in the same column would be positively correlated due to their each having the same response properties to the stimulus (e.g. when the stimulus is close they will all tend to have a high firing rate, and when it is far away, they will all tend to have a low firing rate). As we are interested in the effect of lateral connections on the correlation, it is desirable to remove this stimulus artefact, and so the correlation values with the stimulus trend removed are also presented; these may be considered the 'true' mean correlation values.

Figure 6
Figure 7 gives the mean correlation values between neurons in different columns. It gives a Mexican-hat type shape, as a result of the layout of the columns in terms of response properties (see the paper for more details of this).

Figure 7
The online display (figure 3) is shown and continually updated during the simulation; the other output displays (figures 4-7) are shown once the simulation has completed.
Durrant, S.J. and Feng, J. (in press): Negative Correlated Firing: The Functional Meaning of Lateral Inhibition Within Cortical Columns, Biological Cybernetics (pdf)
This page is maintained by Simon Durrant; last updated on February 8, 2006