DE102019130484A1 - Verfahren und Vorrichtung zum Anlernen eines Ensembles von neuronalen Netzen - Google Patents

Verfahren und Vorrichtung zum Anlernen eines Ensembles von neuronalen Netzen Download PDF

Info

Publication number
DE102019130484A1
DE102019130484A1 DE102019130484.9A DE102019130484A DE102019130484A1 DE 102019130484 A1 DE102019130484 A1 DE 102019130484A1 DE 102019130484 A DE102019130484 A DE 102019130484A DE 102019130484 A1 DE102019130484 A1 DE 102019130484A1
Authority
DE
Germany
Prior art keywords
function
training
networks
network
input data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019130484.9A
Other languages
English (en)
Inventor
Mohammad-Ali Nikouei Mahani
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bayerische Motoren Werke AG
Original Assignee
Bayerische Motoren Werke AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bayerische Motoren Werke AG filed Critical Bayerische Motoren Werke AG
Priority to DE102019130484.9A priority Critical patent/DE102019130484A1/de
Publication of DE102019130484A1 publication Critical patent/DE102019130484A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

Es wird eine Vorrichtung zum Anlernen eines Ensembles von N neuronalen Funktions-Netzen und eines neuronalen Verteil-Netzes beschrieben. Die N Funktions-Netze sind jeweils ausgebildet, für einen Eingangs-Datensatz Ausgangsdaten bereitzustellen. Das Verteil-Netz ist ausgebildet, für den Eingangs-Datensatz ein Funktions-Netz aus den N Funktions-Netzen auszuwählen, durch das der Eingangs-Datensatz verarbeitet werden soll, um Ausgangsdaten für die Ausgangsdaten des Ensembles von N Funktions-Netzen für den Eingangs-Datensatz bereitzustellen. Die Vorrichtung ist eingerichtet, in einer Epoche eines iterativen Lernalgorithmus, anhand des Verteil-Netzes ein oder mehrere Trainings-Datensätze auf N Teilgruppen für die entsprechenden N Funktions-Netze zu verteilen, sowie die N Funktions-Netze anhand der entsprechenden N Teilgruppen von Trainings-Datensätzen anzupassen. Des Weiteren ist die Vorrichtung eingerichtet, anhand der N angepassten Funktions-Netze Fehlerwerte für die ein oder mehreren Trainings-Datensätze zu ermitteln, und anhand der Fehlerwerte das Verteil-Netz anzupassen.

Description

  • 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. Q ( s , a ) R
    Figure DE102019130484A1_0001
    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: δ = Q ( s , a ) ( r + γ max a ( Q ( s , a ) ) )
    Figure DE102019130484A1_0002
    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. π ( s ) = argmax a ( Q ( s , a ) )
    Figure DE102019130484A1_0003
    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.

