-
Stand der Technik
-
Die vorliegende Offenbarung bezieht sich auf Verfahren zum Steuern einer Robotervorrichtung.
-
Eine Robotervorrichtung, wie z.B. ein Roboterarm, der Gegenstände einsortieren soll, sollte in der Lage sein, sich an verschiedene Situationen, z.B. Ausgangszustände anzupassen. Insbesondere sollte die Robotervorrichtung in der Lage sein, einen Gegenstand unabhängig von seiner Anfangsposition und der Zielposition, die von dem Gegenstand abhängen kann, einzusortieren. Dazu kann es allerdings nötig sein, dass die Robotervorrichtung (d.h. eine Steuereinrichtung der Robotervorrichtung) einen längeren Zeitraum, d.h. mehrere Steuerungsschritte in ihre Entscheidungen einbezieht. Beispielsweise kann es beim Einsortieren eines Gegenstands erforderlich sein, dass die Robotervorrichtung hintereinander den Gegenstand oder andere Gegenstände in unterschiedliche Richtungen verschiebt, bevor das Ziel erreicht ist, beispielsweise zum Umgehen oder Entfernen von Hindernissen (z.B. von anderen Gegenständen, die sich im Weg des aktuellen Gegenstands befinden).
-
Es sind deshalb Herangehensweisen zum Steuern einer Robotervorrichtung erforderlich, die eine erfolgreiche und effiziente Steuerung für unterschiedliche Situationen, die eine (längere) Sequenz von Aktionen erfordern, ermöglichen.
-
Offenbarung der Erfindung
-
Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Steuern einer Robotervorrichtung bereitgestellt, aufweisend Beschaffen eines Bildes von einer Umgebung der Robotervorrichtung, Verarbeiten des Bildes mittels eines neuronalen Netzes, das eingerichtet ist, aus dem Bild für mindestens einen Aktionsparameterwert ein jeweiliges Werte-Bild mit Pixelwerten für mehrere Pixel auszugeben, wobei für jeden Pixel der Pixelwert eine Bewertung einer Aktion, die durch den Aktionsparameterwert und die Position des Pixels in dem Werte-Bild spezifiziert wird, angibt, wobei das neuronale Netzwerk ein Encoder-Netzwerk und ein Decoder-Netzwerk mit einem Engpass zwischen dem Encoder-Netzwerk und dem Decoder-Netzwerk aufweist und Skip-Verbindungen zwischen dem Encoder-Netzwerk und Decoder-Netzwerk aufweist, Auswählen, aus mehreren Aktionen, derjenigen Aktion, für die der Pixelwert des Pixels in dem Werte-Bild für den Aktionsparameterwert an der Position, die zusammen mit dem Aktionsparameterwert die Aktion spezifiziert, unter den mehreren Aktionen maximal ist und Steuern der Robotervorrichtung zum Ausführen der ausgewählten Aktion.
-
Die Verwendung einer Architektur mit Skip-Verbindungen (d.h. Überspringungsverbindungen, auch engl. als Skip-Connections bezeichnet) ermöglicht die Beibehaltung von Details mit hoher Granularität und so eine hohe Genauigkeit des neuronalen Netzwerks für Aufgaben, die eine längere Kette von Aktionen unterschiedlichen oder gleichen Typs (und somit die Auswahl von Steuerungsaktionen über einen langen Zeithorizont) erfordern, wie z.B. das mehrschrittige Bewegen von Objekten, z.B. das Verschieben von Objekten zum Einsortieren in jeweilige Behälter.
-
Im Folgenden werden verschiedene Ausführungsbeispiele angegeben.
-
Ausführungsbeispiel 1 ist ein Verfahren zum Steuern einer Robotervorrichtung, wie oben beschrieben.
-
Ausführungsbeispiel 2 ist ein Verfahren nach Ausführungsbeispiel 1, aufweisend Trainieren des neuronalen Netzwerks mittels Zielwerten für die Bewertungen, wobei die Zielwerte mittels einer zweiten Instanz des neuronalen Netzwerks gemäß Double-Deep-Q-Learning ermittelt werden.
-
Das Verwenden von Double-Deep-Q-Learning reduziert das Problem überschätzter Q-Werte und verbessert so insbesondere die Leistungsfähigkeit bei hochdimensionalen Steuerungsaufgaben mit langen Zeithorizonten.
-
Ausführungsbeispiel 3 ist ein Verfahren nach Ausführungsbeispiel 1 oder 2, aufweisend Trainieren des neuronalen Netzwerks mittels Zielwerten für die Bewertungen, wobei die Zielwerte aus Belohnungen aus Steuerungsdurchläufen ermittelt werden und wobei das Training so durchgeführt wird, dass ein Sample (d.h. ein Tupel aus Zustand, Aktion, nächstem Zustand und Belohnung) aus den Steuerungsdurchläufen gegenüber einem anderen Sample aus den Steuerungsdurchläufen priorisiert wird, wenn die für das Sample von dem neuronalen Netzwerk geschätzte Bewertung stärker von dem Zielwert für die Bewertung abweicht als für das andere Sample.
-
Damit wird mit weniger Durchläufen eine hohe Genauigkeit des neuronalen Netzwerks erreicht.
-
Ausführungsbeispiel 4 ist ein Verfahren nach einem er Ausführungsbeispiele 1 bis 3, wobei das neuronale Netzwerk eingerichtet ist, die Bewertung jeder Aktion aus einer Zwischenbewertung der Aktion und einer Bewertung eines Zustands der Umgebung der Robotervorrichtung zu ermitteln.
-
Dies erfolgt beispielsweise gemäß einem Dueling-DQN-Ansatz und kann die Genauigkeit der Bewertungen, die das neuronale Netz ausgibt, verbessern.
-
Ausführungsbeispiel 5 ist ein Verfahren nach einem der Ausführungsbeispiele 1 bis 4, wobei eine Aktion, die durch die Position eines Pixels spezifiziert wird, eine Aktion ist, die an der Position der Umgebung der Robotervorrichtung durchzuführen ist, die der Position des Pixels in dem Werte-Bild entspricht.
-
Jeder Pixel des beschafften Bildes entspricht gemäß seiner Position im beschafften Bild einer Position in der Umgebung der Robotervorrichtung (da er Farbwert oder allgemein Sensorwert für diese Stelle zeigt). Jeder Pixel in jedem Werte-Bild entspricht einer Position im beschafften Bild und somit auch einer Position in der Umgebung. Somit kann die Steuerung anhand der Bewertungen geeignete Positionen zur Durchführung von Aktionen ermitteln.
-
Ausführungsbeispiel 6 ist ein Verfahren nach einem der Ausführungsbeispiele 1 bis 5, wobei das neuronale Netzwerk eingerichtet ist, eine Ausgabe auszugeben, die für mehrere Aktionsparameterwerte ein jeweiliges Werte-Bild enthält, und wobei jeder der mehreren Aktionsparameterwerte eine Steuerungsgröße einer Aktion oder einen Typ einer Aktion beschreibt.
-
Indem Bewertungen über mehrere Typen von Aktionen bzw. Aktionen mit unterschiedlichen Parameterwerten ausgewählt werden, kann (aus einer Sequenz von Eingabebildern, wobei aus jedem Eingabebild jeweils eine Aktion ausgewählt wird) eine geeignete Kette von Aktionen zur Durchführung der jeweiligen Aufgabe ausgeführt werden.
-
Ausführungsbeispiel 7 ist ein Verfahren nach einem der Ausführungsbeispiele 1 bis 6, wobei die Umgebung der Robotervorrichtung mehrere Objekte aufweist und die Aktionsparameterwerte angeben, ob ein Objekt zu verschieben oder zu drehen ist und/oder Richtungen, Verschiebungsweiten und/oder Drehwinkel angeben.
-
Insbesondere kann das obige Verfahren also auf ein Einsortierungsaufgabe oder Bin-Picking-Aufgabe angewendet werden und erlaubt es, die Aufgabe auch für eine längere Kette von Aktionen (unterschiedlicher Typen und/oder mit unterschiedlichen Parametern) durchzuführen.
-
Ausführungsbeispiel 8 ist eine Robotersteuereinrichtung, die eingerichtet ist, ein Verfahren nach einem der Ausführungsbeispiele 1 bis 7 durchzuführen.
-
Ausführungsbeispiel 9 ist ein Computerprogramm mit Befehlen, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 7 durchführt.
-
Ausführungsbeispiel 10 ist ein Computer-lesbares Medium, das Befehle speichert, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 7 durchführt.
-
In den Zeichnungen beziehen sich ähnliche Bezugszeichen im Allgemeinen auf dieselben Teile in den ganzen verschiedenen Ansichten. Die Zeichnungen sind nicht notwendigerweise maßstäblich, wobei die Betonung stattdessen im Allgemeinen auf die Darstellung der Prinzipien der Erfindung gelegt wird. In der folgenden Beschreibung werden verschiedene Aspekte mit Bezug auf die folgenden Zeichnungen beschrieben.
- 1 zeigt einen Roboter.
- 2 zeigt ein neuronales Netzwerk gemäß einer Ausführungsform.
- 3 zeigt ein Ablaufdiagramm, das ein Verfahren zum Steuern einer Robotervorrichtung gemäß einer Ausführungsform darstellt.
-
Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die zur Erläuterung spezielle Details und Aspekte dieser Offenbarung zeigen, in denen die Erfindung ausgeführt werden kann. Andere Aspekte können verwendet werden und strukturelle, logische und elektrische Änderungen können durchgeführt werden, ohne vom Schutzbereich der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da einige Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
-
Im Folgenden werden verschiedene Beispiele genauer beschrieben.
-
1 zeigt einen Roboter 100.
-
Der Roboter 100 umfasst einen Roboterarm 101, beispielsweise einen Industrieroboterarm zum Handhaben oder Montieren eines Werkstücks (oder eines oder mehrerer anderer Objekte). Der Roboterarm 101 umfasst Manipulatoren 102, 103, 104 und eine Basis (oder Stütze) 105, durch die die Manipulatoren 102, 103, 104 abgestützt sind. Der Begriff „Manipulator“ bezieht sich auf die beweglichen Elemente des Roboterarms 101, deren Betätigung eine physikalische Wechselwirkung mit der Umgebung ermöglicht, z. B. um eine Aufgabe auszuführen. Für die Steuerung umfasst der Roboter 100 eine (Roboter- )Steuereinrichtung 106, die dazu eingerichtet ist, die Wechselwirkung mit der Umgebung gemäß einem Steuerprogramm zu implementieren. Das letzte Element 104 (am weitesten von der Stütze 105 entfernt) der Manipulatoren 102, 103, 104 wird auch als Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge wie z. B. einen Schweißbrenner, ein Greifinstrument, ein Lackierwerkzeug oder dergleichen umfassen.
-
Die anderen Manipulatoren 102, 103 (näher an der Stütze 105) können eine Positionierungsvorrichtung bilden, sodass zusammen mit dem Endeffektor 104 der Roboterarm 101 mit dem Endeffektor 104 an seinem Ende vorgesehen ist. Der Roboterarm 101 ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm (möglicherweise mit einem Werkzeug an seinem Ende) erfüllen kann.
-
Der Roboterarm 101 kann Gelenkelemente 107, 108, 109 umfassen, die die Manipulatoren 102, 103, 104 miteinander und mit der Stütze 105 verbinden. Ein Gelenkelement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, von denen jedes eine drehbare Bewegung (d.h. Drehbewegung) und/oder Translationsbewegung (d.h. Verschiebung) von zugehörigen Manipulatoren relativ zueinander bereitstellen kann. Die Bewegung der Manipulatoren 102, 103, 104 kann mittels Aktuatoren eingeleitet werden, die durch die Steuereinrichtung 106 gesteuert werden.
-
Der Begriff „Aktuator“ kann als Komponente verstanden werden, die dazu ausgelegt ist, einen Mechanismus oder Prozess in Reaktion darauf, dass sie angetrieben wird, zu beeinflussen. Der Aktuator kann Befehle, die durch die Steuereinrichtung 106 ausgegeben werden (die sogenannte Aktivierung), in mechanische Bewegungen implementieren. Der Aktuator, z. B. ein elektromechanischer Wandler, kann dazu konfiguriert sein, auf seine Aktivierung elektrische Energie in mechanische Energie in Reaktion umzuwandeln.
-
Der Begriff „Steuereinrichtung“ kann als irgendein Typ von Logik, die eine Entität implementiert, verstanden werden, die beispielsweise eine Schaltung und/oder einen Prozessor, der in der Lage ist, eine Software auszuführen, die in einem Speichermedium gespeichert ist, Firmware oder eine Kombination davon umfassen kann, und die Befehle, z. B. an einen Aktuator im vorliegenden Beispiel, ausgeben kann. Die Steuereinrichtung kann beispielsweise durch einen Programmcode (z. B. Software) konfiguriert sein, um den Betrieb einer Robotervorrichtung zu steuern.
-
Im vorliegenden Beispiel umfasst die Steuereinrichtung 106 einen oder mehrere Prozessoren 110 und einen Speicher 111, der einen Code und Daten speichert, auf deren Basis der Prozessor 110 den Roboterarm 101 steuert. Gemäß verschiedenen Ausführungsformen steuert die Steuereinrichtung 106 den Roboterarm 101 auf der Basis eines maschinellen Lernmodells 112, das im Speicher 111 gespeichert ist. Der Roboter 100 soll beispielsweise ein Objekt 113 manipulieren.
-
Zu jedem Zeitpunkt hat das Gesamtsystem aus Roboterarm 101 und zu manipulierendem Objekt 113 oder auch ein oder mehreren weiteren Objekten 114 (z.B. unterschiedlicher Art und Form) einen bestimmten Zustand hinsichtlich Position, Orientierung, Endeffektorzustand (Greifer offen/geschlossen) etc. Dieser Zustand des Systems, Roboters oder eines Objekts wird im Folgenden als (Steuerungs-)konfiguration bezeichnet.
-
Eine Manipulationsaufgabe, die von z.B. einem Roboterarm 101 durchgeführt wird, besteht typischerweise aus einer Folge von Aktionen. Beispielsweise muss der Roboter zum Einsortieren eines Objekts 113 (z.B. in einen zugehörigen von mehreren Behältern) dieses um ein anderes Objekt 114 herumschieben oder dieses aus dem Weg schieben. Es kann auch der Fall auftreten, dass der Roboterarm 101 mit einer Verschiebeaktion das Objekt 113 nur um eine bestimmte (beschränkte) Distanz verschieben kann und deshalb mehrere Verschiebeaktionen zum Erreichen des jeweiligen Behälters erforderlich sind.
-
Dementsprechend ist es bei vielen Aufgaben erforderlich, wie beispielsweise einer Einsortieraufgabe wie oben beschrieben, dass eine Robotersteuereinrichtung einen langen Zeithorizont, d.h. eine längere Folge von Steueraktionen, in ihre Überlegung, d.h. in den Entscheidungsprozess, welche Aktionen ausgeführt werden sollen, einbezieht, da sie in der Lage sein muss, zu erkennen, ob eine bestimmte Aktion, die zu einem aktuellen (Steuerungs- )zeitpunkt ausgeführt wird, langfristig zum Ziel führt oder nicht. Dabei kann der Zustandsraum (d.h. der Raum der möglichen Steuerungskonfigurationen) und auch der Raum der möglichen Aktionen (z.B. die Anzahl der möglichen Verschiebungsrichtungen) umfangreich sein, was die Steuerung (d.h. die Auswahl der Steueraktion, was z.B. die Auswahl der Verschiebungsrichtung beinhaltet) weiter erschwert. Entsprechend sind Algorithmen wünschenswert, die eine Steuerung unter solchen Bedingungen ermöglichen.
-
Gemäß verschiedenen Ausführungsformen wird eine Steuerungsstrategie (engl. Policy) trainiert, die eine erfolgreiche Steuerung unter solchen Bedingungen ermöglicht.
-
Ein aktueller Zustand (d.h. der Zustand für einen aktuellen Steuerungszeitpunkt, für den die Steuerungseinrichtung eine Steueraktion auswählt), ist beispielsweise durch ein Bild (z.B. ein RGB-Bild oder ein RGBD-Bild, d.h. ein Farbbild mit Tiefeninformation) des Arbeitsbereichs des Roboterarms 101 gegeben, das von einer Kamera 115 geliefert wird (die sich beispielsweise über dem Arbeitsbereich befindet, in dem die Objekte 113, 114 angeordnet sind).
-
Gemäß verschiedenen Ausführungsformen ist ein neuronales Netzwerk (z.B. als ML-Modell 112) vorgesehen, das so trainiert wird, dass es ein solches Bild interpretiert und lernt, dass unterschiedliche Objekte 113, 114 (z.B. Objekte unterschiedlicher Form) in unterschiedliche Zielbehälter geschoben werden sollen (und in welchen Behälter ein jeweiliges Objekt (z.B. ein jeweiliger Typ oder eine jeweilige Form) eingeordnet werden soll).
-
2 zeigt ein neuronales Netzwerk 200 gemäß einer Ausführungsform.
-
Das neuronale Netzwerk 200 hat eine Encoder-Decoder-Architektur mit einem Encoder-Netzwerk 201 und einem Decoder-Netzwerk 202.
-
Das Encoder-Netzwerk 201 erhält ein Eingangsbild 203 der Dimension h x w (Höhe mal Breite in Pixeln, jeder Pixel entspricht damit z.B. einer x-y-Position des Arbeitsbereichs des Roboterarms 101) und erzeugt aus dem Eingangsbild 203 sukzessive Repräsentationen 204 mit abnehmender Dimension bis zu einer Repräsentation in einem latenten Raum 205 (z.B. einem Vektor in einem latenten Raum 205). Jede Repräsentation wird zum Beispiel von einer jeweiligen Konvolutionsschicht erzeugt (ist also z.B. eine Merkmalskarte).
-
Das Decoder-Netzwerk erzeugt aus Element aus dem latenten Raum sukzessive Tensoren 206 mit zunehmender Dimension (in h- und w-Richtung, d.h. mit zunehmender Auflösung) bis zu einem Ausgabetensor 207 der Dimension n × h × w, wobei n von der jeweiligen Anwendung abhängt. Auch die Tensoren können durch jeweilige Konvolutionsschichten erzeugt werden. Es kann auch jedes Bild des Ausgabetensors von einem eigenen (Ausgabe-)Head erzeugt werden.
-
Der latente Raum 205 ist ein Flaschenhals (engl. Bottleneck), d.h. ein Engpass, des neuronalen Netzes.
-
Beispielsweise ist in der oben beschriebenen Anwendung n die Anzahl der möglichen Verschiebungsrichtungen. Allgemeiner ist n die Anzahl von diskreten Parameterwerten einer Fertigkeit (hier Verschiebung), die an einer bestimmten Position (z.B. x-y-Position des Arbeitsbereichs des Roboterarms 101) ausgeführt werden kann. Es wird hier eine Fertigkeit so verstanden, dass sie für unterschiedliche Parameter und an verschiedenen Positionen ausgeführt werden kann, woraus sich unterschiedliche Aktionen ergeben. Beispielsweise ist die Fertigkeit „Verschieben“ und kann (an einer Position, an der sich das Objekt aktuell befindet) in x-Richtung ausgeführt werden, dann ist die Aktion ein Verschieben in x-Richtung an einer bestimmten Position, oder in y-Richtung ausgeführt werden, dann ist die Aktion ein Verschieben in y-Richtung an einer bestimmten Position (oder auch in anderen Richtungen, je nach Größe von n).
-
Jedes der n Bilder des n × h × w-Ausgabetensors ist einem Parameterwert der Fertigkeit zugeordnet.
-
Der Ausgabetensor weist jedem Pixel der n Bilder des n × h × w-Ausgabetensors einen Aktionswert zu. Der Aktionswert eines Pixels eines Bildes ist dabei ein Wert der Aktion entsprechend dem Parameterwert, der dem Bild zugeordnet ist, und entsprechend der Position, der der Pixel entspricht (d.h. die Aktion ist gegeben durch die Fertigkeit mit dem Parameterwert, der dem Bild zugeordnet ist und die Position des Pixels). Es sollte beachtet werden, dass die Auflösung der Bilder im Ausgabetensor 203 auch kleiner sein kann als im Eingangsbild 207, der Einfachheit halber wird hier aber die gleiche Dimension angenommen.
-
Im obigen Beispiel ist z.B. der Wert eines Pixels in einem Bild, das der x-Richtung zugeordnet wird, eine Verschiebung, die der Roboterarm an der Position des Pixels in x-Richtung ausführt. Z.B. verschiebt der Roboter ein Objekt, das sich dort befindet, wobei der Roboter das Objekt an der Position des Pixels gegen das Objekt drückt.
-
Der Wert jedes Pixels repräsentiert den Nutzen (als Form einer Bewertung) der jeweiligen Aktion und die Steuereinrichtung 107 kann die Pixelwerte deshalb unmittelbar dazu verwenden, die beste Kombination aus Aktion und Position auszuwählen, indem sie eine solche Kombination ermittelt, für die der Pixelwert maximal ist.
-
Die Bilder des Ausgabetensors 203 können auch Aktionen unterschiedlicher Fertigkeiten zugeordnet sein, z.B. ein Teil der Bilder Verschiebeaktionen und ein Teil der Bilder Rotationsaktionen (jeweils mit zugehörigem Parameterwert oder auch Parameterwertsatz wie Richtung, Drehwinkel oder auch Verschiebedistanz etc. oder einer Kombination davon.) Es sind auch in diesem Fall die Bilder unterschiedlichen Parameterwerten zugeordnet, wobei ein Parameter auch ein Typ einer Aktion sein oder beinhalten kann (z.B. Parameterwert 1: Drehen um 90 Grad, Parameterwert 2: Drehen um 180 Grad, Parameterwert 3: Verschieben um 10cm , Parameterwert 4: Verschieben um 20cm etc.)
-
Gemäß verschiedenen Ausführungsformen wird somit ein neuronales Netzwerk 200 gemäß einem Bild-basierten Q-Learning(d.h. Deep Q Learning)-Ansatz trainiert.
-
Q-Learning zielt darauf ab, ein verstärkendes Lernen (Reinforcement Learning RL) zu ermöglichen, indem es eine ausreichend hinreichend genaue Approximation der Q-Funktion des Markov-Entscheidungsprozesses(MDP) ermittelt. Die Q-Funktion bewertet, wie gut es ist, eine bestimmte Aktion a in einem gegebenen Zustand s auszuführen und in dadurch in einen anderen Zustands zu wechseln. Sie ist typischerweise gegeben durch
-
Sie ist also die Summe aus der unmittelbaren Belohnung R(s,a) und der diskontierten zukünftigen Belohnung, die der Agent ausgehend vom Zustand s` erhält. Der Diskontierungsfaktor γ steuert den Kompromiss zwischen der Optimierung der kurz- und langfristigen Belohnung. Der jeweilige RL -Agent kann die optimale Strategie π* mit einer ausreichend genauen Schätzung der Q-Funktion generieren, indem er in jedem Zeitschritt die Aktion mit dem höchsten Q-Wert auswählt, d. h.,
-
Zur Approximation der Q-Funktion verwenden Deep-Q-Learning-Algorithmen neuronale Netze, d.h. Q-Netze. Nach Auswahl einer Aktion kann die Steuereinrichtung 107 eine Steuerung gemäß der Aktion ausführen (z.B. enthält sie ein Steuerungsmodul, das Spezifikationen von Aktionen empfängt und für diese entsprechende Steuerungssignale für Aktuatoren des Roboterarms 101 erzeugt).
-
Wie oben beschrieben hat das Q-Netz 200 gemäß einer Ausführungsform eine Encoder-Decoder-Architektur, die Bilder 203 als Eingabe annimmt und einen Ausgabetensor 207 von Werten für die Aktionen ausgibt, die den jeweiligen Bildern (und Pixelpositionen) entsprechen.
-
Eine Anwendung von Q-Lernen auf eine hochdimensionale Steuerungsaufgabe mit langem Zeithorizont wie das Einsortieren von Objekten kann jedoch wenig erfolgreich sein. Beispielsweise kann die Steuerungsstrategie leicht in lokalen Optima gefangen sein, und der Roboter (bzw. seine Steuereinrichtung) ist nicht in der Lage zu erkennen, wie er Objekte schieben soll, um die Aufgabe zu erfüllen.
-
Gemäß verschiedenen Ausführungsformen wird eine erfolgreiche Anwendung auf Steuerungsaufgaben unter solchen Bedingungen, insbesondere das Erfordernis längerer Ketten von Aktionen, d.h. ein langer Zeithorizont bei der Steuerung, dadurch möglich, dass in das neuronale Netz 200 Skip-Verbindung (Skip-Connection) 208 eingeführt werden, d.h. das neuronale Netzwerk beispielsweise eine Sanduhr (engl. hourglass)- oder Unet-Architektur aufweist.
-
Jede Skip-Verbindung 208 leitet eine Repräsentation 204 an einen jeweiligen Addierer weiter 209 weiter, der die Repräsentation 204 zu jedem Bild des jeweiligen Tensors (dessen Bilder die gleiche Dimension haben wie die Repräsentation) addiert (oder allgemein kombiniert, z.B. unter Verwendung ggf. trainierbarer Gewichte).
-
Gemäß verschiedenen Ausführungsformen wird für der Steuerung für eine hochdimensionale Steuerungsaufgabe mit langem Zeithorizont außerdem eines oder mehrere von priorisierter Erfahrungs-Wiederholung (engl. prioritized experience replay), Double-Q-Learning und duellierende Netze (engl. duelling networks) angewendet.
-
Priorisierte Erfahrungs-Wiederholung wählt beim Lernen Erfahrungen (d.h. Samples) in Abhängigkeit von ihrem Überraschungswert aus, d.h. der absoluten Differenz zwischen einer Vorhersage Q(s, a) des neuronalen Netzwerks 200 und einem jeweiligen Ziellabel y (das für ein überwachtes Training des neuronalen Netzes 200 verwendet wird). Beispielsweise wird eine rangbasierte Priorisierung basierend auf dem Überraschungswert mit einer Potenzgesetzverteilung mit α = 2 verwendet.
-
Beim DQN wird das Label (d.h. der Zielwert) y für das Training des Q-Netzes 200 als
berechnet.
-
Mittels solcher Labels kann das neuronale Netzwerk 200 zum Reduzieren eines
Verlusts (summiert oder gemittelt über viele Paare aus Zuständen und Aktionen) trainiert werden.
-
Der zweite Term der Summe, die erwartete zukünftige Belohnung, ist die Schätzung der Belohnung, die er ausgehend von s` erhalten kann. Q* bezeichnet hier ein Zielnetz, dessen Gewichte alle (z.B.) 1000 Iterationen aus dem Q-Netz 200 kopiert werden (d.h. eine zweite Instanz des neuronalen Netzwerks, die in gewissen Abständen aktualisiert wird). Im Double DQN wird die Berechnung des Labels wie folgt geändert
-
Hier ist die ausgewählte Aktion nicht notwendig die mit dem maximalen Wert aus der Ausgabe des Zielnetzes, sondern die Aktion, die das aktuelle Q-Netz als am lohnendsten ansieht. Dieser Ansatz entkoppelt Aktionsauswahl und -bewertung und verringert das Problem überschätzter Q-Werte.
-
Zur Implementierung von duellierenden Netzwerken wird die Ausgabe (z.B. Merkmalskarten) vor der letzten Faltungsschicht des Netzwerks 200 (d.h. des Decoders 202) aufgedoppelt und der letzten Faltungsschicht und einem Zustandswert-Zweig zugeführt. In der Architektur ist die letzte Faltungsschicht für die Verdichtung der Merkmalskarten auf die Ausgabedimensionen n × h × w, z.B. 8 × 224 × 224, zuständig. Diese Ausgabe wird als Vorteilsstrom behandelt (und die darin enthaltenen Pixelwerte können als Zwischenbewertungen angesehen werden).
-
Der Zustandswert-Zweig erhält dieselben Merkmalskarten als Eingabe, verdichtet sie zu einer Ausgabe n × h × w und mach das Ergebnis flach (zu h × w, z.B. durch Faltung). Anschließend kombiniert er diese Werte mit Hilfe einer vollständig verknüpften linearen Schicht, so dass ein einziger skalarer Wert V(s) als Ausgabe entsteht. Die endgültige Netzwerkausgabe ist dann (für einen aktuellen Zustand und eine Aktion a)
Hierbei ist A der Raum der Aktionen.
-
Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren bereitgestellt, wie in 3 dargestellt.
-
3 zeigt ein Ablaufdiagramm 300, das ein Verfahren zum Steuern einer Robotervorrichtung gemäß einer Ausführungsform darstellt.
-
In 301 wird ein Bildes von einer Umgebung der Robotervorrichtung beschafft.
-
In 302 wird das Bildes mittels eines neuronalen Netzes verarbeitet, das eingerichtet ist, aus dem Bild für mindestens einen Aktionsparameterwert ein jeweiliges Werte-Bild mit Pixelwerten für mehrere Pixel auszugeben, wobei für jeden Pixel der Pixelwert eine Bewertung einer Aktion, die durch den Aktionsparameterwert und die Position des Pixels in dem Werte-Bild spezifiziert wird, angibt. Das neuronale Netzwerk weist ein Encoder-Netzwerk und ein Decoder-Netzwerk mit einem Engpass zwischen dem Encoder-Netzwerk und dem Decoder-Netzwerk aufweist und Skip-Verbindungen zwischen dem Encoder-Netzwerk und Decoder-Netzwerk auf.
-
In 303 wird aus mehreren Aktionen (z.B. aus allen Aktionen) diejenige Aktion ausgewählt, für die der Pixelwert des Pixels in dem Werte-Bild für den Aktionsparameterwert an der Position, die zusammen mit dem Aktionsparameterwert die Aktion spezifiziert, unter den mehreren Aktionen maximal ist.
-
In 304 wird die Robotervorrichtung zum Ausführen der ausgewählten Aktion gesteuert.
-
Das Verfahren von 3 kann durch einen oder mehrere Computer mit einer oder mehreren Datenverarbeitungseinheiten durchgeführt werden. Der Begriff „Datenverarbeitungseinheit“ kann als irgendein Typ von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Die Daten oder Signale können beispielsweise gemäß mindestens einer (d.h. einer oder mehr als einer) speziellen Funktion behandelt werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine Zentraleinheit (CPU), eine Graphikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP), eine integrierte Schaltung einer programmierbaren Gatteranordnung (FPGA) oder irgendeine Kombination davon umfassen oder aus dieser ausgebildet sein. Irgendeine andere Weise zum Implementieren der jeweiligen Funktionen, die hierin genauer beschrieben werden, kann auch als Datenverarbeitungseinheit oder Logikschaltungsanordnung verstanden werden. Es können ein oder mehrere der im Einzelnen hier beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit durch eine oder mehrere spezielle Funktionen ausgeführt (z. B. implementiert) werden, die durch die Datenverarbeitungseinheit durchgeführt werden.
-
Die Herangehensweise von 3 dient zum Erzeugen eines Steuersignals für eine Robotervorrichtung. Der Begriff „Robotervorrichtung“ kann als sich auf irgendein technisches System (mit einem mechanischen Teil, dessen Bewegung gesteuert wird) beziehend verstanden werden, wie z. B. eine computergesteuerte Maschine, ein Fahrzeug, ein Haushaltsgerät, ein Elektrowerkzeug, eine Fertigungsmaschine, einen persönlichen Assistenten oder ein Zugangssteuersystem. Es wird eine Steuerungsvorschrift für das technische System gelernt und das technische System dann entsprechend gesteuert.
-
Verschiedene Ausführungsformen können Sensorsignale von verschiedenen Sensoren wie z. B. Video, Radar, LiDAR, Ultraschall, Bewegung, Wärmeabbildung usw. empfangen und verwenden, beispielsweise um Sensordaten hinsichtlich Konfigurationen und Szenarios und auch Belohnungen zu erhalten.
-
Obwohl spezielle Ausführungsformen hier dargestellt und beschrieben wurden, wird vom Fachmann auf dem Gebiet erkannt, dass die speziellen Ausführungsformen, die gezeigt und beschrieben sind, gegen eine Vielfalt von alternativen und/oder äquivalenten Implementierungen ausgetauscht werden können, ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen. Diese Anmeldung soll irgendwelche Anpassungen oder Variationen der speziellen Ausführungsformen abdecken, die hier erörtert sind. Daher ist beabsichtigt, dass diese Erfindung nur durch die Ansprüche und die Äquivalente davon begrenzt ist.