June 26, 2007

First Synaptic Firing Test

The first synaptic firing test was a complete success. The test bed was a network of 1000 neurons contained in a 50×50x50 cube. Each neuron was connected to 50 other neurons via synapses, resulting in 50,000 synaptic connections. Each cycle of the program executes anywhere from 2ms (0 neurons firing) to 64ms (350 neurons firing, 15,000 synapses activated). 60 cycles were exceuted.

The testbed consisted of four neurotransmitters (A,B,C,D) seeded at random locations in the physical network. Transmitters A and B were given overwhelmingly strong excitory attributes while C and D were given very weak inhibitory attributes. This was done on purpose to test the synaptic connections and make sure my code was functioning. Five neurons were artificially stimulated to start the test.

The test worked wonderfully and even showed some oscillatory behavior, as evidenced by this video (apologies for the quality):

The visualization is a seperate code base, quick and dirty. The main code can generate log files which record neuron firing per step. This is then loaded by the visualization program and can be manipulated in 3D. Neurons firing are colored in red.

In the video, you can see three distinct regions becoming activated in an oscillatory pattern. The 5 initial neurons fire after a few cycles (neurons have a delay of a few cycles before activating their synapses, as well as delays after firing). After the first initial firings, large regions of activity begin oscillating. Nothing important scientifically but a good step for the project.

The next step is to implement the simulator. This simulator will place the nework in an environment and give it a “body”, complete with inputs and outputs. I also have a few performance improvements I’d like to make. The current setup naively iterates through all neurons, each cycle. The improvements would “schedule” active neurons in a cycle queue depending on when their event is active. Each cycle, the program would then iterate through neurons that have been flagged as having events taking place on that particular cycle. This is still in the planning phase but should save considerable time on calculations, allowing larger networks.

It should also be interesting to see which is more important, quantity of neurons or quantity of synapses per neuron. If the synapse count were lowered, neuron quantity could increase.

Here are some additional videos. Various growth settings for the networks give some interesting behavior.

1000 Neurons, 10 synapses each. Large synapse growth distance, large variance. Low firing threshold. Fast fire and recovery time.

1000 Neurons, 20 synapses each. Large synapse growth distance, large variance. Average firing threshold. Slow fire and recovery time.

1000 Neurons, 20 synapses each. Synapse growth direction biased towards vertical growth. Average firing threshold, average fire/recovery times.

One Response to “First Synaptic Firing Test”

  1. Tim Says:

    It seems like in the setups depicted by the middle two videos, the upper right-hand group is neglected with few or zero neurons firing. Do you know what it is about these setups that leaves this region dormant during the run?

Leave a Reply