-
Technisches Gebiet
-
Die Erfindung betrifft eine Vorrichtung, die zum Betreiben eines maschinellen Lernsystems eingerichtet ist. Ebenso betrifft die Erfindung ein Verfahren und ein Computerprogramm zum Betreiben des maschinellen Lernsystems.
-
Stand der Technik
-
Die nicht vorveröffentlichte Patentschrift
DE 10 2018 200 724.1 offenbart ein Verfahren zum effizienten Ermitteln von Ausgangssignalen einer Folge von Ausgangssignalen mittels einer Folge von Schichten eines neuronalen Netzes aus einer Folge von Eingangssignalen. Dem neuronalen Netz wird in einer Abfolge diskreter Zeitschritte sukzessive die Eingangssignale der Folge von Eingangssignalen zugeführt und zu den diskreten Zeitschritten jeweils im neuronalen Netz anliegende Signale eine Schicht der Folge von Schichten weiter propagiert.
-
Die Veröffentlichung „The Streaming Rollout of Deep Networks - Towards Fully Model-Parallel Execution“ der Autoren Volker Fischer, Jan Köhler, Thomas Pfeil auf www.arxiv.org mit der Publikationsnummer arXiv:1806.04965 zeigt unter anderem einen mathematischen Beweis, dass ein vollständiges, parallelisiertes Berechnen von Knoten eines Graphen für beliebige Strukturen des Graphen möglich ist.
-
Vorteile der Erfindung
-
Das Propagieren von Signalen durch einen Graphen, insbesondere durch ein tiefes neuronales Netz, wird bisher sequentiell berechnet. Das bedeutet, dass die Knoten des Graphen, insbesondere die Schichten des tiefen neuronalen Netzes, sequentiell nacheinander abhängig von einer Eingangsgröße eine Ausgangsgröße ermitteln. Dies führt zu einer sequentiellen Abhängigkeit der Knoten, da die Knoten erst ihre Ausgangsgröße ermitteln können, nachdem der jeweilige vorherige Knoten seine Ausgangsgröße ermittelt hat. Dabei müssen die Knoten, insbesondere Schichten des tiefen neuronalen Netz, warten, bis die Ausgangsgröße des vorherigen Knotens beim jeweiligen nachfolgenden Knoten angekommen sind. Dies führt dazu, dass Graphen, insbesondere tiefe neuronale Netze, träge sind.
-
Demgegenüber hat die Erfindung den Vorteil, dass diese es ermöglicht, die Berechnungen der Knoten gezielt zu steuern, sodass eine geringere bis keine sequentielle Abhängigkeit der Knoten auftritt.
-
Offenbarung der Erfindung
-
In einem ersten Aspekt der Erfindung wird ein Verfahren zum Betreiben eines maschinellen Lernsystems, insbesondere zum Steuern einer Berechnung des maschinellen Lernsystems, vorgestellt. Das maschinelle Lernsystem umfasst eine Mehrzahl von Schichten, die mittels Verbindungen verbunden sind. Dem maschinellen Lernsystem wird ein vorgebbares Steuerungsmuster (engl. rollout) zugewiesen, das eine Reihenfolge charakterisiert, nach welcher die Schichten jeweils eine Zwischengröße ermitteln. Beim Zuweisen des Steuerungsmusters wird jeder Verbindung und/oder jeder Schicht eine Steuergröße zugeordnet, die charakterisiert, ob die Zwischengröße der jeweiligen nachfolgenden verbundenen Schichten nach der Reihenfolge oder unabhängig von der Reihenfolge ermittelt wird. In Abhängigkeit des vorgebbaren Steuerungsmusters wird eine Berechnung einer Ausgangsgröße des maschinellen Lernsystems abhängig von einer Eingangsgröße des maschinellen Lernsystems gesteuert.
-
Unter unabhängig von der Reihenfolge wird im Folgenden verstanden, dass die Berechnungen der Zwischengrößen der Schichten entkoppelt von der Reihenfolge erfolgt. Die Reihenfolge kann eine Abfolge definieren, nach welcher die Schichten jeweils die Ausgangsgrößen ermitteln, beispielsweise nachdem eine vorherige Schicht ihre Ausgangsgröße ermittelt hat.
-
Der vorteilhafte Effekt hierbei ist, dass die Entkopplung dazu führt, dass die einzelnen Schichten parallelisiert berechnet werden können. Damit kann das maschinelle Lernsystem schneller die Ausgangsgröße abhängig von der Eingangsgröße ermitteln. Ferner ist die Berechnungsdauer einer vollständigen Parallelisierung der Schichten nur noch von der Berechnungsdauer der langsamsten Schicht und nicht mehr von der Summe der Berechnungsdauer der einzelnen Schichten, wie beim sequenziellen Berechnen des maschinellen Lernsystem, abhängig.
-
Es wird vorgeschlagen, dass beim Steuern der Berechnung des maschinellen Lernsystems schrittweise, insbesondere nacheinander, jeweils eine der Schichten, insbesondere zu jeweils einem vorgebbaren Zeitpunkt einer Folge von Zeitpunkten, die Zwischengröße nach der Reihenfolge des Steuermusters ermittelt. Diejenigen Schichten, die ihre Zwischengrößen unabhängig von der Reihenfolge ermitteln, ermitteln jeweils zu jedem Schritt, insbesondere zu den jeweiligen vorgebbaren Zeitpunkten, jeweils ihre Zwischengrößen.
-
Der Vorteil hierbei ist, dass kürzere Antwortzeiten des maschinellen Lernsystems erzielt werden können.
-
Weiterhin wird vorgeschlagen, dass das maschinelle Lernsystem zumindest eine Überbrückungsverbindung (engl. skip connection) umfasst, die eine erste Schicht mit einer zweiten Schicht verbindet und die erste Schicht und die zweite Schicht zusätzlich unmittelbar mittels zumindest zwei Verbindungen verbunden sind.
-
Der Vorteil hiervon ist, dass anhand der Überbrückungsverbindung eine höhere Antwortfrequenz durch die Überbrückung einer Mehrzahl von Schichten und der Entkopplung dieser Schichten von der Reihenfolge erzielt werden kann.
-
Weiterhin wird vorgeschlagen, dass das maschinelle Lernsystem zumindest eine rekurrente Verbindung umfasst.
-
Der Vorteil ist, dass durch die Entkopplung der Schichten mit rekurrenten Verbindungen, einen beliebig großen virtuellen Speicher für rekurrente Verbindungen ermöglicht.
-
Weiterhin wird vorgeschlagen, dass diejenigen Schichten, die ihre Zwischengrößen unabhängig von der Reihenfolge ermitteln, ihre Zwischengrößen abhängig von einer zeitlich vorhergehenden Zwischengröße, insbesondere eines zeitlich vorhergehenden Berechnungsschrittes, der vorherigen Schicht ermitteln. Diejenigen Schichten, die ihre Zwischengröße nach der Reihenfolge ermitteln, ermitteln ihre Zwischengröße abhängig von einer zeitlich aktuellen Zwischengröße, insbesondere eines aktuellen Berechnungsschrittes, der vorhergehenden Schicht.
-
Weiterhin wird vorgeschlagen, dass das maschinelle Lernsystem keinen geschlossenen Pfad aufweist.
-
Der Vorteil hierbei ist, dass durch das Vermeiden eines geschlossenen Pfades, die Berechnungen der Schichten vollständig parallelisiert werden kann. Unter einem geschlossenen Pfad wird verstanden, dass der Anfang und das Ende des Pfades, der durch Verbindungen des maschinellen Lernsystems definiert wird, miteinander verbunden sind.
-
Weiterhin wird vorgeschlagen, dass die Zwischengrößen derjenigen Schichten, die ihre Zwischengröße unabhängig von der Reihenfolge ermitteln, jeweils parallel ermittelt werden. Ferner kann das parallele Ermitteln der Zwischengrößen auf parallelgeschalteten Rechenkerne ausgeführt werden.
-
Weiterhin wird vorgeschlagen, dass die Zwischengrößen derjenigen Schichten, die ihre Zwischengröße unabhängig von der Reihenfolge ermitteln, asynchron ermittelt werden.
-
Weiterhin wird vorgeschlagen, dass dann, wenn eine Eingangsgröße dem maschinellen Lernsystem zum ersten Mal bereitgestellt wird, beim schrittweisen Ermitteln nach der Reihenfolge der Ausgangsgröße des maschinellen Lernsystems nach jedem Schritt geprüft wird, ob die Zwischengrößen der jeweils vorherigen Schicht bereits ermittelt wurden, die für diejenigen Schichten benötigt werden, die ihre Zwischengrößen unabhängig von der Reihenfolge ermitteln.
-
Dies weist den Vorteil auf, dass geprüft werden kann, ob während der Anlaufphase tiefere Schichten des maschinellen Lernsystems bereits ermittelten Zwischengrößen als Eingangsgröße bereitgestellt werden können, da diese zum Zeitpunkt der Anlaufphase des maschinellen Lernsystems nach der Reihenfolge noch nicht ermittelt sein können.
-
Weiterhin wird vorgeschlagen, dass eine Mehrzahl der Steuergrößen des vorgebbaren Steuerungsmusters charakterisieren, dass das Ermitteln der jeweiligen Zwischengrößen unabhängig von der Reihenfolge erfolgt.
-
Der Vorteil hierbei ist, dass je mehr Schichten aus der Reihenfolge der Berechnungen der Schichten entkoppelt werden, desto umfangreicher können die Berechnungen der Schichten parallelisiert werden.
-
Weiterhin wird vorgeschlagen, dass bei der Berechnung des maschinellen Lernsystem eine Folge von Eingangsgrößen dem maschinellen Lernsystem, insbesondere einer Eingangsschicht des maschinellen Lernsystems, unmittelbar nacheinander zu jeweils einem Zeitschritt einer Folge von Zeitschritten bereitgestellt wird und eine Mehrzahl der Schichten oder jede Schicht zu einem jeden Zeitschritt abhängig von einer Eingangsgröße die jeweilige Zwischengröße ermittelt, die jeweils einer der Eingangsgrößen zugeordnet ist.
-
Der Vorteil ist, dass parallelisiert mehrere bereitgestellte Eingangsgrößen gleichzeitig mittels des maschinellen Lernsystems verarbeitet werden können.
-
Weiterhin wird vorgeschlagen, dass dem maschinellen Lernsystem eine Mehrzahl unterschiedlicher Steuerungsmuster zugewiesen wird. Es wird jeweils in Abhängigkeit der zugewiesenen Steuerungsmuster die Berechnung des maschinellen Lernsystem gesteuert. Die gesteuerten Berechnungen des maschinellen Lernsystems werden mit zumindest einem vorgebbaren Vergleichskriterium verglichen. In Abhängigkeit des Vergleichs der Steuerungsmuster wird das vorgebbare Steuerungsmuster aus der Mehrzahl der unterschiedlichen Steuerungsmuster ausgewählt.
-
Der Vorteil hierbei ist, dass anhand des Vergleichskriteriums ein Grad der Parallelisierung der Berechnungen der einzelnen Schichten abhängig von der Hardware, insbesondere der bereitgestellten Rechenleistung der Hardware, und des Anwendungsfalles ermittelt werden kann. Beispielsweise können mehrere Rechenkerne durch die Parallelisierung effizient genutzt werden, diese können aber beispielsweise keine vollständige Parallelisierung des maschinellen Lernsystems unterstützen. Dementsprechend kann der Grad der Parallelisierung abhängig von den Rechenkernen durch das Vergleichen der Steuerungsmuster ermittelt werden.
-
Weiterhin wird vorgeschlagen, dass bei einem der Steuerungsmuster allen Verbindungen und Schichten jeweils die selbe Steuergröße zugewiesen wird, sodass die Ermittlung der jeweiligen Ausgangsgrößen unabhängig von der Reihenfolge, insbesondere im nachfolgenden Zeitschritt, erfolgt.
-
Der Vorteil ist, dass alle Schichten voneinander entkoppelt sind, damit die Berechnung vollständig parallelisiert ausgeführt werden kann.
-
Weiterhin wird vorgeschlagen, dass bei einem der Steuerungsmuster allen Verbindungen oder Schichten jeweils die selbe Steuergröße zugewiesen wird, sodass die Ermittlung der jeweiligen Ausgangsgrößen unabhängig von der Reihenfolge, insbesondere im nachfolgenden Zeitschritt, erfolgt.
-
Weiterhin wird vorgeschlagen, dass beim Zuweisen des Steuerungsmusters diejenigen Verbindungen, die eine erste Schicht mit einer zweiten Schicht verbinden und die erste Schicht und die zweite Schicht zusätzlich unmittelbar mittels zumindest zwei Verbindungen verbunden sind, die Steuergröße zugewiesen wird, sodass die Ermittlung der Zwischengröße der zweiten Schicht unabhängig von der Reihenfolge erfolgt.
-
Weiterhin wird vorgeschlagen, dass die Steuergrößen des Steuerungsmusters zufällig oder abhängig von einem weiteren vorgebbaren Steuerungsmuster gewählt werden.
-
Weiterhin wird vorgeschlagen, dass die Steuerungsmuster anhand des vorgebbaren Vergleichskriteriums miteinander verglichen werden und das vorgebbare Vergleichskriterium abhängig von der Steuerung des maschinellen Lernsystems in Abhängigkeit des jeweiligen zugewiesenen Steuerungsmusters ermittelt wird. Das vorgebbare Vergleichskriterium kann ein oder eine Mehrzahl der nachfolgend aufgelisteten Vergleichskriterien umfassen:
-
Eine erste Größe, die eine Anzahl von Zeitschritte charakterisiert, die benötigt werden, um beginnend bei einem ersten Zeitschritt, zu dem der Eingangsschicht die Eingangsgröße bereitgestellt wird, bis zu einem zweiten Zeitschritt, zu dem eine Ausgangsschicht die Ausgangsgröße ermittelt hat, wobei die Ausgangsschicht mit keiner weiteren Schicht verbunden ist.
-
Eine zweite Größe, die charakterisiert, wie viele Ausgangsgrößen das maschinelle Lernsystem innerhalb einer vorgebbaren Anzahl von Zeitschritten ermittelt hat.
-
Eine dritte Größe, die charakterisiert, wie zuverlässig, insbesondere eine Genauigkeit der Ausgangsgröße des maschinellen Lernsystems bezogen auf die Klassifikationsgenauigkeit des maschinellen Lernsystems, die erste Ausgangsgröße des jeweiligen Steuerungsmusters ist.
-
Eine vierte Größe, die eine Zeitdauer charakterisiert, nach welcher eine Anlaufphase abgeschlossen ist, insbesondere bis die Zuverlässigkeit der Ausgangsgröße stabil über mehrere Zeitschritte oder Berechnungsschritte hinweg ist, oder die Klassifikationsgenauigkeit einen maximalen Wert erreicht hat.
-
Eine fünfte Größe, die charakterisiert, wie viele Verbindungen, insbesondere unmittelbar nacheinander, die selbe Steuergröße aufweisen.
-
Weiterhin wird vorgeschlagen, dass wenigstens eine der Steuergrößen des vorgebbaren Steuerungsmusters abhängig von einer Störung der Berechnung des maschinellen Lernsystem geändert wird. Unter einer Störung kann beispielsweise verstanden werden, dass das maschinelle Lernsystem die Ausgangsgröße oder eine der Zwischengröße fehlerhaft ermittelt hat.
-
Weiterhin wird vorgeschlagen, dass die Eingangsgröße der Eingangsschicht eine erfasste Sensorgröße ist und wobei abhängig von der Berechnung des maschinellen Lernsystems eine Steuergröße ermittelt wird.
-
Die Steuergröße kann zum Steuern eines Aktors eines technischen Systems verwendet werden. Das technische System kann zum Beispiel eine zumindest teilautonome Maschine, ein zumindest teilautonomes Fahrzeug, ein Roboter, ein Werkzeug, eine Werkmaschine oder ein Flugobjekt wie eine Drohne sein.
-
Die Eingangsgröße kann alternativ bspw. abhängig von erfassten Sensordaten ermittelt und dem maschinellen Lernsystem bereitgestellt werden. Die Sensordaten können von einem Sensor, wie z.B. einer Kamera, des technischen Systems erfasst oder von extern empfangen werden.
-
In einem weiteren Aspekt wird ein Computerprogramm vorgeschlagen. Das Computerprogramm ist eingerichtet, eines der vorherigen genannten Verfahren auszuführen. Das Computerprogramm umfasst Anweisungen, die einen Computer veranlassen, eines dieser genannten Verfahren mit all seinen Schritten auszuführen, wenn das Computerprogramm auf dem Computer abläuft. Ferner wird ein maschinenlesbares Speichermodul vorgeschlagen, auf welchem das Computerprogramm gespeichert ist.
-
In einem weiteren Aspekt die Erfindung wird eine Vorrichtung zum Betreiben eines maschinellen Lernsystem vorgeschlagen, welche eingerichtet ist, das maschinelle Lernsystem zu betreiben, wobei die Vorrichtung ein maschinenlesbares Speicherelement umfasst, auf dem Befehle gespeichert sind, die beim Ausführen durch einen Computer bewirken, dass der Computer das Verfahren mit den Schritten des ersten Aspektes der Erfindung ausführt.
-
Ausführungsbeispiele der oben genannten Aspekte sind in den beiliegenden Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Dabei zeigen:
-
Figurenliste
-
- 1 eine schematische Darstellung eines Graphen mit Knoten, die mittels Kanten verbunden sind;
- 2 eine schematische Darstellung einer Berechnung des Graphen;
- 3 eine schematische Darstellung einer Ausführungsform einer Steuerung der Berechnung des Graphen;
- 4 eine schematische Darstellung einer Ausführungsform einer Verwendung des Graphen in einem zumindest teilautonomen Fahrzeug;
- 5 eine schematische Darstellung einer Vorrichtung zum Anlernen eines maschinellen Lernsystems.
-
Im Folgenden werden die Bezeichnungen der Figuren an die Publikation „The Streaming Rollout of Deep Networks - Towards Fully Model-Parallel Execution“ angelehnt. Es sei angemerkt, dass ein Graph ein maschinelles Lernsystem sein kann.
-
1 zeigt eine schematische Darstellung eines Graphen (10). Der Graph umfasst eine Mehrzahl von Knoten (a,b,c,d), die mittels Kanten (12) verbunden sind.
-
Die Kanten (12) leiten eine Ausgangsgröße eines ersten Knotens (c) an einen zweiten Knoten (d) weiter, insbesondere stellt diese Kante die Ausgangsgröße des ersten Knoten (c) dem zweiten Knoten (d) als Eingangsgröße bereit. Alternativ können die Kanten die Ausgangsgröße des jeweils ersten Knotens verarbeiten, z.B. gewichten oder transformieren, und anschließend dem zweiten Knoten bereitstellen. Die Knoten (a,b,c,d) ermitteln abhängig von deren jeweils bereitgestellten Eingangsgröße eine Ausgangsgröße, beispielsweise abhängig von einer nichtlinearen Funktion, zweckgemäß eine Aktivierungsfunktion des maschinellen Lernsystems.
-
In einem Ausführungsbeispiel ist der Graph (10) ein tiefes neuronales Netz und die Knoten (a,b,c,d) stellen jeweils eine Schicht des tiefen neuronalen Netzes dar, die mittels der Kanten verbunden sind.
-
Der Graph (10) weist zumindest einen Eingangsknoten (11) auf. Der Eingangsknoten (11) erhält als seine Eingangsgröße eine Eingangsgröße (x) des Graphen (10). Der Eingangsknoten (11) kann abhängig von der bereitgestellten Eingangsgröße (x) seine Ausgangsgröße ermitteln. Die Ausgangsgröße des Eingangsknotens (11) wird an die Knoten (b,c,d) weitergeleitet. In dem Ausführungsbeispiel in 1 ist der Knoten (d) ein Ausgangsknoten, der abhängig von seinen bereitgestellten Eingangsgrößen eine Ausgangsgröße (y) ermittelt, die eine Ausgangsgröße des Graphen (10) sein kann.
-
Die Kanten (12) des Graphen (10) weisen jeweils eine Steuergröße (S) auf. Die Steuergröße (S) kann in diesem Ausführungsbeispiel den Wert 0 oder 1 annehmen. Der Wert 0 charakterisiert, dass die Ausgangsgröße beispielsweise des Knoten (a) in einem nachfolgenden Berechnungsschritt eines Berechnungsfensters mittels des verbundenen Knotens (d) nach einer vorgesehenen Reihenfolge, nach welcher die Eingangsgröße des Graphen (10) durch den Graphen (10) propagiert wird, verarbeitet wird. D.h. der Knoten (d) erhält über eine Kante die Ausgangsgröße des Knotens (a) und wartet, bis die Ausgangsgröße des Knoten (c) mittels der Kante (12) bereitgestellt wird, bevor der Knoten (d) abhängig von diesen bereitgestellten Eingangsgrößen seine Ausgangsgröße ermittelt.
-
Wird der Steuergröße (S) den Wert 1 zugewiesen, bedeutet dies, dass die Ausgangsgröße beispielsweise des Knotens (a) mittels des nachfolgenden verbundenen Knotens (d) im nachfolgenden Berechnungsschrittes des Berechnungsfensters verarbeitet wird, und nicht warten muss, bis der Knoten in der vorgesehenen Reihenfolge an der Reihe ist. Dies bedeutet, dass der Knoten (d) nicht warten muss, bis die Ausgangsgröße des Knoten (a) entlang eines Pfades, zum Beispiel über den Knoten (c), bis zum Knoten (d) propagiert ist und am Knoten (d) ankommt. Sondern der Knoten (d) kann direkt im nachfolgenden Berechnungsschritt die Ausgangsgröße des Knoten (c) und die Ausgangsgröße des Knoten (a) verwenden, um seine Ausgangsgröße (y) zu ermitteln. Dies hat den vorteilhaften Effekt, dass der Knoten (d) nicht warten muss, bis diesem die Eingangsgröße mittels der Kante bereitgestellt wird und damit von der vorgesehenen Reihenfolge entkoppelt ist.
-
2 zeigt eine schematische Darstellung einer Steuerung (20) der Berechnung des Graphen (10). Die 2 zeigt hierfür eine Zeitachse (t), der mehrere Zeitpunkte (t=0, t=1, t=2, t=3) zugeordnet sind, die jeweils einen Beginn eines Berechnungsschrittes anzeigen. In einem weiteren Ausführungsbeispiel wird zu jedem Zeitpunkt (t=0, t=1, t=2, t=3) dem Graphen (10) eine Eingangsgröße (x_0, x_1_, x_2, x_3) bereitgestellt und mittels des Graphen (10) verarbeitet. Da in einem Ausführungsbeispiel der 2 zu jedem Zeitpunkt eine Eingangsgröße verarbeitet wird, insbesondere alle Knoten des Graphen eine Eingangsgröße verarbeiten, kann der Graph (10) zu jedem Zeitpunkt (t=0, t=1, t=2, t=3) eine Ausgangsgröße (y_0, y_1, y_2, y_3) ausgegeben.
-
In dem Ausführungsbeispiel nach 2 ist jeder Kante des Graphen (10) eine Steuergröße (S) zugewiesen. Die Steuergröße (S) hat entweder den Wert 0 oder 1. Für den Fall, dass eine der Kanten die Steuergröße (S) mit dem Wert 0 aufweist, ist diese Kante in der 2 durch eine durchgezogene Linie gekennzeichnet. Für den Fall, dass eine der Kanten die Steuergröße (S) mit dem Wert 1 aufweist, ist diese Kante in der 2 durch eine gestrichelte Linie gekennzeichnet. Es sei angemerkt, dass die durchgezogenen Kanten nur innerhalb eines Berechnungsschrittes die Ausgangsgrößen an die jeweils verbundenen Knoten als Eingangsgröße bereitstellen. Die gestrichelten Kanten sind dagegen in der Lage, entlang der Zeitachse (t) die Ausgangsgröße weiterzuleiten, sodass diese Ausgangsgröße zum nachfolgenden Berechnungsschritt als Eingangsgröße den jeweiligen Knoten bereitgestellt wird.
-
Zum Zeitpunkt t=0 wird dem Graphen (10) die Eingangsgröße (x_0) bereitgestellt. Der Eingangsknoten des Graphen (10) kann innerhalb diesem Berechnungsschrittes, der zum Zeitpunkt t=0 begonnen hat, die bereitgestellte Eingangsgröße (x_0) verarbeiten. Dass dieser Knoten des Graphen (10) die Eingangsgröße verarbeitet hat, ist in der 2 beispielhaft dadurch gekennzeichnet, dass der Knoten schwarz umrandet ist und innerhalb des Knotens ein Zähler inkrementiert wird, in diesem Beispiel den Wert 1 aufweist. Alle weiteren Knoten des Graphen (10) weisen jeweils einen Zähler auf, der den Wert 0 aufweist, da diese Knoten noch keine Verarbeitung ihrer jeweils bereitgestellten Eingangsgrößen durchgeführt haben.
-
Zum unmittelbar nachfolgenden Zeitpunkt t=1 kann dem Graphen (10) eine weitere Eingangsgröße (x_1) bereitgestellt werden. Die weitere Eingangsgröße (x_1) wird hierbei wieder von dem Eingangsknoten verarbeitet, wodurch dessen Zähler inkrementiert wird und nun den Wert 2 aufweist. Da in diesem Ausführungsbeispiel der Knoten (a) und der Knoten (b) durch eine Kante verbunden sind, welche die Steuergröße (S) mit dem Wert 0 aufweist, wartet der Knoten (b) bis diesem die Ausgangsgröße des Knoten (a) bereitgestellt wird. Nachdem dieser Knoten seine Ausgangsgröße berechnet hat, wird dieser fett markiert und dessen Zähler auf den Wert 1 inkrementiert.
-
Da der Knoten (a) mit dem Knoten (d) durch eine Kante verbunden ist, und die Steuergröße (S) gleich 1 ist, wird die Ausgangsgröße des Knoten (a) aus dem ersten Berechnungsschritt, beginnend zum Zeitpunkt t=0, direkt weitergeleitet und für den nachfolgenden Berechnungsschritt zum Zeitpunkt t=1 weiterverwendet. Dadurch kann der Knoten (d) bereits zum Zeitpunkt t=1 seine Ausgangsgröße ermitteln und wird ebenfalls fett umrandet und dessen Zähler auf den Wert 1 gesetzt.
-
Zum Zeitpunkt t=2 erhält der Knoten (c) die berechnete Ausgangsgröße des Knoten (b) und ermittelt abhängig von dieser Ausgangsgröße seine Ausgangsgröße.
-
Anschließend wird dessen Zähler inkrementiert.
-
Zu dem nachfolgenden Zeitpunkt t=3 des vorhergehenden Zeitpunktes t=2, ist die Eingangsgröße (x_0) entlang des gesamten Pfades des Graphen (10) propagiert worden und der Ausgangsknoten (d) gibt die zugehörige Ausgangsgröße (y_3), die zu der Eingangsgröße (x_0) zugeordnet sein kann, aus.
-
Anhand der Kante, die die Steuergröße (S) mit dem Wert 1 aufweist, wird ersichtlich, dass der nachfolgende verbundene Knoten mittels dieser Kante, unabhängig von der Reihenfolge, die sich nach der Abfolge der Knoten, welche nacheinander die Eingangsgröße des Graphen (10) verarbeiten, seine Ausgangsgröße ermittelt.
-
In einem weiteren Ausführungsbeispiel, in dem die Kante, die den Knoten (a) mit dem Knoten (b) verbindet, die Steuergröße (S) gleich 0 aufweist, müsste der Knoten (d) warten, bis der Knoten (c) seine Ausgangsgröße ermittelt hat. Dadurch wird ersichtlich, dass durch die gezielte Entkopplung der Knoten des Graphen (10), die Berechnung gezielt beschleunigt werden kann, da die Knoten nicht mehr auf die Ausgangsgrößen des vorherigen Knoten waren müssen.
-
3 zeigt eine schematische Darstellung eines Verfahrens (30) zur Berechnung des Graphen (10).
-
Das Verfahren (30) beginnt mit Schritt 31. In Schritt 31 wird der Graph (10) bereitgestellt. Im darauffolgenden Schritt 32 wird dem Graph (10) ein vorgebbares Steuerungsmuster (engl. rollout) zugewiesen. Beim Zuweisen dieses Steuerungsmusters wird einer jeden Kante und/oder einem jeden Knoten eine Steuerungsgröße (S) zugewiesen.
-
Nachdem Schritt 32 abgeschlossen ist, folgt Schritt 33. In Schritt 33 wird dem Graphen (10) eine Eingangsgröße bereitgestellt. Der Graph (10) ermittelt daraufhin abhängig von der bereitgestellten Eingangsgröße die Ausgangsgröße des Graphen (10). Hierbei wird die Berechnung der Ausgangsgröße des Graphen (10) in Abhängigkeit des zugewiesenen Steuerungsmusters gesteuert.
-
Damit endet das Verfahren (30). Es sei angemerkt, dass das Verfahren zum Betreiben eines angelernten Graphen, insbesondere eines angelernten maschinellen Lernsystem, aber auch beim Anlernen des Graphen verwendet werden kann, um abhängig von einer bereitgestellten Eingangsgröße (x) die Ausgangsgröße (y) zu ermitteln.
-
4 zeigt eine schematische Darstellung einer Verwendung des Graphen (10), der in diesem Ausführungsbeispiel ein maschinelles Lernsystem (42) ist, in einem zumindest teilautonomen Fahrzeug (40). In einem weiteren Ausführungsbeispiel kann das zumindest teilautonome Fahrzeug (40) ein Service-, Montage- oder stationärer Produktionsroboter, alternativ ein autonomes Flugobjekt, wie eine Drohne, sein. Das zumindest teilautonome Fahrzeug (40) kann eine Erfassungseinheit (40) umfassen. Die Erfassungseinheit (41) kann zum Beispiel eine Kamera sein, welche eine Umgebung des Fahrzeugs (41) erfasst. Die Erfassungseinheit (41) kann mit dem maschinellen Lernsystem (42) verbunden sein. Das maschinellen Lernsystem (42) ermittelt abhängig von einer bereitgestellten Eingangsgröße, z.B. bereitgestellt von der Erfassungseinheit (41), und in Abhängigkeit einer Mehrzahl von Parametern des maschinellen Lernsystem (42) eine Ausgangsgröße. Die Ausgangsgröße kann an eine Aktorsteuerungseinheit (43) weitergeleitet werden. Die Aktorsteuerungseinheit (43) steuert in Abhängigkeit der Ausgangsgröße des maschinellen Lernsystem (42) einen Aktor, vorzugsweise steuert diesen den Aktor derart, dass das Fahrzeug (40) ein kollisionsfreies Manöver ausführt. Der Aktor kann in diesem Ausführungsbeispiel ein Motor oder ein Bremssystem des Fahrzeugs (40) sein.
-
Ferner umfasst das Fahrzeug (40) eine Recheneinheit (44) und ein maschinenlesbares Speicherelement (45). Auf dem Speicherelement (45) kann ein Computerprogramm gespeichert sein, welches Befehle umfasst, die beim Ausführen der Befehle auf der Recheneinheit (45) dazu führen, dass die Recheneinheit (45) das Verfahren zum Betreiben des maschinellen Lernsystems (42), wie z.B. in 3 gezeigt, ausführt. Denkbar ist auch, dass ein Downloadprodukt oder ein künstlich generiertes Signal, die jeweils das Computerprogramm umfassen können, nach Empfangen an einem Empfänger des Fahrzeugs (40) die Recheneinheit (44) veranlassen, das Verfahren Betreiben eines maschinellen Lernsystems auszuführen.
-
In einem alternativen Ausführungsbeispiel kann das maschinelle Lernsystem (42) für eine Gebäudesteuerung eingesetzt werden. Ein Nutzerverhalten wird mittels eines Sensors erfasst, beispielsweise einer Kamera oder eines Bewegungsmelders, und die Aktorsteuerungseinheit steuert beispielsweise eine Wärmepumpe einer Heizung abhängig von der Ausgangsgröße des maschinellen Lernsystems (42). Das maschinelle Lernsystem (42) kann dann eingerichtet sein, auf Basis von dem erfassten Nutzerverhalten zu ermitteln, welcher Betriebsmodus der Gebäudesteuerung gewünscht ist.
-
In einem weiteren Ausführungsbeispiel umfasst die Aktorsteuerungseinheit (43) ein Freigabesystem. Das Freigabesystem entscheidet, ob ein Objekt, z.B. ein erfasster Roboter oder eine erfasste Person, Zugang zu einem Bereich hat, abhängig von der Ausgangsgröße des maschinellen Lernsystems (42). Vorzugsweise wird der Aktor, beispielhaft ein Türöffnungsmechanismus, mittels der Aktorsteuerungseinheit (43) angesteuert wird. Die Aktorsteuerungseinheit (43) des vorherigen Ausführungsbeispiels der Gebäudesteuerung kann zusätzlich dieses Freigabesystem umfassen.
-
In einem alternativen Ausführungsbeispiel kann das Fahrzeug (40) ein Werkzeug, eine Werkmaschine oder ein Fertigungsroboter sein. Ein Material eines Werkstückes kann mittels des maschinellen Lernsystem (42) klassifiziert werden. Der Aktor kann hierbei z.B. ein Motor, der einen Schleifkopf betreibt, sein.
-
In einer weiteren Ausführungsform wird das maschinelle Lernsystem (42) in einem Messsystem verwendet, welches nicht in den Figuren dargestellt ist. Das Messsystem unterscheidet sich zu dem Fahrzeug (40) nach 4 dahingehend, dass das Messsystem keine Aktorsteuerungseinheit (43) umfasst. Das Messsystem kann die Ausgangsgröße des ersten maschinelle Lernsystem (42), statt sie an die Aktorsteuerungseinheit (43) zu weiterzuleiten, abspeichern oder darstellen, beispielsweise mittels visueller oder auditiver Darstellungen.
-
Es ist auch denkbar, dass in einer Weiterentwicklung des Messsystems die Erfassungseinheit (41) ein Bild eines menschlichen oder tierischen Körpers oder eines Teils davon erfasst. Beispielsweise kann dies mittels eines optischen Signals, mittels eines Ultraschallsignals, oder mittels eines MRT/CT-Verfahrens erfolgen. Das Messsystem kann in dieser Weiterentwicklung das maschinelle Lernsystem (42) umfassen, das derart angelernt ist, abhängig von der Eingangsgröße eine Klassifikation auszugeben, z.B. welches Krankheitsbild auf Basis diese Eingangsgröße möglicherweise vorliegt.
-
5 zeigt eine schematische Darstellung einer Vorrichtung (50) zum Anlernen des Graphen (10), insbesondere des maschinellen Lernsystems. Die Vorrichtung (50) umfasst ein Trainingsmodul (51) und ein zu trainierendes Modul (52). Dieses zu trainierende Modul (52) beinhaltet den Graphen (10). Die Vorrichtung (50) zum Anlernen des Graphen (10), lernt abhängig von Ausgangsgrößen des Graphen (10) und bevorzugt mit vorgebbaren Trainingsdaten den Graphen (10) an. Zweckgemäß umfassen die Trainingsdaten eine Mehrzahl von erfassten Bildern, die jeweils gelabelt sind. Während des Anlernens werden Parameter des Graphen (10), die in einem Speicher (53) hinterlegt sind, angepasst.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-