DE102019130484A1 - Method and device for training an ensemble of neural networks - Google Patents

Method and device for training an ensemble of neural networks 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
German (de)
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/en
Publication of DE102019130484A1 publication Critical patent/DE102019130484A1/en
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.A device for training an ensemble of N neural function networks and a neural distribution network is described. The N function networks are each designed to provide output data for an input data record. The distribution network is designed to select a function network from the N function networks for the input data record, through which the input data record is to be processed in order to generate output data for the output data of the ensemble of N function networks for the input Provide data record. The device is set up, in an epoch of an iterative learning algorithm, using the distribution network to distribute one or more training data sets to N subgroups for the corresponding N function networks, and the N function networks using the corresponding N subgroups of training Adjust records. Furthermore, the device is set up to determine error values for the one or more training data sets on the basis of the N adapted function networks, and to adapt the distribution network on the basis of the error values.

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.The invention relates to a device and a corresponding method for teaching an ensemble of (deep) neural networks for a specific overall function, in particular for object recognition and / or for object classification.

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.An at least partially automated vehicle can be set up to evaluate sensor data from one or more surroundings sensors of the vehicle (e.g. an image camera, a lidar sensor, a radar sensor, etc.), e.g. to detect one or more objects in the surroundings of the vehicle. The vehicle can then be automatically guided longitudinally and / or transversely as a function of the one or more detected objects.

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.The detection of objects on the basis of the sensor data from one or more environment sensors can take place on the basis of specifically learned neural networks, in particular so-called deep neural networks. The quality of the object recognition can possibly be increased by using a so-called ensemble of several neural networks. The individual neural networks of an ensemble can be specialized in specific subtasks of object recognition. The output values of the individual neural networks can be combined in an aggregator in order to provide an overall evaluation of the sensor data.

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.A challenge when using an ensemble of several neural networks is the assignment of specializations to the individual neural networks and the training of the individual neural networks for the respective specialization. In this context, heuristics are often used, which, however, typically do not lead to an optimal distribution of tasks for the individual neural networks.

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.The present document deals with the technical task of training an ensemble of several neural networks in an automatic and optimized manner for an overall task or for an overall function. In other words, the present document deals with the technical task of distributing an overall function in an automatic and optimized manner to the individual neural networks of an ensemble.

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.The object is achieved in each case by the independent claims. Advantageous embodiments are described, inter alia, in the dependent claims. It is pointed out that additional features of a patent claim dependent on an independent patent claim without the features of the independent patent claim or only in combination with a subset of the features of the independent patent claim can form a separate invention independent of the combination of all features of the independent patent claim, which can be made the subject of an independent claim, a divisional application or a subsequent application. This applies equally to technical teachings described in the description, which can form an invention that is independent of the features of the independent patent claims.

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.According to one aspect, a device (e.g. a computer or a server) for training an ensemble of N (artificial) neural function networks (or function networks) and an (artificial) neural distribution network (or distribution network) described. N is an integer greater than 1, in particular N> 5 or N> 10. The function networks and the distribution network can be learned on the basis of training data with a large number of training data sets that describe or represent a specific overall function. The individual training data sets can each include a training input data set and target or training output data, the target or training output data indicating which result of the trained ensemble of N neural function networks for the training -Input data record should be provided in order to realize the overall function.

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.The distribution network can be trained in order to distribute individual partial functions of the overall function to individual functional networks. The individual function networks can be trained for the different sub-functions. The individual sub-functions can be described or represented by subsets of the training data. The distribution network can thus be trained in order to divide the large number of training data sets into different subsets for the different functional networks, so that different sub-functions of the overall function are represented by the different subsets. The individual training data records of a subset for a functional network can each include a training input data record and target output data, the target output data indicating which result is provided by the trained functional network for the training input data record should be in order to realize the partial function of the functional network.

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.The N function networks can each be designed and / or structured to provide (actual) output data for an input data set. The output data can comprise one or more output values or data elements. For example, the output data can be an or comprise several data bits (possibly also just a single data bit). A functional network can in particular be or comprise a deep neural network or a deep neural network (for example with more than 3 or 5 or 10 hidden layers). The input data record can include, for example, an image from a camera (for example a matrix with image pixels). The output data can be designed to indicate whether and, if applicable, where an object of a certain object type and / or a certain object size is located in the image. The individual functional networks can optionally be specialized in different object types (e.g. passenger cars, trucks, buses, two-wheelers, pedestrians, etc.) and / or in different object sizes (e.g. relatively small, medium-sized, large). As an alternative or in addition, the individual functional networks can be specialized in different lighting conditions, e.g. daylight, night, tunnel situation, sunrise, sunset, relatively weak lighting conditions, 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.The device can be set up to initialize the N function networks in each case in such a way that quasi-random output data are provided for an input data record. In other words, neuron parameters of the individual function networks can optionally be initialized quasi-randomly. The iterative learning algorithm described in this document can cause the individual function networks to provide (actual) output data which, at least on average, correspond to and / or approximate the target output data indicated by the respective subset of the training data.

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.Furthermore, the device can be set up to initialize the N function networks in each case differently (quasi-randomly). In particular, the neuron parameters of the individual function networks can be initialized in different ways (quasi-randomly). As an alternative or in addition, the N function networks can be initialized in such a way that N different output data are provided for the same input data record from the N function networks. In this way, the quality of the convergence of the N function networks to different specializations in each case can be increased.

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.
The distribution network can be designed to display or select for the input data record at least or precisely one function network from the N function networks through which the input data record is to be processed in order to provide output data. The output data provided by the selected function network can then be used as output data of the ensemble of N function networks for the input data set.
The distribution network can thus be designed to select one (possibly exactly one) function network from the N function networks for the input data record, through which the input data record is to be processed (possibly in an exclusive manner) in order to To provide output data for the output data of the ensemble of N function networks for the input data set.

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. In other words, the distribution network can be designed as an assignment function which assigns an input data record to a (possibly exactly one) function network. The assignment of an input data record to a functional network can be viewed as an action of the distribution network. The assigned function network can then process the input data record in order to provide output data at the output of the assigned function network. This output data can then (possibly unchanged or one-to-one) be used as output data of the ensemble of the N function networks. The ensemble of N function networks can, if necessary, be trained in such a way that an input data record is processed by precisely one function network in order to provide output data for the entire ensemble of N function networks.

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.The device can be set up to initialize the distribution network in such a way that a functional network through which the input data record is to be processed is displayed quasi-randomly for an input data record. The learning algorithm described in this document can then cause the distribution network to assign input data records to the different functional networks in accordance with a learned division of the overall function into sub-functions.

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.Using the iterative learning algorithm, the N function networks and the distribution network can thus be trained on the basis of the training data in such a way that individual sub-functions of the overall function indicated by the training data are gradually assigned to the individual function networks by the distribution network . The distribution network can be gradually trained to assign the training data records relevant for the respective sub-function to the respective function network in order to further improve the specialization of the function network for this sub-function.

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.In particular, the device can be set up, in an epoch or in an iteration of the iterative learning algorithm, based on the distribution network, one or more (in particular T) training data sets from the training data to N subgroups or subsets for the N function networks to distribute. T is an integer greater than or equal to 1, in particular T> = 8, T> = 128, T> = 512, or T> = 1024. In particular, T is typical much larger than N (e.g. by a factor of 10 or more). The distribution of the one or more training data records can take place in such a way that a training data record is assigned to only one part of the N subgroups (possibly only exactly one subgroup). If T should be less than N, no training data set can be assigned to a subgroup. If necessary, a subgroup can therefore be empty. Typically, however, T is significantly greater than N, so that each of the N subgroups typically comprises at least one of the T training data sets.

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.An epoch of the learning algorithm can be a phase of the learning algorithm in which all available training data sets are used at least once in order to train the ensemble of N function networks. In a subsequent epoch, the available training data sets can then be used again in order to further adapt the ensemble of N function networks until a convergence criterion is met. In each epoch, the training data sets can optionally be used for at least or precisely one adaptation of the neuron parameters of the functional networks and / or the distribution network.

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.The device can also be set up, in the epoch of the iterative learning algorithm, to adapt and / or to learn the N function networks on the basis of the corresponding N subgroups or subsets of training data sets. In other words, each individual functional network can (if necessary exclusively) be adapted or learned using the training data records from the corresponding subgroup of training data records. In still other words, the individual function networks can each be selectively adapted and / or learned with the respectively assigned subgroup of training data sets.

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.When adapting or learning a function network, the individual neuron parameters of the neurons of the function network can be adapted. In particular, the device can be set up to adapt a function network on the basis of the subgroup of training data sets assigned to the function network in order to average the deviation of the actual output data determined for the training data sets from the subgroup from the training data. Data records of the subgroup displayed target output data.

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.By adapting a function network, the function network is adapted to the sub-function that is described by the subgroup of training data records that have been assigned to the function network by the distribution network. A specialization of the individual functional networks can thus take place. A monitored learning of the individual function networks can thus take place on the basis of the respectively assigned subgroup of training data sets.

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).The device can also be set up to determine error values for the one or more training data sets (in particular T error values for the T training data sets) on the basis of the N adapted function networks. As already explained above, a training data record typically comprises a training input data record and target output data for the training input data record (as so-called “ground truth”). The target output data can display the output data that should be provided by the trained ensemble of N function networks for the training input data set (after the ensemble of N function networks has been successfully trained).

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.The device can be set up to determine actual output data on the basis of the adapted function network to which the training data set was assigned. The error value for the training data set can then be determined on the basis of the actual output data and on the basis of the target output data, in particular on the basis of the difference between the actual output data and the target output data.

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.Furthermore, the device can be set up to adapt the distribution network using the error values for the one or more training data sets (in particular using the T error values for the T training data sets). The error values can be viewed as an indication of how well the overall function indicated by the training data sets is solved or provided by the ensemble of N function networks. The distribution network can be adapted in order to reduce (at least on average) the error values, in particular the T error values. The distribution network can be adapted by means of reinforcement learning, in particular by means of deep Q learning or by means of a deep Q network (DQN). In this case, rewards for reinforcement learning can be determined on the basis of the error values, in particular on the basis of the T error values.

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).The device thus enables a distribution network and an ensemble of N function networks to be trained automatically (without using a heuristic) in such a way that an overall function is divided in an optimized manner into N sub-functions that are provided by the individual function networks become. In this way, the quality of an overall function provided by several neural networks can be increased. Furthermore, the computational complexity for providing the overall function can be reduced in this way (since only one functional network has to be active for an input data record).

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.In the learning algorithm described in this document, the distribution network learns from each other about the error values provided by the function networks, and the function networks learn by adapting the training data sets for the individual function networks can be assigned by the adapted distribution network. This mutual learning of the distribution network and the functional networks can gradually increase the quality of the overall function.

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.As already explained above, the one or more (in particular the T) training data records typically each comprise a training input data record. The training input data record of a training data record and the function network to which the training data record was assigned (or the assignment action corresponding to the function network) can be viewed as a state-action pair.

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.The device can be set up to adapt a neural Q network as an approximation for a Q function (in the sense of reinforcement learning) on the basis of the T state-action pairs and the corresponding T error values. The Q function or the Q network can display a corresponding number of expected rewards for a large number of status-action pairs. A Q network can thus be iteratively adapted and / or learned. The adapted distribution network can then be determined on the basis of the adapted Q network. In particular, the distribution network can result from the Q network in that, on the basis of the Q network, the (assignment) action is determined for an input data record, through which the reward displayed by the Q network is increased, in particular maximized, becomes. The distribution network can thus be part of the Q network.

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.By iterative learning of a Q network or a corresponding Q function, the quality of the learned ensemble of functional networks can be increased further.

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.The device can be set up to repeat a plurality of epochs of the learning algorithm until a termination criterion is reached. The assignment of the individual training data sets to the different functional networks can be different in different epochs (due to the adaptation of the distribution network). Typically, however, the allocation behavior of the distribution network converges with an increasing number of epochs. The termination criterion for the iterative learning algorithm can include a maximum number of epochs and / or a convergence of the ensemble of N function networks and / or the distribution network. Iterative learning of the ensemble of N function networks and the distribution network can thus take place in order to provide a high quality overall function.

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.The device can be set up to randomly assign at least some of the T training data records to one of the N function networks in an epoch of the learning algorithm. The proportion of T training data records that are randomly assigned can be reduced as the number of epochs of the learning algorithm increases. In this way, it can be ensured in a reliable manner that in an initial phase of the learning algorithm for the N function networks N different sub-functions can be identified, and that the N function networks can gradually be learned for the different sub-functions. The quality of the overall function provided can thus be further increased.

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.The device can be set up to adapt the N function networks and the distribution network sequentially on the basis of respectively different groups of training data sets within an epoch of the learning algorithm. In particular, different groups, each with T training data records, can be formed and / or provided sequentially from the training data. In this way, the learning of the ensemble of functional networks can be further improved.

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.According to a further aspect, a device for determining output data of an ensemble of N neural function networks for an input data record is described, where N is an integer greater than 1. The device can be set up to determine the input data record on the basis of sensor data from one or more sensors (in particular environment sensors of a vehicle).

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.The device can be set up to assign the input data record by means of a neural distribution network to one, in particular precisely one, of the N function networks. The ensemble of N functional networks and / or the distribution network can have been trained with the device described in this document.

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.The device can also be set up to use the assigned function network to determine output data of the assigned function network for the input data set as output data of the ensemble of N function networks. In particular, output data that indicate an object within the input data record can be provided as output data.

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.By using an ensemble of N neural function networks in context With a neural distribution network, a high quality overall function can be provided in an efficient manner through partial functions of the individual function networks.

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.The device can be set up to provide and / or operate at least one vehicle function of a vehicle (e.g. for automated driving) on the basis of the output data of the ensemble of N function networks. In this way, a high-quality vehicle function can be provided.

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.According to a further aspect, a (road) motor vehicle (in particular a passenger car or a truck or a bus or a motorcycle) is described which comprises at least one of the devices described in this document.

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.According to a further aspect, a (computer-implemented) method for training an ensemble of N neural function networks and a neural distribution network is described. The N function networks are each designed and / or structured to provide output data for an input data record. The distribution network is designed and / or structured to display at least (in particular precisely) one function network from the N function networks for the input data record, through which the input data record is to be processed in order to provide output data as a basis for the output data of the ensemble of N function networks for the input data set.

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.The method comprises (in an epoch of an iterative learning algorithm) the distribution of one or more training data sets to N subgroups for the corresponding N function networks using the distribution network, as well as adapting or learning the N function networks using the corresponding N subgroups of training data sets (with a function network being selectively adapted or learned using the one or more training data sets of the corresponding subgroup). Furthermore, the method includes the determination of error values for the one or more training data sets on the basis of the N adapted function networks, as well as the adaptation of the distribution network on the basis of and / or on the basis of the error values determined.

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.According to a further aspect, a (computer-implemented) method for determining output data of an ensemble of N neural function networks for an input data set is described. The method comprises the assignment of the input data record by means of a neural distribution network to one, in particular to exactly one, of the N function networks. Furthermore, the method comprises determining, on the basis of the assigned function network, output data of the assigned function network for the input data set as output data of the ensemble of N function networks.

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.According to a further aspect, a software (SW) program is described. The software program can be set up to be executed on a processor (e.g. on a control unit of a vehicle) and thereby to execute one of the methods described in this document.

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.According to a further aspect, a storage medium is described. The storage medium can comprise a software program which is set up to be executed on a processor and thereby to execute one of the methods described in this document.

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.It should be noted that the methods, devices and systems described in this document can be used both alone and in combination with other methods, devices and systems described in this document. Furthermore, any aspects of the methods, devices and systems described in this document can be combined with one another in diverse ways. In particular, the features of the claims can be combined with one another in diverse ways.

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.
The invention is described in more detail below on the basis of exemplary embodiments. Show it
  • 1 exemplary components of a vehicle;
  • 2a an exemplary neural network;
  • 2 B an exemplary neuron;
  • 3a an exemplary device for training an ensemble of neural networks;
  • 3b an exemplary device for using a trained ensemble of neural networks;
  • 4a an exemplary device for training a distribution network and the functional networks of an ensemble of neural networks;
  • 4b an exemplary device for using a trained distribution network and an ensemble with trained functional networks;
  • 5a an exemplary method for training an ensemble of neural function networks; and
  • 5b an exemplary method for using an ensemble of trained neural function networks.

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.As stated at the beginning, the present document deals with the training and the use of an ensemble of neural networks, for example for the detection of objects in the vicinity of a vehicle. In this context shows 1 exemplary components of a vehicle 100 . The vehicle 100 includes one or more environment sensors 102 that are set up, environment data (ie sensor data) relating to the environment of the vehicle 100 capture. Exemplary environmental sensors 102 are an image camera, a radar sensor, a lidar sensor and / or an ultrasonic sensor.

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.The vehicle also includes 100 typically one or more vehicle sensors 103 which are set up, state data (ie sensor data) in relation to a state variable of the vehicle 100 capture. Exemplary state variables are the driving speed and / or the (longitudinal) acceleration of the vehicle 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.The vehicle also includes 100 one or more actuators 104 for automatic longitudinal and / or lateral guidance of the vehicle 100 . Exemplary actuators 104 are a drive motor, a braking device and / or a steering device.

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.A control unit 101 of the vehicle 100 can be set up one or more actuators 104 to operate automatically on the basis of the environment data and / or on the basis of the status data. In particular, the control unit 101 be set up on the basis of the sensor data of the one or more environment sensors 102 an object in the vicinity of the vehicle 100 to detect. The one or more actuators 104 can then be operated as a function of the detected object, in particular around the vehicle 100 at least partially automated. The object detection can take place using the methods described in this document.

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.To detect an object on the basis of the sensor data from one or more environmental sensors 102 At least one neural network can be used that has been trained on the basis of training data for the task of object recognition. 2a and 2 B show exemplary components of a neural network 200 , especially a feedforward network. The network 200 comprises two input neurons or input nodes in the example shown 202 , which at a specific point in time t each have a current value of an input variable as an input value 201 take up. The one or more input nodes 202 are part of an entry layer 211 . In general, the network 200 be designed, an input data record with one or more input values 201 to record.

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.The neural network 200 also includes neurons 220 in one or more hidden layers 212 of the neural network 200 . Each of the neurons 220 can use the individual output values of the neurons of the previous layer as input values 212 , 211 have (or at least part of them). In each of the neurons 220 processing takes place in order to obtain an output value of the neuron as a function of the input values 220 to determine. The output values of the neurons 220 the last hidden layer 212 can be in an output neuron or output node 220 an output layer 213 processed to the one or more output values 203 of the neural network 200 to determine. In general, the network 200 be designed, output data with one or more output values 203 provide.

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. 2 B illustrates the exemplary signal processing within a neuron 220 , especially within the neurons 202 the one or more hidden layers 212 and / or the output layer 213 . The input values 221 of the neuron 220 are with individual weights 222 weighted to in a total unit 223 a weighted sum 224 of the input values 221 to be determined (if necessary, taking into account a bias or offset 227 ). Through an activation function 225 can be the weighted sum 224 to an initial value 226 of the neuron 220 can be mapped. You can use the activation function 225 For example, the range of values can be limited. For a neuron 220 can eg a sigmoid function or a hyperbolic tangent (tanh) function or a rectified linear unit (ReLU), eg f (x) = max (0, x) as activation function 225 be used. If necessary, the value of the weighted sum 224 with an offset 227 be moved.

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.A neuron 220 thus has weights 222 and / or an offset, if applicable 227 as a neuron parameter. The neuron parameters of the neurons 220 of a neural network 200 can be learned in a training phase to cause the neural network 200 approximates a certain function and / or models a certain behavior.

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.Learning a neural network 200 can be done using the backpropagation algorithm, for example. For this purpose, a learning algorithm for the input values can be used in a first phase of a q th epoch 201 at the one or more input nodes 202 of the neural network 200 corresponding output values 203 at the exit of the one or more output neurons 220 be determined. On the basis of the initial values 203 the error value of an optimization or error function can be determined. In the present case, a temporal difference (TD) error can serve as an optimization or error function for teaching a distribution network, as explained below.

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.In a second phase of the q th epoch of the learning algorithm, the error or the error value is propagated back from the output to the input of the neural network in order to transfer the neuron parameters of the neurons in layers 220 to change. The error function determined at the output can be partially based on each individual neuron parameter of the neural network 200 can be derived in order to determine an extent and / or a direction for adapting the individual neuron parameters. This learning algorithm can be repeated iteratively for a large number of epochs until a predefined convergence and / or termination criterion is reached.

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.As stated at the beginning, it can be advantageous to use different neural networks for an overall task, e.g. for the recognition of objects from different groups of object types, each of which specializes in solving a sub-task. For example, a specifically learned neural network can be provided for each group of object types, for example for the group of pedestrians, for the group of passenger cars, for the group of trucks, for the group of two-wheelers, etc. The overall task can then be solved jointly by the different neural networks, i.e. by an ensemble of neural networks. The individual neural networks trained for a specific subtask are also referred to in this document as functional networks.

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. 3a shows an exemplary device 300 for teaching an ensemble 304 of functional networks 303 . The device 300 includes a distribution unit 302 that is set up a training record 301 (possibly exactly) one of the functional networks 303 assign. The available training data (with a large number of training data sets 301 ) can thus through a distribution unit 302 on the different functional networks 303 be divided. The distribution process takes place depending on the sub-task of the respective functional network 303 . For example, the individual training records 301 depending on the object type on which the respective training data set relates 301 refers to the functional network specialized in the respective object type 303 be assigned to.

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.A training data set 301 typically comprises a training input data set (with one or more training input values 201 ) and the associated training output data (with one or more training output values 203 ). Through a variety of training data sets 301 a specific overall function is typically described, with the training output data from a training data set 301 show how the ensemble is 304 of functional networks 303 for the training input data set from the training data set 301 should behave.

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.The distribution unit 302 thus divides the training data into N subsets for the N function networks 303 on, where the subset for a function network 303 the subtask represented by this functional network 303 is to be fulfilled. The individual functional networks 303 can then be taught in with the respectively assigned subset (e.g. as in connection with the 2a and 2 B described). So can N function networks 303 which are specialized in N different subtasks of an overall task.

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. 3b shows an exemplary device 310 for the use of a trained ensemble 304 with N function networks 303 . An input data record 311 can from all functional networks 303 are processed and each have a starting value 313 (or provide the respective output data). The initial values 313 (or the output data) of the individual function networks 303 can in an agglomeration unit 314 processed, e.g. superimposed, are made to produce an overall output value 315 (or overall output data). The input data record 311 can, for example, have different objects with different object types. An object of a certain object type can then be used in a reliable manner on the basis of the functional network specialized for this object type 303 detected and as an output value 313 this functional network 303 to be provided. By superimposing the output values 313 of the different functional networks 303 can then be used as an overall baseline 315 Information regarding the different objects with different object types can be provided.

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.By using an ensemble 304 of functional networks 303 that are specialized in partial tasks or partial functions, the quality of an overall function, such as object recognition, can be increased. Furthermore, the complexity of the individual functional networks 303 be reduced.

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.A challenge when using an ensemble 304 of functional networks 303 is the division of an overall task into sub-tasks for the individual functional networks 303 . With others Words, when using an ensemble 304 of functional networks 303 The question arises as to how an overall task represented by training data can be optimally adapted to different subtasks for the individual functional networks 303 can be split to form an ensemble 304 of functional networks 303 to learn that solves the overall task as optimally as possible. A distribution unit that works on the basis of a heuristic 302 , as in connection with 3a described, typically cannot result in an optimized distribution of tasks.

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. 4a shows an exemplary device 400 for teaching an ensemble 304 of functional networks 303 who have favourited a neural network 402 includes, which is iteratively learned in a training phase to the training data sets 301 the training data on the different functional networks 303 to distribute, and thereby the individual functional networks 303 assign different subtasks. The neural network 402 the distribution unit 302 is also referred to in this document as the distribution network.

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.Learning the functional networks 303 and the distribution network 402 can take place in a joint training process. The training data, ie the large number of training data sets 301 , can be divided into K groups, each with T training data sets 301 be divided. The T training records 301 a group can be sent sequentially to the distribution network 402 be handed over. The distribution network 402 can then each individual training data set 301 one or more of the N function networks 303 to assign. The distribution network 402 can for example be set up as input values 201 the training input data set of a training data set 301 to receive. Furthermore, the distribution network 402 possibly N output values 203 have those for the corresponding N function networks 303 indicates whether the training record 301 the respective functional network 303 should be assigned or not.

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.After distributing the T training records 301 on the N function networks 303 there are then N subsets with training data sets 301 for teaching in the corresponding N functional networks 303 available. A training data set can be used 301 (at least in a relatively early phase of the iterative learning algorithm) may be contained in several subsets. A functional network 303 can with the training records 301 from the subset for the function network 303 be learned at least partially. For example, one or more iterations of the related to the 2a and 2 B described learning procedure are carried out to the neuron parameters 222 , 227 of the functional networks 303 adapt.

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.As a result of the (partial) learning process of a functional network 303 results for each training data set 301 (at least) an error value of the error function. It thus results for each of the T training data sets 301 at least one error value of the error function, the error value of the error function being determined by the functional network 303 is provided to which the respective training data set 301 was assigned. The (at least) T error values are an indication of how well the T training datasets performed 301 overall task described by the ensemble 304 of functional networks 303 could be solved and / or how well that could be solved by the T training records 301 overall task described by the distribution network 402 on the N function networks 303 could be divided. The error values can therefore be used for the distribution network 402 to learn.

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.For teaching the distribution network 402 Reinforcement Learning (RL) can be used. A training data set can be used 301 , especially the training input data set 311 for a functional network 303 from a training data set 301 , be considered as state s. The functional network 303 that the training record 301 has been assigned (e.g. the one or more output values 302 of the distribution network 402 for the training data set 301 ) can be viewed as action a. Furthermore, the error value of the error function determined by the assigned function network 303 for the training data set 301 is determined to be regarded as a reward (especially a negative reward) r. In other words, the reward r can depend on the error value and / or can be a function of the error value. In a preferred example, the reward r is the negative (possibly scaled) error value.

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.The individual state-action-reward tuples (s, a, r) for the T training data sets 301 can be used to learn a Q-function that displays the resulting (expected, cumulative, future) reward for a state-action pair, ie Q ( s , a ) R.
Figure DE102019130484A1_0001
The Q function can optionally be approximated by a neural network, with the neural network as input values 201 receives a state-action pair, and as an output value 203 provides a reward. The state-action-reward tuples (s, a, r) for the T training records 301 can be used as training data for teaching the neural network for the Q-function. The neural network approximating the Q function can be referred to as a Q network. The above-mentioned backpropagation Algorithm can be used. For this purpose, the so-called temporal difference (TD) error δ can be viewed as an error function, and this error function can be used to calculate the individual neuron parameters 222 , 227 of the Q network. The TD error for a state-action-reward tuple (s, a, r) can result as: δ = Q ( s , a ) - ( r + γ Max a ( Q ( s , a ) ) )
Figure DE102019130484A1_0002
where Q (s, a) is given by the current version of the Q network, and where γ is a discounting factor.

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.A state-action pair results from a distribution network 402 corresponding distribution function π, ie a = π (s). The distribution function π should be learned in such a way that for a training input data set 311 (ie for a state s) action a indicated by the distribution function π (ie by the action a indicated by the distribution network 402 for the training input data set 311 displayed function network 303 ) the (future, expected and / or accumulated) reward R is maximized, ie π ( s ) = argmax a ( Q ( s , a ) )
Figure DE102019130484A1_0003
The distribution network results from the updated Q network via the above-mentioned relationship 402 or the distribution function. The distribution network 402 can thus be regarded as part of the Q network.

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.Alternatively or in addition, a neural network, in particular a DQN (Deep-Q Network), can be learned directly that is designed to output the action a for a specific state s, through which the (future, expected and / or cumulative) reward R is maximized. In particular, a neural network can be learned that approximates π (s).

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.After updating the Q network and / or the distribution network 402 (especially the DQN) can use the updated distribution network 402 to be used, T further training data sets 301 from the training data to the N function networks 303 to distribute to the N function networks 303 in one or more iterations based on the assigned training data sets 301 to learn and in order for the individual training data sets 301 Identify error values as rewards. There are then again new status-action-reward tuples (s, a, r) with which again the Q network and / or the distribution network 402 can be updated.

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.This process can be repeated until all training records 301 from the training data were used. An epoch of the learning algorithm can then be regarded as completed. The training data can then be used again in a subsequent epoch (for example sequentially in groups of T training data records each time 301 ) to the N function networks 303 be divided to iteratively the N function nets 303 and the Q network or the distribution network 402 adapt. For training the ensemble 304 of functional networks 303 the training data can thus be used repeatedly in several epochs until a termination criterion is reached. Exemplary termination criteria are the achievement of a maximum number of epochs and / or the convergence of the functional networks and / or the Q network or the distribution network 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.The distribution of the training data sets 301 on the individual functional networks 303 can occur at least partially randomly in the individual epochs. The proportion of the randomly assigned training data sets 301 be reduced as the number of epochs increases. For example, 90% or more of the training records can be used in the first epoch 301 randomly assigned. The other training records 301 can be based on the Q network or the distribution network 402 can be assigned (e.g. to the functional network 303 for which the maximum or the minimum output value 203 results). The percentage of randomly assigned training records 301 can then be gradually reduced in the following epochs, for example down to 10% or less, or 5% or less or 1% or less. In this way, the quality of the learning algorithm can be increased.

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. 4b shows an exemplary device 410 for the use of a trained ensemble 304 of functional networks 303 and a trained distribution network 402 . An input data record 311 can be used as an input value 201 to the distribution network 402 and the distribution network 402 can N initial value 203 for the N function networks 303 provide. An initial value can be used 203 for a functional network 303 show how well the input record is 311 of the respective functional network 303 can be processed. It can then be based on the initial values 203 of the distribution network 402 the functional network 303 can be selected for which the output value 203 shows the highest match or relevance. The input data record 311 can then go through the selected function network 303 processed to the (total) baseline value 315 (or the total output data) for the input data record 311 provide.

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. 5a shows a flow diagram of an exemplary (computer-implemented) method 500 for teaching an ensemble 304 of N neural function networks 303 and a distribution network 402 . N is an integer greater than 1, for example N> 5 or N> 9. The N functional networks 303 can each be designed (in particular structurally created) for an input data record 311 (e.g. for a picture from a camera 102 ) Output data 203 (e.g. a reference to an object in the image of the camera 102 ) to provide.

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.The distribution network 402 can be designed (in particular structurally created) for the input data record 311 the functional network 303 from the N function networks 303 display by which the input data set 311 should be processed to the output data 203 of the ensemble 304 of N functional networks 303 for the input data record 311 provide. In other words, the distribution network 402 can be designed for an assignment function in which an input data record 311 one, in particular exactly one, of the N function networks 303 is assigned. For this purpose, the distribution network 402 eg N output values 203 for the N function networks 303 exhibit. The N output values 203 can determine the relevance of the corresponding N function networks 303 for the input data record 311 Show. The output values 203 be defined in such a way that the relevance increases with increasing value or, alternatively, that relevance decreases with increasing value. The highest or lowest baseline value 203 can then the functional network 303 which the input data record 311 is assigned.

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).If necessary, a training input data record can be used during the training phase 301 several (e.g. all functional networks 303 for which the initial value 203 is larger or smaller than a certain threshold value). With increasing convergence, an assignment to exactly one functional network then typically takes place 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.The procedure 500 includes, in an epoch of an iterative learning algorithm, the distribution 501 of T training records 301 to N subgroups for the N function networks 303 based on the distribution network 402 . T is an integer greater than or equal to 1. Typically, T> 100, or T> 500, or 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.The method also includes 500 customizing 502 of the N function networks 303 based on the corresponding N subgroups of training data sets 301 . In other words, each of the N function networks 303 can be based on the respective functional network 303 assigned training records 301 be adjusted. For this purpose, for example, one or more iterations or epochs of a backpropagation algorithm can be used for the respective functional network 303 be performed. Adapting a functional network 303 includes adapting the neuron parameters 222 , 227 of the respective functional network 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.The procedure 500 further comprises determining 503 of T error values for the T training data sets 301 based on the N adapted functional networks 303 . The error value for a training record 301 can use the adapted function network 303 which the training data set 301 was assigned. For this purpose, using the adapted function network 303 the output data 203 for the training input data set 311 of the training data set 301 determined and with the target output data 203 from the training data set 301 be compared.

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.The procedure also includes 500 customizing 504 of the distribution network 402 based on the T error values. In particular, the T tuples (each from a training input data record 311 , an assignment to a function network 303 , and an error value or the corresponding reward) can be used to control the distribution network 402 adapt. First, a Q network can be adapted to approximate a Q function, and then the adapted distribution network on the basis of the adapted Q network 402 provided and / or calculated.

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.It should be noted that if a training input record 311 several functional networks 303 is assigned, a tuple can be provided for each assignment. More than T tuples can thus possibly be provided. In particular, training input data records 311 a tuple can be provided in each case.

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.The training records 301 typically describe a certain overall function in sum. By the procedure described 500 this overall function can be optimized for the individual function network 303 be divided in order to increase the quality of the overall function.

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. 5b shows a flow diagram of an exemplary (computer-implemented) method 510 to determine output data 203 of an ensemble 304 of N neural function networks 303 for an input data record 311 (e.g. for a picture from a camera). N is an integer greater than 1, in particular N> 5 or N> 10. The procedure 500 can for example through the control unit 101 of a vehicle 100 are executed.

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.The procedure 510 includes assigning 511 of the input data record 311 by means of a neural distribution network 402 to one, in particular to exactly one, of the N function networks 303 . The distribution network 402 together with the N functional networks 303 have been trained to optimize coordination between the distribution function of the distribution network 402 and the sub-functions of the individual function networks 303 to enable.

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.The method also includes 510 determining 512 , based on the assigned functional network 303 , of output data 203 of the assigned function network 303 for the input data record 311 as output data 203 of the ensemble 304 of N functional networks 303 . In particular, those from the assigned function network 303 provided output data 203 directly and / or unchanged as output data 203 of the ensemble 304 of functional networks 303 be used.

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.With the measures described in this document, an ensemble 304 of functional networks 303 be provided for an overall function, which is an optimized distribution of the overall function on the individual function networks 303 having. In this way, the quality of the overall function provided can be increased.

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.The present invention is not restricted to the exemplary embodiments shown. In particular, it should be noted that the description and the figures are only intended to illustrate the principle of the proposed methods, devices and systems by way of example.

