Reinforcement Learning

 

 

Was ist Reinforcement Learning?

Drei Dinge, die Sie über Reinforcement Learning wissen sollten

Reinforcement Learning ist eine Form von Machine Learning, bei der ein Computeragent durch wiederholte Trial-and-Error-Interaktionen mit einer dynamischen Umgebung lernt, eine Aufgabe auszuführen. Mithilfe dieses Lernansatzes kann der Agent eine Reihe von Entscheidungen treffen, die eine Belohnungsmetrik für die Aufgabe maximieren, ohne dass ein menschliches Eingreifen nötig ist und ohne dass er explizit für die Erfüllung der Aufgabe programmiert wurde.

Mit Reinforcement Learning trainierte KI-Programme schlagen menschliche Spieler in Brettspielen wie Go, Schach sowie in Videospielen. Obwohl Reinforcement Learning keineswegs ein neues Konzept ist, haben es die jüngsten Fortschritte beim Deep Learning und bei der Rechenleistung ermöglicht, einige bemerkenswerte Ergebnisse im Bereich der Künstlichen Intelligenz zu erzielen.

Weshalb Reinforcement Learning von Bedeutung ist

Reinforcement Learning vs. Machine Learning vs. Deep Learning

Reinforcement Learning ist ein Teilbereich des Machine Learning (Abbildung 1). Im Gegensatz zum unüberwachten und überwachten Machine Learning ist das Reinforcement Learning nicht auf einen statischen Datensatz angewiesen, sondern arbeitet in einer dynamischen Umgebung und lernt aus gesammelten Erfahrungen. Datenpunkte oder Erfahrungen werden während des Trainings durch Trial-and-Error-Interaktionen zwischen der Umgebung und einem Software-Agenten gesammelt. Dieser Aspekt des Reinforcement Learning ist wichtig, da er den Aufwand der Datensammlung, Vorverarbeitung und Annotation vor dem Training verringert, der sonst bei überwachtem und unüberwachtem Lernen erforderlich ist. In der Praxis bedeutet das, dass ein Modell für das Reinforcement Learning, wenn es den richtigen Impuls erhält, selbständig und ohne (menschliche) Überwachung mit dem Lernen eines Verhaltens beginnen kann.

Deep Learning umfasst alle drei Arten des Machine Learning. Reinforcement Learning und Deep Learning schließen sich nicht gegenseitig aus. Komplexe Probleme beim Reinforcement Learning stützen sich oft auf tiefe neuronale Netze, ein Fachgebiet, das als Deep Reinforcement Learning bekannt ist.

Abbildung 1. Die drei großen Kategorien des Machine Learning: unüberwachtes Lernen, überwachtes Lernen und Reinforcement Learning.

Anwendungsbeispiele für Reinforcement Learning

Tiefe neuronale Netze, die mit Reinforcement Learning trainiert wurden, können komplexe Verhaltensweisen verschlüsseln. Das ermöglicht eine alternative Herangehensweise an Anwendungen, die mit herkömmlichen Methoden nicht oder nur schwer zu bewältigen sind. Beim autonomen Fahren kann zum Beispiel ein neuronales Netz den Fahrer ersetzen und entscheiden, wie das Lenkrad einzuschlagen ist, indem es gleichzeitig mehrere Sensoren wie Kamerabilder und LiDAR-Messungen betrachtet. Ohne neuronale Netze würde das Problem normalerweise in kleinere Teile zerlegt, wie z. B. das Extrahieren von Merkmalen aus Kamerabildern, das Filtern der LiDAR-Messungen, das Zusammenführen der Sensorausgaben und das Treffen von Entscheidungen bezüglich Fahrverhalten, das auf Sensoreingaben basiert.

Obwohl sich der Ansatz des Reinforcement Learning für Produktionssysteme noch in der Evaluierungsphase befindet, sind einige industrielle Anwendungen gute Kandidaten für diese Technologie.

