Wie geht es weiter?
Welt 1 bis 4 sind geschafft: Die KI fährt im Zeitfahren drei Runden Mario-Kart-Stadion ohne Eingriff. Aber nicht jeder Lauf ist sauber, und sie kennt weder Items noch Gegner noch andere Strecken. Die nächsten Schritte, in dieser Reihenfolge:
- Zuverlässig werden: Weitere Shadow-Runden, bis zehn Läufe hintereinander ohne Eingriff gelingen. Jede Korrektur wird dreifach gewichtet nachtrainiert. Dazu Rundenzeiten mitschreiben, damit sich Fortschritt messen lässt.
- Festfahr-Erkennung testen: Eingebaut, aber noch nicht im Spiel erlebt. Bewegt sich das Bild zwei Sekunden kaum, lässt die KI Gas los und setzt kurz zurück. Das Schrammen an der Bande erkennt sie nicht; dafür soll später der Spieler-Marker auf der Minimap als Fortschrittssignal dienen.
- Latenz im Training: Die Ziel-Aktion wird heute 130 ms nach dem Bild genommen (die Reaktionszeit des Fahrers). Gemessen sind 144 ms Ende-zu-Ende; eine zufällige Verzögerung von 100 bis 150 ms im Training soll das Modell unempfindlicher machen. Das hat keines der Emulator-Projekte gebraucht.
- Items als Regelwerk: Kein Training, sondern ein kleiner Automat, der das Item-Symbol oben links erkennt und feste Regeln anwendet: Banane mit L halten als Schild, Pilz für Abkürzungen, Hupe gegen den blauen Panzer. Dann die ersten Rennen gegen die CPU.
- Weitere Strecken: Ein Modell pro Strecke, so wie NeuralKart. Erst wenn das sitzt, wird geprüft, ob ein Netz mehrere Strecken kann.
- Der Roboter: Das Fernziel aus „Warum Bluetooth?“: ein kleiner Roboter, der einen echten Controller bedient. Dafür ist die ganze Kette schon heute drahtlos und ohne Eingriff in die Konsole gebaut.
Was Emulator-Projekte gelehrt haben
Niemand hat bisher Mario Kart 8 Deluxe oder eine echte Konsole mit einem neuronalen Netz gefahren. Aber ältere Projekte in Emulatoren haben die Grundfragen beantwortet. Sieben Lektionen, die in den Plan für Welt 3 und 4 eingeflossen sind:
1. Reines Nachahmen reicht nicht
Die wichtigste Erkenntnis, und sie kommt aus drei Richtungen. MariFlow (SethBling, Super Mario Kart) brauchte rund 15 Stunden Spielaufnahmen und wurde erst gut, als das Netz selbst fahren durfte und der Mensch nur dort eingriff, wo es hängen blieb, meist an Wänden. NeuralKart (Stanford, Mario Kart 64) löste dasselbe Problem mit einem Such-Algorithmus im Emulator, der für genau die Situationen, in die das Netz gerät, die richtige Lenkung berechnet. Der Fachbegriff dafür ist DAgger: Fehler, die sich sonst aufschaukeln, werden an Ort und Stelle korrigiert.
Für dieses Projekt: Nach dem ersten Training fährt die KI, und ich übernehme per Gamepad, sobald sie Mist baut. Nur diese Korrekturen werden aufgezeichnet und nachtrainiert. Das wird ein „Shadow-Modus“ in der GUI.
2. Wenig Daten können reichen, wenn sie gut sind
TensorKart kam mit acht Rennen auf drei Strecken aus und fuhr sogar ein Stück einer unbekannten Strecke. 20 bis 30 Minuten pro Strecke sind also ein realistischer Start.
3. Eine Strecke pro Modell
NeuralKart speichert Gewichte je Strecke und fährt nur dort gut. Erst eine Strecke meistern, dann erweitern.
4. 15 Entscheidungen pro Sekunde genügen
MariFlow entschied 15-mal pro Sekunde. Die Capture-Karte liefert 30 oder 60 Bilder, das Modell braucht nur jedes zweite bis vierte. Das entlastet auch den Mac.
5. Gedächtnis hilft
MariFlow war ein rekurrentes Netz und nutzte vorherige Bilder. Aus einem Standbild sieht man weder Geschwindigkeit noch Drift-Zustand. Deshalb werden mehrere Frames gestapelt oder ein kleines rekurrentes Netz verwendet.
6. Reinforcement Learning ist auf echter Hardware kaum machbar
Die RL-Projekte (gym-mupen64plus, Wii-RL mit Dolphin, die University of Maryland) brauchen Millionen Runden, Savestates zum Zurückspulen und lesen Position und Fortschritt direkt aus dem Emulator-Speicher. Der Autor von gym-mupen64plus nennt „Fortschrittserkennung“ selbst als ungelöst; seine Belohnung ist schlicht „minus eins pro Zeitschritt“. Auf der echten Switch gibt es weder Speicherzugriff noch Zurückspulen. Darum bleibt es bei Imitation plus Korrekturfahrten; RL höchstens später mit einer Belohnung aus dem Bild (Rundenzähler, Minimap-Position).
7. Emulatoren haben null Latenz, wir nicht
Kein Vorbild musste mit Verzögerung umgehen. Das Training mit zufällig eingebauter Verzögerung ist deshalb der eine Punkt, an dem dieses Projekt Neuland betritt.
TensorKart (Mario Kart 64, 2016, Nachahmung mit Joystick-Aufnahmen) · NeuralKart (Mario Kart 64, 2017, Such-KI als Lehrer) · MariFlow (Super Mario Kart, 2017, rekurrentes Netz, interaktive Übernahme) · NeuroMario (Super Mario Kart, Netz nach NVIDIAs End-to-End-Fahrmodell) · Wii-RL und University of Maryland (Mario Kart Wii bzw. Original, Reinforcement Learning im Emulator).
Begriffe für Einsteiger
| Begriff | Bedeutung |
|---|---|
| Firmware | Das Programm, das fest auf dem Mikrocontroller läuft. „Flashen“ heißt, es in den Speicher des Chips zu schreiben. |
| ESP-IDF | Espressifs offizielles Entwicklungs-Framework für ESP32-Chips. Mächtiger, aber sperriger als Arduino. |
| Bluetooth-Stack | Die Softwareschicht, die aus Funkwellen eine Verbindung macht. Hier: Bluedroid (von Espressif mitgeliefert) gegen BTstack (von BlueKitchen). |
| HID | Human Interface Device. Die Bluetooth- oder USB-Rolle für Tastaturen, Mäuse und Gamepads. |
| Inquiry / Paging | Inquiry ist das „Wer ist da?“ der Konsole, Paging das gezielte „Du da, verbinde dich“. Die Switch 2 fand den ESP32 vermutlich, pagte ihn mit Bluedroid aber nie. |
| Subcommands | Die Fragen, die die Switch einem Controller nach dem Verbinden stellt (Geräteinfo, Kalibrierung, Berichtsmodus). Falsche Antwort, kein Controller. |
| UART / Baud | Die serielle Verbindung zwischen Mac und ESP32 über USB. Baud ist die Geschwindigkeit; 115 200 Baud sind etwa 11 500 Zeichen pro Sekunde. |
| Latenz | Die Zeit zwischen Ursache und Wirkung, hier vom Tastendruck bis zur Reaktion im Spiel. Für eine KI entscheidend, weil sie auf veralteten Bildern reagiert. |
| Watchdog | Eine Sicherheitsfunktion: Bleiben die Befehle aus, lässt die Firmware alle Tasten los, statt endlos Gas zu geben. |
| UVC / MJPEG | UVC ist der USB-Standard für Webcams, den auch Capture-Karten nutzen. MJPEG heißt: jedes Bild kommt als einzelnes JPEG. Nur so passen 60 Bilder pro Sekunde durch USB 2.0. |
| Imitation Learning | Nachahmungslernen: Das Netz sieht Bilder und die Aktionen eines Menschen dazu und lernt, dieselbe Aktion zu wählen. Kein Belohnungssystem, kein Ausprobieren. |
| Frame-Stapel | Mehrere aufeinanderfolgende Bilder, die dem Netz gleichzeitig gezeigt werden. Aus einem Einzelbild sieht man keine Geschwindigkeit, aus vier Bildern schon. |
| Epoche | Ein kompletter Durchlauf durch alle Trainingsbeispiele. Hier dauert eine Epoche etwa acht Sekunden, 25 davon ergeben ein Modell. |
| Regression zur Mitte | Wenn ein Netz unsicher ist, tippt es auf den Durchschnitt. Bei Lenkdaten, die zu 69 % „geradeaus“ sind, heißt das: zu zaghaft lenken. Deshalb Klassen statt eines Zahlenwerts. |
| Shadow-Modus (DAgger) | Die KI fährt, der Mensch schaut zu und greift nur bei Fehlern ein. Nur diese Eingriffe werden nachtrainiert. In der Forschung heißt das Prinzip DAgger („Dataset Aggregation“). |
| Aufschaukeln | Ein kleiner Fehler bringt die KI in eine Lage, die sie nie im Training gesehen hat; dort rät sie, der Fehler wird größer. Der Hauptgrund, warum reines Nachahmen allein nicht reicht. |