Search the Mindcreators site: 

4.1.8 Random Neuron

Update Alert!

I have now finished work on a much more advanced version of the insect simulator named AnimatLab. AnimatLab is a software tool that combines biomechanical simulation and biologically realistic neural networks. You can build the body of an animal, robot, or other machine and place it in a virtual world where the physics of its interaction with the environment are accurate and realistic. You can then design a nervous system that controls the behavior of the body in the environment. The software currently has support for simple firing rate neuron models and leaky integrate and fire spiking neural models. In addition, there a number of different synapse model types that can be used to connect the various neural models to produce your nervous system. On the biomechanics side there is support for a variety of different rigid body types, including custom meshes that can be made to match skeletal structures exactly. The biomechanics system also has hill-based muscle and muscle spindle models. These muscle models allow the nervous system to produce movements around joints. In addition, there are also motorized joints for those interested in controlling robots or other biomimetic machines. This allows the user to generate incredibly complicated artificial lifeforms that are based on real biological systems. Best of all AnimatLab is completely free and it includes free C++ source code!

The page that corresponds to this one on the AnimatLab site is " Random firing rate neuron model"

1. Random Neuron Functionality

Sometimes a little randomness is a good thing. When an ant is out searching for food and it is not picking up any scents on its antenna then it will start a random search to try and find food. Bacteria and other microorganisms do the same kind of thing. Random behavior comes into play quite often when an organism is searching for something or has exhausted its repertoire of normal options for dealing with a situation. The random neuron was created to handle the modeling of such behaviors. The random neuron uses three random variable equations to set its intrinsic current. These three equations control the amplitude of the intrinsic current that is generated, the duration between bursts, and the duration of bursts. A random number is generated between 0 and 100 and it is fed into these equations to find the final values that are used. This allows the user to configure the system using the mapping functions that were used earlier for the sensory and motor neurons. So it would be possible to setup a neuron that randomly fired an intrinsic current generated from a bell curve, with a burst duration generated by a linear function, and an inter-burst duration that was constant. One question that might pop to mind is "why make things this complex?" Why not simply have a random number generator set the value of the intrinsic current at each time step? One big reason is that building a random neuron that operated in that way could jump all over the place from time step to time step. On cycle 0 it could be at 10 na, cycle 1 it could jump to -5 na, and then on the next cycle jump up to 15 na. But it would not stay in any one place long enough for that setting to propagate through to the rest of the system. It would almost be like a white noise generator which would ultimately have no meaning. The second important reason is that this would limit the system to using only uniform random variables. But uniform random variables are not always the best system to solve a problem. Say, for instance, that the random neuron was going to be used to control the turning of an insect for random searching. Normally, the insect would only want to make small course changes. It would only want to make a 120o turn very rarely. It would want the ability to make a large turn like that, but not often. This type of behavior can be simulated very nicely with an inverted bell curve. The large bulk of the random numbers in the middle of the curve would then generate a modest intrinsic current, but numbers on the edges of the curve would generate large intrinsic currents. Also, using random variable equations for the burst and the inter-burst durations insures that a value of the intrinsic current is on for long enough that it can have an affect on the rest of the system. Using random variable equations gives the user flexibility in how they want to set those parameters.

2. Random Neuron Properties

  • Il: This is the intrinsic current that will be used during the inter-burst duration.
  • Graph Selector: This is the section on the dialog that has three radio buttons labeled: Current RV Graph, Burst RV Graph, and Interburst RV Graph. The other graph properties are dependent on this setting. When you select graph type, A, B, C and D it is for the graph that is currently select with this property. Also, the graph that is displayed is the one selected here.
  • Graph Type: This property determines which type of graph to use. For a more detailed description see section
  • A: This property is one of the parameters for the mapping function. For a more detailed description see section
  • B: This property is one of the parameters for the mapping function. For a more detailed description see section
  • C: This property is one of the parameters for the mapping function. For a more detailed description see section
  • D: This property is one of the parameters for the mapping function. For a more detailed description see section
  • Random Neuron Dialog
    Figure 1. This is a dialog for setting the properties for a random neuron.

    3. Random Mapping Functions

    The random mapping functions are done exactly like the sensory mapping function. For a more detailed description of the mapping functionality please see section of the sensory neuron. The big difference is that there are three of these mapping functions for the random neuron and that they are used as random variable equations. The first equation is used to calculate the intrinsic current during a burst. The second equation is used to calculate the burst duration. And the third equation is used to calculate the duration between a burst. The input to each of the functions is a random number between 0 and 100. The equation determines the output value.

    4. Random Neuron Output

    Random Neuron Output.
    Figure 2. This graph shows the random nature of the output from this type of neuron.

    Figure 2 shows some output from a random neuron. The burst and inter-burst durations were decreased a lot more than would normally be the case in order to get several of them into the graph in a reasonable amount of time. Normally you would want these times to be much longer than is shown so that they could have an appreciable effect on the system. One thing that can be seen from the graph is that the value for the intrinsic current is at a different level for each of the bursts. Also, while the durations seem similar, it is possible to see that there are some noticeably longer bursts interspersed in the graph.

    5. Random Neuron Overview

    Random neurons inject an element of chance into the system. The user can control these systems by setting the properties which control the size of the intrinsic currents and the durations of the burst and inter-burst times. Random neurons will not be used very often. But they do provide a very important function. Within the insect simulator system they are really only used to help in building a random wanderer controller. This controller is used to implement a random search behavior in order to find food.

    << Previous Contents Home Next >>

    MindCreators.Com is edited and maintained by David Cofer. If you have any questions, comments, or just want to discuss the contents of this website, then email me at:

    Copyright © 2002 by David Cofer. All rights reserved.