Tutorial: Evolution of Neural Networks

Risto Miikkulainen
The University of Texas at Austin and Cognizant AI Labs


Neuroevolution is a new and emerging area of reinforcement learning (RL). It is particularly useful in two areas:

  1. Tasks that require memory: Whereas the traditional value-function-based approach most naturally focuses on MDP problems and on maximizing lifetime reward, neuroevolution work focuses mostly on POMDP tasks and on maximizing reward at the end of learning. Knowledge of neuroevolution should therefore be valuable for researchers and students in robotics, intelligent agents, and multiagent systems.
  2. Deep learning: The performance of deep learning depends crucially on the network architecture and hyperparameters, and several techniques have been develop to optimize them. As a population-based search technique, neuroevolution can explore the search space widely, and therefore find innovative and surprising solutions that would be difficut to find with other techniques. Researchers and students working in learning in image processing, speech, language, and prediction and modeling of complex systems, should be able to use neuroevolution to improve their results.
In this tutorial, I will review (1) neuroevolution methods that evolve fixed-topology networks, network topologies, and network construction processes for POMDP tasks, (2) ways of combining gradient-based training with evolutionary methods to discover more powerful deep learning architectures, and (3) applications of these techniques in control, robotics, artificial life, games, image processing, and language.

Presentation Materials

Slides (in 4-up pdf from GECCO 2023), with references.
Video of the tutorial presentation (from GECCO 2023)
Demos (i.e. animations)

Neuroevolution Exercise

NERO is a video game where the player evolves neural network controllers for teams of non-player characters that engage in battle in a simulated environment. It will take some 30mins to get the idea, and upto a few hours of training to build complex teams. (NOTE: These instructions were last checked in 2021.)

NERO Software

You need to download two components:

(1) NERO, one of:
Mac version
Windows version (a possible problem and a fix)
32-bit Linux version (suggestions for 64-bit linux).

(2) tutorial.cs.dso
The same file works in all platforms. You need to save it in your NERO application folder, replacing the tutorial.cs.dso there. That folder is
in MacOS: NERO-2.0/nero/client/scripts/
in Windows: Nero\2.0\nero\client\scripts (a possible problem and a fix)
in Linux: nero2_linux_i386/nero/client/scripts/

Running the Exercise

Start NERO by double clicking its icon in the main folder, or from the command line. Then click on "SINGLE PLAYER", "SIMPLE TUTORIAL", and hit the spacebar (you don't need to read the story). You'll see NERO loading the sandbox environment. In that environment, there is a text window that tells you what to do. In case you weren't able to install the tutorial.ps.dso file, you can follow the text here.

Towards the end of the exercise (e.g. after step 27) you may want to test your team against teams that other people have created. NERO comes with a number of such teams, or you can play against a few teams that people attending this tutorial created; you can get such teams from here; download a team file, place it in nero/data/saves/brains subdirectory, and then select it as an opponent in the battle mode. If you want to contribute your team to this archive, please email it to risto@cs.utexas.edu.

Further Reading

A short summary article on neuroevolution.
A survey article in Nature Machine Intelligence.
The NERO Game website.

Last modified: Fri Jun 16 23:06:05 CDT 2023