Some Updates

I have reached some limits using Python, Tkinter and Matplotlib and I had to switch to DearPyGUI and converting more code into C through Cython. This took awhile but results are good for now, I did not realized how slow was Matplotlib with plot drawing..

Now that I have more tools to see what’s going on, I realized that LTD/P effects are more complex than I envisioned.. if a neuron responds faster to an input signal (say because of an LTP effect, or higher frequency input signal or because it has more connections or because is less inhibited ) then it immediately alters the flow of information … Weak synapses become oriented resulting in (as of now) unpredictable results.

Inhibition is also more complex, a neuron under inhibition could be forced to wait for the second activation signal to become activated, but I’m still not sure of how to do it… Right now the neuron remains in an undefined state when inhibited… Is not firing but is not in re-pause either, I haven’t decided what to do with it..

With more speed I could let the synapses form and break indefinitely and it became clear that there are strong synapses defined by data flow and weak synapses that form and break immediately, about 10% are weak synapses..

Firing Rates and Neuronal Synchronization

I’m defining firing rate as:

Cycles needed by a single presyanptic neuron to activate a postsynaptic neuron,

Assume a single presynaptic neuron could activate a single postsynaptic neuron. If the presynaptic neuron has to activate 3 times before it can activate the postysnaptic neuron then the firing rate is 1/3. The firing rate is then a function of how much potential can a single synapse bring per activation. So close (proximal) synapses to the neuron body would generate higher firing rates than distal synapses. So the firing rate is not entirely depended on the firing rate of the presynapstic neuron.

Another definition is for “semantics of dendrites” .

The semantics describes the relationship between two dendrites. If we define a Dendrite a set of synapses (with values ON/OFF) , then the semantic between dendrite A and B will be the percentage of synapses from dendrite B being ON, while dendrite A is generating an activation potential.. Still working on this definition.

I hit a dead end with the current development branch. I calculated the theoretical dendrites and then tried to actually obtain all of them within my simulation by doing a precise training. It did not take long to realize that most of the dendrites could not actually form because they were being blocked on way or another. So I decided to switch to a more advance model in which I included the semantics of dendrites. Till now dendrites were independent. The model is actually what I started with but was too complex to handle and it had a theoretical drawback, the AI would go “blind”. I implemented most of the changes and indeed the blindness problem is there and I don’t have yet a solution. What do I mean by blindness ? Is some sort of over-training which leads to synapses being definitively removed from neurons.

But more concerning than blindness is still neuronal synchronization. I also implemented a form of “firing rates”. But that immediately added a more chaotic behavior. Running same pattern would end up with different responses on different cycles, first would show up most probable response then the neurons will go through a cooling cycle and the next most probable response (if any possible), would show up…

Firing rates bring more chaos to an already chaotic model

More Delays

Most likely we are not going to make the November 16 dead-line for launch, unless…. Unless I skip the additional testing I had planned. Seems risky though, every change needs to be better tested, since, it seems additional bugs are always just around the corner. A better main menu interface was concocted . I hope to be the final version.


More in game screen shots. Artwork not final though.