chapter one

1 Introduction to evolutionary deep learning

 

This chapter covers

  • Uncovering what is evolutionary computation and how it can be integrated into deep learning systems.
  • Answering the question of why we need or where we can use evolutionary deep learning.
  • Discovering why we need to establish patterns for optimizing deep learning networks.
  • Understanding the role automated machine learning and AutoML play in optimizing networks.
  • Exploring the applications of evolutionary computational methods to enhance deep learning development.

Deep learning (DL) has become the ubiquitous technology most associated with artificial intelligence and the explosion of machine learning. It has grown from once being considered a pseudo-science (The Deep Learning Revolution by Terrence J. Sejnowski) to now being used in mainstream applications from diagnosing breast cancer to driving cars. While many consider it the technology of the future others take a more pragmatic and practical approach to its growing complexity and thirst for data.

As deep learning becomes more complex, we force-feed it more and more data with the hopes of some grand epiphany over a particular domain. Unfortunately, this is rarely the case and all too frequently we are left with bad models, poor results, and angry bosses. This is a problem that will continue to persist until we develop a process around our DL systems.

1.1 What is Evolutionary Deep Learning?

1.1.1 An Introduction to Evolutionary Computation

1.2 The Why and Where of Evolutionary Deep Learning

1.3 The Need for Deep Learning Optimization

1.3.1 Optimizing the Network Architecture

1.4 Automating Optimization with Automated Machine Learning

1.4.1 What is Automated Machine Learning, AutoML?

1.5 Applications of Applying Evolutionary Deep Learning

1.5.1 Model Selection - Weight Search

1.5.2 Model Architecture - Architecture Optimization

1.5.3 Hyperparameter Tuning/Optimization

1.5.4 Validation and Loss Function Optimization

1.5.5 Neuroevolution of augmenting topologies (NEAT)

1.5.6 Goals

1.6 Summary