Claims (16)

  1. Vorrichtung (400) zum Anlernen eines Ensembles (304) von N neuronalen Funktions-Netzen (303) und eines neuronalen Verteil-Netzes (402); wobei N eine ganze Zahl größer als 1 ist; wobei die N Funktions-Netze (303) jeweils ausgebildet sind, für einen Eingangs-Datensatz (311) Ausgangsdaten (203) bereitzustellen; wobei das Verteil-Netz (402) ausgebildet ist, für den Eingangs-Datensatz (311) ein Funktions-Netz (303) aus den N Funktions-Netzen (303) auszuwählen, durch das der Eingangs-Datensatz (311) verarbeitet werden soll, um Ausgangsdaten (203) bereitzustellen, die Ausgangsdaten (203) des Ensembles (304) von N Funktions-Netzen (303) für den Eingangs-Datensatz (311) darstellen; wobei die Vorrichtung (400) eingerichtet ist, in einer Epoche eines iterativen Lernalgorithmus, - anhand des Verteil-Netzes (402) ein oder mehrere Trainings-Datensätze (301) auf N Teilgruppen für die entsprechenden N Funktions-Netze (303) zu verteilen; - jedes der N Funktions-Netze (303) jeweils anhand der entsprechenden Teilgruppe von Trainings-Datensätzen (301) anzupassen; - anhand der N angepassten Funktions-Netze (303) Fehlerwerte für die Trainings-Datensätze (301) zu ermitteln; und - anhand der Fehlerwerte das Verteil-Netz (402) anzupassen.
  2. Vorrichtung (400) gemäß Anspruch 1, wobei die Vorrichtung (400) eingerichtet ist, - das Verteil-Netz (402) mittels Reinforcement Learning, insbesondere mittels Deep Q-Learning, anzupassen; und - Belohnungen für das Reinforcement Learning auf Basis der Fehlerwerte zu ermitteln.
  3. Vorrichtung (400) gemäß einem der vorhergehenden Ansprüche, wobei - die ein oder mehreren Trainings-Datensätze (301) jeweils einen Trainings-Eingangs-Datensatz (311) umfassen; - der Trainings-Eingangs-Datensatz (311) eines Trainings-Datensatzes (301) und das Funktions-Netz (303), dem der Trainings-Datensatz (301) zugewiesen wurde, ein Zustands-Aktions-Paar bilden; und - die Vorrichtung (400) eingerichtet ist, - auf Basis der Zustands-Aktions-Paare und der entsprechenden Fehlerwerte für die ein oder mehreren Trainings-Datensätze (301) ein neuronales Q-Netz als Approximation für eine Q-Funktion anzupassen, die für eine Vielzahl von Zustands-Aktions-Paaren eine entsprechende Vielzahl von zu erwartenden Belohnungen anzeigt; und - das angepasste Verteil-Netz (402) auf Basis des angepassten Q-Netzes zu ermitteln.
  4. Vorrichtung (400) gemäß einem der vorhergehenden Ansprüche, wobei - ein Trainings-Datensatz (301) einen Trainings-Eingangs-Datensatz (311) und Soll-Ausgangsdaten (203) für den Trainings-Eingangs-Datensatz (311) umfasst; und - die Vorrichtung (400) eingerichtet ist, - anhand des angepassten Funktions-Netzes (303), dem der Trainings-Datensatz (311) zugewiesen wurde, Ist-Ausgangsdaten (203) zu ermitteln; und - den Fehlerwert für den Trainings-Datensatz (311) auf Basis der Ist-Ausgangsdaten (203) und auf Basis der Soll-Ausgangsdaten (203), insbesondere auf Basis einer Differenz der Ist-Ausgangsdaten (203) und der Soll-Ausgangsdaten (203), zu ermitteln.
  5. Vorrichtung (400) gemäß einem der vorhergehenden Ansprüche, wobei die Vorrichtung (400) eingerichtet ist, ein Funktions-Netz (303) auf Basis der dem Funktions-Netz (303) zugewiesenen Teilgruppe von Trainings-Datensätzen (301) anzupassen, um im Mittel eine Abweichung von für die Trainings-Datensätze (301) aus der Teilgruppe ermittelten Ist-Ausgangsdaten (203) von in den Trainings-Datensätzen (301) der Teilgruppe angezeigten Soll-Ausgangsdaten (203) zu reduzieren.
  6. Vorrichtung (400) gemäß einem der vorhergehenden Ansprüche, wobei - die Vorrichtung (400) eingerichtet ist, eine Vielzahl von Epochen des Lernalgorithmus bis Erreichen eines Abbruchkriteriums zu wiederholen; und - das Abbruchkriterium insbesondere eine maximale Anzahl von Epochen und/oder eine Konvergenz des Ensembles (304) von N Funktions-Netzen (303) umfasst.
  7. Vorrichtung (400) gemäß einem der vorhergehenden Ansprüche, wobei die Vorrichtung (400) eingerichtet ist, - in einer Epoche des Lernalgorithmus zumindest einen Teil der ein oder mehreren Trainings-Datensätze (301) zufällig jeweils einem der N Funktions-Netze (303) zuzuweisen; und - einen Anteil der ein oder mehreren Trainings-Datensätze (301), die zufällig zugewiesen werden, mit steigender Anzahl der Epochen des Lernalgorithmus zu reduzieren.
  8. Vorrichtung (400) gemäß einem der vorhergehenden Ansprüche, wobei die Vorrichtung (400) eingerichtet ist, innerhalb einer Epoche des Lernalgorithmus, die N Funktions-Netze (303) und das Verteil-Netz (402) sequentiell auf Basis von jeweils unterschiedlichen Gruppen von Trainings-Datensätzen (301) anzupassen.
  9. Vorrichtung (400) gemäß einem der vorhergehenden Ansprüche, wobei - ein Funktions-Netz (303) ein Deep Neural Network ist; und/oder - das Ensemble (304) von N Funktions-Netzen (303) ausgebildet ist, als Eingangs-Datensatz (301) ein Bild einer Kamera (102) aufzunehmen und als Ausgangsdaten (203) zumindest ein in dem Bild detektiertes Objekt auszugeben; und/oder - ein Trainings-Datensatz (301) einen Trainings-Eingangs-Datensatz (311) und Soll-Ausgangsdaten (203) für den Trainings-Eingangs-Datensatz (311) umfasst, die von dem Ensemble (304) von N neuronalen Funktions-Netzen (303) für den Trainings-Eingangs-Datensatz (311) bereitgestellt werden sollten.
  10. Vorrichtung (400) gemäß einem der vorhergehenden Ansprüche, wobei die Vorrichtung (400) eingerichtet ist, - das Verteil-Netz (402) derart zu initialisieren, dass für einen Eingangs-Datensatz (311) quasi-zufällig ein Funktions-Netz (303) angezeigt wird, durch das der Eingangs-Datensatz (311) verarbeitet werden soll; und/oder - die N Funktions-Netze (303) jeweils derart zu initialisieren, dass für einen Eingangs-Datensatz (311) quasi-zufällige Ausgangsdaten (203) bereitgestellt werden.
  11. Vorrichtung (410) zur Ermittlung von Ausgangsdaten (203) eines Ensembles (304) von N neuronalen Funktions-Netzen (303) für einen Eingangs-Datensatz (311); wobei N eine ganze Zahl größer als 1 ist; wobei die Vorrichtung (410) eingerichtet ist, - den Eingangs-Datensatz (311) mittels eines neuronalen Verteil-Netzes (402), einem, insbesondere genau einem, der N Funktions-Netze (303) zuzuweisen; und - anhand des zugewiesenen Funktions-Netzes (303) Ausgangsdaten (203) des zugewiesenen Funktions-Netzes (303) für den Eingangs-Datensatz (311) als Ausgangsdaten (203) des Ensembles (304) von N Funktions-Netzen (303) zu ermitteln.
  12. Vorrichtung (410) gemäß Anspruch 11, wobei das Ensemble (304) von N Funktions-Netzen (303) und das Verteil-Netz (402) anhand einer Vorrichtung (400) gemäß einem der Ansprüche 1 bis 10 ermittelt wurde.
  13. Vorrichtung (410) gemäß einem der Ansprüche 11 bis 12, wobei die Vorrichtung (410) eingerichtet ist, - den Eingangs-Datensatz (311) auf Basis von Sensordaten von ein oder mehreren Sensoren (102) zu ermitteln; und/oder - auf Basis des Eingangs-Datensatzes (311) ein detektiertes Objekt als Ausgangsdaten (203) anzuzeigen.
  14. Vorrichtung (410) gemäß einem der Ansprüche 11 bis 13, wobei die Vorrichtung (410) eingerichtet ist, auf Basis der Ausgangsdaten (203) des Ensembles (304) von N Funktions-Netzen (303) zumindest eine Fahrzeugfunktion eines Fahrzeugs (100) bereitzustellen und/oder zu betreiben.
  15. Verfahren (500) zum Anlernen eines Ensembles (304) von N neuronalen Funktions-Netzen (303) und eines neuronalen Verteil-Netzes (402); wobei N eine ganze Zahl größer als 1 ist; wobei die N Funktions-Netze (303) jeweils ausgebildet sind, für einen Eingangs-Datensatz (311) Ausgangsdaten (203) bereitzustellen; wobei das Verteil-Netz (402) ausgebildet ist, für den Eingangs-Datensatz (311) ein Funktions-Netz (303) aus den N Funktions-Netzen (303) auszuwählen, durch das der Eingangs-Datensatz (311) verarbeitet werden soll, um Ausgangsdaten (203) bereitzustellen, die Ausgangsdaten (203) des Ensembles (304) von N Funktions-Netzen (303) für den Eingangs-Datensatz (311) darstellen; wobei das Verfahren (500) in einer Epoche eines iterativen Lernalgorithmus umfasst, - Verteilen (501) von ein oder mehreren Trainings-Datensätzen (301) auf N Teilgruppen für die entsprechenden N Funktions-Netze (303) anhand des Verteil-Netzes (402); - Anpassen (502) jedes einzelnen der N Funktions-Netze (303) anhand der jeweils entsprechenden Teilgruppe von Trainings-Datensätzen (301); - Ermitteln (503) von Fehlerwerten für die ein oder mehreren Trainings-Datensätze (301) anhand der N angepassten Funktions-Netze (303); und - Anpassen (504) des Verteil-Netzes (402) anhand der Fehlerwerte.
  16. Verfahren (510) zur Ermittlung von Ausgangsdaten (203) eines Ensembles (304) von N neuronalen Funktions-Netzen (303) für einen Eingangs-Datensatz (311); wobei N eine ganze Zahl größer als 1 ist; wobei das Verfahren (510) umfasst, - Zuweisen (511) des Eingangs-Datensatzes (311) mittels eines neuronalen Verteil-Netzes (402) zu einem, insbesondere zu genau einem, der N Funktions-Netze (303); und - 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).
