Erschienen am: 12.12.2017, Ausgabe SPS-MAGAZIN 12 2017

Trends, Themen und Projekte am ISW

Machine Learning in Steuerungstechnik und Robotik

Maschinelles Lernen ist ein weites Feld der künstlichen Intelligenz. Der letzte Teil dieser Artikelserie zur Steuerung aus der Cloud beschäftigt sich mit Grundlagen und Trends bei Maschine Learning sowie mit aktuellen Projekten am ISW der Universität Stuttgart.


Architektur des Reinforcement Learnings
Bild: Inst. f. Steuerungstechn. der Werkzeugm.

Beim maschinellen Lernen unterscheidet man hauptsächlich zwischen drei algorithmischen Ansätzen: überwachtes Lernen (supervised learning), unüberwachtes Lernen (unsupervised learning) und bestärkendes Lernen (reinforcement learning). Beim überwachten Lernen wird dem System gezeigt wie es sich verhalten soll, sowohl die Ziele als auch das Vorgehen sind bekannt. Gesucht werden nur noch die Parameter für den Ablauf. In Analogie zur Psychologie wird quasi mit einem Lehrer gelernt, der dem System das korrekte Verhalten zeigt. Beim nicht überwachten Lernen wird nach einer Struktur in den Daten gesucht, weder das Vorgehen noch die genaue Struktur werden vorgegeben. Häufig geht es darum verschiedene Verallgemeinerungen zu treffen um Muster zu finden, beispielsweise für das Clustering oder um eine große Menge an Daten zu sortieren. Beim Reinforcement Learning sind die Ziele bekannt, das Vorgehen jedoch nicht. Es wird auch keine Verhaltensstrategie gezeigt. Das System soll eine passende Strategie zur Erreichung der Ziele selbst finden. Lernen findet nicht durch Nachahmung statt, sondern durch eigene Erfahrungen. Es befindet sich in einer unbekannten Umgebung (simuliert oder real) und bekommt Belohnungen oder Bestrafungen, um auf ein passendes Verhalten zu schließen. Die Belohnung gibt einen Anhalt dafür, wie gut die getroffene Entscheidung war. Durch die Interaktion mit der Umgebung bekommt das System neue Informationen, die helfen das Verhalten zu verbessern. Damit Erfahrungen über verschiedene Zustände und Aktionen gesammelt werden können, muss viel ausprobiert werden. In Folge wird aus den Fehlern und guten Aktionen gelernt, der Lernprozess hat einen iterativen Charakter. Die Belohnungen können auch erst verzögert gegeben und dann je nach auftretendem Zeitpunkt gewichtet werden, wenn nicht einzelne Teilziele, sondern größere Gesamtziele bekannt sind. Diese Ansätze sind wichtige Aspekte des Reinforcement Learnings. Je nach Methode wird eventuell zunächst ein Zustandsmodell der Umgebung entwickelt, um darauf basierend zu lernen. Fehlt es an Informationen über die Verhaltensstrategie, funktioniert die Methode besonders gut. Es ist nicht nötig, Regeln genau zu beschreiben, und es ist möglich aus (scheinbar) rein intuitiven Entscheidungen zu lernen. Unter Umständen werden dadurch neue Entscheidungsregeln entdeckt, die von Menschen so nicht wahrgenommen werden. Reinforcement Learning wird einerseits angewendet, um Ergebnisse in Abhängigkeit der aktuellen Situation vorherzusagen. Andererseits dient es dazu Entscheidungen zu treffen, um ein möglichst gutes Ergebnis zu erhalten.

Hardware in the Loop

