The Neuroevolutionary Solver “How to install and run” section is pretty much complete. These instructions should make it easy to get a NS environment up and running so you can perform your own experiments. More updates to come in the future, making the NS one of the easiest systems to use for Evolution of Artificial Neural Networks.
So sometimes when you are working on some code, you like to write a little bit of debugging code and build it into your system so you can confirm that a component is working as it should.
I had built such a piece of code to be certain that the artificial neural networks we use as phenotypes are consistent between generations. The code confirmed that structurally they were consistent and that their output is consistent after one step of evaluation. The first evaluation of the reformed network has not propagated through the network completely and consequently the very first set of outputs of your neural network are not as precise as they were in the previous generation. The second evaluation puts the neural network back to its original normal state. In a future iteration of the system I plan to initialize the networks once before they are placed in an evaluation environment eliminating this slight variation.
Having said all that, the code that verified these phenomes itself had an error. An errant semi-colon was placed at the end of an if-statement which forced the debug code to run for all NEAT experiments instead of just NEATforXOR experiments.
The bug has been fixed and all the downloads on the Neuroevolutionary Solver page have been updated with correct versions of the code.
Bugs are fun!!!
When I was quite young my mother gave me a grow your own crystal kit. It came with a bag of Alum and instructions. I first had to grow seed crystals in a super saturated solution of Alum and water. Then I placed the best seed crystal at the bottom of a jar and covered it in another saturated solution of Alum. After several weeks I had a fairly nice big crystal, formed from my seed crystal. It didn’t do anything except look pretty.
Scientists have really stepped that up a notch with these Self-Assembled Orgaic Circuits. In order to form these complex structures they create a silicon dioxide substrate with gold electrodes using conventional techniques. They then submerge the substrate in a solution containing the organic semiconductor and the molecules arrange themselves on the substrate in a densely packed single layer of molecular layer. Prior work has developed faster circuits but this method is extremely easy to deploy.
This type of technology will allow complex electronics to be embedded in items where it was previously not possible. It opens up the possibility of structurally flexible electronics that are cheap and easy to assemble. You may have a computer directly embedded into things like coffee cups, cereal boxes, newspapers, or have portable display devices that can roll up or fold up without complex engineering requirements.
Very cool future possibilities.
In a paper published today in PLoS Genetics the research supporting the value of so-called junk DNA gained more ground. As is stated in the article biologists have known about junk DNA for many years but it was felt that it was mostly extraneous data in the genetic code.
If you have read the research behind SDNEAT, you know that scientists are starting to change their perceptions of junk DNA. Segmental duplications seem to be critical in the evolution of species, they allow for high levels of genetic variation and mutation with a smaller chance of disabling the original genome all together.
This new study suggests that DNA ‘retrotransposons” are important to human evolution. One specific set of retrotransposons are called Alu elements:
“Alu elements are a major source of new exons. Because Alu is a primate-specific retrotransposon, creation of new exons from Alu may contribute to unique traits of primates”
Perhaps as an extension to SDNEAT the algorithm to merge a segmental duplication into the genome being mutated could be extended to allow for transposition of the identified segment within the genome. These higher order mutations could be exceptionally valuable when dealing with extremely complex solution spaces and genomes.
These automatons are certainly not adrift but they are definitely airborne and capable! Computer Scientists at Stanford have developed an autonomous helicopter that can learn from a human expert pilot to perform complex manoeuvres better than the original human expert!
The learning system does not just copy the controls for performing the manoeuvres it watches several built in sensors for the state of the environment around the helicopter and through several iterations develops an algorithm that can handle situations that were not part of the training but allow the autonomous pilot to complete the manoeuvre. These adapted agents could even keep more precise control over the aircraft than the original pilot could.
“For five minutes, the chopper, on its own, ran through a dizzying series of stunts beyond the capabilities of a full-scale piloted helicopter and other autonomous remote control helicopters. The artificial-intelligence helicopter performed a smorgasbord of difficult maneuvers: traveling flips, rolls, loops with pirouettes, stall-turns with pirouettes, a knife-edge, an Immelmann, a slapper, an inverted tail slide and a hurricane, described as a “fast backward funnel.”
The pièce de résistance may have been the “tic toc,” in which the helicopter, while pointed straight up, hovers with a side-to-side motion as if it were the pendulum of an upside down clock.”
I know I can’t do any of that and I certainly couldn’t learn it quickly. Could the learning system that Ng and his team have created be adapted to driving cars and flying planes? Possibly, as it depends on if it uses any assumptions about its environment. Flying around in a big open space is much easier than driving quickly through busy city streets. That doesn’t mean it can’t be done. The only downside to this research is it could be used to pilot Autonomous military planes to deploy weapons, completing the conversion of war to a video game.
Hopefully we see this deployed for peaceful use instead.
There was some major updating of the Neuroevolutionary Solver page on the weekend. Now there are sections to help you download the software, install the required Java JDK and Java 3D packages and instructions on how to get the NS working on your home system. Working with the NS is much easier through the Eclipse IDE and detailed instructions are available for that method. Command line instructions for Windows and Linux are also available. Click through to the NS page here or click the Neuroevolutionary Solver tab at the top of this page.
Keep watching for more updates over the next few days.
A group of researchers at NYU have been given funding to “discover the learning algorithm of the brain“.
This will be some exciting work, many scientists believe the easiest method to general artifical intelligence is through duplicating the human brain, that the sum of the parts is the soul so to speak. These researchers will be focusing on the visual system and how it manages to identify all the important bits in a photograph or any real world scene. They will then apply what they learn from these experiments to see if the same methodology works on similar brain structures.
I am not certain but this research may be related to the recent full simulation of the human visual cortex on Roadrunner currently the most powerful computer in the world. This full simulation of the visual cortex was a simulation system called PetaVision which actually was a full simulation of all the neurons that compose the human optic system and visual cortex that could be run in real time.
Slap some ears on it, a nose, and a neocortex and we have a beautiful baby AI.
Well yesterday was Thanksgiving, my wife and I went to our friends house and cooked a turkey. Quite the proceedure, I researched several sources including YouTube and my mother, to figure out the best way to get the job done. The turkey was fabulous. The human beings ability to take in information from several sources, assimilate it, process it and use it to understand and reproduce something is remarkable.
Computers got a bit closer to that on the same day. The Turing Test I wrote about in my last post happened yesterday and quite a few of the systems did quite well. The program Elbot actually managed to fool twenty five percent of the judges into thinking it was a human. That is no small feat, as even the tiniest confusion or mistake can make a human aware it is not talking to one of its own kind.
I wonder if in another 25 years, an AI based robot I have will ask me about how to cook a turkey. I will explain the process to it, and it will proceed to make that turkey for me. Who knows…
Next sunday there will be a fun little challenge happing at the University of Reading. Several computer programs will be competing to pass the ‘Turing test’.
To explain it simply, the Turing test, is an experiment to test a computers intelligence by having it attempt to fool a human into believeing it is human as well. A human judge faces off against a computer program and a human pretending to be the same program simultaneously. If the judge cannot tell which conversation is the human and which is the program, the program will have passed the Turing test.
Some people will definitely argue that the program doesn’t understand what it is saying, it is simply following rules to respond to the questions posed to it, and it does not represent intelligence. Well, don’t you as a human really just do the same thing, but with a considerably more complex and dynamic ruleset?
If the example conversation in this article is representative of all the programs competeing then they have a long way to go before they fool a human.