Neuroevolution - Autos lernen fahren
Lernen ohne Lehrer — das funktioniert, wenn man den schlechten Versuchen keine Träne nachweint.
Was ist Neuroevolution?
Stell dir eine Fahrschule vor, in der hunderte Fahrschüler gleichzeitig lernen - aber ohne Fahrlehrer. Stattdessen lernen sie durch Ausprobieren und Evolution:
Jeder Fahrschüler hat ein eigenes "Gehirn" (neuronales Netz), das die Sensordaten des Autos interpretiert und Lenkbefehle gibt. Am Anfang fahren alle völlig planlos.
Die besten Fahrer (die am weitesten kommen) werden ausgewählt und dürfen ihre "Gehirne" an die nächste Generation weitergeben
Durch Kreuzung werden die Stärken verschiedener Fahrer kombiniert - vielleicht kann einer gut Kurven fahren und ein anderer gut geradeaus
Kleine zufällige Änderungen (Mutationen) sorgen dafür, dass immer wieder neue Fahrtechniken entstehen, die vielleicht noch besser funktionieren
Analogie:
Stell dir eine Fahrschule vor, in der hunderte Fahrschüler gleichzeitig lernen - aber ohne Fahrlehrer. Stattdessen lernen sie durch Ausprobieren und Evolution:
Jeder Fahrschüler hat ein eigenes "Gehirn" (neuronales Netz), das die Sensordaten des Autos interpretiert und Lenkbefehle gibt. Am Anfang fahren alle völlig planlos.
Die besten Fahrer (die am weitesten kommen) werden ausgewählt und dürfen ihre "Gehirne" an die nächste Generation weitergeben
Durch Kreuzung werden die Stärken verschiedener Fahrer kombiniert - vielleicht kann einer gut Kurven fahren und ein anderer gut geradeaus
Kleine zufällige Änderungen (Mutationen) sorgen dafür, dass immer wieder neue Fahrtechniken entstehen, die vielleicht noch besser funktionieren
Definition:
Neuroevolution ist ein Teilgebiet des maschinellen Lernens, das evolutionäre Algorithmen nutzt, um die Gewichte (und optional die Topologie) neuronaler Netze zu optimieren. Anders als Backpropagation benötigt Neuroevolution keine differenzierbare Verlustfunktion:
Neuronales Netz: Ein Rechenmodell inspiriert von biologischen Neuronen, bestehend aus Eingabe-, versteckten und Ausgabeschichten. Jede Verbindung hat ein Gewicht, das die Signalstärke bestimmt.
Fitness-Funktion: Bewertet die Leistung jedes neuronalen Netzes anhand objektiver Kriterien wie zurückgelegte Strecke, erreichte Checkpoints und benötigte Zeit.
Evolutionäre Optimierung: Selektion, Kreuzung und Mutation der Netzwerk-Gewichte über viele Generationen hinweg, um zunehmend bessere Fahrstrategien zu entwickeln.
Gradientenfreies Lernen: Im Gegensatz zu klassischem Training mit Backpropagation benötigt Neuroevolution keinen berechenbaren Gradienten. Die Evolution selbst fungiert als Optimierer.
Wie die Demo funktioniert
Überblick
Diese Demo simuliert selbstfahrende Autos, die durch Neuroevolution lernen, eine Rennstrecke zu bewältigen. Jedes Auto wird von einem neuronalen Netz gesteuert, das Sensordaten verarbeitet und Lenk- sowie Gasbefehle ausgibt. Über mehrere Generationen hinweg verbessern sich die Autos durch Selektion, Kreuzung und Mutation.
Wichtige Konzepte
- Sensoren:Jedes Auto hat fünf Abstandssensoren, die den Abstand zu den Streckenbegrenzungen messen. Diese Sensoren liefern die Eingabedaten für das neuronale Netz und ermöglichen dem Auto, seine Umgebung wahrzunehmen.
- Neuronales Netz:Jedes Auto besitzt ein eigenes neuronales Netz mit Eingabe-, versteckter und Ausgabeschicht. Die Eingaben sind Sensordaten und die aktuelle Geschwindigkeit, die Ausgaben sind Lenk- und Gasbefehle.
- Fitness:Die Fitness eines Autos wird anhand der erreichten Checkpoints und der benötigten Zeit berechnet. Autos, die weiter kommen und dabei schneller sind, erhalten eine höhere Fitness.
- Selektion:Die Autos mit der höchsten Fitness werden bevorzugt zur Erzeugung der nächsten Generation ausgewählt. Bessere Fahrer haben eine höhere Chance, ihre Netzwerk-Gewichte weiterzugeben.
- Mutation:Kleine zufällige Änderungen an den Gewichten des neuronalen Netzes. Mutationen sorgen für Vielfalt in der Population und können zu neuen, möglicherweise besseren Fahrstrategien führen.
- Kreuzung:Kombination der Netzwerk-Gewichte zweier erfolgreicher Eltern-Autos zu einem neuen Nachkommen. So werden die Stärken verschiedener Fahrstrategien vereint.
- Elitismus:Die besten Individuen einer Generation werden unverändert in die nächste Generation übernommen. Dies stellt sicher, dass einmal gefundene gute Lösungen nicht durch Mutation verloren gehen.
Neuroevolution in Aktion
Generation 0. Beste Fitness 0. Diversität 0 Prozent.
- Generation
- 0
- Beste Fitness
- 0
- Aktive Autos
- 0 / 30
- Laufzeit
- 20.0s
Was auf der Rennstrecke passiert
Diese Demo bringt Autos das Fahren bei — nicht durch Programmieren, sondern durch Ausprobieren und Vererben. Hier steht, was du auf dem Bild siehst.
- Was du siehst
- Eine Rennstrecke von oben, auf der viele Autos gleichzeitig fahren. Jedes Auto tastet mit dünnen Fühlern nach vorn die Wände ab. Unten rechts zeigt ein kleines Diagramm das neuronale Netz des gerade beobachteten Autos.
- Was passiert
- Am Anfang fahren fast alle Autos sofort gegen die Wand. Die wenigen, die am weitesten kommen, geben ihr Gehirn an die nächste Generation weiter — leicht verändert. So fahren über viele Generationen immer mehr Autos sauber durch die Kurven. Im Champions-Rennen treten die besten Autos aller Generationen gegeneinander an.
- Was du tun kannst
- Starte und pausiere die Evolution, ändere das Tempo, folge einem einzelnen Auto oder klicke es an. Im Handmodus fährst du selbst eine Runde und vergleichst deine Zeit mit der KI.
- Worauf du achtest
- Niemand hat den Autos Regeln fürs Fahren einprogrammiert. Das Fahrverhalten entsteht allein aus Zufall, Auslese und Vererbung — Generation für Generation.
Noch keine Champions. Lass die Evolution laufen — alle 5 Generationen wird das beste Gehirn gespeichert.
So funktioniert Neuroevolution
- Population erzeugen
Erstelle eine Population von Autos, jedes mit einem eigenen neuronalen Netz mit zufälligen Gewichten. Am Anfang fahren alle Autos planlos, da ihre Netze noch nicht trainiert sind.
- Fitness messen
Lasse alle Autos auf der Strecke fahren und bewerte ihre Leistung. Die Fitness basiert auf der Anzahl erreichter Checkpoints und der benötigten Zeit. Autos die weiter kommen und schneller sind, erhalten eine höhere Fitness.
- Selektion
Wähle die besten Autos als Eltern für die nächste Generation aus. Autos mit höherer Fitness haben eine größere Chance ausgewählt zu werden, ähnlich der natürlichen Selektion.
- Kreuzung
Kombiniere die Netzwerk-Gewichte zweier Eltern zu einem neuen Nachkommen. Dabei werden Teile der Gewichtsmatrizen beider Eltern zusammengeführt, um die Stärken beider Fahrstrategien zu vereinen.
- Mutation
Verändere zufällig einige Gewichte der neuronalen Netze leicht. Dies fügt Variation hinzu und ermöglicht das Entdecken neuer Strategien, die durch Kreuzung allein nicht entstehen würden.
- Wiederholen
Ersetze die alte Population durch die neue Generation und starte den Prozess erneut. Mit jeder Generation werden die Autos besser, da erfolgreiche Strategien erhalten und weiterentwickelt werden.
Vertiefung
Das Sensor-System
Die Sensoren eines jeden Autos funktionieren wie Abstandsmesser: Sie senden unsichtbare Strahlen in fünf Richtungen (vorne, links 45°, rechts 45°, links 90°, rechts 90°) und messen den Abstand zur nächsten Streckenbegrenzung. Je kürzer der gemessene Abstand, desto näher ist das Auto am Rand. Diese Werte werden als Eingaben in das neuronale Netz gespeist, das daraus Lenkbefehle berechnet.
Das neuronale Netz
Das neuronale Netz jedes Autos besteht aus drei Schichten: Die Eingabeschicht empfängt die fünf Sensorwerte plus die aktuelle Geschwindigkeit und den Lenkwinkel. Die versteckte Schicht verarbeitet diese Informationen und erkennt Muster. Die Ausgabeschicht gibt zwei Werte aus - den Lenkeinschlag und den Gasbefehl. Die Gewichte der Verbindungen bestimmen, wie das Auto auf seine Umgebung reagiert.
Die Fitness-Funktion
Die Fitness misst, wie gut ein Auto fährt. Sie setzt sich zusammen aus der Anzahl der erreichten Checkpoints (unsichtbare Linien quer über die Strecke) und einem Zeitbonus: Schnellere Autos bekommen mehr Punkte. Ein Auto das weit kommt aber langsam fährt, hat eine niedrigere Fitness als eines das dieselbe Strecke schneller schafft. Gecrachte Autos erhalten nur die Fitness bis zum Crash-Punkt.
Der Selektionsdruck
Der Selektionsdruck bestimmt, wie stark die besten Individuen bevorzugt werden. Bei hohem Selektionsdruck dominieren wenige Spitzenfahrer die nächste Generation, was zu schneller Konvergenz aber geringer Vielfalt führt. Bei niedrigem Selektionsdruck haben auch mittelmäßige Fahrer eine Chance, was die genetische Vielfalt erhält und das Risiko verringert, in lokalen Optima stecken zu bleiben. Die richtige Balance ist entscheidend für erfolgreiche Evolution.
Quiz: Neuroevolution verstehen
Was messen die Sensoren der Autos in dieser Demo?
1. Was messen die Sensoren der Autos in dieser Demo?
- ☐ A) Die Geschwindigkeit anderer Autos
- ☐ B) Den Abstand zu den Streckenbegrenzungen
- ☐ C) Die Temperatur des Motors
- ☐ D) Die Position auf der Karte
2. Was bestimmt die Fitness eines Autos in dieser Simulation?
- ☐ A) Wie schön das Auto aussieht
- ☐ B) Wie oft das Auto bremst
- ☐ C) Die Anzahl der erreichten Checkpoints und die benötigte Zeit
- ☐ D) Die Größe des neuronalen Netzes
3. Was bewirkt die Mutation bei Neuroevolution?
- ☐ A) Sie führt kleine zufällige Änderungen an den Gewichten durch
- ☐ B) Sie löscht das gesamte neuronale Netz
- ☐ C) Sie verdoppelt die Anzahl der Neuronen
- ☐ D) Sie kopiert das Netz eines anderen Autos
4. Warum wird Elitismus in der Neuroevolution verwendet?
- ☐ A) Um den Algorithmus schneller zu machen
- ☐ B) Um die besten Lösungen zu erhalten und nicht durch Mutation zu verlieren
- ☐ C) Um die Population zu verkleinern
- ☐ D) Um neue Strecken zu generieren
5. Was genau ist Neuroevolution?
- ☐ A) Training neuronaler Netze mit Backpropagation
- ☐ B) Simulation biologischer Neuronen am Computer
- ☐ C) Optimierung der Gewichte neuronaler Netze durch evolutionäre Algorithmen
- ☐ D) Manuelle Programmierung von Fahrzeugsteuerungen
Neuroevolution erklärt
Lernen ohne Lehrer, ohne Gradient
Neuroevolution trainiert neuronale Netze mit den Prinzipien der biologischen Evolution: Fortpflanzung, Auslese und Mutation. Statt aus einem Fehler einen Gradienten zu berechnen und die Gewichte per Backpropagation anzupassen, wird eine ganze Population von Netzen ausprobiert. Die erfolgreichsten dürfen sich fortpflanzen, die schwachen verschwinden. Über viele Generationen entstehen so immer bessere Netze, ohne dass je ein Gradient berechnet wird.
Das Netz im Auto
In dieser Demo steuert jedes Netz ein Auto. Die Eingaben sind fünf Abstandssensoren (Strahlen, die messen, wie weit die nächste Wand entfernt ist) plus Tempo und Lenkwinkel. Eine verdeckte Schicht mit ReLU-Aktivierung verarbeitet sie, und zwei Ausgaben steuern das Auto: Lenkung (über tanh, von links bis rechts) und Gas (über sigmoid, von null bis voll). Die Netzstruktur ist für alle Autos gleich und fest.
Fitness statt Fehlerfunktion
Weil es keine vorgegebenen richtigen Antworten gibt, braucht Neuroevolution keine differenzierbare Verlustfunktion, sondern nur eine Fitness — eine einzige Zahl, die den Erfolg misst. Hier zählt, wie weit ein Auto kommt: jeder durchfahrene Checkpoint und jede vollendete Runde erhöhen die Fitness. Das genügt der Evolution als Kompass; sie muss nie wissen, warum ein Auto besser fährt, nur dass es besser fährt.
Der evolutionäre Kreislauf
- Selektion (Turnier): Für jedes Elternteil werden drei zufällige Netze gezogen, das fitteste gewinnt. Gute Netze bekommen mehr Nachkommen, schwache behalten eine Restchance.
- Elitismus: Die besten Netze (Standard: 2) werden unverändert übernommen, damit eine gefundene gute Fahrweise nie verloren geht.
- Crossover: Das Kind erbt jedes einzelne Gewicht per Münzwurf von einem der beiden Eltern.
- Mutation: Jedes Gewicht wird mit einer kleinen Wahrscheinlichkeit zufällig leicht verschoben — die Quelle echter Neuerungen.
Gewichte, nicht Struktur
Wichtig für die Einordnung: Diese Demo entwickelt nur die Gewichte eines Netzes mit fester Struktur weiter (klassische Neuroevolution). Fortgeschrittenere Verfahren wie NEAT lassen zusätzlich die Topologie wachsen — sie fügen im Lauf der Evolution neue Neuronen und Verbindungen hinzu. Beides ist Neuroevolution; der Unterschied liegt darin, ob nur die Gewichte oder auch der Bauplan des Netzes evolvieren.
Stärken und Grenzen
- Kein Gradient nötig: funktioniert auch, wenn die Belohnung nicht differenzierbar oder erst am Ende bekannt ist.
- Gut parallelisierbar: alle Netze einer Generation lassen sich unabhängig bewerten.
- Metaheuristik: es gibt keine Garantie, das beste mögliche Netz zu finden — meist entsteht eine gute, nicht die optimale Lösung.
- Verrauscht und langsam: die Fitness ist nur eine Stichprobe, und ohne Diversität kann die Population früh in einem lokalen Optimum stecken bleiben.
Spiele mit der Demo! Dreh die Mutationsrate hoch und sieh, wie unruhig die Population wird; setz die Elite-Zahl auf 0 und beobachte, wie gute Fahrweisen wieder verloren gehen können. Achte auf die Diversitäts-Anzeige — fällt sie gegen null, ähneln sich alle Netze und die Evolution kommt kaum noch voran.
1980er: Netzgewichte per Genetischem Algorithmus
Schon bald nach der Wiederentdeckung von Backpropagation experimentierten Forscher mit einer Alternative. Montana und Davis zeigten 1989 in Training Feedforward Neural Networks Using Genetic Algorithms, dass sich die Gewichte eines Netzes auch rein durch Auslese und Mutation einstellen lassen — ohne jeden Gradienten.
1994: Auch die Topologie entwickeln
Angeline, Saunders und Pollack stellten mit GNARL ein Verfahren vor, das nicht nur die Gewichte, sondern auch die Struktur rekurrenter Netze evolvierte — Neuronen und Verbindungen konnten entstehen und verschwinden. Damit war die Idee geboren, den Bauplan des Netzes selbst der Evolution zu überlassen.
2002: NEAT
Kenneth Stanley und Risto Miikkulainen veröffentlichten NEAT (NeuroEvolution of Augmenting Topologies). Es startet mit minimalen Netzen, lässt sie über Generationen wachsen und schützt neue Strukturen durch Speziation lange genug, damit sie sich optimieren können. NEAT wurde zum meistzitierten Neuroevolutions-Verfahren.
2017: Neuroevolution im Deep-Learning-Zeitalter
Neuroevolution kehrte im großen Maßstab zurück. OpenAI zeigte mit Evolution Strategies as a Scalable Alternative to Reinforcement Learning, dass Evolutionsstrategien mit klassischem Reinforcement Learning mithalten können. Zeitgleich evolvierte Uber AI unter dem Stichwort Deep Neuroevolution tiefe Netze mit Millionen Parametern, um Atari-Spiele zu meistern.
Diese Demo
Die Demo zeigt die klassische, gut verständliche Variante: ein Netz mit fester Struktur, dessen Gewichte durch Turnier-Selektion, Elitismus, Crossover und Mutation über viele Generationen immer bessere Fahrer hervorbringen.
1
# Neuroevolution — neuronale Netze ohne Backpropagation trainieren
2
# Topologie fest: 7 Eingaben -> 8 Hidden (ReLU) -> 2 Ausgaben
3
population = P zufaellige netze # nur die gewichte, feste struktur
4
5
wiederhole jede generation:
6
# 1. Bewerten: jedes netz eine runde fahren lassen
7
fuer jedes netz in population:
8
solange auto faehrt und zeit uebrig:
9
eingaben = 5 sensor-abstaende + tempo + lenkwinkel
10
lenkung, gas = feedforward(netz, eingaben)
11
bewege auto; beruehrt eine wand -> auto stirbt
12
# mehr checkpoints und runden ergeben mehr fitness
13
fitness = (runden * checkpoints + checkpoint) * 100
14
15
# 2. Rangfolge: nach fitness absteigend sortieren
16
sortiere population nach fitness
17
18
# 3. Elitismus: die besten E netze unveraendert behalten
19
naechste = kopiere die top E netze
20
21
# 4. Nachwuchs zeugen, bis die population wieder voll ist
22
solange anzahl(naechste) < P:
23
# Turnier-Selektion: k zufaellige, der fitteste gewinnt
24
elternteil_a = turnier(population, k=3)
25
elternteil_b = turnier(population, k=3)
26
# Crossover: jedes gewicht 50/50 von einem elternteil
27
kind = crossover(elternteil_a, elternteil_b)
28
# Mutation: einzelne gewichte zufaellig verschieben
29
kind = mutiere(kind, rate, staerke)
30
fuege kind zu naechste hinzu
31
population = naechste
32
33
# Kein Gradient, kein Backprop — nur Auslese, Rekombination, Mutation
34
35
# Vorwaertspass: sensoreingaben -> steuerbefehle
36
funktion feedforward(netz, eingaben):
37
# verdeckte schicht mit ReLU-aktivierung
38
hidden = relu(eingaben * gewichte_ih)
39
# ausgaben: lenkung via tanh, gas via sigmoid
40
lenkung = tanh(hidden * gewichte_ho_lenkung)
41
gas = sigmoid(hidden * gewichte_ho_gas)
42
gib (lenkung, gas) zurueck
43
44
# Turnier-Selektion: der beste aus k zufaelligen
45
funktion turnier(population, k):
46
waehle k zufaellige netze aus der population
47
gib das netz mit der hoechsten fitness zurueck
48
49
# Mutation: jedes gewicht mit wahrscheinlichkeit rate anpassen
50
funktion mutiere(netz, rate, staerke):
51
fuer jedes gewicht w im netz:
52
wenn zufall() < rate:
53
w = w + zufall(-1, 1) * staerke
54
gib das mutierte netz zurueck
🧬 Zufällige Netze erzeugen
Am Anfang steht eine ganze Population neuronaler Netze — in dieser Demo standardmäßig 30 Autos. Alle Gewichte sind zufällig, die Netzstruktur ist bei allen gleich (7 Eingaben, 8 verdeckte Neuronen, 2 Ausgaben). Generation 1 fährt daher planlos gegen die Wände.
# Topologie fest: 7 Eingaben -> 8 Hidden (ReLU) -> 2 Ausgaben
population = P zufaellige netze # nur die gewichte, feste struktur
🧬 Start
Eine Population aus zufälligen Netzen mit fester Struktur erzeugen.
🏎️ Bewerten
Jedes Netz fährt; Checkpoints und Runden ergeben seine Fitness.
🏆 Auslesen
Nach Fitness sortieren, Elite behalten und Eltern per Turnier wählen.
🔀 Vermehren
Crossover kombiniert die Eltern, Mutation bringt Neues hinein.
🔁 Nächste Generation
Die neue Population startet — über viele Runden wird das Fahren besser.
Verwandte Inhalte
Artikel
Der Zündfunke: Aktivierungsfunktionen
Der eine kleine Knick in der Linie, ohne den neuronale Netze gar nichts lernen würden.
Das Herzstück des Lernens
Wie ein neuronales Netz seine Fehler nach Hause schickt — und alles unterwegs ein bisschen besser macht.
Computer Vision (CNNs): Wie Maschinen sehen lernten
Wie Maschinen Bilder lesen lernten und plötzlich Hunde von Katzen unterscheiden konnten — meistens.
Der Weg ins Tal: Gradientenabstieg
Wie Gradientenabstieg in einer Landschaft mit Millionen Hügeln den Tiefpunkt findet — meistens.
Das Netzwerk
Was die mittleren Schichten eines neuronalen Netzes lernen — und niemandem erklären können.
Die Knöpfe der Maschine — Parameter vs. Hyperparameter
Die feine Linie zwischen "von der Maschine gelernt" und "von dir geraten".
Wie KI ihre Fehler misst: Loss-Funktionen
Loss-Funktionen sind die Schmerzgrenze eines Modells — ohne sie kein Lernen.
Datentabellen und Transformationen (Matrizen)
Das 2D-Zahlenraster, in dem jede ML-Bibliothek hauptsächlich denkt.
Das künstliche Neuron
Frank Rosenblatts 1958er Idee, die nach 60 Jahren plötzlich wieder relevant wurde.
Supervised Learning — Lernen mit Lehrer
Supervised Learning: das ML-Paradigma, bei dem jemand vorher fleißig beschriftet hat.
Demo
Schwarmintelligenz (Boids)
Erlebe, wie aus drei simplen lokalen Regeln das komplexe Verhalten eines Vogelschwarms entsteht.
Evolution (Optimierung)
Interaktive Demonstration evolutionärer Optimierung mit Mutation, Selektion und Crossover-Operatoren
Gradient Descent
Interaktive Demo zum Verständnis von Gradient Descent: klicke einen Startpunkt auf die Verlustlandschaft, beobachte wie der Algorithmus ins Tal rollt, und experimentiere mit Lernrate und Optimierern.
Neural Network Playground
Klicke Schichten und Neuronen zusammen, wähle Datensatz und Aktivierungsfunktion und beobachte live, wie das Netz die Daten trennt.
Perceptron (Neuronale Netze)
Entdecke das erste künstliche Neuron - den Urknall des maschinellen Lernens aus dem Jahr 1957.
Q-Learning
Interaktive Demonstration des Q-Learning Algorithmus mit einem intelligenten Agenten im Tempel des Lernens
Travelling Salesman: Algorithmen im Wettstreit
Setze Städte, zeichne deine eigene Route und lass Greedy, Simulated Annealing und Genetic Algorithm gegen dich antreten.