Obstacles and How to Overcome for Connectomic AI

Working with animal connectomes to emulate and create neurorobotic working systems has a number of issues that are surmountable but need to be considered.

1) Finding Connectomic data

Data is still shy on the public domain. C elegans is the only full connectome available I am aware of. There are a number of other partial data sets and I would assume a number of data sets are in private hands. In addition, large data sets have a huge number of orphan and missing neuron and synaptic connections.

How to overcome

Going to conferences and making personal connections would most likely get access to the number of private data sets. In addition, having the backing of a major corporation could also assist in opening doors to private data sets.

Providing funds to researchers could also create data sets specific to the data needs of emulations. I was part of a proposal that estimated roughly $30,000 USD would get us the ant connectome dataset so this would be in the neighborhood we would want to shoot for. 

Orphan and missing neuronal data can be ignored for basic emulations unless these become necessary (obviously) but there are techniques that can fill in the “blanks”; however, it would have to be worked out on an as needed basis. The good news is that we have a number of behavior papers on a large number of species so testing emulations and observing robotic behaviors makes the process a bit easier to prove out. Ablation experiments that can be reproduced in our emulations also help tremendously to prove the validity of the emulation.

2) Useless connectomic data

One of the challenges of doing nervous system emulations is that animals use a portion of their (proto) brains for homeostasis (e.g. eating, sex, birthing, defecating, digesting, etc). These are not needed for neurorobotics per se. Eating might be differentiated into charging batteries et al but for the most part, we as animals, devote a number of nervous system functions to maintaining our survival and not to general intelligence. However, these functions are so intertwined into our neural code that it is literally impossible to dissect and remove without creating other behavior missteps.

How to overcome

Just leave these extraneous neural circuits in the nervous system emulation and remove functional neural clusters where we see activity that does not contribute the overall success of the emulation. Obviously, this would have to be done on an experimental basis; i.e. remove, test, repeat. Why this these clusters should be removed is because of the computing power required to run an emulation and there is no need to waste that computing power in functions of no value.

3) Muscle connectivity

To operate a robot via an emulation, it is critical to get the motor neuron to muscle connectivity correct. Motor neuron -> Muscle needs to be included in the connectomic data. There is a balance in how to set this up. If we connect the wrong motor neurons to the wrong motors/actuators, we obviously won’t get the proper results. There are obvious emulation to motor connections such as leg muscles to movement motors but there could be more tricky motor+muscle combinations that need further scrutiny.

How to overcome

Connect motor neuron activity to specific motors/actuators, test, tune, repeat.

4) Defining sensory input

Like motor activity, we must set the activation of sensory neurons in accordance to what we would anticipate the emulation would adapt too. The nicety of sensory input is that we can alter how we set up sensory input to achieve specific ideas. An example of this is when I used a sound sensor and decibel threshold to stimulate food sensing sensory neurons on the C elegans emulation. In this example, the sensor could have been a chemical sensor instead if there had been a different requirement. The beauty of being able to adapt different sensors in emulations, allows us to manipulate the emulation to achieve specific criteria and use sensors foreign to the biological sensors while still maintaining general intelligence.

An issue as we approach higher level animals is the sensor to sensory neuron ratio. In most animals, there are a huge number of sensors which are absent in most, if not all, robotic setups. Humans have millions of sensors that we distill to 6 or 7 functions (vision, audio, temperature, pressure, smell, taste, pain) but each of those sensors connect to a multitude of sensory neurons. 

How to overcome

Similar to muscles above, the developer must set how a sensor(s) should interact with a given set of sensory neurons. Then there needs to be a division on the number of sensor inputs to which of the sensory neurons in the given set. For example, temperature might seem like a one for one instance; i.e. the temperature expressed to the activation of a neuron. However, temperature can be addressed over a wide area and thus can be used to directly activate a number of sensory neurons as degrees of variance. Whereas a robotic system might have 100 temperature sensors and only those above or below a certain threshold activate a given set of sensory neurons. 

The key is not to over sensitize or under sensitize. This can be achieved by setting, testing, tuning, repeat. 

 5) Running a large emulation

There are a few ways I have ran emulations. As the number of neurons increase, the computing power also increases. Once we get to 100s of thousands neurons (which comprises small insects), we need to emulate on a large scale. 

There is no easy answer to this problem. Keep in mind that a true nervous system emulation should take place in real time.

How to overcome

There are three ways I have ran emulations:

1) Each neuron as its own program

2) A large adjacency matrix in a single program

3) Break up functional nervous system areas into matrix driven applications

The best results are individual neurons as programs, but this can obviously become a major problem as you go up the evolutionary scale. The worm is not a problem but Drosophila becomes much more of an issue to the extent of the emulation becoming non-functional. The other major problem with this approach is that we must message between the individual apps as we activate neuronal activity. Over time, very active neurons begin to stack the messaging and eventually the app cannot process the messages fast enough and the emulations begins to falter. This might be overcome by much faster machines and the use of GPUs?

A large matrix also becomes unwieldly once a large amount of activity is present. The matrix computations begin to slow down considerably once the activity increases and the emulation will go from real time to very slow processing.

I have been experimenting with breaking up relatively small neuronal functional groups into matrix computations. As an example, C elegans has Sensory, Interneuron and Motor neurons. I can break each of these into their own matrix and run on different computers whereas each matrix and resulting computations is only a few 10s or just over a hundred elements. Further, I can divide each as Left, Right, Dorsal and Ventral to break the neuronal clusters into much smaller numbers allowing the computing power requirements to be minimized. 

There is still the issue of inter-functional messaging that needs to be addressed. In addition, there is a balance that is required to make sure one functional group does not become a bottleneck to the point of causing the entire emulation to break down. Putting functional programs unto the right computers with certain computing power and networking to allow the right amount of message exchange, is a delicate tuning issue that must be addressed at all times.

I’ll admit my asynchronous, concurrent programming skills are not proficient to an expert level. Having developers that know and understand these advanced concepts could increase the likelihood of success. In addition, having the dollars to procure greater computing power and computing distribution could also add to much greater success. I will add that my goal has always been to emulate with relatively low computing power to allow for SWaP (Size, Weight and Power) systems which are required for exploration beyond the limits of connected systems (think Mars exploration). 


Needed!

With all these issues, the data format I seek is rather simple:

Presynaptic Neuron or Sensory Organ

Post synaptic Neuron or Muscle

The number of connections (e.g. number of synapses/gap junctions)

The type (sensory neuron, interneuron, motor, muscle, etc)

With these four elements, AGI can be achieved. If you have access to connectomic data sets, please share. Of course, I am more than willing to share any and all my experimental data and code with anyone that would provide this data. Thank you ahead of time.


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