Claims (16)

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.Device (400) for training an ensemble (304) of N neural function networks (303) and a neural distribution network (402); where N is an integer greater than 1; wherein the N function networks (303) are each designed to provide output data (203) for an input data record (311); wherein the distribution network (402) is designed to select a function network (303) from the N function networks (303) for the input data record (311) through which the input data record (311) is to be processed, to provide output data (203) which represent output data (203) of the ensemble (304) of N function networks (303) for the input data set (311); wherein the device (400) is set up, in an epoch of an iterative learning algorithm, - using the distribution network (402) to distribute one or more training data sets (301) to N subgroups for the corresponding N function networks (303); - to adapt each of the N function networks (303) in each case on the basis of the corresponding subgroup of training data sets (301); - to determine error values for the training data sets (301) on the basis of the N adapted function networks (303); and - adapt the distribution network (402) based on the error values. 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.Device (400) according to Claim 1 wherein the device (400) is set up to adapt the distribution network (402) by means of reinforcement learning, in particular by means of deep Q-learning; and - determine rewards for reinforcement learning based on the error values. 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.Device (400) according to one of the preceding claims, wherein - the one or more training data sets (301) each comprise a training input data set (311); - the training input data record (311) of a training data record (301) and the function network (303) to which the training data record (301) was assigned form a state-action pair; and - the device (400) is set up, - on the basis of the state-action pairs and the corresponding error values for the one or more training data sets (301) to adapt a neural Q network as an approximation for a Q function, which has a corresponding one for a large number of state-action pairs Displays variety of expected rewards; and - Determine the adapted distribution network (402) on the basis of the adapted Q network. 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.Device (400) according to one of the preceding claims, wherein - A training data record (301) comprises a training input data record (311) and target output data (203) for the training input data record (311); and - the device (400) is set up, - using the adapted function network (303) to which the training data set (311) was assigned, to determine actual output data (203); and - the error value for the training data set (311) on the basis of the actual output data (203) and on the basis of the target output data (203), in particular on the basis of a difference between the actual output data (203) and the target output data (203 ), to determine. 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.Device (400) according to one of the preceding claims, wherein the device (400) is set up to adapt a function network (303) on the basis of the subgroup of training data sets (301) assigned to the function network (303) in order to, on average to reduce a deviation between the actual output data (203) determined for the training data records (301) from the subgroup and the target output data (203) displayed in the training data records (301) of the subgroup. 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.Device (400) according to one of the preceding claims, wherein - The device (400) is set up to repeat a plurality of epochs of the learning algorithm until a termination criterion is reached; and - The termination criterion comprises in particular a maximum number of epochs and / or a convergence of the ensemble (304) of N function networks (303). 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.Device (400) according to one of the preceding claims, wherein the device (400) is set up - to randomly assign at least some of the one or more training data sets (301) to one of the N function networks (303) in an epoch of the learning algorithm; and - to reduce a proportion of the one or more training data sets (301) that are randomly assigned as the number of epochs of the learning algorithm increases. 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.Device (400) according to one of the preceding claims, wherein the device (400) is set up, within an epoch of the learning algorithm, the N function networks (303) and the distribution network (402) sequentially on the basis of different groups of training sessions -Data sets (301) to adapt. 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.Device (400) according to one of the preceding claims, wherein - a functional network (303) is a deep neural network; and or - The ensemble (304) of N function networks (303) is designed to record an image of a camera (102) as an input data record (301) and to output at least one object detected in the image as output data (203); and or - A training data record (301) comprises a training input data record (311) and target output data (203) for the training input data record (311), which are provided by the ensemble (304) of N neural function networks ( 303) should be provided for the training input data set (311). 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.Device (400) according to one of the preceding claims, wherein the device (400) is set up - to initialize the distribution network (402) in such a way that a function network (303) through which the input data record (311) is to be processed is displayed quasi-randomly for an input data record (311); and or - to initialize the N function networks (303) in each case in such a way that quasi-random output data (203) are provided for an input data record (311). 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.Device (410) for determining output data (203) of an ensemble (304) of N neural function networks (303) for an input data set (311); where N is an integer greater than 1; wherein the device (410) is set up, - to assign the input data record (311) by means of a neural distribution network (402) to one, in particular exactly one, of the N function networks (303); and - Using the assigned function network (303) to determine output data (203) of the assigned function network (303) for the input data record (311) as output data (203) of the ensemble (304) of N function networks (303) . 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.Device (410) according to Claim 11 , the ensemble (304) of N function networks (303) and the distribution network (402) using a device (400) according to one of the Claims 1 to 10 was determined. 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.Device (410) according to one of the Claims 11 to 12th wherein the device (410) is set up to determine the input data record (311) on the basis of sensor data from one or more sensors (102); and / or - to display a detected object as output data (203) on the basis of the input data record (311). 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.Device (410) according to one of the Claims 11 to 13th wherein the device (410) is set up to provide and / or operate at least one vehicle function of a vehicle (100) on the basis of the output data (203) of the ensemble (304) of N function networks (303). 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.Method (500) for training an ensemble (304) of N neural function networks (303) and a neural distribution network (402); where N is an integer greater than 1; wherein the N function networks (303) are each designed to provide output data (203) for an input data record (311); wherein the distribution network (402) is designed to select a function network (303) from the N function networks (303) for the input data record (311) through which the input data record (311) is to be processed, to provide output data (203) which represent output data (203) of the ensemble (304) of N function networks (303) for the input data set (311); wherein the method (500) comprises, in an epoch of an iterative learning algorithm, - distribution (501) of one or more training data sets (301) to N subgroups for the corresponding N function networks (303) on the basis of the distribution network (402) ; - Adapting (502) each individual one of the N function networks (303) on the basis of the respectively corresponding subgroup of training data sets (301); - Determining (503) error values for the one or more training data sets (301) on the basis of the N adapted function networks (303); and - adapting (504) the distribution network (402) on the basis of the error values. 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).Method (510) for determining output data (203) of an ensemble (304) of N neural function networks (303) for an input data record (311); where N is an integer greater than 1; wherein the method comprises (510), - Assigning (511) the input data record (311) by means of a neural distribution network (402) to one, in particular to exactly one, of the N function networks (303); and - Determination (512), based on the assigned function network (303), of output data (203) of the assigned function network (303) for the input data set (311) as output data (203) of the ensemble (304) of N functions - Networks (303).
DE102019130484.9A 2019-11-12 2019-11-12 Method and device for training an ensemble of neural networks Pending DE102019130484A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019130484.9A DE102019130484A1 (en) 2019-11-12 2019-11-12 Method and device for training an ensemble of neural networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019130484.9A DE102019130484A1 (en) 2019-11-12 2019-11-12 Method and device for training an ensemble of neural networks

