-
Die Erfindung betrifft eine Vorrichtung und ein entsprechendes Verfahren zum Anlernen eines Ensembles von (tiefen) neuronalen Netzen für eine bestimmte Gesamtfunktion, insbesondere zur Objekterkennung und/oder zur Obj ektklassifizierung.
-
Ein zumindest teilweise automatisiert fahrendes Fahrzeug kann eingerichtet sein, Sensordaten von ein oder mehreren Umfeldsensoren des Fahrzeugs (z.B. eine Bildkamera, ein Lidarsensor, ein Radarsensor, etc.) auszuwerten, z.B. um ein oder mehrere Objekte im Umfeld des Fahrzeugs zu detektieren. Das Fahrzeug kann dann in Abhängigkeit von den ein oder mehreren detektieren Objekten automatisiert längs- und/oder quergeführt werden.
-
Die Erkennung von Objekten auf Basis der Sensordaten von ein oder mehreren Umfeldsensoren kann anhand von spezifisch angelernten neuronalen Netzen, insbesondere sogenannten Deep Neural Networks, erfolgen. Dabei kann die Güte der Objekterkennung ggf. durch die Verwendung eines sogenannten Ensembles von mehreren neuronalen Netzen erhöht werden. Die einzelnen neuronalen Netze eines Ensembles können dabei auf spezifische Teilaufgaben der Objekterkennung spezialisiert sein. Die Ausgangswerte der einzelnen neuronalen Netze können in einem Aggregator zusammengefasst werden, um eine Gesamtauswertung der Sensordaten bereitzustellen.
-
Eine Herausforderung bei der Verwendung eines Ensembles von mehreren neuronalen Netzen ist die Zuweisung von Spezialisierungen zu den einzelnen neuronalen Netzen und das Anlernen der einzelnen neuronalen Netze für die jeweilige Spezialisierung. In diesem Zusammenhang werden häufig Heuristiken verwendet, die jedoch typischerweise nicht zu einer optimalen Aufgabenverteilung der einzelnen neuronalen Netze führen.
-
Das vorliegende Dokument befasst sich mit der technischen Aufgabe, ein Ensemble von mehreren neuronalen Netzen in automatischer und optimierter Weise für eine Gesamtaufgabe bzw. für eine Gesamtfunktion anzulernen. Mit anderen Worten, das vorliegende Dokument befasst sich mit der technischen Aufgabe, eine Gesamtfunktion in automatischer und optimierter Weise auf die einzelnen neuronalen Netze eines Ensembles aufzuteilen.
-
Die Aufgabe wird jeweils durch die unabhängigen Ansprüche gelöst. Vorteilhafte Ausführungsformen werden u.a. in den abhängigen Ansprüchen beschrieben. Es wird darauf hingewiesen, dass zusätzliche Merkmale eines von einem unabhängigen Patentanspruch abhängigen Patentanspruchs ohne die Merkmale des unabhängigen Patentanspruchs oder nur in Kombination mit einer Teilmenge der Merkmale des unabhängigen Patentanspruchs eine eigene und von der Kombination sämtlicher Merkmale des unabhängigen Patentanspruchs unabhängige Erfindung bilden können, die zum Gegenstand eines unabhängigen Anspruchs, einer Teilungsanmeldung oder einer Nachanmeldung gemacht werden kann. Dies gilt in gleicher Weise für in der Beschreibung beschriebene technische Lehren, die eine von den Merkmalen der unabhängigen Patentansprüche unabhängige Erfindung bilden können.
-
Gemäß einem Aspekt wird eine Vorrichtung (z.B. ein Computer oder ein Server) zum Anlernen eines Ensembles von N (künstlichen) neuronalen Funktions-Netzen (bzw. Funktions-Netzwerken) und eines (künstlichen) neuronalen Verteil-Netzes (bzw. Verteil-Netzwerk) beschrieben. N ist dabei eine ganze Zahl größer als 1, insbesondere N>5 oder N>10. Die Funktionen-Netze und das Verteil-Netzes können auf Basis von Trainingsdaten mit einer Vielzahl von Trainings-Datensätzen angelernt werden, die eine bestimmte Gesamtfunktion beschreiben bzw. repräsentieren. Die einzelnen Trainings-Datensätze können dabei jeweils einen Trainings-Eingangs-Datensatz und Soll- bzw. Trainings-Ausgangsdaten umfassen, wobei die Soll- bzw. Trainings-Ausgangsdaten anzeigen, welches Ergebnis von dem antrainierten Ensemble von N neuronalen Funktions-Netze für den Trainings-Eingangs-Datensatz bereitgestellt werden soll, um die Gesamtfunktion zu realisieren.
-
Das Verteil-Netz kann angelernt werden, um einzelne Teilfunktionen der Gesamtfunktion auf einzelne Funktions-Netze zu verteilen. Die einzelnen Funktions-Netze können für die unterschiedlichen Teilfunktionen angelernt werden. Die einzelnen Teilfunktionen können dabei durch Teilmengen der Trainingsdaten beschrieben bzw. repräsentiert werden. Das Verteil-Netz kann somit angelernt werden, um die Vielzahl von Trainings-Datensätzen auf unterschiedliche Teilmengen für die unterschiedlichen Funktions-Netze aufzuteilen, so dass durch die unterschiedlichen Teilmengen unterschiedliche Teilfunktionen der Gesamtfunktion repräsentiert werden. Die einzelnen Trainings-Datensätze einer Teilmenge für ein Funktions-Netz können dabei jeweils einen Trainings-Eingangs-Datensatz und Soll-Ausgangsdaten umfassen, wobei die Soll-Ausgangsdaten anzeigen, welches Ergebnis von dem antrainierten Funktions-Netz für den Trainings-Eingangs-Datensatz bereitgestellt werden soll, um die Teilfunktion des Funktions-Netz zu realisieren.
-
Die N Funktions-Netze können jeweils ausgebildet sein und/oder strukturiert sein, für einen Eingangs-Datensatz (Ist-)Ausgangsdaten bereitzustellen. Die Ausgangsdaten können kann ein oder mehrere Ausgangswerte bzw. Datenelemente umfassen. Beispielsweise können die Ausgangsdaten ein oder mehrere Daten-Bits (ggf. auch nur ein einziges Daten-Bit) umfassen. Ein Funktions-Netz kann insbesondere ein Deep Neural Network bzw. ein tiefes neuronales Netz sein bzw. umfassen (z.B. mit mehr als 3 oder 5 oder 10 verdeckten Schichten). Der Eingangs-Datensatz kann z.B. ein Bild einer Kamera umfassen (z.B. eine Matrix mit Bildpixeln). Die Ausgangsdaten können ausgebildet sein, anzuzeigen, ob und ggf. wo sich in dem Bild ein Objekt eines bestimmten Objekt-Typs und/oder einer bestimmten Objekt-Größe befindet. Die einzelnen Funktions-Netze können ggf. auf unterschiedliche Objekt-Typen (z.B. Personenkraftwagen, Lastkraftwagen, Bus, Zweirad, Fußgänger, etc.) und/oder auf unterschiedliche Objekt-Größen (z.B. relativ klein, mittelgroß, groß) spezialisiert sein. Alternativ oder ergänzend können die einzelnen Funktions-Netze auf unterschiedliche Lichtverhältnisse spezialisiert sein, z.B. Tageslicht, Nacht, Tunnelsituation, Sonnenaufgang, Sonnenuntergang, relativ schwache Lichtverhältnisse, etc.
-
Die Vorrichtung kann eingerichtet sein, die N Funktions-Netze jeweils derart zu initialisieren, dass für einen Eingangs-Datensatz quasi-zufällige Ausgangsdaten bereitgestellt werden. Mit anderen Worten, Neuron-Parameter der einzelnen Funktions-Netze können ggf. quasi-zufällig initialisiert werden. Durch den in diesem Dokument beschriebenen iterativen Lernalgorithmus kann bewirkt werden, dass die einzelnen Funktions-Netze (Ist-) Ausgangsdaten bereitstellen, die zumindest im Mittel den durch die jeweilige Teilmenge der Trainingsdaten angezeigten Soll-Ausgangsdaten entsprechen und/oder angenähert sind.
-
Des Weiteren kann die Vorrichtung eingerichtet sein, die N Funktions-Netze jeweils unterschiedlich (quasi-zufällig) zu initialisieren. Insbesondere können die Neuron-Parameter der einzelnen Funktions-Netze in unterschiedlicher Weise (quasi-zufällig) initialisiert werden. Alternativ oder ergänzend können die N Funktions-Netze derart initialisiert werden, dass für einen gleichen Eingangs-Datensatz von den N Funktions-Netzen N unterschiedliche Ausgangsdaten bereitgestellt werden. So kann die Güte der Konvergenz der N Funktions-Netze zu jeweils unterschiedlichen Spezialisierungen erhöht werden.
-
Das Verteil-Netz kann ausgebildet sein, für den Eingangs-Datensatz zumindest oder genau ein Funktions-Netz aus den N Funktions-Netzen anzuzeigen bzw. auszuwählen, durch das der Eingangs-Datensatz verarbeitet werden soll, um Ausgangsdaten bereitzustellen. Die von dem ausgewählten Funktion-Netz bereitgestellten Ausgangsdaten können dann als Ausgangsdaten des Ensembles von N Funktions-Netzen für den Eingangs-Datensatz verwendet werden.
Das Verteil-Netz kann somit ausgebildet sein, für den Eingangs-Datensatz ein (ggf. genau ein) Funktions-Netz aus den N Funktions-Netzen auszuwählen, durch das der Eingangs-Datensatz (ggf. in exklusiver Weise) verarbeitet werden soll, um Ausgangsdaten für die Ausgangsdaten des Ensembles von N Funktions-Netzen für den Eingangs-Datensatz bereitzustellen.
-
Mit anderen Worten, das Verteil-Netz kann als Zuweisungsfunktion ausgebildet sein, die einen Eingangs-Datensatz einem (ggf. genau einem) Funktions-Netz zuweist. Die Zuweisung eines Eingangs-Datensatzes zu einem Funktions-Netz kann dabei als Aktion des Verteil-Netzes betrachtet werden. Das zugewiesene Funktions-Netz kann dann den Eingangs-Datensatz verarbeiten, um am Ausgang des zugewiesenen Funktions-Netzes Ausgangsdaten bereitzustellen. Diese Ausgangsdaten können dann (ggf. unverändert bzw. eins-zu-eins) als Ausgangsdaten des Ensembles der N Funktions-Netze verwendet werden. Das Ensemble von N Funktions-Netzen kann ggf. derart angelernt werden, dass ein Eingangs-Datensatz durch genau ein Funktions-Netz bearbeitet wird, um Ausgangsdaten für das gesamte Ensemble von N Funktions-Netz bereitzustellen.
-
Die Vorrichtung kann eingerichtet sein, das Verteil-Netz derart zu initialisieren, dass für einen Eingangs-Datensatz quasi-zufällig ein Funktions-Netz angezeigt wird, durch das der Eingangs-Datensatz verarbeitet werden soll. Durch den in diesem Dokument beschriebenen Lernalgorithmus kann dann bewirkt werden, dass das Verteil-Netz Eingangs-Datensätze gemäß einer angelernten Aufteilung der Gesamtfunktion auf Teilfunktionen den unterschiedlichen Funktions-Netzen zuweist.
-
Mittels des iterativen Lernalgorithmus können somit die N Funktions-Netze und das Verteil-Netz derart auf Basis der Trainingsdaten angelernt werden, dass nach-und-nach einzelne Teilfunktionen der durch die Trainingsdaten angezeigten Gesamtfunktion durch das Verteil-Netz den einzelnen Funktions-Netzen zugewiesen werden. Das Verteil-Netz kann dabei nach-und-nach angelernt werden, die für die jeweilige Teilfunktion relevanten Trainings-Datensätze dem jeweiligen Funktions-Netz zuzuweisen, um die Spezialisierung des Funktions-Netzes für diese Teilfunktion weiter zu verbessern.
-
Insbesondere kann die Vorrichtung eingerichtet sein, in einer Epoche bzw. in einer Iteration des iterativen Lernalgorithmus, anhand des Verteil-Netzes ein oder mehrere (insbesondere T) Trainings-Datensätze aus den Trainingsdaten auf N Teilgruppen bzw. Teilmengen für die N Funktions-Netze zu verteilen. Dabei ist T eine ganze Zahl größer oder gleich 1, insbesondere T>=8, T>=128, T>=512, oder T>=1024. Insbesondere ist T typischerweise wesentlich größer als N (z.B. um den Faktor 10 oder mehr). Das Verteilen der ein oder mehreren Trainings-Datensätze kann derart erfolgen, dass ein Trainings-Datensatz jeweils nur einem Teil der N Teilgruppen (ggf. nur genau einer Teilgruppe) zugewiesen wird. Falls T kleiner als N sein sollte, so kann ggf. einer Teilgruppe kein Trainings-Datensatz zugewiesen werden. Ggf. kann somit eine Teilgruppe leer sein. Typischerweise ist jedoch T deutlich größer als N, so dass jede der N Teilgruppen typischerweise zumindest einen der T Trainings-Datensätze umfasst.
-
Eine Epoche des Lernalgorithmus kann eine Phase des Lernalgorithmus sein, in dem alle verfügbaren Trainings-Datensätze zumindest einmal verwendet werden, um das Ensemble von N Funktions-Netzen anzulernen. In einer nachfolgenden Epoche können dann die verfügbaren Trainings-Datensätze erneut verwendet werden, um das Ensemble von N Funktions-Netzen weiter anzupassen, bis ein Konvergenzkriterium erfüllt ist. In jeder Epoche können die Trainings-Datensätze ggf. für zumindest bzw. genau eine Anpassung der Neuron-Parameter der Funktions-Netze und/oder des Verteil-Netzes verwendet werden.
-
Die Vorrichtung kann ferner eingerichtet sein, in der Epoche des iterativen Lernalgorithmus, die N Funktions-Netze anhand der entsprechenden N Teilgruppen bzw. Teilmengen von Trainings-Datensätzen anzupassen und/oder anzulernen. Mit anderen Worten, jedes einzelnen Funktions-Netz kann (ggf. ausschließlich) mit den Trainings-Datensätzen aus der entsprechenden Teilgruppe von Trainings-Datensätzen angepasst bzw. angelernt werden. Mit noch anderen Worten, die einzelnen Funktions-Netze können jeweils selektiv mit der jeweils zugewiesenen Teilgruppe von Trainings-Datensätzen angepasst und/oder angelernt werden.
-
Beim Anpassen bzw. Anlernen eines Funktions-Netzes können die einzelnen Neuron-Parameter der Neuronen des Funktions-Netzes angepasst werden. Insbesondere kann die Vorrichtung eingerichtet sein, ein Funktions-Netz auf Basis der dem Funktions-Netz zugewiesenen Teilgruppe von Trainings-Datensätzen anzupassen, um im Mittel die Abweichung der für die Trainings-Datensätze aus der Teilgruppe ermittelten Ist-Ausgangsdaten von den in den Trainings-Datensätzen der Teilgruppe angezeigten Soll-Ausgangsdaten zu reduzieren.
-
Durch das Anpassen eines Funktions-Netzes wird das Funktions-Netz an die Teilfunktion angepasst, die durch die Teilgruppe von Trainings-Datensätzen beschrieben wird, die dem Funktions-Netz durch das Verteil-Netz zugewiesen wurden. Es kann somit eine Spezialisierung der einzelnen Funktions-Netze erfolgen. Es kann somit ein überwachtes Lernen der einzelnen Funktions-Netze anhand der jeweils zugewiesenen Teilgruppe von Trainings-Datensätzen erfolgen.
-
Die Vorrichtung kann ferner eingerichtet sein, anhand der N angepassten Funktions-Netze Fehlerwerte für die ein oder mehreren Trainings-Datensätze (insbesondere T Fehlerwerte für die T Trainings-Datensätze) zu ermitteln. Wie bereits oben dargelegt, umfasst ein Trainings-Datensatz typischerweise einen Trainings-Eingangs-Datensatz und Soll-Ausgangsdaten für den Trainings-Eingangs-Datensatz (als sogenannte „Ground Truth“). Die Soll-Ausgangsdaten können die Ausgangsdaten anzeigen, die durch das angelernte Ensemble von N Funktions-Netzen für den Trainings-Eingangs-Datensatz bereitgestellt werden sollten (nach erfolgreichem Anlernen des Ensembles von N Funktions-Netzen).
-
Die Vorrichtung kann eingerichtet sein, anhand des angepassten Funktions-Netzes, dem der Trainings-Datensatz zugewiesen wurde, Ist-Ausgangsdaten zu ermitteln. Der Fehlerwert für den Trainings-Datensatz kann dann auf Basis der Ist-Ausgangsdaten und auf Basis der Soll-Ausgangsdaten, insbesondere auf Basis der Differenz der Ist-Ausgangsdaten und der Soll-Ausgangsdaten, ermittelt werden.
-
Des Weiteren kann die Vorrichtung eingerichtet sein, anhand der Fehlerwerte für die ein oder mehreren Trainings-Datensätze (insbesondere anhand der T Fehlerwerte für die T Trainings-Datensätze) das Verteil-Netz anzupassen. Die Fehlerwerte können als Indiz dafür betrachtet werden, wie gut die durch die Trainings-Datensätze angezeigte Gesamtfunktion durch das Ensemble von N Funktions-Netzes gelöst bzw. bereitgestellt wird. Das Verteil-Netz kann anpasst werden, um (zumindest im Mittel) die Fehlerwerte, insbesondere die T Fehlerwerte, zu reduzieren. Das Verteil-Netz kann dabei mittels Reinforcement Learning, insbesondere mittels Deep Q-Learning bzw. mittels eines Deep Q Networks (DQN), angepasst werden. Dabei können Belohnungen für das Reinforcement Learning auf Basis der Fehlerwerte, insbesondere auf Basis der T Fehlerwerte, ermittelt werden.
-
Die Vorrichtung ermöglicht es somit, ein Verteil-Netz und ein Ensemble von N Funktions-Netzen in automatischer Weise (ohne Verwendung einer Heuristik) derart anzulernen, dass eine Gesamtfunktion in optimierter Weise auf N Teilfunktionen aufgeteilt wird, die durch die einzelnen Funktions-Netze bereitgestellt werden. So kann die Güte einer durch mehrere neuronale Netze bereitgestellten Gesamtfunktion erhöht werden. Des Weiteren kann so die Rechenkomplexität zur Bereitstellung der Gesamtfunktion reduziert werden (da für einen Eingangs-Datensatz immer nur ein Funktions-Netz aktiv sein muss).
-
Bei dem in diesem Dokument beschriebenen Lernalgorithmus erfolgt ein gegenseitiges Lernen der Verteil-Netzes von den Fehlerwerten, die durch die Funktions-Netze bereitgestellt werden, und ein Lernen der Funktions-Netze, durch die Anpassung der Trainings-Datensätze, die den einzelnen Funktions-Netzen durch das angepasste Verteil-Netz zugewiesen werden. Durch dieses gegenseitige Lernen der Verteil-Netzes und der Funktions-Netze kann nach-und-nach die Güte der Gesamtfunktion erhöht werden.
-
Wie bereits oben dargelegt, umfassen die ein oder mehreren (insbesondere die T) Trainings-Datensätze typischerweise jeweils einen Trainings-Eingangs-Datensatz. Der Trainings-Eingangs-Datensatz eines Trainings-Datensatzes und das Funktions-Netz, dem der Trainings-Datensatz zugewiesen wurde, (bzw. die dem Funktions-Netz entsprechende Zuweisungsaktion) können als ein Zustands-Aktions-Paar betrachtet werden.
-
Die Vorrichtung kann eingerichtet sein, auf Basis der T Zustands-Aktions-Paare und der entsprechenden T Fehlerwerte ein neuronales Q-Netz als Approximation für eine Q-Funktion (im Sinne von Reinforcement Learning) anzupassen. Die Q-Funktion bzw. das Q-Netz können dabei für eine Vielzahl von Zustands-Aktions-Paaren eine entsprechende Vielzahl von zu erwartenden Belohnungen anzeigen. Es kann somit iterativ ein Q-Netz angepasst und/oder angelernt werden. Das angepasste Verteil-Netz kann dann auf Basis des angepassten Q-Netzes ermittelt werden. Insbesondere kann sich das Verteil-Netz aus dem Q-Netz ergeben, indem auf Basis des Q-Netzes für einen Eingangs-Datensatz die (Zuweisungs-)Aktion ermittelt wird, durch die die von dem Q-Netz angezeigte Belohnung vergrößert, insbesondere maximiert, wird. Das Verteil-Netz kann somit Teil der Q-Netzes sein.
-
Durch das iterative Anlernen eines Q-Netzes bzw. einer entsprechenden Q-Funktion kann die Güte des angelernten Ensembles von Funktions-Netzen weiter erhöht werden.
-
Die Vorrichtung kann eingerichtet sein, eine Vielzahl von Epochen des Lernalgorithmus bis Erreichen eines Abbruchkriteriums zu wiederholen. Dabei kann die Zuweisung der einzelnen Trainings-Datensätzen zu den unterschiedlichen Funktions-Netzen in unterschiedlichen Epochen unterschiedlich sein (aufgrund der Anpassung des Verteil-Netzes). Typischerweise konvergiert jedoch das Zuweisungsverhalten des Verteil-Netzes mit steigender Anzahl von Epochen. Das Abbruchkriterium für den iterativen Lernalgorithmus kann eine maximale Anzahl von Epochen und/oder eine Konvergenz des Ensembles von N Funktions-Netzen und/oder des Verteil-Netzes umfassen. Es kann somit ein iteratives Anlernen des Ensembles von N Funktions-Netzen und des Verteil-Netzes erfolgen, um eine qualitativ hochwertige Gesamtfunktion bereitzustellen.
-
Die Vorrichtung kann eingerichtet sein, in einer Epoche des Lernalgorithmus zumindest einen Teil der T Trainings-Datensätze zufällig jeweils einem der N Funktions-Netze zuzuweisen. Dabei kann der Anteil der T Trainings-Datensätze, die zufällig zugewiesen werden, mit steigender Anzahl der Epochen des Lernalgorithmus reduziert werden. So kann in zuverlässiger Weise bewirkt werden, dass in einer Anfangsphase des Lernalgorithmus für die N Funktions-Netze N unterschiedliche Teilfunktionen identifiziert werden können, und dass die N Funktions-Netze nach-und-nach für die unterschiedlichen Teilfunktionen angelernt werden können. Somit kann die Güte der bereitgestellten Gesamtfunktion weiter erhöht werden.
-
Die Vorrichtung kann eingerichtet sein, innerhalb einer Epoche des Lernalgorithmus, die N Funktions-Netze und das Verteil-Netz sequentiell auf Basis von jeweils unterschiedlichen Gruppen von Trainings-Datensätzen anzupassen. Insbesondere können sequentiell unterschiedliche Gruppen mit jeweils T Trainings-Datensätzen aus den Trainingsdaten gebildet und/oder bereitgestellt werden. So kann das Anlernen des Ensembles von Funktions-Netzen weiter verbessert werden.
-
Gemäß einem weiteren Aspekt wird eine Vorrichtung zur Ermittlung von Ausgangsdaten eines Ensembles von N neuronalen Funktions-Netzen für einen Eingangs-Datensatz beschrieben, wobei N eine ganze Zahl größer als 1 ist. Die Vorrichtung kann eingerichtet sein, den Eingangs-Datensatz auf Basis von Sensordaten von ein oder mehreren Sensoren (insbesondere Umfeldsensoren eines Fahrzeugs) zu ermitteln.
-
Die Vorrichtung kann eingerichtet sein, den Eingangs-Datensatz mittels eines neuronalen Verteil-Netzes, einem, insbesondere genau einem, der N Funktions-Netze zuzuweisen. Dabei können das Ensemble von N Funktions-Netzen und/oder das Verteil-Netz mit der in diesem Dokument beschriebenen Vorrichtung angelernt worden sein.
-
Die Vorrichtung kann ferner eingerichtet sein, anhand des zugewiesenen Funktions-Netzes Ausgangsdaten des zugewiesenen Funktions-Netzes für den Eingangs-Datensatz als Ausgangsdaten des Ensembles von N Funktions-Netzen zu ermitteln. Dabei können als Ausgangsdaten insbesondere Ausgangsdaten bereitgestellt werden, die ein Objekt innerhalb des Eingangs-Datensatzes anzeigen.
-
Durch die Verwendung eines Ensembles von N neuronalen Funktions-Netzen in Zusammenhang mit einem neuronalen Verteil-Netz kann in effizienter Weise durch Teilfunktionen der einzelnen Funktions-Netze eine qualitativ hochwertige Gesamtfunktion bereitgestellt werden.
-
Die Vorrichtung kann eingerichtet sein, auf Basis der Ausgangsdaten des Ensembles von N Funktions-Netzen zumindest eine Fahrzeugfunktion eines Fahrzeugs (z.B. zum automatisierten Fahren) bereitzustellen und/oder zu betreiben. So kann eine qualitativ hochwertige Fahrzeugfunktion bereitgestellt werden.
-
Gemäß einem weiteren Aspekt wird ein (Straßen-) Kraftfahrzeug (insbesondere ein Personenkraftwagen oder ein Lastkraftwagen oder ein Bus oder ein Motorrad) beschrieben, das zumindest eine der in diesem Dokument beschriebenen Vorrichtungen umfasst.
-
Gemäß einem weiteren Aspekt wird ein (Computer-implementiertes) Verfahren zum Anlernen eines Ensembles von N neuronalen Funktions-Netzen und eines neuronalen Verteil-Netzes beschrieben. Die N Funktions-Netze sind jeweils ausgebildet und/oder strukturiert, für einen Eingangs-Datensatz Ausgangsdaten bereitzustellen. Das Verteil-Netz ist ausgebildet und/oder strukturiert, für den Eingangs-Datensatz zumindest (insbesondere genau) ein Funktions-Netz aus den N Funktions-Netzen anzuzeigen, durch das der Eingangs-Datensatz verarbeitet werden soll, um Ausgangsdaten als Basis für die Ausgangsdaten des Ensembles von N Funktions-Netzen für den Eingangs-Datensatz bereitzustellen.
-
Das Verfahren umfasst (in einer Epoche eines iterativen Lernalgorithmus) das Verteilen von ein oder mehreren Trainings-Datensätzen auf N Teilgruppen für die entsprechenden N Funktions-Netze anhand des Verteil-Netzes, sowie das Anpassen bzw. Anlernen der N Funktions-Netze anhand der entsprechenden N Teilgruppen von Trainings-Datensätzen (wobei ein Funktions-Netz selektiv mit den ein oder mehreren Trainings-Datensätzen der entsprechenden Teilgruppe angepasst bzw. angelernt wird). Des Weiteren umfasst das Verfahren das Ermitteln von Fehlerwerten für die ein oder mehreren Trainings-Datensätze anhand der N angepassten Funktions-Netze, sowie das Anpassen des Verteil-Netzes anhand und/oder auf Basis der ermittelten Fehlerwerte.
-
Gemäß einem weiteren Aspekt wird ein (Computer-implementiertes) Verfahren zur Ermittlung von Ausgangsdaten eines Ensembles von N neuronalen Funktions-Netzen für einen Eingangs-Datensatz beschrieben. Das Verfahren umfasst das Zuweisen des Eingangs-Datensatzes mittels eines neuronalen Verteil-Netzes zu einem, insbesondere zu genau einem, der N Funktions-Netze. Des Weiteren umfasst das Verfahren das Ermitteln, anhand des zugewiesenen Funktions-Netzes, von Ausgangsdaten des zugewiesenen Funktions-Netzes für den Eingangs-Datensatz als Ausgangsdaten des Ensembles von N Funktions-Netzen.
-
Gemäß einem weiteren Aspekt wird ein Software (SW) Programm beschrieben. Das SW Programm kann eingerichtet werden, um auf einem Prozessor (z.B. auf einem Steuergerät eines Fahrzeugs) ausgeführt zu werden, und um dadurch eines der in diesem Dokument beschriebenen Verfahren auszuführen.
-
Gemäß einem weiteren Aspekt wird ein Speichermedium beschrieben. Das Speichermedium kann ein SW Programm umfassen, welches eingerichtet ist, um auf einem Prozessor ausgeführt zu werden, und um dadurch eines der in diesem Dokument beschriebenen Verfahren auszuführen.
-
Es ist zu beachten, dass die in diesem Dokument beschriebenen Verfahren, Vorrichtungen und Systeme sowohl alleine, als auch in Kombination mit anderen in diesem Dokument beschriebenen Verfahren, Vorrichtungen und Systemen verwendet werden können. Des Weiteren können jegliche Aspekte der in diesem Dokument beschriebenen Verfahren, Vorrichtungen und Systemen in vielfältiger Weise miteinander kombiniert werden. Insbesondere können die Merkmale der Ansprüche in vielfältiger Weise miteinander kombiniert werden.
-
Im Weiteren wird die Erfindung anhand von Ausführungsbeispielen näher beschrieben. Dabei zeigen
- 1 beispielhafte Komponenten eines Fahrzeugs;
- 2a ein beispielhaftes neuronales Netz;
- 2b ein beispielhaftes Neuron;
- 3a eine beispielhafte Vorrichtung zum Anlernen eines Ensembles von neuronalen Netzen;
- 3b eine beispielhafte Vorrichtung zur Nutzung eines angelernten Ensembles von neuronalen Netzen;
- 4a eine beispielhafte Vorrichtung zum Anlernen eines Verteil-Netzes und der Funktions-Netze eines Ensembles von neuronalen Netzen;
- 4b eine beispielhafte Vorrichtung zur Nutzung eines angelernten Verteil-Netzes und eines Ensembles mit angelernten Funktions-Netzen;
- 5a ein beispielhaftes Verfahren zum Anlernen eines Ensembles von neuronalen Funktions-Netzen; und
- 5b ein beispielhaftes Verfahren zur Nutzung eines Ensembles von angelernten neuronalen Funktions-Netzen.
-
Wie eingangs dargelegt, befasst sich das vorliegende Dokument mit dem Anlernen und dem Verwenden eines Ensembles von neuronalen Netzen, z.B. für die Erkennung von Objekten im Umfeld eines Fahrzeugs. In diesem Zusammenhang zeigt 1 beispielhafte Komponenten eines Fahrzeugs 100. Das Fahrzeug 100 umfasst ein oder mehrere Umfeldsensoren 102, die eingerichtet sind, Umfelddaten (d.h. Sensordaten) in Bezug auf das Umfeld des Fahrzeugs 100 zu erfassen. Beispielhafte Umfeldsensoren 102 sind eine Bildkamera, ein Radarsensor, ein Lidarsensor und/oder ein Ultraschallsensor.
-
Des Weiteren umfasst das Fahrzeug 100 typischerweise ein oder mehrere Fahrzeugsensoren 103, die eingerichtet sind, Zustandsdaten (d.h. Sensordaten) in Bezug auf eine Zustandsgröße des Fahrzeugs 100 zu erfassen. Beispielhafte Zustandsgrößen sind die Fahrgeschwindigkeit und/oder die (Längs-) Beschleunigung des Fahrzeugs 100.
-
Ferner umfasst das Fahrzeug 100 ein oder mehrere Aktoren 104 zur automatischen Längs- und/oder Querführung des Fahrzeugs 100. Beispielhafte Aktoren 104 sind ein Antriebsmotor, eine Bremsvorrichtung und/oder eine Lenkvorrichtung.
-
Eine Steuereinheit 101 des Fahrzeugs 100 kann eingerichtet sein, ein oder mehrere Aktoren 104 automatisch auf Basis der Umfelddaten und/oder auf Basis der Zustandsdaten zu betreiben. Insbesondere kann die Steuereinheit 101 eingerichtet sein, auf Basis der Sensordaten der ein oder mehreren Umfeldsensoren 102 ein Objekt im Umfeld des Fahrzeugs 100 zu detektieren. Die ein oder mehreren Aktoren 104 können dann in Abhängigkeit von dem detektieren Objekt betrieben werden, insbesondere um das Fahrzeug 100 zumindest teilweise automatisiert zu führen. Die Objekterkennung kann dabei anhand der in diesem Dokument beschriebenen Verfahren erfolgen.
-
Zur Erkennung eines Objekts auf Basis der Sensordaten von ein oder mehreren Umfeldsensoren 102 kann zumindest ein neuronales Netz verwendet werden, das auf Basis von Trainingsdaten für die Aufgabe der Objekterkennung angelernt wurde. 2a und 2b zeigen beispielhafte Komponenten eines neuronalen Netzes 200, insbesondere eines Feedforward-Netzes. Das Netz 200 umfasst in dem dargestellten Beispiel zwei Eingangs-Neuronen bzw. Eingabe-Knoten 202, die zu einem bestimmten Zeitpunkt t jeweils einen aktuellen Wert einer Eingangsgröße als Eingangswert 201 aufnehmen. Die ein oder mehrere Eingangs-Knoten 202 sind Teil einer Eingangs-Schicht 211. Allgemein kann das Netz 200 ausgebildet sein, einen Eingangs-Datensatz mit ein oder mehreren Eingangswerten 201 aufzunehmen.
-
Das neuronale Netz 200 umfasst ferner Neuronen 220 in ein oder mehreren verdeckten Schichten 212 des neuronalen Netzes 200. Jedes der Neuronen 220 kann als Eingangswerte die einzelnen Ausgangswerte der Neuronen der vorhergehenden Schicht 212, 211 aufweisen (oder zumindest einen Teil davon). In jedem der Neuronen 220 erfolgt eine Verarbeitung, um in Abhängigkeit von den Eingangswerten einen Ausgangswert des Neurons 220 zu ermitteln. Die Ausgangswerte der Neuronen 220 der letzten verdeckten Schicht 212 können in einem Ausgangs-Neuron bzw. Ausgabe-Knoten 220 einer Ausgangs-Schicht 213 verarbeitet werden, um die ein oder mehreren Ausgangswerte 203 des neuronalen Netzes 200 zu ermitteln. Allgemein kann das Netz 200 ausgebildet sein, Ausgangsdaten mit ein oder mehreren Ausgangswerten 203 bereitzustellen.
-
2b veranschaulicht die beispielhafte Signalverarbeitung innerhalb eines Neurons 220, insbesondere innerhalb der Neuronen 202 der ein oder mehreren verdeckten Schichten 212 und/oder der Ausgangs-Schicht 213. Die Eingangswerte 221 des Neurons 220 werden mit individuellen Gewichten 222 gewichtet, um in einer Summeneinheit 223 eine gewichtete Summe 224 der Eingangswerte 221 zu ermitteln (ggf. unter Berücksichtigung eines Bias bzw. Offsets 227). Durch eine Aktivierungsfunktion 225 kann die gewichtete Summe 224 auf einen Ausgangswert 226 des Neurons 220 abgebildet werden. Dabei kann durch die Aktivierungsfunktion 225 z.B. eine Begrenzung des Wertebereichs erfolgen. Für ein Neuron 220 kann z.B. eine Sigmoid-Funktion oder eine Tangens hyperbolicus (tanh)-Funktion oder eine Rectified Linear Unit (ReLU), z.B. f(x) = max(0, x) als Aktivierungsfunktion 225 verwendet werden. Ggf. kann der Wert der gewichteten Summe 224 mit einem Offset 227 verschoben werden.
-
Ein Neuron 220 weist somit Gewichte 222 und/oder ggf. einen Offset 227 als Neuron-Parameter auf. Die Neuron-Parameter der Neuronen 220 eines neuronalen Netzes 200 können in einer Trainingsphase angelernt werden, um zu bewirken, dass das neuronale Netz 200 eine bestimmte Funktion approximiert und/oder ein bestimmtes Verhalten modelliert.
-
Das Anlernen eines neuronalen Netzes 200 kann z.B. anhand des Backpropagation-Algorithmus erfolgen. Zu diesem Zweck können in einer ersten Phase einer qten Epoche eines Lernalgorithmus für die Eingangswerte 201 an den ein oder mehreren Eingangs-Knoten 202 des neuronalen Netzes 200 entsprechende Ausgangswerte 203 an dem Ausgang der ein oder mehreren Ausgangs-Neuronen 220 ermittelt werden. Auf Basis der Ausgangswerte 203 kann der Fehlerwert einer Optimierungs- bzw. Fehlerfunktion ermittelt werden. In dem vorliegenden Fall kann für das Anlernen eines Verteil-Netzes ein Temporal-Differenz (TD) Fehler als Optimierungs- bzw. Fehlerfunktion dienen, wie weiter unten dargelegt.
-
In einer zweiten Phase der qten Epoche des Lernalgorithmus erfolgt eine Rückpropagation des Fehlers bzw. des Fehlerwertes von dem Ausgang zum Eingang des neuronalen Netzes, um schichtweise die Neuron-Parameter der Neuronen 220 zu verändern. Dabei kann die ermittelte Fehlerfunktion am Ausgang partiell nach jedem einzelnen Neuron-Parameter des neuronalen Netzes 200 abgeleitet werden, um ein Ausmaß und/oder eine Richtung zur Anpassung der einzelnen Neuron-Parameter zu ermitteln. Dieser Lernalgorithmus kann iterativ für eine Vielzahl von Epochen wiederholt werden, bis ein vordefiniertes Konvergenz- und/oder Abbruchkriterium erreicht wird.
-
Wie eingangs dargelegt, kann es vorteilhaft sein, für eine Gesamtaufgabe, z.B. für die Erkennung von Objekten aus unterschiedlichen Gruppen von Objekt-Typen, unterschiedliche neuronale Netze zu verwenden, die jeweils auf das Lösen einer Teilaufgabe spezialisiert sind. Beispielsweise kann für jede Gruppe von Objekt-Typen, etwa für die Gruppe der Fußgänger, für die Gruppe der Personenkraftwagen, für die Gruppe der Lastkraftwagen, für die Gruppe der Zweiräder, etc. ein spezifisch angelerntes neuronales Netz bereitgestellt werden. Die Gesamtaufgabe kann dann gemeinsam durch die unterschiedlichen neuronalen Netze, d.h. durch ein Ensemble von neuronalen Netzen, gelöst werden. Die einzelnen, für eine spezifische Teilaufgabe angelernten, neuronalen Netze werden in diesem Dokument auch als Funktions-Netze bezeichnet.
-
3a zeigt eine beispielhafte Vorrichtung 300 zum Anlernen eines Ensembles 304 von Funktions-Netzen 303. Die Vorrichtung 300 umfasst eine Verteileinheit 302, die eingerichtet ist, einen Trainings-Datensatz 301 (ggf. genau) einem der Funktions-Netze 303 zuzuweisen. Die zu Verfügung stehenden Trainingsdaten (mit einer Vielzahl von Trainings-Datensätzen 301) können somit durch eine Verteileinheit 302 auf die unterschiedlichen Funktions-Netze 303 aufgeteilt werden. Dabei erfolgt der Verteilprozess in Abhängigkeit von der Teilaufgabe des jeweiligen Funktions-Netzes 303. Beispielsweise können die einzelnen Trainings-Datensätze 301 je nach Objekt-Typ, auf den sich der jeweilige Trainings-Datensatz 301 bezieht, dem auf den jeweiligen Objekt-Typ spezialisierten Funktions-Netz 303 zugewiesen werden.
-
Ein Trainings-Datensatz 301 umfasst typischerweise einen Trainings-Eingangs-Datensatz (mit ein oder mehreren Trainings-Eingangswerten 201) und dazugehörige Trainings-Ausgangsdaten (mit ein oder mehreren Trainings-Ausgangswerten 203). Durch eine Vielzahl von Trainings-Datensätzen 301 wird typischerweise eine bestimmte Gesamtfunktion beschrieben, wobei die Trainings-Ausgangsdaten aus einem Trainings-Datensatz 301 anzeigen, wie sich das Ensemble 304 von Funktions-Netzen 303 für den Trainings-Eingangs-Datensatz aus dem Trainings-Datensatz 301 verhalten soll.
-
Die Verteileinheit 302 teilt somit die Trainingsdaten in N Teilmengen für die N Funktions-Netze 303 auf, wobei die Teilmenge für ein Funktions-Netz 303 die Teilaufgabe repräsentiert, die durch dieses Funktions-Netz 303 zu erfüllen ist. Die einzelnen Funktions-Netze 303 können dann mit der jeweils zugewiesenen Teilmenge angelernt werden (z.B. wie in Zusammenhang mit den 2a und 2b beschrieben). So können N Funktions-Netze 303 bereitgestellt werden, die auf N unterschiedliche Teilaufgaben einer Gesamtaufgabe spezialisiert sind.
-
3b zeigt eine beispielhafte Vorrichtung 310 zur Nutzung eines angelernten Ensembles 304 mit N Funktions-Netzen 303. Ein Eingangs-Datensatz 311 kann von allen Funktions-Netzen 303 verarbeitet werden und jeweils einen Ausgangswert 313 (bzw. jeweilige Ausgangsdaten) bereitstellen. Die Ausgangswerte 313 (bzw. die Ausgangsdaten) der einzelnen Funktions-Netze 303 können in einer Agglomerationseinheit 314 verarbeitet, z.B. überlagert, werden, um einen Gesamt-Ausgangswert 315 (bzw. Gesamt-Ausgangsdaten) bereitzustellen. Der Eingangs-Datensatz 311 kann z.B. unterschiedliche Objekte mit unterschiedlichen Objekt-Typen aufweisen. Ein Objekt eines bestimmten Objekt-Typs kann dann in zuverlässiger Weise anhand des für diesen Objekt-Typ spezialisierten Funktions-Netzes 303 detektiert und als Ausgangswert 313 dieses Funktions-Netzes 303 bereitgestellt werden. Durch die Überlagerung der Ausgangswerte 313 der unterschiedlichen Funktions-Netze 303 kann dann als Gesamt-Ausgangswert 315 Information in Bezug auf die unterschiedlichen Objekte mit unterschiedlichen Objekt-Typen bereitgestellt werden.
-
Durch die Verwendung eines Ensembles 304 von Funktions-Netzen 303, die auf Teilaufgaben bzw. Teilfunktionen spezialisiert sind, kann die Güte einer Gesamtfunktion, wie etwa der Objekterkennung, erhöht werden. Des Weiteren kann die Komplexität der einzelnen Funktions-Netze 303 reduziert werden.
-
Eine Herausforderung bei der Verwendung eines Ensembles 304 von Funktions-Netzen 303 ist die Aufteilung einer Gesamtaufgabe in Teilaufgaben für die einzelnen Funktions-Netze 303. Mit anderen Worten, bei der Verwendung eines Ensembles 304 von Funktions-Netzen 303 stellt sich die Frage, wie eine durch Trainingsdaten repräsentierte Gesamtaufgabe möglichst optimal auf unterschiedliche Teilaufgaben für die einzelnen Funktions-Netze 303 aufgeteilt werden kann, um ein Ensemble 304 von Funktions-Netzen 303 anzulernen, das die Gesamtaufgabe möglichst optimal löst. Eine auf Basis einer Heuristik arbeitende Verteileinheit 302, wie in Zusammenhang mit 3a beschrieben, kann typischerweise keine optimierte Aufgabenverteilung bewirken.
-
4a zeigt eine beispielhafte Vorrichtung 400 zum Anlernen eines Ensembles 304 von Funktions-Netzen 303, die ein neuronales Netz 402 umfasst, das in einer Trainingsphase iterativ angelernt wird, um die Trainings-Datensätze 301 der Trainingsdaten auf die unterschiedlichen Funktions-Netze 303 zu verteilen, und um dadurch den einzelnen Funktions-Netzen 303 unterschiedliche Teilaufgaben zuzuweisen. Das neuronale Netz 402 der Verteileinheit 302 wird in diesem Dokument auch als Verteil-Netz bezeichnet.
-
Das Anlernen der Funktions-Netze 303 und des Verteil-Netzes 402 kann in einem gemeinsamen Anlernverfahren erfolgen. Die Trainingsdaten, d.h. die Vielzahl von Trainings-Datensätze 301, können in K Gruppen mit jeweils T Trainings-Datensätzen 301 aufgeteilt werden. Die T Trainings-Datensätze 301 einer Gruppe können sequentiell an das Verteil-Netz 402 übergeben werden. Das Verteil-Netz 402 kann dann jeden einzelnen Trainings-Datensatz 301 ein oder mehreren der N Funktions-Netze 303 zuweisen. Das Verteil-Netz 402 kann z.B. eingerichtet sein, als Eingangswerte 201 den Trainings-Eingangs-Datensatz eines Trainings-Datensatzs 301 entgegenzunehmen. Des Weiteren kann das Verteil-Netz 402 ggf. N Ausgangswerte 203 aufweisen, die für die entsprechenden N Funktions-Netze 303 anzeigt, ob der Trainings-Datensatz 301 dem jeweiligen Funktions-Netz 303 zugewiesen werden soll oder nicht.
-
Nach der Verteilung der T Trainings-Datensätze 301 auf die N Funktions-Netze 303 stehen dann N Teilmengen mit Trainings-Datensätzen 301 zum Anlernen der entsprechenden N Funktions-Netze 303 zu Verfügung. Dabei kann ein Trainings-Datensatz 301 (zumindest in einer relativ frühen Phase des iterativen Lernalgorithmus) ggf. in mehreren Teilmengen enthalten sein. Ein Funktions-Netz 303 kann mit den Trainings-Datensätzen 301 aus der Teilmenge für das Funktions-Netz 303 zumindest teilweise angelernt werden. Beispielsweise können ein oder mehrere Iterationen des in Zusammenhang mit den 2a und 2b beschriebenen Anlernverfahrens ausgeführt werden, um die Neuron-Parameter 222, 227 des Funktions-Netze 303 anzupassen.
-
Als Ergebnis des (teilweisen) Anlernprozesses eines Funktions-Netzes 303 ergibt sich für jeden Trainings-Datensatz 301 (zumindest) ein Fehlerwert der Fehlerfunktion. Es ergibt sich somit für jeden der T Trainings-Datensätze 301 zumindest ein Fehlerwert der Fehlerfunktion, wobei der Fehlerwert der Fehlerfunktion durch das Funktions-Netz 303 bereitgestellt wird, dem der jeweilige Trainings-Datensatz 301 zugewiesen wurde. Die (zumindest) T Fehlerwerte sind ein Indiz dafür, wie gut die durch die T Trainings-Datensätze 301 beschriebene Gesamtaufgabe durch das Ensemble 304 von Funktions-Netzen 303 gelöst werden konnte, und/oder wie gut die durch die T Trainings-Datensätze 301 beschriebene Gesamtaufgabe durch das Verteil-Netz 402 auf die N Funktions-Netze 303 aufgeteilt werden konnte. Die Fehlerwerte können daher dazu verwendet werden, das Verteil-Netz 402 anzulernen.
-
Zum Anlernen des Verteil-Netzes 402 kann Reinforcement Learning (RL) verwendet werden. Dabei kann ein Trainings-Datensatz 301, insbesondere der Trainings-Eingangs-Datensatz 311 für ein Funktions-Netz 303 aus einem Trainings-Datensatz 301, als Zustand s betrachtet werden. Das Funktions-Netz 303, dem der Trainings-Datensatz 301 zugewiesen wurde, (z.B. die ein oder mehreren Ausgangswerte 302 des Verteil-Netzes 402 für den Trainings-Datensatz 301) können als Aktion a betrachtet werden. Ferner kann der Fehlerwert der Fehlerfunktion, der durch das zugewiesene Funktions-Netz 303 für den Trainings-Datensatz 301 ermittelt wird, als Belohnung (insbesondere als negative Belohnung) r betrachtet werden. Mit anderen Worten die Belohnung r kann von dem Fehlerwert abhängen und/oder kann eine Funktion des Fehlerwertes sein. In einem bevorzugten Beispiel ist die Belohnung r der negative (ggf. skalierte) Fehlerwert.
-
Die einzelnen Zustands-Aktions-Belohnungs-Tupel (s, a, r) für die T Trainings-Datensätze
301 können dazu verwendet werden, eine Q-Funktion anzulernen, die für ein Zustands-Aktions-Paar die sich daraus ergebende (zu erwartende, kumulierte, zukünftige) Belohnung anzeigt, d.h.
Die Q-Funktion kann ggf. durch ein neuronales Netz approximiert werden, wobei das neuronale Netz als Eingangswerte
201 ein Zustands-Aktions-Paar aufnimmt, und als Ausgangswert
203 eine Belohnung bereitstellt. Die Zustands-Aktions-Belohnungs-Tupel (s, a, r) für die T Trainings-Datensätze
301 können dabei als Trainingsdaten zum Anlernen des neuronalen Netzes für die Q-Funktion verwendet werden. Das die Q-Funktion approximierende neuronale Netz kann als Q-Netz bezeichnet werden. Zum Anlernen des Q-Netzes kann der o.g. Backpropagation Algorithmus verwendet werden. Zu diesem Zweck kann der sogenannte Temporal Difference (TD)-Fehler δ als Fehlerfunktion betrachtet werden, und diese Fehlerfunktion kann dazu verwendet werden, die einzelnen Neuron-Parameter
222,
227 des Q-Netzes anzupassen. Der TD-Fehler für einen Zustands-Aktions-Belohnungs-Tupel (s, a, r) kann sich dabei als ergeben:
wobei Q(s, a) durch die jeweils aktuelle Version des Q-Netzes gegeben ist, und wobei γ ein Diskontierungsfaktor ist.
-
Ein Zustands-Aktions-Paar ergibt sich aus einer dem Verteil-Netz
402 entsprechenden Verteil-Funktion π, d.h. a = π(s). Die Verteil-Funktion π soll dabei derart angelernt werden, dass durch die für einen Trainings-Eingangs-Datensatz
311 (d.h. für einen Zustand s) von der Verteil-Funktion π angezeigte Aktion a (d.h. durch das von dem Verteil-Netz
402 für den Trainings-Eingangs-Datensatz
311 angezeigte Funktions-Netz
303) die (zukünftige, erwartete und/oder kumulierte) Belohnung R maximiert wird, d.h.
Aus dem aktualisierten Q-Netz ergibt sich über den o.g. Zusammenhang das Verteil-Netz
402 bzw. die Verteil-Funktion. Das Verteil-Netz
402 kann somit als Teil des Q-Netzes betrachtet werden.
-
Alternativ oder ergänzend kann direkt ein neuronales Netz, insbesondere ein DQN (Deep-Q Network), angelernt werden, dass ausgebildet ist, für einen bestimmten Zustand s die Aktion a auszugeben, durch die die (zukünftige, erwartete und/oder kumulierte) Belohnung R maximiert wird. Insbesondere kann ein neuronales Netz angelernt werden, dass π(s) approximiert.
-
Nach der Aktualisierung des Q-Netzes und/oder des Verteil-Netzes 402 (insbesondere des DQN) kann das aktualisierte Verteil-Netz 402 dazu genutzt werden, T weitere Trainings-Datensätze 301 aus den Trainingsdaten auf die N Funktions-Netze 303 zu verteilen, um die N Funktions-Netze 303 in ein oder mehreren Iterationen auf Basis der jeweils zugewiesenen Trainings-Datensätze 301 anzulernen, und um für die einzelnen Trainings-Datensätze 301 Fehlerwerte als Belohnungen zu ermitteln. Es ergeben sich dann wieder neue Zustands-Aktions-Belohnungs-Tupel (s, a, r) mit denen erneut das Q-Netz und/oder das Verteil-Netz 402 aktualisiert werden können.
-
Dieser Prozess kann wiederholt werden, bis alle Trainings-Datensätze 301 aus den Trainingsdaten verwendet wurden. Eine Epoche des Lernalgorithmus kann dann als abgeschlossen betrachtet werden. Es können dann in einer nachfolgenden Epoche die Trainingsdaten wiederum (z.B. sequentiell in Gruppen von jeweils T Trainings-Datensätzen 301) auf die N Funktions-Netze 303 aufgeteilt werden, um iterativ die N Funktions-Netze 303 und das Q-Netz bzw. das Verteil-Netz 402 anzupassen. Zum Anlernen des Ensembles 304 von Funktions-Netzen 303 können somit wiederholt die Trainingsdaten in mehreren Epochen verwendet werden, bis zum Erreichen eines Abbruchkriteriums. Beispielhafte Abbruchkriterien sind das Erreichen einer maximalen Anzahl von Epochen und/oder das Konvergieren der Funktions-Netze und/oder des Q-Netzes bzw. des Verteil-Netzes 402.
-
Die Verteilung der Trainings-Datensätze 301 auf die einzelnen Funktions-Netze 303 kann in den einzelnen Epochen zumindest teilweise zufällig erfolgen. Dabei kann der Anteil der zufällig zugewiesenen Trainings-Datensätze 301 mit zunehmender Anzahl von Epochen reduziert werden. Beispielsweise können in der erste Epoche 90% oder mehr der Trainings-Datensätze 301 zufällig zugewiesen werden. Die anderen Trainings-Datensätze 301 können auf Basis des Q-Netzes bzw. des Verteil-Netzes 402 zugewiesen werden (z.B. jeweils an das Funktions-Netz 303 für das sich der maximale oder der minimale Ausgangswert 203 ergibt). Der Anteil der zufällig zugewiesenen Trainings-Datensätze 301 kann dann nach-und-nach in den nachfolgenden Epochen reduziert werden, z.B. bis auf 10% oder weniger, oder 5% oder weniger oder 1% oder weniger. So kann die Güte des Lernalgorithmus erhöht werden.
-
4b zeigt eine beispielhafte Vorrichtung 410 zur Nutzung eines angelernten Ensembles 304 von Funktions-Netzen 303 und eines angelernten Verteil-Netzes 402. Ein Eingangs-Datensatz 311 kann als Eingangswert 201 an das Verteil-Netz 402 übergeben werden, und das Verteil-Netz 402 kann N Ausgangswert 203 für die N Funktions-Netze 303 bereitstellen. Dabei kann ein Ausgangswert 203 für ein Funktions-Netz 303 anzeigen, wie gut der Eingangs-Datensatz 311 von dem jeweiligen Funktions-Netz 303 verarbeitet werden kann. Es kann dann auf Basis der Ausgangswerte 203 des Verteil-Netzes 402 das Funktions-Netz 303 ausgewählt werden, für das der Ausgangswert 203 die höchste Übereinstimmung bzw. Relevanz anzeigt. Der Eingangs-Datensatz 311 kann dann durch das ausgewählte Funktions-Netz 303 verarbeitet werden, um den (Gesamt-) Ausgangswert 315 (bzw. die Gesamt-Ausgangsdaten) für den Eingangs-Datensatz 311 bereitzustellen.
-
5a zeigt ein Ablaufdiagramm eines beispielhaften (Computerimplementierten) Verfahrens 500 zum Anlernen eines Ensembles 304 von N neuronalen Funktions-Netzen 303 und eines Verteil-Netzes 402. Dabei ist N eine ganze Zahl größer als 1, z.B. N>5 oder N>9. Die N Funktions-Netze 303 können jeweils ausgebildet sein (insbesondere strukturell angelegt sein), für einen Eingangs-Datensatz 311 (z.B. für das Bild einer Kamera 102) Ausgangsdaten 203 (z.B. einen Hinweis auf ein Objekt in dem Bild der Kamera 102) bereitzustellen.
-
Das Verteil-Netz 402 kann ausgebildet sein (insbesondere strukturell angelegt sein), für den Eingangs-Datensatz 311 das Funktions-Netz 303 aus den N Funktions-Netzen 303 anzuzeigen, durch das der Eingangs-Datensatz 311 verarbeitet werden soll, um die Ausgangsdaten 203 des Ensembles 304 von N Funktions-Netzen 303 für den Eingangs-Datensatz 311 bereitzustellen. Mit anderen Worten, das Verteil-Netz 402 kann für eine Zuweisungsfunktion ausgelegt sein, bei der ein Eingangs-Datensatz 311 einem, insbesondere genau einem, der N Funktions-Netze 303 zugewiesen wird. Zu diesem Zweck kann das Verteil-Netz 402 z.B. N Ausgangswerte 203 für die N Funktions-Netze 303 aufweisen. Die N Ausgangswerte 203 können die Relevanz der entsprechenden N Funktions-Netze 303 für den Eingangs-Datensatz 311 anzeigen. Dabei können die Ausgangswerte 203 derart definiert sein, dass mit steigendem Wert die Relevanz steigt oder alternativ, dass mit steigendem Wert die Relevanz sinkt. Der höchste bzw. der niedrigste Ausgangswert 203 kann dann das Funktions-Netz 303 anzeigen, dem der Eingangs-Datensatz 311 zugewiesen wird.
-
Ggf. kann während der Trainingsphase ein Trainings-Eingangs-Datensatz 301 mehreren (z.B. allen Funktions-Netzen 303, für die der Ausgangswert 203 größer bzw. kleiner als ein bestimmter Schwellenwert ist) zugewiesen werden. Mit steigender Konvergenz erfolgt dann typischerweise zunehmend eine Zuweisung zu genau einem Funktions-Netz 303).
-
Das Verfahren 500 umfasst, in einer Epoche eines iterativen Lernalgorithmus, das Verteilen 501 von T Trainings-Datensätzen 301 auf N Teilgruppen für die N Funktions-Netze 303 anhand des Verteil-Netzes 402. T ist eine ganze Zahl größer oder gleich 1. Typischerweise ist T>100, oder T>500, oder T>1000.
-
Des Weiteren umfasst das Verfahren 500 das Anpassen 502 der N Funktions-Netze 303 anhand der entsprechenden N Teilgruppen von Trainings-Datensätzen 301. Mit anderen Worten, jedes der N Funktions-Netze 303 kann anhand der dem jeweiligen Funktions-Netz 303 zugewiesenen Trainings-Datensätze 301 angepasst werden. Zu diesem Zweck können z.B. ein oder mehrere Iterationen bzw. Epochen eines Backpropagation-Algorithmus für das jeweilige Funktions-Netz 303 durchgeführt werden. Das Anpassen eines Funktions-Netzes 303 umfasst dabei das Anpassen der Neuron-Parameter 222, 227 des jeweiligen Funktions-Netzes 303.
-
Das Verfahren 500 umfasst ferner das Ermitteln 503 von T Fehlerwerten für die T Trainings-Datensätze 301 anhand der N angepassten Funktions-Netze 303. Der Fehlerwert für einen Trainings-Datensatz 301 kann dabei anhand des angepassten Funktions-Netzes 303 ermittelt werden, dem der Trainings-Datensatz 301 zugewiesen wurde. Zu diesem Zweck können anhand des angepassten Funktions-Netzes 303 die Ausgangsdaten 203 für den Trainings-Eingangs-Datensatz 311 des Trainings-Datensatzes 301 ermittelt und mit den Soll-Ausgangsdaten 203 aus dem Trainings-Datensatz 301 verglichen werden.
-
Außerdem umfasst das Verfahren 500 das Anpassen 504 des Verteil-Netzes 402 anhand der T Fehlerwerte. Insbesondere können die T Tupel (aus jeweils einem Trainings-Eingang-Datensatz 311, einer Zuweisung zu einem Funktions-Netz 303, und einem Fehlerwert bzw. der entsprechenden Belohnung) dazu verwendet werden, das Verteil-Netz 402 anzupassen. Dabei kann zunächst ein Q-Netz zur Approximation einer Q-Funktion angepasst werden, und auf Basis des angepassten Q-Netzes dann das angepasste Verteil-Netz 402 bereitgestellt und/oder errechnet werden.
-
Es sei darauf hingewiesen, dass wenn ein Trainings-Eingangs-Datensatz 311 mehreren Funktions-Netzen 303 zugewiesen wird, für jede Zuweisung ein Tupel bereitgestellt werden kann. Es können somit ggf. mehr als T Tupel bereitgestellt werden. Insbesondere kann für jede Zuweisung der T Trainings-Eingangs-Datensätze 311 jeweils ein Tupel bereitgestellt werden.
-
Die Trainings-Datensätze 301 beschreiben in Summe typischerweise eine bestimmte Gesamtfunktion. Durch das beschriebene Verfahren 500 kann diese Gesamtfunktion in optimierter Weise auf die einzelnen Funktions-Netz 303 aufgeteilt werden, um die Güte der Gesamtfunktion zu erhöhen.
-
5b zeigt ein Ablaufdiagramm eines beispielhaften (Computerimplementierten) Verfahrens 510 zur Ermittlung von Ausgangsdaten 203 eines Ensembles 304 von N neuronalen Funktions-Netzen 303 für einen Eingangs-Datensatz 311 (z.B. für das Bild einer Kamera). N ist eine ganze Zahl größer als 1, insbesondere N>5 oder N>10. Das Verfahren 500 kann z.B. durch die Steuereinheit 101 eines Fahrzeugs 100 ausgeführt werden.
-
Das Verfahren 510 umfasst das Zuweisen 511 des Eingangs-Datensatzes 311 mittels eines neuronalen Verteil-Netzes 402 zu einem, insbesondere zu genau einem, der N Funktions-Netze 303. Dabei kann das Verteil-Netz 402 gemeinsam mit den N Funktions-Netzen 303 angelernt worden sein, um eine optimierte Abstimmung zwischen der Verteilfunktion des Verteil-Netzes 402 und den Teilfunktionen der einzelnen Funktions-Netze 303 zu ermöglichen.
-
Des Weiteren umfasst das Verfahren 510 das Ermitteln 512, anhand des zugewiesenen Funktions-Netzes 303, von Ausgangsdaten 203 des zugewiesenen Funktions-Netzes 303 für den Eingangs-Datensatz 311 als Ausgangsdaten 203 des Ensembles 304 von N Funktions-Netzen 303. Insbesondere können die von dem zugewiesenen Funktions-Netz 303 bereitgestellten Ausgangsdaten 203 direkt und/oder unverändert als Ausgangsdaten 203 des Ensembles 304 von Funktions-Netzen 303 verwendet werden.
-
Durch die in diesem Dokument beschriebenen Maßnahmen kann ein Ensemble 304 von Funktions-Netzen 303 für eine Gesamtfunktion bereitgestellt werden, das eine optimierte Aufteilung der Gesamtfunktion auf die einzelnen Funktions-Netze 303 aufweist. So kann die Güte der bereitgestellten Gesamtfunktion erhöht werden.
-
Die vorliegende Erfindung ist nicht auf die gezeigten Ausführungsbeispiele beschränkt. Insbesondere ist zu beachten, dass die Beschreibung und die Figuren nur beispielhaft das Prinzip der vorgeschlagenen Verfahren, Vorrichtungen und Systeme veranschaulichen sollen.