Suche

Bestärkendes Lernen: Anleitung und Informationen zur Simulation

In der verlinkten Simulation kann man einen Roboter mithilfe des bestärkenden Lernens darauf trainieren, in einer quadratischen Welt aus 25 Feldern durch Steine versperrte Wege zu vermeiden und zielsicher das Gold zu finden. Dieses funktioniert vollkommen ohne Programmierung eines Algorithmus wie z. B. „Wenn Stein oben, dann gehe links …“ usw., sondern einzig und allein durch die Erfahrung, die der Roboter im Laufe seines Trainings durch bestärkendes Lernen sammelt.

Ein 5x5 Felder großes Spielfeld mit Roboterfigur, Goldklumpen und drei Symbolen für Hindernisse

Beim Laden der Seite wird ein detailliertes Tutorial angezeigt, dennoch sollen hier zusätzlich einige Konzepte kurz erläutert werden. Ist der Roboter einmal trainiert, findet er von jeder möglichen zufälligen Startposition von alleine zum Gold. Dies kann man leicht testen, wenn man den Roboter zuerst trainiert („Lernvorgang starten“) und dann mehrfach hintereinander auf „Einen Schritt ausführen“ klickt. Pro Klick geht der Roboter den für ihn besten Schritt entweder nach oben, rechts, unten oder links, je nachdem, welche Erfahrungen er im Laufe seines Trainings gesammelt hat.

Diese Erfahrungen speichert der Roboter in einer Tabelle, die neben dem Spielfeld abgebildet ist. Man kann die Ansicht dieser Tabelle umschalten in eine rein tabellarische Darstellung und in eine grafisch etwas detailliertere Version mit Pfeilen. Beide Darstellungen meinen jedoch dasselbe: Für jedes der 25 Felder speichert und aktualisiert der Roboter durchgängig vier Werte, die für die 4 möglichen Aktionen pro Feld (einen Schritt nach oben, rechts, unten oder links) stehen. In diesen Werten hinterlegt der Roboter seine Erfahrungswerte, welcher Schritt von diesem Feld aus am erfolgversprechendsten ist. Je höher der Wert, desto besser – je niedriger der Wert, desto schlechter. Während des Lernprozesses werden diese Werte ständig auf Basis der erhaltenen Belohnungen/Bestrafungen aktualisiert. Diese Belohnungen/Bestrafungen erhält der Roboter nach jedem ausgeführten Trainingsschritt für die jeweilige ausgeführte Aktion. Der Roboter führt jedoch während des Lernprozesses nicht jeden Schritt anhand seiner aktuellen Erfahrungswerte aus, sondern wählt regelmäßig Wege, die für ihn vermeintlich schlechter sind. Dies ist wichtig, da es sein kann, dass der erste Schritt dieses Weges zwar als schlecht eingestuft wird, jedoch der gesamte Weg schlussendlich eine Abkürzung und somit den optimalen Wert darstellt. Der Grund hierfür ist, dass die Erfahrungswerte immer nur auf den Erfahrungswerten der direkt anliegenden Felder basieren und somit zwischenzeitlich inkorrekt sein können. Felder, die noch nie betreten wurden, werden so meist als schlechter eingestuft, da der Roboter für Schritte in diese Richtung noch keine Belohnungen erhalten hat. Im Laufe der Zeit ergeben sich also optimale Wege, die in der grafischen Ansicht der Tabelle durch die Pfeile leicht nachvollzogen werden können. Um das Training Schritt für Schritt beobachten zu können, ist es möglich, die „Spielzüge pro Sekunde“ und die Anzahl der „Spielzüge“ manuell einzustellen.

