Fall 2006 CAP 6938 Topics in Neuroevolution and Developmental Encoding: Syllabus

MW 4:30 - 5:45 in ENG2 room 105

Instructor: Dr. Kenneth Stanley

Email: kstanley@cs.ucf.edu
Website: http://www.cs.ucf.edu/~kstanley
EPlex Research Group: http://eplex.cs.ucf.edu
Office: CSB 254 (for now!)

Office Hours (starting 8/28/06): Mondays at 2:30pm and Tuesdays at 3pm

TA: Shafaq Chaudhry, email: shafaq@cs.ucf.edu

Link to Homework Assignments and Lectures

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 in the artificial evolution of complex systems, focusing on evolving neural networks (i.e. neuroevolution). Neural networks are a good proxy for complex systems in general, exhibiting many of the key properties that make such systems difficult to evolve. The class surveys recent advances in neuroevolution that 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. In neuroevolution, 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. Although neural networks are a major focus for the course, students will not be restricted in the type of structure their systems 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. developmental encoding), featuring recent work at UCF on Compositional Pattern Producing Networks (CPPNs). 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 5% on quizes on assigned papers, 25% on implementation milestones and 70% on a final project. Students must work with a partner and periodically report how they are allocating tasks.

Project Milestones (25% of grade):
9/11: Initial proposal and project description
9/20: Domain and phenotype code and examples
10/4: Genes and Genotype to Phenotype mapping
10/18: Genetic operators all working
11/1: Population level and main loop working
11/15 (may be extended): Final project and presentation due (70% of grade)

NEAT source code

Note that you will be writing your own version of NEAT so existing source code is only to be used as a reference. My homepage contains links to NEAT source code in many languages. The latest clean version written by myself is rtNEAT, available here. A stripped down version of my non-real-time code is neatVS.zip, refitted for easy compiling by Jared Johnson..

Syllabus


Week 1 (August 21, 23)

Context within AI, Prior Projects, Neural Networks Basics, Sequential Decision Problems, Complexity and Search

Read chapter 1 of Fausett


Week 2 (August 28, 30)

NEAT/CPPNs Overviews and Applications (head start on project thinking);
Topics in Neural Networks: Backprop, Hebbian Learning, Biological Inspirations, Reinforcement Learning


Week 3 (Sept. 6 only; Labor Day off)

Topics in Evolutionary Computation: Types of EC, Genetic Algorithms Basics,


Week 4 (Sept. 11, 13)

9/11/06 Milestone 1: Project Proposals Due

Genetic Algorithms Theory, Criticisms of EC, No Free Lunch; Neuroevolution (Evolving Neural Networks): Combining EC with NNs, Significance to AI


Week 5 (Sept. 18, 20)

9/20/06 Milestone 2: Domain and Phenotype Code Due

History of Neuroevolution, TWEANNS, The Competing Conventions Problem, Classic Obstacles;
NeuroEvolution of Augmenting Topologies (NEAT): Overcoming the obstacles


Week 6 (Sept. 25, 27)

Advanced NEAT;
Developmental Encoding: The Power of Reuse, Prior Work, Biological Underpinnings, Skeptical Perspective

Week 7 (Oct. 2, 4)

10/4/06 Milestone 3: Gene And Genotype to Phenotype Mapping Due

Advanced Topics in Developmental Encoding;
Compositional Pattern Producing Networks (CPPNs)

Week 8 (Oct. 9, 11)

Competitive Coevolution and Complexification, Real-time NEAT and the NERO video game

Week 9 (Oct. 16, 18)

10/18/06 Milestone 4: Genetic Operators Due

Continuing real-time NEAT and more realistic neural models (adaptive synapses)

Week 10 (Oct. 23, 25)

More on realistic neurons: Leaky integrator neurons;

Non-neural NEAT (Cellular Automata, FSMs, Music, Morphologies, RBFs, Graph structures, etc.)

Week 11-12, 13 (Oct. 30, Nov 1; Nov. 6, 8, Nov. 13)

11/1/06 Milestone 5: Population Level and Main Loop Due

Technical topics in implementing complexifying evolutionary systems and presenting results. (this unit will help people in finishing up their projects)

Weeks 13-15 (Nov. 15; Nov. 20, 22; Nov. 27, 29; Final)

Final Projects Due November 15th (may be extended)

Student Final Presentations: Students will have created their own complexifing evolutionary systems and will present results and methods from their projects.