Verstärkendes Lernen

Verstärkendes Lernen


!     Lesen Sie folgende Erklärung, um zu verstehen, was verstärkendes Lernen ist.


“Aua, heiß!” – Sehr schnell werden Kinder nach ihren ersten Erfahrungen mit einer Herdplatte gelernt haben, dass man diese besser nicht berühren sollte… Dabei lernen Kinder durch die direkte Rückmeldung ihrer Umwelt.

Verstärkendes Lernen (reinforcement learning) ist ein von der Psychologie inspiriertes Paradigma des maschinellen Lernens: Der Agent – ein Computerprogramm, das zu autonomen Verhalten fähig ist – lernt in Interaktion mit seiner Umwelt durch wiederholte Belohnungen oder Bestrafungen die Erfolgsaussichten seiner Aktionen besser einzuschätzen und somit seine Strategie zu optimieren.



Im Gegensatz zu den beiden bereits behandelten Lernansätzen benötigt das verstärkende Lernen keine großen Datenmengen im Vorfeld – weder beschriftete noch unbeschriftete. Stattdessen verfolgt der Agent ein bestimmtes Ziel, das er erreichen möchte – zum Beispiel ein Spiel wie Snake erfolgreich zu spielen oder, im Fall unseres Roboters, eine Wiese möglichst vollständig mit Blumen zu bepflanzen. Was der Agent allerdings erst lernen muss, ist die richtige Strategie


① Zunächst erfasst der Agent den Zustand – also die relevanten Aspekte seiner aktuellen Umgebung. Für unseren Roboter könnte dieser Zustand zum Beispiel durch den Wachstumsstand der Blumen auf der Wiese beschrieben werden. 
Beim Spiel Snake hingegen umfasst der Zustand unter anderem die Position des Futters sowie die Lage der einzelnen Körperteile der Schlange.

② Innerhalb seiner Umgebung kann der Agent nun Aktionen ausführen, die er abhängig vom aktuellen Zustand aus einer Menge verfügbarer Möglichkeiten auswählt. Unser Roboter hat beispielsweise in jedem Zustand zwei Optionen: gießen oder mit dem Spaten Setzlinge pflanzen. Im Spiel Snake stehen der Schlange vier mögliche Bewegungen zur Verfügung: nach oben, unten, rechts oder links.
Durch das Ausführen einer dieser Aktionen verändert sich der Zustand der Umwelt.

③ Anschließend erhält der Agent eine Belohnung oder Bestrafung, basierend auf zuvor festgelegten Regeln. 
Befindet sich unser Roboter zum Beispiel im Zustand „Setzlinge bereits gepflanzt“ und wählt die Aktion „Gießen“, sodass die Setzlinge wachsen, wird er mit einer bestimmten Anzahl Münzen belohnt. Führt er hingegen die Aktion „Mit dem Spaten graben“ aus und zerstört dabei die gepflanzten Setzlinge, wird er bestraft und verliert Münzen.

Im Spiel Snake wird der Agent belohnt, wenn sich der Kopf der Schlange dem Futter nähert, und bestraft, wenn die Schlange etwa mit ihrem eigenen Körper kollidiert. 

Die Art und Weise, wie Belohnungen und Strafen vergeben werden, beeinflusst entscheidend, wie der Agent lernt. So ist es nicht undenkbar, dass ein autonomes Fahrzeug lernt lieber kein Gas zu geben, da Stehenbleiben nicht bestraft wird, die Bestrafung bei einem Unfall aber im Vergleich viel zu hoch wäre.


④ Belohnungen verleiten den Agenten dazu, ein bestimmtes Verhalten häufiger zu zeigen, während Bestrafungen dazu führen, dass dieses Verhalten seltener ausgeführt wird. Erfolgreiche Aktionen werden also verstärkt, während ungeeignete Handlungen nach und nach "verlernt" werden.

Auf diese Weise passt der Agent seine Strategie an, die in seinem Modell gespeichert wird. Wenn vom Lernvorgang des Agenten die Rede ist, meint man damit genau diese Anpassung des Modells.

Unser Roboter verwaltet seine Strategie über das Regal, in dem er für jeden Zustand eine aktuelle Bewertung der möglichen Aktionen dokumentiert.


Zunächst wird der Agent aufgrund fehlender Erfahrung dabei explorativ vorgehen und Aktionen zufällig auswählen. Durch wiederholtes Durchlaufen des Zyklus aus Zustand erfassen, Aktion auswählen und ausführen sowie Belohnung oder Bestrafung erhalten, optimiert er seine Strategie nach und nach.


Einsatzbereiche


Ein häufiger Anwendungsbereich für verstärkendes Lernen sind Spiele. Der Zustand der Spielumgebung lässt sich in der Regel klar und strukturiert erfassen. Welche Aktion jedoch die beste ist, hängt von vielen Faktoren ab.

Gerade wegen dieser Komplexität ist es kaum möglich, einen klassischen, regelbasierten Algorithmus zu entwickeln, der in jeder Spielsituation optimal reagiert. Stattdessen lernt der Agent durch unzählige Wiederholungen welche Züge erfolgreich sind und welche vermieden werden sollten. So wird er nach und nach besser und kann das Spiel schließlich strategisch meistern.



Auch Roboter oder selbstfahrende Autos können mit verstärkendem Lernen trainiert werden. Hier wird man allerdings oft auf Simulationsumgebungen zurückgreifen, ehe man Roboter oder Autos in der echten Welt Erfahrungen sammeln lässt.


Ein weiterer wichtiger Anwendungsbereich des verstärkenden Lernens sind Optimierungsaufgaben – also Probleme, die sich mathematisch nur schwer lösen lassen und bei denen nicht von Anfang an klar ist, welche Strategie am besten funktioniert. 

Ein Beispiel ist die Steuerung einer Heizung: Hier lernt der Agent, die Heizleistung so zu regeln, dass immer eine angenehme Raumtemperatur herrscht – und gleichzeitig die Heizkosten möglichst gering bleiben.

Ein weiteres Beispiel ist die Planung von Zugverbindungen: Das Lernverfahren versucht eine Strategie zu entwickeln, mit der alle Verbindungen effizient bedient werden können – also so, dass die Zugauslastung möglichst hoch ist und Ressourcen optimal genutzt werden.