Die Werte in der Tabelle, an denen sich der Roboter später orientiert und die immer im Wertebereich zwischen 0 und 1 liegen, entstehen dabei wie folgt: Für jeden Schritt, den der Roboter macht, erhält er eine Bestrafung von -0,1. Trifft er auf einen Stein oder den Rand, erhält er eine noch höhere Bestrafung von -1,0. Findet er jedoch das Gold, erhält er eine Belohnung von +1,0, die dann direkt als neuer Erfahrungswert für die entsprechende Aktion gespeichert wird. In allen anderen Fällen findet eine Verrechnung der Werte aus dem neuen und nun aktuellen Feld und dem alten Feld statt, aus dem der Roboter gekommen ist. Dazu wird die höchste Erfolgsaussicht aus dem aktuellen Feld mit der Zahl aus dem vorherigen Feld verrechnet, die für die Richtung steht, aus der der Roboter gekommen ist. Die Entscheidungsfindung passt sich im Laufe des Trainingsprozesses an. Während der Roboter zu Beginn noch sehr häufig zufällige Aktionen wählt, neigt er im späteren Verlauf immer mehr dazu, seinen Erfahrungswerten zu vertrauen, da er davon ausgeht, dass bereits jedes Feld besucht wurde und nun lediglich aktuelle Strategien verfeinert werden müssen.

Für 25 Felder bei diesem beispielhaften Anwendungsfall können alle trainierten Erfahrungen noch gut in einer Tabelle untergebracht werden. Bei einem Spiel wie z. B. Go ist das aufgrund der unzähligen Möglichkeiten nicht mehr realistisch umsetzbar. Bei solch komplexen Anwendungen greift man auf andere Techniken zurück: So werden z. B. künstliche neuronale Netze genutzt, um den nächsten Schritt vorherzusagen, statt alle möglichen Schritte einzeln zu speichern. Ein solches Verfahren lässt sich auch in dem hier gezeigten Beispiel nutzen. Mit einem Klick auf „Algorithmus wechseln“ kann man ein künstliches neuronales Netz darauf trainieren, den nächsten Schritt des Roboters bestmöglich nur anhand seiner Position auf dem Spielfeld vorherzusagen. Das neuronale Netz hat 2 Eingabeneuronen (die Werte der x- und y-Koordinaten des Roboters) und 4 Ausgabeneuronen, mit denen es die 4 tabellarischen Werte für oben, rechts, unten und links vorhersagt. Das neuronale Netz verbessert sich, indem es ständig den Unterschied zwischen seinen Vorhersagen und den berechneten Zielwerten verringert. Im Laufe der Zeit wird es dadurch immer besser darin, die besten Entscheidungen zu treffen, basierend auf den Werten, die es während des Trainings gelernt hat.

Die Simulation „Bestärkendes Lernen“ wurde von Samuel Richter entwickelt, der 2024 sein Abitur am Emsland Gymnasium in Rheine absolvierte und als Schüler des Informatik Leistungskurses der Kooperationsschule Gymnasium Dionysianum das Projekt „Bestärkendes Lernen“ in Form einer besonderen Lernleistung im Rahmen des Abiturs entwickelte. Von der Planung bis zur Umsetzung als interaktive Webanwendung stand für Richter, der nach dem Abitur ein Informatikstudium aufgenommen hat, von Anfang an die Sinnhaftigkeit des Projekts im Vordergrund: eine Anwendung zu schaffen, die nicht zu trivial ist, um als echtes Beispiel für Bestärkendes Lernen zu dienen, aber auch nicht zu komplex, um nicht mehr verstanden zu werden. Da dieses Projekt aus dem Unterricht für den Unterricht entstanden ist, veröffentlichte Richter zusammen mit seinem Informatiklehrer Dr. Daniel Janssen das als kleine Unterrichtssequenz aufbereitete Material bei Science On Stage. Gerade im Hinblick auf den in dieser Zeit neu erarbeiteten Lehrplan für Informatik in der Sekundarstufe I in NRW gewinnt das Thema "Bestärkendes Lernen" zunehmend an Bedeutung, da es neben dem überwachten und unüberwachten Lernen einen der drei Schwerpunkte markiert, die Einzug in den Lehrplan NRWs gehalten haben.

Close search