Owl Racer – Fahrstunden für die KI
AUTOR ANNA HOLZMANN
Die Anwendung Owl Racer, demonstriert in Abbildung 1, ist vor dem Hintergrund entstanden, Maschinelles Lernen mithilfe eines spielerischen Ansatzes insbesondere denjenigen näherzubringen, die sich in die Thematik einarbeiten wollen. Dadurch lassen sich Ergebnisse schnell beobachten und ein praxisorientierter Anwendungsfall wird dargestellt. Aus der ursprünglichen Idee folgte die Entwicklung eines Rennspiels, wobei der Fokus weiterhin nicht auf der Anwendung als Spiel liegt. Die Besonderheiten liegen in dem Einsatz und der Verknüpfung verschiedenster Technologien wie Python, ASP.NET, .NET Blazor und gRPC. Die Anwendung ist daher flexibel einsetzbar, sodass sie ausgebaut und weiterentwickelt werden kann. Getarnt als Rennspiel, bei dem Spieler entweder gegeneinander oder gegen die KI antreten können, bietet sie in erster Linie die Möglichkeit, sich an neue Technologien heranzutasten und diese auszuprobieren. Zudem wird vermittelt, wie sich Machine Learning Modelle trainieren und integrieren lassen.
Vorgehensweise und Technologien
Dargestellt in Abbildung 2, setzt sich die Architektur aus zwei wesentlichen Komponenten zusammen: Server und Client.
Der Server (ASP.NET) kontrolliert alle wesentlichen Aspekte des Rennspiels, ohne eine graphische Oberfläche bereitzustellen. Er hält die benötigten Informationen, beispielsweise das Spielfeld, die Rennautos sowie Berechnungen für die Fahrweise der Autos. Darüber hinaus sind hier weitere Charakteristiken des Spiels wie der Spielstand, Statistiken und Checkpoints auf der Fahrstrecke eingebettet und erweiterbar.
Der Server ist unabhängig von den Clients, die sich über (Web-) gRPC mit dem Server verbinden. Zum einen kann ein Client genutzt werden, um das Spiel zu visualisieren und Spielinformationen darzustellen. Zum anderen können Anweisungen, beispielsweise von einem Machine Learning Algorithmus, oder User Input übermittelt werden. Ein visueller Client, wie in Abbildung 1, dient lediglich als Unterstützung, sodass der Schwerpunkt nicht auf der Spieleigenschaft des Rennspiels liegt, sondern weiterhin auf den Lernalgorithmen.
Grundsätzlich besteht die Möglichkeit in zwei Modi am Spiel teilzunehmen. Im Spielmodus kann ein neues Spiel eröffnet werden, um so aktiv selbst zu fahren oder sich in ein bestehendes Spiel zu schalten und so gemeinsam mit anderen Spielern oder gegen die KI zu fahren. Im Zuschauermodus können bestehende Spiele beobachtet werden, ohne selbst am Rennen teilzunehmen, sodass ein Einblick in das Training möglich ist.
Wie in Abbildung 2 verdeutlicht, ist ein Vorteil von gRPC, dass sich Clients nicht auf eine Programmiersprache beschränken müssen und die Anwendung um eigene Clients erweitert werden kann. Bereits umgesetzt sind zwei visuelle Clients, Python Clients für die Integration von Machine Learning Algorithmen und ML.NET Clients, um zuvor trainierte Modelle laden und ausführen zu können.
Visuelle Clients
Der lokale Client ist mit dem MonoGame Framework implementiert, welches auf dem Microsoft XNA Framework basiert. Der Web-Client ist eine .NET Blazor basierte Webanwendung.
Python Clients
Machine Learning wird in die Anwendung integriert, indem sich ein Client über (Web-) gRPC mit dem Server verbindet. Hierfür kann jede Programmiersprache eingesetzt werden, die von gRPC unterstützt wird. Dies stellt eine Möglichkeit dar, eigene oder vortrainierte Modelle zu trainieren und einzubinden. Zurzeit kommen in Python Random Forests, Rule-based Algorithmen und Neural Networks zum Einsatz. Das Training basiert auf gesammelten Spieldaten. Zudem ist es möglich anschließend das trainierte Modell im ONNX Format zu exportieren.
ML.NET Clients
Mithilfe des ML.NET Clients können Modelle im ONNX Format in die Anwendung integriert werden. Diese können in die Prediction Pipeline geladen werden, um anschließend Vorhersagen auszugeben.
Ausblick und Fazit
Die Besonderheit der Verknüpfung verschiedener Technologien miteinander soll weiterhin ausgebaut werden. So sind bereits Alternativen, wie beispielsweise der Einsatz von Reinforcement Learning, zum bisherigen Training geplant. Vorgesehen ist ebenfalls, dass verschiedene Machine Learning Algorithmen in Rennen gegeneinander antreten und die Komplexität der Fahrtstrecken gesteigert wird. Die spielerische Anwendung Owl Racer ist eine Möglichkeit, Machine Learning zu erproben und gleichzeitig verschiedene Technologien miteinander zu verbinden.
Über die Autorin
Anna Holzmann arbeitet als Data Scientist bei der MATHEMA GmbH mit den Schwerpunkten Deep Learning und Machine Learning. Dabei löst sie komplexe Fragestellungen und stellt sowohl auf Anforderungen zugeschnittene Trainings- und Testumgebungen als auch für Anwendungen optimierte Modelle zur Klassifizierung und Lokalisierung bereit. Zusätzlich interessiert sie sich für die Softwareentwicklung in C#.