Publications (1)

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

Family

ID=75584093

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019130484.9A Pending DE102019130484A1 (en) 2019-11-12 2019-11-12 Method and device for training an ensemble of neural networks

Country Status (1)

Country Link
DE (1) DE102019130484A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697200A (en) * 2022-03-30 2022-07-01 合肥工业大学 Protection device matching optimization method of 5G distribution network distributed protection system

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 (en) * 2022-03-30 2022-07-01 合肥工业大学 Protection device matching optimization method of 5G distribution network distributed protection system

Similar Documents

Publication Publication Date Title
DE102018128289A1 (en) METHOD AND DEVICE FOR AUTONOMOUS SYSTEM PERFORMANCE AND CLASSIFICATION
WO2020187591A1 (en) Method and device for controlling a robot
EP3857437A1 (en) Method and device for analyzing a sensor data stream and method for guiding a vehicle
DE102018119467B4 (en) METHOD OF PERFORMING AUTONOMOUS OPERATION OF A VEHICLE THROUGH DEEP SPATIAL-TEMPORAL LEARNING
DE102019111041A1 (en) Method and device for determining an estimated value of the side slip angle of a vehicle
DE102019130484A1 (en) Method and device for training an ensemble of neural networks
DE102019209463A1 (en) Method for determining the trust value of an object of a class
DE102019208233A1 (en) Method and device for automatically executing a control function of a vehicle
DE102020210376A1 (en) Apparatus and method for controlling a hardware agent in a multiple hardware agent control situation
EP4049186A1 (en) Method for making a neural network more robust against adversarial disruptions
DE102020127051A1 (en) Method for determining safety-critical output values using a data analysis device for a technical entity
DE102020210700A1 (en) More flexible iterative operation of artificial neural networks
WO2020207786A1 (en) Method, device, and computer program for operating a deep neural network
DE102019213896A1 (en) Incremental neural network with encoder-decoder structure
DE102019200828A1 (en) Main object selection for an assistance function or automated driving function of a driver assistance or driving system of a motor vehicle
DE102018203137A1 (en) Method, device and computer program for operating an at least partially autonomous vehicle
DE102021211909A1 (en) Method of controlling an agent
EP4202779A1 (en) Method and system for classification of scenarios of a virtual test and training method
WO2023222343A1 (en) Method for controlling a robot device
DE102021132542A1 (en) METHOD OF PROVIDING BIT FLIP ERRORS RESISTANT; PERTURBATION-RESISTANT AND COMPRESSED NEURAL NETWORK; COMPUTER PROGRAM; DRIVER ASSISTANCE SYSTEM
DE102019119739A1 (en) Method and system for generating security-critical output values of an entity
DE102021124204A1 (en) Method and device for estimating the resource expenditure of a neural network
DE102020101248A1 (en) Method and device for relearning a neural network
WO2020169416A1 (en) Quantised training of trainable modules
DE102020105485A1 (en) Training local artificial neural networks

Legal Events

Date Code Title Description
R163 Identified publications notified