OpenAI-Gym-Umgebungen

Reinforcement Learning mit Simulink-Modellen

Maschinelles Lernen fasst viele Methoden zusammen, die mit der Generierung von Wissen aus Erfahrung verbunden sind. Überwachtes Lernen befasst sich mit der Erstellung von Modellen, die auf Daten basieren. Unüberwachtes Lernen beschäftigt sich mit der Identifizierung von Strukturen in Daten. Beim bestärkenden Lernen, dem sogenannten Reinforcement Learning, das manchmal als Unterkategorie des überwachten Lernens gesehen wird, geht es um eine Strategie, die durch Ausprobieren gelernt wird und die zu einer maximalen Belohnung führt. Die Belohnungsfunktion muss dabei für jeden Anwendungsfall definiert werden.
Abbildung 1: Übersicht eines Reinforcement-Learning-Prozesses
Abbildung 1: Übersicht eines Reinforcement-Learning-Prozesses Bild: Inst. f. Steuerungstechn. der Werkzeugm.

Das Ausprobieren erfolgt in den meisten Fällen mithilfe einer Simulation, bei der der Reinforcement Learning Agent eine vordefinierte Anzahl und Art an Aktionen durchführt und seine Belohnung sowie Änderungen in seiner Umgebung beobachtet. Simulationen als Umgebungen sind bei meisten Anwendungsfällen Voraussetzung für den Lernprozess. Bekannte Beispiele für Simulationsumgebungen sind Videospiele oder Simulationen von Brettspielen wie Schach oder Go, bei denen Reinforcement-Learning-Agenten eine möglichst hohe Punktzahl als Ziel (und auch als Belohnung) haben. Ein weiteres bekanntes Beispiel für eine Reinforcement-Learning-Umgebung, die näher an der Produktionstechnik liegt, ist die Simulation eines invertierten Pendels. Seine Dynamikgleichungen sind einfach und können in jeder Programmiersprache implementiert und simuliert werden. Für das bestärkende Lernen ist es dabei wichtig, zu entscheiden, welche Belohnung der Agent bekommt und wann. Beim Pendelbeispiel ist es relativ simpel: Der Agent wird belohnt wenn das Pendel oben steht und möglichst wenig Geschwindigkeit hat. Diese einfache Simulationsumgebung kann an die neuen Reinforcement-Learning-Algorithmen gekoppelt werden und eine Strategie, durch die das Pendel nach oben gehalten wird, kann erlernt werden. Reinforcement Learning kann aber auch Steuerungslogik für Produktionssysteme erlernen, falls das Produktionssystem als eine für das Lernen geeignete Simulation aufgebaut ist.

Abbildung 2: Inverses Pendel als Beispiel für eine Reinforcement-Learning-Umgebung
Abbildung 2: Inverses Pendel als Beispiel für eine Reinforcement-Learning-UmgebungBild: Wikipedia.com

Benchmark und Schnittstelle

Um Benchmarking mehrerer Agenten in derselben Umgebung zu ermöglichen, wurde die Open-Source-Bibliothek OpenAI Gym entwickelt. Es bietet eine Sammlung von Umgebungen, von invertierten Pendeln bis hin zu Videospielen, die in der Programmiersprache Python entwickelt wurden. OpenAI Gym ist aber mehr als nur eine Sammlung von Umgebungen. Es definiert eine einheitliche Schnittstelle für alle Umgebungen und Implementierungen der neusten Lernmethoden. In der Praxis bedeutet das, dass man innerhalb weniger Minuten ohne Modellierungs- oder Schnittstellenentwicklungsaufwand eine Umgebung und eine Lernmethode herunterladen und den Lernprozess starten kann. Neue Umgebungen können hinzugefügt werden. Diese haben eine fest definierte Struktur (auch als Dateisystem, aber auch als Komponentenmodell) und müssen ein Umgebungsmodell beinhalten.

Abbildung 3: Generierung einer Simulink-OpenAI-Gym-Umgebung
Abbildung 3: Generierung einer Simulink-OpenAI-Gym-UmgebungBild: Inst. f. Steuerungstechn. der Werkzeugm.

Modelle in der Steuerungstechnik

Modellierung in der Produktionstechnik ist aber weit entfernt von einfachen Python-Skripten. Existierende Modelle können die Realität mit der benötigten Genauigkeit abbilden. Sie werden in Simulationsumgebungen wie Matlab Simulink entwickelt. Manche werden als digitaler Zwilling der realen Maschine bezeichnet. Das Matlab Python Interface bietet eine Schnittstelle für die gesamte Entwicklungsumgebung nach Python und der Matlab/Simulink Coder bietet die Möglichkeit, für verschiedene Plattformen C/C++-Codes zu generieren und zu kompilieren (inklusive C/C++-Schnittstelle). Beide Optionen können verwendet werden, um einen Wrapper für die Simulation zu entwickeln, der nach der OpenAI-Gym-Struktur ausgelegt ist. Die Matlab-Schnittstellen und die OpenAI-Gym-Schnittstelle bieten aber für alle Simulationen dieselben Interaktionsmöglichkeiten. Dies erlaubt die automatisierte Generierung von einer Zwischenschicht, die von einer Seite als OpenAi-Gym-Umgebung erkannt wird und von der anderen Seite alle Informationen an die Matlab-Schnittstellen weiterleitet.

OpenAI Gym-Schnittstelle

OpenAI-Gym-Umgebungen sind in Python implementiert, können aber Aufrufe nach weiteren Komponenten beinhalten. Die Methoden (Funktionen), mit denen eine OpenAI-Gym-Umgebung implementiert werden soll, sind die Folgenden:

Seiten: 1 2 3Auf einer Seite lesen

ISW Institut für Steuerungstechnik der

Das könnte Sie auch Interessieren

Weitere Beiträge

Bild: Wago GmbH & Co. KG
Bild: Wago GmbH & Co. KG
I/O-System XTR von Wago

I/O-System XTR von Wago

Vor zehn Jahren hieß es bei Wago das erste Mal: XTR. Die Ausführung für „eXTReme“ Umgebungsbedingungen sollte dem Wago I/O System 750 neue Anwendungen und Branchen erschließen. Das betonte die Titelstory des damaligen SPS-MAGAZINs zur Hannover Messe 2014. Eine Dekade später hat die Redaktion bei Wago nachgehakt, ob dieser Plan aufgegangen ist und in welchen Bereichen das XTR-System heute vor allem zu finden ist.

mehr lesen