Moderne Regelungen: Die Regelung nichtlinearer Systeme ist ein komplexes Problem, das oft durch Linearisierung des Systems in verschiedenen Betriebspunkten angegangen wird. Das Reinforcement Learning kann direkt auf das nichtlineare System angewendet werden.

Automatisiertes Fahren: Das Treffen von Fahrentscheidungen basierend auf Kameraeingaben ist ein ideal geeignetes Einsatzgebiet für Reinforcement Learning, wenn man den Erfolg von tiefen neuronalen Netzen in Bildanwendungen bedenkt.

Robotik: Reinforcement Learning kann bei Anwendungen wie dem Greifen von Robotern helfen, z. B. wenn man einem Roboterarm beibringt, wie eine Vielzahl von Objekten für Pick-and-Place-Anwendungen zu handhaben ist. Weitere Anwendungen der Robotik sind die Mensch-zu-Roboter- und Roboter-zu-Roboter-Interaktion.

Scheduling: Scheduling-Probleme treten in vielen Szenarien auf, z. B. bei der Ampelregelung und der Koordinierung von Fabrikhallen-Ressourcen im Hinblick auf ein bestimmtes Ziel. Reinforcement Learning ist eine gute Alternative zu evolutionären Methoden, um diese kombinatorischen Optimierungsprobleme zu lösen.

Kalibrierung: Anwendungen, die eine manuelle Kalibrierung von Parametern beinhalten, wie z. B. die Kalibrierung von elektronischen Steuergeräten (ECU), können gute Kandidaten für Reinforcement Learning sein.

Wie Reinforcement Learning funktioniert

Der Trainingsmechanismus beim Reinforcement Learning spiegelt viele reale Szenarien wider. Denken Sie z. B. an das Training von Haustieren durch positive Verstärkung.

Abbildung 2. Reinforcement Learning beim Hundetraining.

Mithilfe der Terminologie des Reinforcement Learning (Abbildung 2) besteht das Ziel des Lernens in diesem Fall darin, den Hund (Agent) zu trainieren, eine Aufgabe in einer Umgebung zu bewerkstelligen, die sowohl das Umfeld des Hundes als auch den Trainer einschließt. Zunächst gibt der Trainer ein Kommando oder einen Hinweis, den der Hund beobachtet (Beobachtung). Der Hund reagiert darauf, indem er eine Handlung ausführt. Wenn die Handlung des Hundes dem gewünschten Verhalten nahe kommt, wird der Trainer dem Hund wahrscheinlich eine Belohnung geben, z. B. einen Leckerbissen oder ein Spielzeug. Andernfalls gibt es keine Belohnung. Zu Beginn des Trainings wird der Hund wahrscheinlich eher zufällige Handlungen ausführen, wie z. B. auf dem Boden rollen, wenn das Kommando „Sitz“ gegeben wird, da er versucht, bestimmte Beobachtungen mit Handlungen und Belohnungen zu verknüpfen. Diese Assoziation oder Zuordnung zwischen Beobachtungen und Handlungen nennt man Strategie. Aus der Sicht des Hundes wäre der Idealfall natürlich, dass er korrekt auf alle Kommandos reagiert, um so viele Leckerbissen wie möglich zu bekommen. Der Sinn des Trainings mit Reinforcement Learning besteht also darin, die Strategie des Hundes so auszurichten, dass er das gewünschte Verhalten lernt, das ihm eine bestimmte Belohnung garantiert. Nach Abschluss des Trainings sollte der Hund in der Lage sein, den Besitzer zu beobachten und mithilfe des Befehls „Sitz“ die entsprechende Handlung auszuführen, z. B. sich zu setzen, indem er die von ihm entwickelte interne Strategiefunktion anwendet. Jetzt sind Leckerbissen zwar noch willkommen, sollten aber theoretisch nicht mehr notwendig sein.