Beim Aufbau des Reinforcement Learnings und einer Hardware-in-the-Loop-Simulation (HIL) gibt es Parallelen. Die Analogie besteht in der Interaktion zwischen einer agierenden, bzw. steuernden Einheit mit einer definierten Umwelt. Bei der steuerungstechnischen HIL-Simulation ist die Hardware an eine Simulation angeschlossen. Sie bekommt die prozessrelevanten Informationen von den Sensoren und sendet Signale an die Aktoren, die den Prozess durchführen. Beim Reinforcement Learning gibt es eine Umgebung mit Zuständen, welche auch eine Simulationsumgebung sein kann. Die Zustände werden an einen Agenten statt an die Steuerungen gegeben. Der Agent entscheidet sich wiederum für Aktionen, die in der Umgebung ausgeführt werden sollen. Er führt autonom Aufgaben aus, um ein Ziel zu erreichen, benötigt aber eine Zusatzinformation über die Güte seiner Aktionen. Aufgrund der Vergleichbarkeit dieses Aufbaus ist das Reinforcement Learning geeignet zum Lernen der Ablaufsteuerung. Dessen Umgebung kann direkt für die HIL-Simulation für Tests und für die Inbetriebnahme benutzt werden. Für die bestmögliche Lösung können auch verschiedene Varianten einer Anlage getestet und die gelernten Ablaufstrategien verglichen werden. Durch die Simulation können gelernte Ablaufstrategien zudem direkt verifiziert werden. Da sich die HIL-Simulation für Tests und Inbetriebnahmen von Steuerungssystemen etabliert hat, ist deren Verwendung als Umgebung für maschinelles Lernen ein natürlicher nächster Schritt. Reale Modelle sind meist teurer und starrer. Änderungen sind in der digitalen Version schneller, unkomplizierter und günstiger möglich. Außerdem ist es einfacher möglich, einzelne Bestandteile des Systems zu testen, ohne dass das Gesamtsystem funktioniert.

Anzeige

Individuelle Steuerungslösungen

In komplexen Fertigungsprozessen werden Maschinen zwar separat gesteuert, müssen aber spezifisch als Teilprozesse zusammenarbeiten, damit ein optimaler Ablauf erreicht wird. Der Gesamtablauf ist für jede Anlage anders, hinzu kommen häufig auch besondere Randbedingungen. Außerdem entstehen durch die Verknüpfung der individuellen Steuerungen viele einzelne logische Zusammenhänge, die eine komplexe Gesamtsteuerung benötigen. Eine optimale Ablaufstrategie sollte auf nur einer Steuerung beruhen, die einmal implementiert wird und trotzdem auf die individuellen Anforderungen jedes Prozesses reagiert. Ein jeweils passender Prozessablauf, der durch Lernprozesse entwickelt wird, würde viel Zeit und Aufwand sparen. Maschinelles Lernen kann hier ein Ansatz sein: Die Methoden werden dann nur einmal programmiert, aber auf verschiedene Beispiele oder mit einzelnen Regeln angewendet. Ein neuer Weg kann gefunden werden, ohne dass eine explizite Lösung vorgegeben wird, eventuell sogar ohne dass eine sinnvolle Lösung bekannt ist. Der Lernprozess sollte dann per Simulation stattfinden, denn durch das Trial&Error-Prinzip des Reinforcement Learning, treten zwangsläufig Fehler auf, die im realen Prozess unerwünscht wären. Die Grundlagen des Lernprozesses und dessen Implementierung sind für viele Steuerungen und Anlagen gleich. Ziel ist, dass die gelernten Steuerungen unterschiedliche, individuell angepasste Ergebnisse liefern ohne späteres menschliches Eingreifen. Im Idealfall lassen sich so für viele verschiedene, selbst komplexe Prozessabläufe effiziente Lösungen mit geringem Aufwand realisieren.

Anwendungsfall Sortierprozess

Ein einfacher Anwendungsfall ist ein System aus zwei Förderbändern, das Kisten mit zwei unterschiedlichen Größen transportiert. Die Kisten werden in zufälliger Reihenfolge auf das erste Förderband gelegt und sollen nach Größe sortiert werden. Das zweite Förderband steht orthogonal am Ende des ersten. Große Kisten sollen von dort nach links, kleine nach rechts transportiert werden. Mithilfe verschiedener Sensoren werden der Steuerung Informationen bezüglich der Kistengröße übermittelt. Das erste Förderband kann an- und ausgeschaltet werden, das zweite zusätzlich in beide Richtungen bewegt werden. Die Geschwindigkeit ist vorab festgelegt. Beim Ablauf dürfen die Kisten weder kollidieren noch das Förderband verlassen. Zunächst werden nur einzelne Kisten aufgelegt, erst wenn eine Kiste ein Ende des zweiten Förderbands erreicht hat, wird eine neue in das System gebracht. Die Menge der Aktionen ist dann folgende: Start und Stopp von Förderband eins sowie Start in beide Richtungen von Förderband zwei und Stopp. In jedem Zustand kann jede Aktionen gewählt werden, sowie deren Kombination. Die Gesamtaktion setzt sich dann aus den Teilaktionen zusammen. Auch wenn manche Aktion eindeutig nicht gewinnbringend ist, muss der Agent dies erst lernen.

Aus Belohnungen lernen

