In this tutorial, we are going to demonstrate how we can use machine learning as a practical tool to design self-organizing systems, train emergent patterns to perform desired tasks or achieve predefined goals. These systems are composed of large numbers of locally interacting “microscopic” agents (e.g. grid cells, particles), they work together towards a shared common goal (e.g. matching a target pattern, or surviving in a virtual environment), and form dynamical “macroscopic” patterns that are believed to be performing morphological computation. Such systems are often described as demonstrating self-organization of collective intelligence.
We are going to put emphasis on cases of hierarchical organization of virtual matter, when higher-level structures demonstrate the characteristics of agent-like behavior. Examples include: Neural Cellular Automata (NCA), where self-organizing patterns can be trained using gradient descent and back-propagation-through-time to reproduce a texture or auto-classify symbols, with capabilities of spontaneous regeneration and noise resistance; complex adaptive systems called Lenia, where agent-like localized patterns (or “virtual creatures”) are trained for agent-agent and agent-environment interactions inside a virtual environment; Flow Lenia, where mass conservation law is incorporated into Lenia such that energy constraints and species-species interactions become feasible; and Particle Lenia, where the concept of energy minimization is introduced in Lenia applied to a particle system.