Denken Sie an das Beispiel des Hundetrainings und vergleichen Sie es mit einem Fahrzeug, das mithilfe eines autonomen Fahrsystems einparkt (Abbildung 3). Ziel ist es, dem Fahrzeugcomputer (Agent) mithilfe von Reinforcement Learning beizubringen, in die richtige Lücke einzuparken. Genau wie im Fall des Hundetrainings gilt als Umgebung alles, was sich außerhalb des Agenten befindet. Hierzu können die Dynamik des Fahrzeugs, andere möglich Fahrzeuge in der Nähe, Wetterbedingungen usw. gehören. Während des Trainings verwendet der Agent Messwerte von Sensoren wie Kameras, GPS und LiDAR (Beobachtungen), um Lenk-, Brems- und Beschleunigungsbefehle (Aktionen) zu erzeugen. Um zu lernen, wie man die richtigen Aktionen aus den Beobachtungen generiert (Strategie-Tuning), versucht der Agent wiederholt, das Fahrzeug einzuparken. Mit einem bereitgestellten Belohnungssignal können die Güte eines Versuchs bewertet und der Lernprozess gesteuert werden.

Abbildung 3. Reinforcement Learning für autonomes Parken. 

Im Beispiel des Hundetrainings läuft das Training im Gehirn des Hundes ab. Im Beispiel des autonomen Parkens hingegen wird das Training von einem Trainingsalgorithmus übernommen. Dieser Trainingsalgorithmus ist für die Abstimmung der Agentenstrategie basierend auf den gesammelten Sensormesswerten, Aktionen und Belohnungen verantwortlich. Nach Abschluss des Trainings sollte der Fahrzeugcomputer in der Lage sein, nur mithilfe der abgestimmten Strategie und den Sensormesswerten einzuparken.

Es gilt zu bedenken, dass Reinforcement Learning keine effiziente Stichprobenziehung ermöglicht. Im Klartext heißt das, dass eine große Anzahl von Interaktionen zwischen dem Agenten und der Umgebung nötig sind, um Daten für das Training zu sammeln. Als Beispiel: AlphaGo, das erste Computerprogramm, das einen Weltmeister im Go-Spiel besiegt hat, wurde über einige Tage ohne Unterbrechung trainiert, indem es Millionen von Spielen spielte und dabei Tausende von Jahren an menschlichem Wissen ansammelte. Selbst für relativ einfache Anwendungen kann die Trainingszeit von Minuten bis hin zu Stunden oder Tagen dauern. Auch ein angemessenes Einrichten der Aufgabe kann zur Herausforderung werden, da es eine Anzahl zu treffender Design-Entscheidungen gibt, die bis zur korrekten Ausführung einige Wiederholungen erforderlich machen können. Dazu gehören z. B. die Auswahl der geeigneten Architektur für die neuronalen Netze, die Abstimmung der Hyperparameter und die Gestaltung der Belohnungsfunktion.

Workflow für Reinforcement Learning

Der allgemeine Workflow für das Training eines Agenten durch Reinforcement Learning umfasst die folgenden Schritte (Abbildung 4):

Abbildung 4. Workflow für Reinforcement Learning.

1. Erstellen der Umgebung

Definieren Sie zuerst die Umgebung, in der der Reinforcement Learning-Agent lernen kann, einschließlich der Schnittstelle zwischen Agent und Umgebung. Die Umgebung kann entweder ein Simulationsmodell oder ein reales physisches System sein. Simulierte Umgebungen sind in der Regel gut für die ersten Schritte geeignet, da sie sicherer sind und Experimente ermöglichen.

2. Definieren der Belohnung

Geben Sie als Nächstes das Belohnungssignal an, mit dem der Agent seine Leistung in Bezug auf die Aufgabenziele misst, und legen Sie fest, wie dieses Signal aus der Umgebung berechnet wird. Die Gestaltung der Belohnung kann schwierig sein und erfordert unter Umständen einige Wiederholungen.

3. Erstellen des Agenten

Dann wird der Agent erstellt, der aus der Strategie und dem Trainingsalgorithmus für das Reinforcement Learning besteht. Gehen Sie wie folgt vor:

a) Wählen Sie eine Möglichkeit, die Strategie darzustellen (z. B. mithilfe neuronaler Netze oder Look-up-Tables).

