3.3 Research Outline
1. Darwin's Playground
The first work I did for all of this was to build a plug-in based software package for doing research into any type of evolutionary algorithm. I called this application Darwin's Playground. The current version is based on COM objects and has a VB application for the user interface. It is split into two parts. At its lowest level is the GeneticLibrary. This is a library of COM classes and interfaces that can be used interchangeably. I have already implemented systems that can handle several different types of genetic algorithms and genetic programming, and used them to complete some interesting projects. The second part is the user interface application. It allows the user to build a new project by dragging and dropping items from a library of genetic components, and then run the project and analyze the results. All of the data generated can be stored in either a SQL server, Oracle, or Access database. Also, the system can perform distributed computing to spread the load of evaluating fitness over numerous systems in a server farm. There are libraries out there that can be used to do genetic algorithms and such. However, I created this primarily because I wanted to learn the nitty gritty details of how such systems worked, and I wanted to have my own library available that I understood inherently and could easily modify. Also, I have not seen any of the libraries out there that have as much flexibility. At some point I would like to upgrade this whole system to be based on the new dot net class system. I will be using this system later on in my research to evolve genetic algorithms that will grow the neural nets. And the user interface for the insect simulator system is a plug-in for this application.
2. 2D Insect Simulator
This is the project that is being documented now. My main purpose for this project was to attempt to reproduce as closely as possible the research done by Dr. Randall Beer. Since he had already successfully completed this work, I knew it was possible to get it to work. Also, he gave a very thorough blueprint for how to build this system in his book Intelligence as Adaptive Behavior. One philosophy I have learned the hard way is that you should start small and always take small steps to get where you are wanting to go. Never bite off more than you can chew. (See the section on past failures for an explanation of why.) Therefore, this was a good place to start. It was something that definitely worked for someone else and was not to complicated.
3. 3D Insect Simulator
The 2D simulator was a good start, but it is not very realistic. It is highly unlikely that a neural net generated in the 2D system would translate directly into a real life robot and work in the same way. Therefore, the next logical step is to use a 3D physics simulation package to add some realism to the whole thing. These types of packages simulate all of the forces, contacts, gravity and so on that occur to objects in real time. While this will still not be exactly the same as running in a real robot, it will be very close to what really goes on in the natural environment. Once I have the system able to use the physics simulator it will almost certainly be necessary to go back and modify the engineered neural net so that it will work with this more realistic, three dimensional robot.
4. Real Hexapod Robot
After I have a system that works well in the virtual 3D world, the next step will be to build a real Hexapod (six-legged) robot and have the neural net that was engineered control its behavior and see how it behaves in the real world. Hopefully the 3D system was accurate enough that the behavior seen in the real system is very close to what was simulated. For this phase of the research I will purchase and build the Hexapod robot kit shown in figure 2 and will then modify it with extra sensors and wireless communication systems. I will have to add some extra sensors to detect contact with the legs, pressure sensors for the feet, and antenna sensors. The brain will most likely be housed in a laptop computer that has two-way, wireless communication with the actual robot. I will probably also add some kind of sound sensor to the robot as well, and instead of using scent to home in on food supplies use sound.
5. Growing Neural Nets
The next step will be one of the most fun. I want to use genetic algorithms, along with some of the principles of developmental biology, to actual grow and evolve neural networks that can control the insect and allow it to survive just like the engineered network can. You might say, "If you already have a network that can allow the insect to survive, then why do this?" The reason is that the network I will have used to this point is a completely man-made thing based on research on how we think that insects nervous systems work. It is much simpler, and much less adaptable, than real systems. Also, if I can figure out a way to evolve a simpler system like this, then it should be possible to take the next step and try and evolve a system that can do other, more difficult things. Another point is that in order to evolve systems that do what you want, you do not have to understand the explicit details about how the whole neural system works. You just have to have a general understanding of the systems involved, what they do, and how they interconnect. You then let evolution build a system that works and analyze that system to try and understand how it works. And unlike a real biological system, you have complete control and access to everything taking place within the brain of that organism. You can shut off a portion of the insects brain and apply the exact same stimuli to see what affect that had and so on.
6. More Realistic Neurons
The insect simulator system as it is now can not in any way learn based on experience. The reason is that even though the simulator is based on how real neurons work, it is not realistic enough. For the neural networks to be able to learn they have to be able to modify their connection strengths, and possibly even their connectivity pattern. In the current system when a neuron is created it has the same connection strength throughout the life of the organism. There has been a great deal of research done on how the connection strengths change due to interaction with the environment. Gerald Edelman and George Reeke in particular have done a lot of research, theorizing, and modeling of these types of systems. The next step for my research is to modify the neuron simulation to incorporate this type of flexibility and then to move on to trying to use it to evolve insects capable of learning and adaptation in somatic time.
7. Past Failures
I have already made one stab at trying to build a system that uses genetic algorithms and developmental biology to grow neural nets. To put it bluntly, I failed. However, it did teach me a number of important lessons.
That is the basics of the research I would like to work on within the next 2-5 years. I definitely have some long term plans in mind as well, but they will depend critically on what happens with these initial steps. So there is no point in going into details on those. I hope to have the 3D simulator and the hexapod robot system done by January 1st, 2003. (Here's hoping.) Then I begin working on a new system to evolve the neural nets using all of the information garnered from my past failure and research into this area done by other scientists. I plan to come back and update this website after I complete each phase of my research. So if you are interested, then be sure to check back every six months or so to see if there is anything new!