Emulasim of a Neuron

   Just when you need it, I created a new acronym = Emulasim. I define it as not a true emulation but a step up from a simulation like halfway between simulate and emulate. I believe AGI falls somewhere in this category. From my own experiments, I emulate the connectome from given datasets and do a halfway job of emulating the neuron. So today I want to discuss Neuron emulasim.

In my C elegans experiments and other lower forms like Ciona, I used a simple model of the neuron. The attributes are:

  • The artificial neuron accumulates weights where weights are defined as the number of synapses and gap junctions that are connected between the presynaptic and postsynaptic neurons; e.g. if Neuron A has 3 synaptic connections to Neuron B, when A fires, it sends a message to B of a weight of 3.
  • A specified threshold must be met within a specified time frame in order for the neuron to fire.
  • If the threshold is not met in a specified time frame (e.g. 200ms) then the neuron hyperpolarizes by either assigning Zero (0) to the accumulator or a negative value.
  • Every time a neuron fires, its accumulator(s) is reset to Zero. 

Very simple but effective where neurons (neurites) do not change.


A flowchart of the simple neuron model

As my neuron model has evolved, I have added plasticity. I define plasticity in its simplest form as modifying the weights and connections in the network determined by neural activity. I break the act of plasticity into 4 changes:
  • Synaptic Strengthening
  • Synaptic Weakening
  • Synaptic Growth
  • Synaptic Pruning
You can see an experiment in this video:


This plasticity experiment demonstrates a very simple connectome and over time with specific sensory stimulation, the connectome changes. This is visible in the before and after images of the connectome. These images are adjacency matrices and each dot on the images are connections between neurons.

 


Let me expand the flowchart to include plasticity:


Let me break down this more emulated neuron:
  • Just like the simple neuron model, the neuron fires when its threshold is exceeded and the accumulator is zeroed out when the neuron fires or a specified time has been exceeded. All timers are also reset. The neuron is quiesced.
  • Every time a neuron fires, we add a small increment to the threshold value so that the threshold increases over time. This simulates synaptic fatigue. When the accumulator goes to Zero, the threshold is reset to its original value.
  • When a neuron fires it also sends back a message to the neurons that messaged it IFF the neuron fires within a specified time period; e.g. Neuron A fires to Neuron B and if Neuron B fires immediately (within a specified period) it messages back to Neuron A that it fired. This will increase the weight or strengthen the connection.
  • When the neuron fires, we increment a Growth accumulator. If the Growth accumulation exceeds a growth threshold, we add a connection. This is synaptic growth. If there is no neuronal activity in a specified period, the Growth accumulator is reset to Zero, thus it requires a lot of activity before growth occurs.
  • If a neuron fires and does not receive any messaging back from the neurons it fires too, the neuron begins weakening connections between it and the postsynaptic neurons by reducing the weighted values.
  • If a weighted value becomes Zero, the connection is pruned.
  • In cases of Inhibitory neurons, strengthening/growth is adding a negative number (e.g. -3 -> -4) and weakening/pruning is reducing the negative value (e.g. -3 -> -2).
This model is working well as far as emulasim-ing the plasticity model. The big disadvantage, as discussed in the previous blog post, is that we not only have feed forward messaging and recurrent messaging, but now we have added synaptic messaging between neurons. 

The parameter values and even the ability to do all or part plastic actions are also determined where the function lies. Neocortex neurons may have a much greater threshold and timed connectivity than say a hippocampal model. This is the real difficulty in connectomic modeling is how to set parameters based on function as well as machine specifications. A hippocampal model on a very slow system might not give you the results you desire or expect. Likewise a cortical model on a very fast machine may cause other issues downstream. It is like a cluster of rivers and all their tributaries. If all of a sudden you slow down the stream in a certain area, or speed it up, it may unbalance the rest of the system. 




Comments

Popular posts from this blog

Use Cases for the emulation of the Drosophila nervous system

Making Dronesophila Part 1

Creating Emulations of Nervous Systems