b) Wählen Sie den geeigneten Trainingsalgorithmus aus. Verschiedene Darstellungen sind oft an bestimmte Kategorien von Trainingsalgorithmen gebunden. Aber im Allgemeinen basieren die meisten modernen Algorithmen für Reinforcement Learning auf neuronalen Netzen, da diese gute Kandidaten für große Zustands-/Aktionsräume und komplexe Probleme sind.

4. Trainieren und Überprüfen des Agenten

Legen Sie Trainingsoptionen fest (z. B. Stoppkriterien) und trainieren Sie den Agenten, um die Strategie zu optimieren. Achten Sie darauf, dass die trainierte Strategie nach Beendigung des Trainings validiert wird. Überprüfen Sie bei Bedarf Design-Entscheidungen wie das Belohnungssignal und die Strategie-Architektur und trainieren Sie erneut. Reinforcement Learning ist allgemein dafür bekannt, dass eine Stichprobenziehung nicht effizient ist. Das Training kann daher je nach Anwendung von Minuten bis zu Tagen dauern. Bei komplexen Anwendungen kann die Parallelisierung des Trainings auf mehreren CPUs, Grafikkarten und Computer-Clustern den Ablauf beschleunigen (Abbildung 5).

Abbildung 5. Training eines ineffizienten Lernproblems mit Parallel Computing.

5. Bereitstellen der Strategie

Stellen Sie die Darstellung der trainierten Strategie, z. B. in Form von generiertem C/C++ oder CUDA Code bereit. Nun ist die Strategie ein eigenständiges Entscheidungssystem.

Das Training eines Agenten mithilfe von Reinforcement Learning ist ein iterativer Prozess. Für Entscheidungen und Ergebnisse in späteren Phasen kann es notwendig sein, zu einer früheren Phase des Lern-Workflows zurückzukehren. Wenn der Trainingsprozess beispielsweise nicht innerhalb eines angemessenen Zeitraums zu einer optimalen Strategie konvergiert, müssen Sie möglicherweise einige der folgenden Elemente verändern, bevor Sie den Agenten erneut trainieren:

  • Trainingseinstellungen
  • Konfiguration des Lernalgorithmus für das Reinforcement Learning
  • Darstellung der Strategie
  • Definition des Belohnungssignals
  • Aktions- und Beobachtungssignale
  • Umgebungsdynamik

Reinforcement Learning mit MATLAB und Simulink

MATLAB® und die Reinforcement Learning Toolbox™ vereinfachen Aufgaben des Reinforcement Learning. Sie können Regelungen und Entscheidungsalgorithmen für komplexe Systeme wie Roboter und autonome Systeme implementieren, indem Sie jeden Schritt des Workflows für Reinforcement Learning durcharbeiten. Insbesondere können Sie:

1. Umgebungen und Belohnungsfunktionen mit MATLAB und Simulink® erstellen

2. Tiefe neuronale Netze, Polynome und Look-up-Tabellen zur Definition von Strategien für das Reinforcement Learning verwenden

Abbildung 6 Einem zweibeinigen Roboter mit der Reinforcement Learning Toolbox™ das Laufen beibringen

3. Zu verbreiteten Algorithmen für Reinforcement Learning wie DQN, DDPG, PPO und SAC mit nur geringfügigen Code-Änderungen wechseln, diese bewerten und vergleichen oder Ihren eigenen benutzerdefinierten Algorithmus erstellen

4. Die Parallel Computing Toolbox™ und MATLAB Parallel Server™ nutzen, um Strategien für Reinforcement Learning schneller zu trainieren, indem Sie mehrere Grafikkarten und CPUs, Computer-Cluster und Cloud-Ressourcen nutzen.

5. Code generieren und Strategien für Reinforcement Learning für Embedded Geräte mit MATLAB Coder™ und GPU Coder™ bereitstellen

6. Mithilfe von Referenzbeispielen mit dem Reinforcement Learning beginnen.

Erfahren Sie mehr über Reinforcement Learning