Lernende KI mit Rule-Based-Systems
Künstliche Intelligenz in Videospielen ist meist statisch implementiert. Sobald man daran denkt, eine "lernende" KI zu entwickeln, denkt man automatisch an neuronale Netze, Reinforment Learning, etc. Alles Varianten, die vergleichsweise aufwändig zu implementieren und wesentlich komplexer zu trainieren sind. Rule-Based-Systems sind eine simple und einfache Variante, eine lernende KI zu implementieren, welche auf die Strategie von Spieler:innen reagieren und antizipieren kann. In diesem kurzen Beitrag möchte ich die Theorie hinter Rule-Based-Systems vorstellen.
Rule-Based-Systems bieten die Möglichkeit ein Set an vordefinierten Regeln zu erstellen, sodass die künstliche Intelligenz auf Basis dieser Regeln Entscheidungen treffen kann. Dabei handelt es sich allerdings nicht lediglich um eine Liste an boolischen Aussagen. Diese Regeln können andere Regeln referenzieren und bilden dadurch eine Graphen-Modell und bieten folglich eine Vielzahl an Kombinationsmöglichkeiten.
Der Aufbau des Systems sieht zwei Module vor: Das Working-Memory und das Rules-Memory.
-
Das Working-Memory speichert Fakten über den Game State. Zum Beispiel die Information darüber, ob das Spiel gewonnen ist oder wie viel Lebenspunkte der Spielercharakter noch besitzt. Im Working-Memory befinden sie die Fakten, auf welche aufbauend die Entscheidungen getroffen werden sollen.
-
Im Rules-Memory werden Regeln mittels boolischen Aussagen definiert. Jede Aussage enthält eine Konsequenz welche abgeleitet wird, wenn die Aussage zutrifft. Diese Konsequenz wiederum kann das Working-Memory verändern und/oder andere Funktionen der Anwendung aufrufen und damit neue Prozesse starten. Im ersten Fall hätte die künstliche Intelligenz ihren Wissensstand erweitert. Im zweiten Fall hätte sie aktiv reagiert. Auch beides gleichzeitig ist möglich.
Um ein Beispiel zu nennen: Es soll eine künstliche Intelligenz für ein Fußball-Videospiel entwickelt werden. Das Working-Memory wird benutzt, um Fakten zu sammeln, welche Aussagen über die Anzahl an Toren, gelben und roten Karten, Foulspiele, Anzahl an verlorenen und gewonnenen Zweikämpfe, Schüsse auf das Tor und vieles mehr geben.
Angenommen es soll eine Regel eingeführt werden, um auf eine drohende Niederlage zu reagieren. Die Bedingung für diese Regel könnte sein, dass das eigene Team hinten liegen muss und noch weniger als zehn Minuten Spielzeit übrig sind. Nun fehlt nur noch die Definition einer Konsequenz, welche auf eine drohende, knappe Niederlage gesehen soll. Die Konsequenz könnte sein, dass das Team auf eine aggressivere Taktik setzen soll - somit eine konkrete Handlung der KI.
Manche Fighting-Games nutzen Rule-Based-Systems, um auf Angriffsketten zu reagieren.
Soweit unterscheidet sich das System nicht von einer Aneinanderkettung von einfachen if-Statements. Doch der Vorteil von regelbasierten Systemen gegenüber einfachen if-Statements in prozedualen Sprachen ist zum einen der modulare Aufbau und die damit einhergehende Verbesserung der Wartbarkeit und Verwaltung. Jede Regel lässt sich als Klasse implementieren. Mit einer Klasse lassen sich Beziehungen zwischen den Regeln aufbauen. Doch was passiert, wenn mehrere Regeln die selbe Vorbedingung haben? Welche Regel wird ausgewählt? Man kann den Zufall entscheiden lassen. Doch an dieser Stelle kommt die Stärke von Rule-Based-Systems in das Spiel.
Der Kernaspekt von Rule-Based-Systems ist die Anpassung von Gewichtungen der Regeln zur Laufzeit. Jede Regel besitzt einen internen Wert, der zu Anfang mit einem neutralen Wert initialisiert wird. In regelmäßigen Abständen wird über Heuristik evaluiert, ob eine zuvor ausgeführte Konsequenz einer Regel die KI näher zum Sieg gebracht hat, oder nicht. Wenn sich beispielsweise ergibt, dass die aggressivere Taktik dem Team ein weiteres Gegentor beschert hat, könnte die Gewichtung der Regel, welche den Taktikwechsel initiiert hat, reduziert werden. Die Gewichtungen werden bei der Auswahl der Regeln berücksichtigt. Mit diesem Prinzip ist es möglich der KI die Fähigkeit zu geben, aus Fehlern zu lernen. Nur wenn mehrere Regeln die selbe Gewichtung haben, entscheidet der Zufall darüber, welche Regel ausgewählt wird.
Auf die Veränderung des Working-Memorys könnte in der nächsten Iteration eine andere Regel reagieren und ihre Informationen an KI-Subsysteme, wie die Agenten welche die Fußballspieler:innen kontrollieren, weitergeben. In welcher Frequenz die Iterationen des Systems ausgeführt werden, hängt von der zur Verfügung stehenden Performance und der Anzahl der Regeln ab, die bei jeder Iteration geprüft werden müssen.