DE102019130484.9A 2019-11-12 2019-11-12 Verfahren und Vorrichtung zum Anlernen eines Ensembles von neuronalen Netzen Pending DE102019130484A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019130484.9A DE102019130484A1 (de) 2019-11-12 2019-11-12 Verfahren und Vorrichtung zum Anlernen eines Ensembles von neuronalen Netzen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019130484.9A DE102019130484A1 (de) 2019-11-12 2019-11-12 Verfahren und Vorrichtung zum Anlernen eines Ensembles von neuronalen Netzen

Publications (1)

Publication Number Publication Date
DE102019130484A1 true DE102019130484A1 (de) 2021-05-12

Family

ID=75584093

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019130484.9A Pending DE102019130484A1 (de) 2019-11-12 2019-11-12 Verfahren und Vorrichtung zum Anlernen eines Ensembles von neuronalen Netzen

Country Status (1)

Country Link
DE (1) DE102019130484A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697200A (zh) * 2022-03-30 2022-07-01 合肥工业大学 一种5g配网分布式保护***的保护装置配比优化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ARULKUMARAN, Kai [et al.]: Deep reinforcement learning: A brief survey. IEEE Signal Processing Magazine, 2017, 34. Jg., Nr. 6, S. 26-38 *
BYSTROV, Aleksandr [et al.]: Automotive surface identification system based on modular neural network architecture. In: 2017 18th International Radar Symposium (IRS). IEEE, 2017. S. 1-8 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697200A (zh) * 2022-03-30 2022-07-01 合肥工业大学 一种5g配网分布式保护***的保护装置配比优化方法

