Artificial life
Fish learning to feed, species eating each other, cars learning a track. The first neural networks, written by hand in Python during the preparatory classes.
No learning library in these programs: networks are lists of weights, mutations are added noise, selection is a loop. It is the most naive form of artificial evolution, and that is why everything is visible.
The TIPE. The supervised personal research project of the preparatory classes was about a marine population. Each fish sees its surroundings through a fan of radars that detect walls and food; a small neural network turns those detections into two commands, move forward and turn. Fish spend energy swimming and starve. When one of them eats, it reproduces: a new fish is born with a mutated copy of its network. Nobody teaches anything, and yet, over the generations, the fish that remain are the ones that head for food.
Natural selection. A broader version: several species with randomly drawn names, each with its size and speed, food that keeps appearing, and predators that can only eat prey small enough. Enter adds a new species. Hybridisation and fleeing from predators were left to do.
Reward learning. Subjects among “goods” to touch and “bads” to avoid, a score, and the best network kept from one generation to the next. The working notes already ask the right questions: feed speed and direction as inputs, save the best network, measure proximity surface to surface rather than centre to centre.
Cars. You draw the edges of a track and its checkpoints with the mouse, then a population of cars, each driven by its own network, learns to drive it through successive mutations. The list of planned improvements reads like a table of contents for the subject: crossover between parents chosen by score, a mutation rate that adapts when progress stalls, randomly generated tracks, score curves per generation.
Most of those ideas were eventually written, years later and on the GPU, in the genetic algorithms project; reinforcement learning, for its part, trains the bots of BlitzVolley.
Private project, no public link