Beim Reinforcement Learning ist das Ziel des Agenten aus programmiertechnischer Sicht die Maximierung des Gewinns als Summe der Belohnungen und Bestrafungen. Es kann anhand von einzelnen Belohnungen gelernt werden, beispielsweise als neuronales Netz. Auf diese Weise könnten auch Zwischenzustände unterschiedlich belohnt werden, in dem deren Nutzen berücksichtigt wird. Da der Anwendungsfall jedoch recht einfach ist, wird die Belohnungsfunktion vorgegeben und nur die bereits beschriebenen Zustände bestraft bzw. belohnt. Die Höhe der Belohnung und Bestrafungen sollte so gewählt werden, dass möglichst schnell eine sinnvolle Strategie gelernt werden kann. Für die Wahl gibt es keine genauen Regeln, sondern es werden verschiedene Größen ausprobiert und die Ergebnisse verglichen. Die Belohnungsfunktion muss genau auf die einzelnen Anwendungsfälle zugeschnitten sein, einzelne Bestrafungen können jedoch auch allgemein gültig sein (z.B. eine Bestrafung wenn die Kiste vom Band fällt). Im Anwendungsfall wird belohnt, wenn eine Kiste das richtige Ende des zweiten Förderbandes erreicht. Bestraft wird neben dem falschen Sortieren, das Überfahren von Kanten des Förderbandes. Das kann passieren, wenn sich das erste und das zweite Förderband gleichzeitig bewegen. Dafür gibt es zwei Möglichkeiten: das erste Förderband muss sich bewegen und das zweite Förderband muss sich in positive oder negative Richtung bewegen. Welche Kante überfahren wird spielt für die Bestrafung keine Rolle, genauso wenig wird berücksichtigt wie lange sich die Kiste in der Lichtschranke befindet und ob es in Folge des Überfahrens vom Förderband fällt. Der Agent bekommt eine Bestrafung, sobald eine Kiste über irgendeine Kante fährt. Um eine schnelle Lösung zu begünstigen und zu fördern ist eine weitere Bestrafung notwendig, diese wird gegeben, wenn die gewählte Handlung den Agenten nicht voranbringt, sondern der Zustand erhalten bleibt.

Anzeige

Ergebnisse und Ausblick

Das Hauptergebnis der Anwendung ist, dass der Agent in der Lage ist, Verhaltensstrategien zu erlernen, mit denen er die Förderbänder steuern und dadurch die Kisten sortieren kann. Nach Abschluss des Lernens verhält sich der Agent deterministisch, d.h. bei der richtigen Strategie erreicht er eine 100 Prozent korrekte Sortierung. Die Lernzeiten sind von der Belohnungsfunktion und Diskontierungsfaktor abhängig. Im Durchschnitt wurden ca. 300 Zyklen benötigt um eine erfolgreiche Verhaltensstrategie zu lernen. Das Reinforcement Learning wurde konzeptuell aber auch softwaretechnisch erfolgreich an eine HIL-Simulationsumgebung gekoppelt. Es ermöglicht die Variation der Erneuerungsfunktion sowie die Verwendung einer Zustands- und einer Zustandsaktionsbewertung. Das entwickelte Konzept kann an verschiedene Anwendungsfälle angebunden werden. Die Sensorsignale des Materialflusssystems wurden diskretisiert und daraus ein Zustandsraum und eine Belohnungsfunktion definiert. Für die Aktorsignale wurde ein diskreter Aktionsraum festgelegt. Anhand des Anwendungsfalls wurden Versuchsreihen mit Parametervariationen durchgeführt. Dabei wurde als Bewertungsfunktion sowohl die Zustands- als auch die Zustandsaktionsbewertung getestet, beide in Form einer Lookup-Tabelle. Als Erneuerungsfunktion wurden die Bellman-Optimalitätsgleichung und die zeitliche Differenzenmethode eingesetzt. Statt eine Verhaltensstrategie mithilfe der Bewertungsfunktion zu lernen, könnte auch versucht werden, direkt eine SPS-Steuerung zu lernen. Das ist entweder durch eine automatisierte Überführung der Bewertungsfunktion in eine SPS-Steuerung möglich oder durch die Auswahl von SPS-Befehlen statt den bisherigen Aktionen. Für das direkte Lernen von SPS-Befehlen müssen die Aktionen aber neu definiert und deren Anbindung an die Simulation verändert werden. Es müssen Aktionsprimitive, klar definierte minimale Aktionen formuliert und implementiert werden. In diesem Fall würde die Förderbandgeschwindigkeit nicht mehr direkt dem Motor aufgeprägt, sondern eine Steuerung zwischengeschaltet.

Anzeige