Hands-On Neuroevolution with Python: Build high-performing artificial neural network architectures using neuroevolution-based algorithms
Increase the performance of various neural network architectures using NEAT, HyperNEAT, ES-HyperNEAT, Novelty Search, SAFE, and deep neuroevolution
Key Features
- Implement neuroevolution algorithms to improve the performance of neural network architectures
- Understand evolutionary algorithms and neuroevolution methods with real-world examples
- Learn essential neuroevolution concepts and how they are used in domains including games, robotics, and simulations
Book Description
Neuroevolution is a form of artificial intelligence learning that uses evolutionary algorithms to simplify the process of solving complex tasks in domains such as games, robotics, and the simulation of natural processes. This book will give you comprehensive insights into essential neuroevolution concepts and equip you with the skills you need to apply neuroevolution-based algorithms to solve practical, real-world problems.
You'll start with learning the key neuroevolution concepts and methods by writing code with Python. You'll also get hands-on experience with popular Python libraries and cover examples of classical reinforcement learning, path planning for autonomous agents, and developing agents to autonomously play Atari games. Next, you'll learn to solve common and not-so-common challenges in natural computing using neuroevolution-based algorithms. Later, you'll understand how to apply neuroevolution strategies to existing neural network designs to improve training and inference performance. Finally, you'll gain clear insights into the topology of neural networks and how neuroevolution allows you to develop complex networks, starting with simple ones.
By the end of this book, you will not only have explored existing neuroevolution-based algorithms, but also have the skills you need to apply them in your research and work assignments.
What you will learn
- Discover the most popular neuroevolution algorithms – NEAT, HyperNEAT, and ES-HyperNEAT
- Explore how to implement neuroevolution-based algorithms in Python
- Get up to speed with advanced visualization tools to examine evolved neural network graphs
- Understand how to examine the results of experiments and analyze algorithm performance
- Delve into neuroevolution techniques to improve the performance of existing methods
- Apply deep neuroevolution to develop agents for playing Atari games
Who this book is for
This book is for machine learning practitioners, deep learning researchers, and AI enthusiasts who are looking to implement neuroevolution algorithms from scratch. Working knowledge of the Python programming language and basic knowledge of deep learning and neural networks are mandatory.
Table of Contents
- Overview of Neuroevolution Methods
- Python Libraries and Environment Setup
- Using NEAT for XOR Solver Optimization
- Pole-Balancing Experiments
- Autonomous Maze Navigation
- Novelty Search Optimization Method
- Hypercube-Based NEAT for Visual Discrimination
- ES-HyperNEAT and the Retina Problem
- Co-Evolution and the SAFE Method
- Deep Neuroevolution
- Best Practices, Tips, and Tricks
- Concluding Remarks