Similar Documents

Publication Publication Date Title
DE102018128289A1 (de) Verfahren und vorrichtung für eine autonome systemleistung und zur einstufung
WO2020061603A1 (de) Verfahren und vorrichtung zur analyse eines sensordatenstroms sowie verfahren zum führen eines fahrzeugs
DE102019111041A1 (de) Verfahren und Vorrichtung zur Ermittlung eines Schätzwertes des Schwimmwinkels eines Fahrzeugs
WO2020187591A1 (de) Verfahren und vorrichtung zum ansteuern eines roboters
DE102018119467B4 (de) Verfahren zum durchführen eines autonomen betriebs eines fahrzeugs durch tiefes räumlich-zeitliches lernen
DE102019130484A1 (de) Verfahren und Vorrichtung zum Anlernen eines Ensembles von neuronalen Netzen
DE102019209463A1 (de) Verfahren zur Bestimmung eines Vertrauenswertes eines Objektes einer Klasse
DE102019208233A1 (de) Verfahren und Vorrichtung zum automatischen Ausführen einer Steuerfunktion eines Fahrzeugs
DE102020210376A1 (de) Vorrichtung und Verfahren zum Steuern eines Hardware-Agenten in einer Steuersituation mit mehreren Hardware-Agenten
EP4049186A1 (de) Verfahren zum robustifizieren eines neuronalen netzes gegen adversariale störungen
DE102020127051A1 (de) Verfahren zur Bestimmung von sicherheitskritischen Ausgabewerten mittels einer Datenanalyseeinrichtung für eine technische Entität
DE102020210700A1 (de) Flexiblerer iterativer Betrieb künstlicher neuronaler Netzwerke
EP3953865A1 (de) Verfahren, vorrichtung und computerprogramm zum betreiben eines tiefen neuronalen netzes
DE102019213896A1 (de) Inkrementelles neuronales Netzwerk mit Encoder-Decoder-Struktur
DE102019200828A1 (de) Hauptobjektauswahl für eine Assistenzfunktion oder automatisierte Fahrfunktion eines Fahrerassistenz- oder Fahrsystems eines Kraftfahrzeugs
DE102018203137A1 (de) Verfahren, Vorrichtung und Computerprogramm zum Betreiben eines zumindest teilautonomen Fahrzeugs
DE102022212901A1 (de) Automatisches Ermitteln einer optimalen Architektur für ein neuronales Netzwerk
DE102021211909A1 (de) Verfahren zum Steuern eines Agenten
EP4202779A1 (de) Verfahren und system zur klassifikation von szenarien eines virtuellen tests sowie trainingsverfahren
WO2023222343A1 (de) Verfahren zum steuern einer robotervorrichtung
DE102021132542A1 (de) Verfahren zum bereitstellen eines bit-flip-fehlerrobusten; perturbationsrobusten und komprimierten neuronalen netzes; computerprogramm; fahrerassistenzsystem
DE102019119739A1 (de) Verfahren und System zur Erzeugung von sicherheitskritischen Ausgabewerten einer Entität
DE102021124204A1 (de) Verfahren und Vorrichtung zur Schätzung des Ressourcenaufwands eines neuronalen Netzes
DE102020101248A1 (de) Verfahren und Vorrichtung zum Umlernen eines neuronalen Netzes
WO2020169416A1 (de) Quantisiertes training trainierbarer module

Legal Events

Date Code Title Description
R163 Identified publications notified