Neural Networks are not going to work until we understand how the brain works. We know that neurons transmit signals, and that depending on how they are interconnected they cause our bodies to do different tasks.
However, that is the extent of our understanding of the entire system. Some scientists have proposed that our actions are the result of random firing of neurons in the brain, along with the interpretation of sensory input. In other words, they believe us to be a pattern-matching machine that has its state influenced by a random number generator. I’m pretty certain that is incorrect, but it would take me having a P.H.D in Artificial Intelligence before anyone in the scientific community would recognize my work.
So instead of getting myself a P.H.D., I am going to do an experiment like any good scientist would. Instead of trying to mimic the brain and how it works, or trying to mimic the psyche, I am going to start from scratch. I am going to build an virtual machine and pump into it a whole bunch of entities, each of which is composed of randomly generated code. Those entities that run without crashing will be selected to move to the next round, and any “dead” entities will be replaced with newly generated ones. This will continue until I have at least 100 entities that do not crash.
Once the main pool of entities is established, the entities will be paired up. Each pairing will produce 1 to 4 child entities that are composed of sections of the parents code. Each child will have up to 100 chances during generation to receive a mutation in their code, though the chances of a mutation happening will be quite small. A mutation is the flipping of a single bit in the code.
Any child entities that crash will be considered dead and not used in the creation of the next generation.
All of the original entities will have their code saved. For child entities, references to their parents’ code will be stored, along with any mutations that took place.
Penalties will be placed on entities that have excessive amounts of unreachable code. They will have a lesser chance of being selected for the creation of child entities. What the definition of excessive code is I do not know yet, but I will need to implement it to keep code bloat down.
I’m still working out all of the details, so any of this should be considered preliminary. Wish me luck!