Spring 2006 CAP 6938 Topics in Neuroevolution and Artificial Embryogeny
MW 2:30 - 3:45 in COMM 110 (note room change from ENG 286)
Instructor: Dr. Kenneth Stanley
Email: kstanley@cs.ucf.edu
Website: http://www.cs.ucf.edu/~kstanley
Office: CSB 254
Office Hours (starting 1/17/06): Mondays at 4pm and Tuesdays at 3pm
New: Software Created in Our Class Available Here
Real-time NEAT source code available
You can download rtNEAT source code here. This version of NEAT is also stripped down so it should compile with any OS with minimal effort.Stripped Down Version of NEAT
neatVS.zipThis version of NEAT is provided by Jared Johnson based on my original code. He is making it available so people having trouble compiling NEAT have a chance to play with it now. Here's what Jared says about it:
"I just took out all visualization and guile references, as well as modified a few syntactical errors which showed up in Visual Studio which gcc supports. It is hard-coded to run the XOR test, which I have run with this version of the code. I haven't tested the other two experiments, though they should work. It just requires you to include the initialization file you are using as a command line argument."
Texts
Fundamentals of Neural Networks by Laurene V. Fausett (1994)An Introduction to Genetic Algorithms by Melanie Mitchell (1996)
Assorted Current Research Papers
Overview
The purpose of this artificial intelligence (AI) course is to introduce students to current topics at the intersection between neural networks and evolutionary computation. Recent advances in evolving artificial neural networks (i.e. neuroevolution) have resulted in new ways to produce controllers for a broad range of difficult sequential decision tasks, including robot and autonomous vehicle control, pattern generation, limb coordination, warning systems, factory optimization, and intelligent video games. Neuroevolution has helped make such applications possible because it allows the computer to learn control policies without any prior knowledge of the domain on the part of the experimenter: A Darwinian survival-of-the-fittest competition among neural networks leads to increasingly sophisticated solutions without the need for human design. However, such a process requires a principled approach to combining, selecting, and encoding large, complex neural networks. This course will introduce students to the cutting edge of such research, culminating in a project in which students program their own variant of the NeuroEvolution of Augmenting Topologies (NEAT) method, which can evolve increasingly complex structures over time. While the original NEAT evolves only neural networks, students will not be restricted in the type of structure their system can evolve. In this way, students will become experts through hands-on experience. The class will conclude by examining sophisticated encoding techniques based on the growth of an embryo from a single cell (i.e. artificial embrogeny). Such techniques promise to facilitate the evolution of neural networks with orders of magnitude more complexity than has been heretofore possible.Grading Policy
Grades will be based 25% on implementation milestones and 75% on a final project. Students may work with a partner or work alone. Students working with a partner must periodically report how they are allocating tasks.Project Milestones (25% of grade):
2/6: Initial proposal and project description
2/15: Domain and phenotype code and examples
2/27: Genes and Genotype to Phenotype mapping
3/8: Genetic operators all working
3/27: Population level and main loop working
4/10: Final project and presentation due (75% of grade)Syllabus
Week 1 (Jan. 9 - 14)
Context within AI, Neural Networks Basics, Sequential Decision Problems, Complexity and SearchRead chapter 1 of Fausett
Week 2 (Jan. 16 - 20) (only the 18th; 16th is MLK Day)
Topics in Neural Networks: Backprop, Hebbian Learning, Biological Inspirations, Reinforcement LearningFausett pp. 39-80 (in Chapter 2)
Fausett pp. 289-316 (in Chapter 6)
Chapter 1 of Sutton (on RL): Online Book ch.1
Optional: Kaelbling RL survey paper
Week 3 (Jan 23 - 27)
Topics in Evolutionary Computation: Types of EC, Genetic Algorithms Basics, Genetic Algorithms Theory, Criticisms of EC, No Free LunchFor 1/23: Mitchell ch.1 (pp. 1-31) and ch.2 (pp. 35-80) ..Note Section 2.3 is "Evolving Neural Networks"
For 1/25: Mitchell pp. 117-38, ch.5 (pp. 170-177)
paper: No Free Lunch Theorems for Optimization (1996) by David H. Wolpert, William G. Macready
Week 4 (Jan 30 - Feb. 3)
Neuroevolution (Evolving Neural Networks): Combining EC with NNs, Significance to AI, History of Neuroevolution, TWEANNS, The Competing Conventions Problem, Classic ObstaclesHomework due 2/6/06: 1 page project proposal including project description and goals, a falsifiable hypothesis on what you expect to happen, why it involves structure, and what platform you will use (language and OS). If partners, describe briefly division of labor. Please turn in a hardcopy
For 1/30/06:
Genetic Algorithms and Neural Networks by Darrell Whitley (1995)
Evolving Artificial Neural Networks by Xin Yao (1999)
Genetic set recombination and its application to neural network topology optimisation by Radcliffe, N. J. (1993). (Skim from section 4 on, except for 9.2)
For 2/1/06:
Evolving Optimal Neural Networks Using Genetic Algorithms with Occam's Razor by Byoung-Tak Zhang and Heinz Muhlenbein(1993)
A Comparison between Cellular Encoding and Direct Encoding for Genetic Neural Networks by Frederic Gruau, Darrell Whitley, Larry Pyeatt (1996)
Solving Non-Markovian Control Tasks with Neuroevolution by Faustino J. Gomez and Risto Miikkulainen (1999)
Week 5 (Feb. 6 - Feb. 10) Projects Officially Begin
NeuroEvolution of Augmenting Topologies (NEAT): Overcoming the obstaclesStudent Projects Begin.
Remember: Homework due 2/6/06: 1 page project proposal including project description and goals, a falsifiable hypothesis on what you expect to happen, why it involves structure, and what platform you will use (language and OS). If partners, describe briefly division of labor. Please turn in a hardcopy
Homework due 2/15/06: Working domain and phenotype code. Turn in summary, code (if too long just include headers and put rest on web), and examples demonstrating how it works.
Read in detail for 2/6/06:
Evolving Neural Networks Through Augmenting Topologies by Kenneth O. Stanley and Risto Miikkulainen (2002)
Read for 2/8/06:
Evolving a Roving Eye for Go by Kenneth O. Stanley and Risto Miikkulainen (2004)
Neuroevolution of an Automobile Crash Warning System by Kenneth O. Stanley and Risto Miikkulainen (2005)
Week 6 (Feb. 13 - Feb. 17)
Artificial Embryogeny: The Power of Reuse, Prior Work, Biological Underpinnings, Skeptical PerspectiveLecture 11: Only given in class
Remember: Homework due 2/15/06: Working domain and phenotype code. Turn in summary, code (if too long just include headers and put rest on web), and examples demonstrating how it works.
Read for 2/13/06:
A Taxonomy for Artificial Embryogeny by Kenneth O. Stanley and Risto Miikkulainen (2003)
Read for 2/15/06:
The Advantages of Generative Grammatical Encodings for Physical Design by Greg Hornby and Jordan Pollack (2001)
Evolving Complete Agents Using Artificial Ontogeny by J. Bongard amd R. Pfeifer (2003)
Multi-cellular development: is there scalability and robustness to gain? by Daniel Roggen and Diego Federici (2004)
Week 7 (Feb, 20- Feb. 24)
Competitive Coevolution and Complexification, Real-time NEAT and the NERO video gameHomework due 2/27/06: Working genotype to phenotype mapping. Genetic representation completed. Saving and loading of genome file I/O functions completed. Turn in summary, code, and examples demonstrating that it works.
Read for 2/20/06:
Competitive Coevolution through Evolutionary Complexification by Kenneth O. Stanley and Risto Miikkulainen (2004)
Towards Metrics and Visualizations Sensitive to Coevolutionary Failures by Ari Bader-Natal and Jordan B. Pollack (2005)Advanced Coevolution Papers of Interest:
Ideal Evaluation from Coevolution by De Jong, E.D. and J.B. Pollack (2004)
Monotonic Solution Concepts in Coevolution by Ficici, Sevan G. (2005)Read for 2/22/06:
Shorter symposium paper: Evolving Neural Network Agents in the NERO Video Game by Kenneth O. Stanley and Risto Miikkulainen (2005)
Optional journal (longer, more detailed) paper: Real-time Neuroevolution in the NERO Video Game by Kenneth O. Stanley and Risto Miikkulainen (2005)Visit The NERO Website
Week 8 (Feb. 27 - Mar. 3)
Continuing real-time NEAT and more realistic neural models (adaptive synapses)Lecture 13-2 (continuing lecture 13 from the last lecture, which we didn't complete)
Homework due 2/27/06: Working genotype to phenotype mapping. Genetic representation completed. Saving and loading of genome file I/O functions completed. Turn in summary, code, and examples demonstrating that it works.
New Homework due 3/8/06:
Genetic operators all working:Turn in summary, code, and examples demonstrating that all functions work. Must include checks that phenotypes from genotypes that are new or altered are created properly and work.
- Mating two genomes: mate_multipoint, mate_multipoint_avg, others
- Compatibility measuring: return distance of two genomes from each other based on coefficients in compatibility equation and historical markings
- Structural mutations: mutate_add_link, mutate_add_node, others
- Weight/parameter mutations: mutate_link_weights, mutating other parameters
- Special mutations: mutate_link_enable_toggle (toggle enable flag), etc.
- Special restrictions: control probability of certain types of mutations such as adding a recurrent connection vs. a feedforward connection
Read for 3/1/06:
Evolutionary Robots with On-line Self-Organization and Behavioral Fitness by Dario Floreano and Joseba Urzelai (2000)
Evolving Adaptive Neural Networks with and Without Adaptive Synapses by Kenneth O. Stanley, Bobby D. Bryant, and Risto Miikkulainen (2003)
Week 9 (Mar. 6 - 10)
More on realistic neurons: Leaky integrator neurons Non-neural NEAT (Cellular Automata, FSMs, Music, Morphologies, RBFs, Graph structures, etc.)Homework due 3/8/06:
Genetic operators all working:Turn in summary, code, and examples demonstrating that all functions work. Must include checks that phenotypes from genotypes that are new or altered are created properly and work.
- Mating two genomes: mate_multipoint, mate_multipoint_avg, others
- Compatibility measuring: return distance of two genomes from each other based on coefficients in compatibility equation and historical markings
- Structural mutations: mutate_add_link, mutate_add_node, others
- Weight/parameter mutations: mutate_link_weights, mutating other parameters
- Special mutations: mutate_link_enable_toggle (toggle enable flag), etc.
- Special restrictions: control probability of certain types of mutations such as adding a recurrent connection vs. a feedforward connection
Read for 3/6/06:
Levels of dynamics and adaptive behavior in evolutionary neural controllers by Blynel, J., and Floreano, D. (2002)
Evolution of Central Pattern Generators for Bipedal Walking in a Real-Time Physics Environment by Torsten Reil and Phil Husbands (2002)
Optional: Evolution and analysis of model CPGs for walking I. Dynamical modules by Chiel, H.J., Beer, R.D. and Gallagher, J.C. (1999)Read for 3/8/06: Mitchell Textbook pp. 44-55 (Evolving Cellular Automata)
__Spring Break__ (Mar. 13 - 17)
Week 10-12 (Mar. 20 - 24, Mar. 27 - 31, April 3-7, April 10) Projects Officially End on April 12
-Technical topics in implementing complexifying evolutionary systems and presenting results. (this unit will help people in finishing up their projects)Useful Reading: Section 3 of Real-time Neuroevolution in the NERO Video Game by Stanley, Bryant, and Miikkulainen
Homework due 3/27/06:
Population level and main loop working:Upon completing this assignment, you are running evolution. You may not necessarily get good results (you have a couple more weeks to get it working well), but the main architecture of your system is completed. Turn in summary, code, and examples demonstrating that all functions work.
- Creating a new population
- Speciating a raw population (uses compatibility function from last assignment)
- Evaluating each individual in the population in your domain to get a fitness score (uses your domain and phenotype code)
- Assigning # offspring to each species in an evaluated population by using the equations from fitness sharing
- Reproducing n offspring from a given existing species using truncation selection and elitism within the species (uses mating and mutation functions from last assignments)
- Speciating the new generation based on the species represented in the previous generation (uses compatibility function from last assignment)
- Replacing the current generation with the next generation
- Running all of this from a main control loop that gives some indication of what is evolving, what the fitnesses are for species, how many generations have passed, and periodically outputs the current generation to a numbered file. Also should output every generation champion to a file.
Weeks 13-14 (April 12, April 17,19, April 24, Final (April 26th 1-3:50)
Projects Due April 12th (note the date has been extended by 2 days)Projects should be formatted as a conference paper:
- Abstract
- Introduction
- Background
- Approach/Method (name how you want)
- Experiments
- Results
- Discussion
- Future Work
- Conclusion
- References (cited)
-Student Final Presentations Students will have created their own complexifing evolutionary systems and will present results and methods from their projects.
Final Presentation Schedule
Schedule:
4/12/06
2:30-2:45 Nick Beato: Melody Composition
2:48-3:03 Chris Gullette: Bejeweled Player
3:06-3:21 Sean Szumlanski: Bartering with Images
3:24-3:39 Scott DeBoer: Guitar Distortion Effects
4/17/06
2:30-2:45 David Duncan: Instrument Synthesis
2:48-3:03 David Adams and Adam Campbell: Alife World
3:06-3:21 Jason Gauci: Riot simulation
3:24-3:39 David D'Ambrosio: Soda Race
4/19/06
2:30-2:45 Erin Hastings: Interactive 3D Models and Particle Systems
2:48-3:03 Jared Johnson: Ant Colony
3:06-3:21 Anton Kiriwas: Poker Player
3:24-3:39 Shafaq Chaudry and Victor Hung: Sensor Networks
4/24/06
2:30-2:45 Chris Millward: First-capture Go
2:48-3:03 Remo Pillat: Resilient Lego Buildings
3:06-3:21 Michael Rosario: Beat Generation
3:24-3:39 Jimmy Secretan: NLP Parse Tree
Final (4/26, 1-3:50)
1:00-1:15 Andy Schwartz: Chord Progressions
1:18-1:33 Musawir Shah: Image Super-resolution
1:36-1:51 Gary Stein: Human Modeling
1:54-2:09 Jin Lyu: Interactive Image Evolution
2:12-2:27 Greg Tener: Grammar Compression
2:30-2:45 Ben Vanik: Space Game
2:48-3:03 Ian Wharton: Air Hockey
3:06-3:21 Jaakko Konttinen: Tone Mapping
3:24-3:39 Buffer time