The Infinite Brain
In this project, I am undertaking the task of creating an infinitely scaleable brain. The idea is to create a structure that resembles an actual neural network in a brain that has been flattened and unrolled.
Biological Structure Overview
Neurons are made up of (essentially) four components: the Soma, axons, dendrites, and synapses.
Soma: stores the current charge of the neuron but also leaks charge over time. Once it charges up to a certain point, the charge is released via the axon hillock and sent down the rest of the axon to the synapses
Axon(s): the output trajectory (path?) of the neuron. Think of it as an extension cord from the Soma to the synapse
Dendrite(s): the input to the Soma. These tree-like structures collect and disperse the charge throughout the rest of the dendrites until it is collected by the Soma or dissipates.
Synapse(s): responsible for transferring the charge from one neuron to the next, usually via synapse-dendrite connection or even synapse-soma
Model Proposal
I don't need to simulate down to the exact proportions, so I propose building four elements:
Element_Soma:
Single element,
Very low movement probability or maybe even stationary.
When activated, it collects charge from all dendrites in the event window.
If the charge it collects is above a certain threshold, it tells the adjacent Element_Axon to “fire”.
If the number of times this atom “fires” within a certain number of activations, it dies and releases any Element_Axon and Element_Dendtrite attached to it
Element_Axon:
Chained together element
Very low movement probability or if it does move, it only moves “with” an Element_Soma or attached Element_Axon.
Only responsibility is to push a “fire” event to the next Element_Axon or Element_Synapse next to it (possibly integrate myelin sheathes into this element).
If not attached to either an Element_Synapse or Element_Soma, it dies.
Element_Dendtrite:
Chained together element
Very low movement probability or if it does move, it only moves “with” an Element_Soma or attached Element_Dendtrite.
Collects and perpetuates charge from stimulating Element_Synapse by pushing it in some direction along the attached Element_Dendtrites.
If not attached to an Element_Dendrite or Element_Soma, it dies.
Element_Synapse:
Attached to an Element_Axon
Very little movement or if it does move, it only moves with it's attached Element_Axon.
This looks for the closest Element_Dendrite and stimulates it by injecting the current charge it received from an Element_Axon.
If it is not attached to an Element_Axon, it dies.
May spawn new Element_Axon/Element_Synapse pair if it is constantly stimulated to strengthen the “learned” behavior.
Design Challenges
Given the previous information and stemming from the ever-present A-Life research cycle, some of my fears include:
Creating “attached” or “linked” elements. How to do this? Is it possible to do this?
Growing the network?!?! How can it grow? Each soma has an exponential decay function that determines if it spawns a new soma? Use Dreg/Reg?
Moving the network? Exponential decay function again? So maybe the outside edges “move” more than the internal edges?
Sensory neurons? Create separate elements designed to just look for things in their event window and have them stimulate themselves? Have other elements that stimulate them? I.E.: rods, cones and flash of light elements?
Output neurons? What can I do to interpret the output? WHAT DOES IT ALL MEAN?!?!?
Where can I find a u-shaped curve? Can I borrow yours?
Goals & Suggestions