DE102019134156A1 - Train a multitask neural network - Google Patents
Train a multitask neural network Download PDFInfo
- Publication number
- DE102019134156A1 DE102019134156A1 DE102019134156.6A DE102019134156A DE102019134156A1 DE 102019134156 A1 DE102019134156 A1 DE 102019134156A1 DE 102019134156 A DE102019134156 A DE 102019134156A DE 102019134156 A1 DE102019134156 A1 DE 102019134156A1
- Authority
- DE
- Germany
- Prior art keywords
- training data
- neural network
- training
- mini
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Abstract
Die vorliegende Erfindung betrifft ein Verfahren zum Trainieren eines neuronalen Netzes (10), insbesondere eines konvolutionellen neuronalen Netzes zur Verwendung in einem Fahrunterstützungssystem eines Fahrzeugs, mit einem Kodierer (12) zum Kodieren bereitgestellter Eingabedaten (14) und mehreren Dekodierern (16), von denen jeder eine Dekodieraufgabe (18) ausführt, mit annotierten Trainingsdaten (20) als Eingabedaten (14), wobei jede der mehreren Dekodieraufgaben (18) einen Zielanwendungskontext aufweist, mit den Schritten: Bereitstellen mehrerer Sätze (22) unterschiedlich annotierter Trainingsdaten (20) zum Trainieren der mehreren Dekodieraufgaben (18), Anordnen der mehreren Sätze (22) unterschiedlich annotierter Trainingsdaten (20) in Datenströmen (24, 26), wobei zum Trainieren jeder der mehreren Dekodieraufgaben (18) eine erste Menge (38) mit Trainingsdaten (20), die einem Zielanwendungskontext des neuronalen Netzes (10) entsprechen, und zusätzlich eine zweite Menge (40) mit Trainingsdaten (20) bereitgestellt werden, die nicht dem Zielanwendungskontext des neuronalen Netzes (10) entsprechen, Erzeugen von Mini-Stapeln (32) von Trainingsdaten (20), die mehrere Sub-Mini-Stapel (34, 36) von Trainingsdaten (20) zum Trainieren jeder der Dekodieraufgaben (18) aufweisen, Erzeugen der Sub-Mini-Stapel (34, 36) von Trainingsdaten (20) zum Trainieren jeder der Dekodieraufgaben (18) auf der Grundlage der jeweiligen ersten Menge (38) in Kombination mit der jeweiligen zweiten Menge (40), wobei die Trainingsdaten (20) für die gemeinsam trainierten Dekodieraufgaben (18) gemäß einem Kombinationsschema kombiniert werden, um den jeweiligen Sub-Mini-Stapel (34, 36) bereitzustellen, Trainieren des neuronalen Netzes (10) unter Verwendung der erzeugten Mini-Stapel (32), und Aktualisieren des Kombinationsschemas zum Kombinieren der Sub-Mini-Stapel (34, 36) von Trainingsdaten (20) in Abhängigkeit von einer Lernentwicklung des neuronalen Netzes (10).The present invention relates to a method for training a neural network (10), in particular a convolutional neural network for use in a driving support system of a vehicle, with an encoder (12) for coding provided input data (14) and several decoders (16), of which each carries out a decoding task (18) with annotated training data (20) as input data (14), each of the multiple decoding tasks (18) having a target application context, with the steps of: providing multiple sets (22) of differently annotated training data (20) for training the multiple decoding tasks (18), arranging the multiple sets (22) of differently annotated training data (20) in data streams (24, 26), wherein for training each of the multiple decoding tasks (18) a first set (38) with training data (20), which correspond to a target application context of the neural network (10), and additionally a second set (40) with traini ngs data (20) are provided which do not correspond to the target application context of the neural network (10), generation of mini-batches (32) of training data (20), the several sub-mini-batches (34, 36) of training data (20) for training each of the decoding tasks (18), generating the sub-mini-batches (34, 36) of training data (20) for training each of the decoding tasks (18) based on the respective first set (38) in combination with the respective one second set (40), the training data (20) for the jointly trained decoding tasks (18) being combined according to a combination scheme in order to provide the respective sub-mini-stack (34, 36), training the neural network (10) using the generated mini-stacks (32), and updating the combination scheme for combining the sub-mini-stacks (34, 36) of training data (20) as a function of a learning development of the neural network (10).
Description
Die vorliegende Erfindung betrifft ein Verfahren zum Trainieren eines neuronalen Netzes, insbesondere eines konvolutionellen neuronalen Netzes zur Verwendung in einem Fahrunterstützungssystem eines Fahrzeugs, mit einem Kodierer zum Kodieren bereitgestellter Eingabedaten und mehreren Dekodierern, die jeweils eine Dekodieraufgabe ausführen, mit annotierten Trainingsdaten als Eingabedaten, wobei jede der Dekodieraufgaben einen Zielanwendungskontext aufweist.The present invention relates to a method for training a neural network, in particular a convolutional neural network for use in a driving support system of a vehicle, with an encoder for coding input data provided and several decoders, each of which carries out a decoding task, with annotated training data as input data, each the decoding task has a target application context.
Ein neuronales Multitask-Netz besteht aus einem gemeinsam genutzten Kodierer und mehreren Task-Dekodierern. Dies ermöglicht eine effiziente Datenverarbeitung mit verringerten Ressourcen im Vergleich zu mehreren parallelen neuronalen Single-Task-Netzen, von denen jedes nur eine Aufgabe handhabt. Die Dekodierer sind in der Lage, die zur Verfügung gestellte Information unter verschiedenen Aspekten parallel zu dekodieren, z.B. Ausführen einer Segmentierung oder Erfassung von Objekten, um nur einige zu nennen. Die Eingabedaten, die als Eingabe zum Trainieren des neuronalen Netzes verwendet werden, sind Eingabebilder (oder können Eingaben von anderen Sensoren wie LiDAR, Radar, usw. sein), und die Ausgabe des neuronalen Netzes ist die jeweilige Dekodierinformation für jeden Dekodierer, z.B. Erfassungs- oder Segmentierungsannotationen. Die neuronalen Multitask-Netze eignen sich aufgrund ihrer Skalierbarkeit besonders gut für den Aufbau autonomer Fahrsysteme, um bei Bedarf weitere Dekodieraufgaben hinzuzufügen.A multitask neural network consists of a shared encoder and several task decoders. This enables efficient data processing with reduced resources compared to several parallel single-task neural networks, each of which only handles one task. The decoders are able to decode the information made available in parallel under various aspects, e.g. carrying out segmentation or detection of objects, to name just a few. The input data that are used as input for training the neural network are input images (or can be inputs from other sensors such as LiDAR, radar, etc.), and the output of the neural network is the respective decoding information for each decoder, e.g. acquisition or segmentation annotations. Due to their scalability, the neural multitask networks are particularly well suited for the construction of autonomous driving systems in order to add further decoding tasks if necessary.
Multitask-Lernen (MTL), d.h. das Trainieren solcher neuronalen Multitask-Netze, ist ein aufstrebendes Feld im Bereich des Deep Learning, das sich auf das Designen und das Trainieren eines gemeinsamen neuronalen Netzes zur Lösung mehrerer Aufgaben konzentriert. Daher ist MTL besonders wichtig für das Designen und das Trainieren autonomer Fahrsysteme, die solche neuronalen Multitask-Netze anwenden. Das Trainieren eines solchen neuronalen Multitask-Netzes erfordert jedoch eine Menge an Trainingsdaten (Hunderttausende von Dateninstanzen), die für die Zieldekodieraufgaben annotiert sind. Diese annotierten Trainingsdaten werden auch als Ground Truth bezeichnet. Im Idealfall, wenn die Eingabedaten, d.h. Bilddatensätze für das Trainieren des neuronalen Multitask-Netzes, für die verschiedenen Aufgaben, die durch die Multitask-Dekodierer repräsentiert werden, vollständig annotiert sind, verwendet das Netz die gleichen Stapel von Eingabedatensätzen, um alle Aufgaben simultan zu trainieren. Dies ermöglicht das Trainieren des Kodierers des neuronalen Netzes und das Trainieren jedes Dekodierers mit jedem der Datensätze.Multitask learning (MTL), i.e. the training of such neural multitask networks, is an emerging field in the field of deep learning that focuses on the design and training of a common neural network to solve several tasks. Therefore, MTL is particularly important for the design and training of autonomous driving systems that use such neural multitasking networks. However, training such a multitask neural network requires a lot of training data (hundreds of thousands of data instances) that are annotated for the target decoding tasks. This annotated training data is also known as the ground truth. Ideally, if the input data, i.e. image data sets for training the multitask neural network, are completely annotated for the various tasks represented by the multitask decoders, the network uses the same batch of input data sets to perform all tasks simultaneously work out. This enables the neural network coder to be trained and each decoder to be trained with each of the data sets.
In der Praxis ist es schwierig, einen solchen vollständig annotierten Datensatz für alle Zielaufgaben zu finden. Typischerweise sind mehrere Datensätze von verschiedenen Quellen oder Projekten verfügbar, die teilweise für eine oder mehrere der Zieldekodieraufgaben innerhalb eines bestimmten Anwendungskontextes annotiert sind. Solche Anwendungskontexte beziehen sich z.B. auf die Fußgängererfassung beim Parken oder die Fahrspurerfassung in einem Fahrszenario auf der Autobahn. Der Anwendungskontext ist entscheidend für jedes System, das geeignet trainiert werden soll. Jedoch können zum Verallgemeinern zusätzlich Eingabedaten aus anderen Anwendungskontexten verwendet werden. So sind z.B. bei der Betrachtung einer Fußgängerfassung in einem Parkszenario Parkplätze der Zielanwendungskontext. Es können jedoch auch Eingabedaten mit annotierten Fußgängern in anderen städtischen Umgebungen verwendet werden.In practice it is difficult to find such a fully annotated data set for all target tasks. Typically, several data sets are available from different sources or projects, some of which are annotated for one or more of the target decoding tasks within a particular application context. Such application contexts relate, for example, to the detection of pedestrians when parking or the detection of lanes in a driving scenario on the motorway. The application context is crucial for any system that needs to be trained appropriately. However, input data from other application contexts can also be used for generalization. For example, when looking at pedestrian detection in a parking scenario, parking spaces are the target application context. However, input data with annotated pedestrians in other urban environments can also be used.
Aufgrund des Bedarfs an großen Mengen an Trainingsdaten ist eine ausreichende Menge solcher Trainingsdaten für das Trainieren neuronaler Netze, insbesondere für Deep-Learning-Systeme, besonders wichtig. Das Beschaffen eines neuen Datensatzes mit Trainingsdaten, die alle erforderlichen Annotationen für das Trainieren aller Dekodieraufgaben aufweisen, ist sehr kostenintensiv, z.B. im Bereich von Millionen von Euro, was die Wiederverwendung verfügbarer Trainingsdaten bedeutsam macht. Daher sind für das Trainieren solcher neuronaler Multitask-Netze Mischstrategien erforderlich, damit diese neuronalen Netze unter Verwendung verfügbarer Trainingsdaten, die nicht für alle Dekodieraufgaben vollständig annotiert sind und/oder unterschiedliche Anwendungskontexte abdecken, effizient trainiert werden können.Because of the need for large amounts of training data, a sufficient amount of such training data is particularly important for training neural networks, in particular for deep learning systems. Obtaining a new data set with training data that has all the necessary annotations for training all decoding tasks is very costly, e.g. in the range of millions of euros, which makes the reuse of available training data important. Therefore, mixed strategies are required for training such neural multitask networks so that these neural networks can be trained efficiently using available training data that are not completely annotated for all decoding tasks and / or cover different application contexts.
Allerdings können beim Versuch, verschiedene Arten unterschiedlich annotierter Datensätze zu kombinieren, mehrere technische Probleme auftreten. Eine Fragestellung besteht darin, wie annotierte und nicht annotierte Daten für jede Dekodieraufgabe während des Trainings verwaltet werden sollen. Eine weitere Fragestellung besteht darin, wie mit den unterschiedlichen Größen verfügbarer Datensätze umgegangen werden soll, um eine Tendenz des Trainings hin zum größten Datensatz zu vermeiden. Ebenso wichtig ist es zu wissen, wie Datensätze mit unterschiedlichen Anwendungskontexten verwaltet werden sollen, z.B. Autobahnspurerfassung vs. Fahrspurerfassung in einem Parkszenario. Zufällige Mischstrategien, die derzeit untersucht werden, zeigen keine ausreichenden Ergebnisse. Diese zufälligen Mischstrategien können zu einem unausgewogenen Training der Dekodieraufgaben führen, wobei eine Dekodieraufgabe häufiger aktualisiert wird als eine andere. Dies betrifft auch den Kodierer, dessen Aktualisierung vom Beitrag der Trainingsdaten aus den in einem Stapel von Trainingsdaten vorhandenen Aufgaben abhängt. Das Verwenden von Trainingsdatensätzen, die sich in ihrer Größe unterscheiden, führt zu einem unausgewogenen Training der Dekodieraufgaben und zu einer Tendenz hin zum größeren Datensatz. Die Verwendung von Trainingsdatensätzen mit unterschiedlichen Anwendungskontexten wird nicht behandelt.However, several technical problems can arise when attempting to combine different types of differently annotated records. One question is how annotated and non-annotated data should be managed for each decoding task during training. Another question is how to deal with the different sizes of available data sets in order to avoid a tendency in training towards the largest data set. It is just as important to know how data sets with different application contexts are to be managed, e.g. motorway lane detection vs. lane detection in a parking scenario. Random mixing strategies, which are currently being investigated, do not show sufficient results. These random shuffling strategies can lead to an unbalanced training of the decoding tasks, with one decoding task being updated more frequently than another. This also applies to the encoder, whose update is based on the contribution of the training data from those in a batch of training data Tasks depends. The use of training data sets that differ in size leads to an unbalanced training of the decoding tasks and a tendency towards the larger data set. The use of training data sets with different application contexts is not dealt with.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein Verfahren der oben genannten Art anzugeben, das zumindest einige der oben genannten Probleme und Nachteile überwindet. Insbesondere liegt der vorliegenden Erfindung die Aufgabe zugrunde, ein Verfahren zum Trainieren eines neuronalen Netzes anzugeben, insbesondere eines konvolutionellen neuronalen Netzes zur Verwendung in einem Fahrunterstützungssystem eines Fahrzeugs, das einen Kodierer zum Kodieren bereitgestellter Eingabedaten und mehrere Dekodierer aufweist, von denen jeder eine Dekodieraufgabe ausführt, das ein effizientes und ausgewogenes Training des Kodierers und der mehreren Dekodierer ermöglicht.It is an object of the present invention to provide a method of the above-mentioned type which overcomes at least some of the above-mentioned problems and disadvantages. In particular, the present invention is based on the object of specifying a method for training a neural network, in particular a convolutional neural network for use in a driving support system of a vehicle, which has an encoder for encoding input data provided and several decoders, each of which carries out a decoding task, which enables efficient and balanced training of the encoder and the multiple decoders.
Die Lösung dieser Aufgabe erfolgt durch den unabhängigen Anspruch. Vorteilhafte Ausgestaltungen sind in den Unteransprüchen angegeben.This problem is solved by the independent claim. Advantageous refinements are given in the subclaims.
Insbesondere ist durch die vorliegende Erfindung ein Verfahren zum Trainieren eines neuronalen Netzes, insbesondere eines konvolutionellen neuronalen Netzes zur Verwendung in einem Fahrunterstützungssystem eines Fahrzeugs, das einen Kodierer zum Kodieren bereitgestellter Eingabedaten und mehrere Dekodierer aufweist, die jeweils eine Dekodieraufgabe ausführen, mit annotierten Trainingsdaten als Eingabedaten angegeben, wobei jede der mehreren Dekodieraufgaben einen Zielanwendungskontext aufweist, mit den Schritten zum Bereitstellen mehrerer Sätze unterschiedlich annotierter Trainingsdaten zum Trainieren der mehreren Dekodieraufgaben, Anordnen der mehreren Sätze unterschiedlich annotierter Trainingsdaten in Datenströmen, wobei zum Trainieren jeder der mehreren Dekodieraufgaben ein Datenstrom mit Trainingsdaten, die dem Zielanwendungskontext entsprechen, und solchen, die nicht dem Zielanwendungskontext entsprechen, für jede Aufgabe (d.h. ein Datengenerator für jede Aufgabe) bereitgestellt wird, Erzeugen von Mini-Stapeln von Trainingsdaten, die mehrere Sub-Mini-Stapel von Trainingsdaten zum Trainieren jeder Dekodieraufgabe aufweisen, wobei beim Erzeugen der Sub-Mini-Stapel von Trainingsdaten zum Trainieren jeder der Dekodieraufgaben, die dem Zielanwendungskontext entspricht, und derjenigen, die nicht dem Zielanwendungskontext entsprechen, die jeweiligen Trainingsdaten gemäß einem Kombinationsschema kombiniert werden, um den jeweiligen Sub-Mini-Stapel bereitzustellen, Trainieren des neuronalen Netzes unter Verwendung der erzeugten Mini-Stapel und Aktualisieren des Kombinationsschemas zum Kombinieren der Sub-Mini-Stapel von Trainingsdaten in Abhängigkeit von einer Lernentwicklung des neuronalen Netzes.In particular, the present invention provides a method for training a neural network, in particular a convolutional neural network for use in a driving support system of a vehicle, which has an encoder for coding input data provided and several decoders, each of which performs a decoding task, with annotated training data as input data specified, wherein each of the multiple decoding tasks has a target application context, with the steps of providing multiple sets of differently annotated training data for training the multiple decoding tasks, arranging the multiple sets of differently annotated training data in data streams, wherein for training each of the multiple decoding tasks a data stream with training data, the correspond to the target application context, and those that do not correspond to the target application context are provided for each task (ie a data generator for each task) generating mini-batches of training data having multiple sub-mini-batches of training data for training each decoding task, in generating the sub-mini-batches of training data for training each of the decoding tasks that corresponds to the target application context and those which do not correspond to the target application context, the respective training data are combined according to a combination scheme to provide the respective sub-mini-batches, training the neural network using the generated mini-batches and updating the combination scheme to combine the sub-mini-batches of training data depending on a learning development of the neural network.
Grundidee der vorliegenden Erfindung ist es, ein adaptives Schema zum Mischen der bereitgestellten Trainingsdaten für jede der Dekodieraufgaben anzuwenden. Dies wird erreicht, indem die Lernentwicklung des neuronalen Netzes als Feedback ermittelt wird. Die Lernentwicklung ermöglicht ein Anpassen der Erzeugung der Sub-Mini-Stapel von Trainingsdaten für das Trainieren jeder der Dekodieraufgaben, d.h. das Kombinieren der dem Zielanwendungskontext entsprechenden und der nicht dem Zielanwendungskontext entsprechenden Trainingsdaten, für jede der gemeinsam trainierten Dekodieraufgaben. Das Erzeugen der Sub-Mini-Stapel und das Anpassen des Kombinationsschemas können auf unterschiedliche Weise erfolgen. Einige Möglichkeiten zum Erzeugen der Sub-Mini-Stapel und zum Anpassen des Kombinationsschemas werden im Folgenden näher erläutert. Das vorgeschlagene Verfahren stellt eine einfache Lösung bereit, um das neuronale Multitask-Netz effizient mit teilweise und/oder vollständig annotierten Daten zu versorgen, indem für jede Dekodieraufgabe separate Datenströme verwendet werden. Darüber hinaus wird ein ausgewogenes Training der Dekodieraufgaben durch die Verwendung der Mini-Stapel ausgeführt, die Trainingsdaten für jede der Dekodieraufgaben enthalten. Darüber hinaus können verschiedene Trainingsdatensätze verarbeitet werden, die unterschiedliche Anwendungskontexte abdecken. So kann beispielsweise ein Trainingsdatensatz hilfreich sein, um die jeweilige Dekodieraufgabe zu trainieren, auch wenn er sich auf einen anderen Anwendungskontext bezieht, um eine bessere Verallgemeinerung mit mehr Trainingsdaten zu erreichen, z.B. behält ein Objekt wie ein Auto die gleichen visuellen Eigenschaften bei, egal ob es sich in einem städtischen oder in einem ländlichen Anwendungskontext befindet. Das vorgeschlagene Verfahren lässt sich einfach auf so viele Trainingsdatensätze wie möglich skalieren. Es wird eine dynamische Mischung der Trainingsdaten, die dem Zielanwendungskontext entsprechen, mit denen, die nicht dem Zielanwendungskontext entsprechen, erreicht.The basic idea of the present invention is to use an adaptive scheme for mixing the provided training data for each of the decoding tasks. This is achieved by determining the learning development of the neural network as feedback. The learning evolution enables the generation of the sub-mini-batches of training data to be adapted for training each of the decoding tasks, i.e. combining the training data corresponding to the target application context and the training data which does not correspond to the target application context, for each of the jointly trained decoding tasks. The creation of the sub-mini-stacks and the adaptation of the combination scheme can be done in different ways. Some options for creating the sub-mini-stacks and for adapting the combination scheme are explained in more detail below. The proposed method provides a simple solution for efficiently supplying the neural multitask network with partially and / or fully annotated data by using separate data streams for each decoding task. In addition, a balanced training of the decoding tasks is carried out through the use of the mini-batches which contain training data for each of the decoding tasks. In addition, different training data sets can be processed that cover different application contexts. For example, a training data set can be helpful to train the respective decoding task, even if it relates to a different application context, in order to achieve a better generalization with more training data, e.g. an object like a car retains the same visual properties, regardless of whether it is located in an urban or in a rural application context. The proposed method can easily be scaled to as many training data sets as possible. A dynamic mix of training data that corresponds to the target application context with those that do not correspond to the target application context is achieved.
Jeder der Dekodierer dekodiert die bereitgestellten Eingabedaten unter verschiedenen Aspekten, beispielsweise führt er eine parallele Segmentierung oder eine Erfassung von Objekten aus, um nur einige zu nennen. Bei den Eingabedaten, die als Eingabe zum Trainieren des neuronalen Netzes verwendet werden, handelt es sich um Eingabebilder, die dem Kodierer zugeführt werden. Die Ausgabe des neuronalen Netzes ist entsprechende Dekodierinformation für jeden Dekodierer, z.B. Erfassungs- oder Segmentierungsannotationen .Each of the decoders decodes the input data provided under different aspects, for example it carries out a parallel segmentation or a detection of objects, to name just a few. The input data that are used as input for training the neural network are input images that are fed to the encoder. The output of the neural network is corresponding decoding information for each decoder, e.g. acquisition or segmentation annotations.
Die Trainingsdaten weisen mindestens einen annotierten Trainingsdatensatz für jede der Dekodieraufgaben auf, um ein effizientes und ausgewogenes Training für das gesamte neuronale Netz auszuführen.The training data have at least one annotated training data set for each of the decoding tasks in order to carry out efficient and balanced training for the entire neural network.
Jeder Satz von Trainingsdaten, der für das Training der gleichen Dekodieraufgabe annotiert ist, wird den jeweiligen Datenströmen hinzugefügt. Die Trainingsdaten weisen für jede der Dekodieraufgaben mindestens annotierte Daten aus dem Zielanwendungskontext oder annotierte Daten auf, die nicht dem Zielanwendungskontext entsprechen. Die Trainingsdaten können jedoch für alle Dekodieraufgaben sowohl Trainingsdaten beinhalten, die dem Zielanwendungskontext entsprechen, als auch Trainingsdaten, die nicht dem Zielanwendungskontext entsprechen. Für jede Dekodieraufgabe müssen bei den Trainingsdaten des für diese Dekodieraufgabe annotierten Datenstroms alle Zielklassen annotiert sein, d.h., der jeweilige Datenstrom der Trainingsdaten ist für die jeweilige Dekodieraufgabe vollständig annotiert. Darüber hinaus sind für jede Dekodieraufgabe zumindest Trainingsdaten für diese Dekodieraufgabe annotiert. Insbesondere existieren für jede Dekodieraufgabe Trainingsdaten, die sich auf den Zielanwendungskontext des neuronalen Netzes beziehen.Each set of training data annotated for training the same decoding task is added to the respective data streams. For each of the decoding tasks, the training data have at least annotated data from the target application context or annotated data that do not correspond to the target application context. For all decoding tasks, however, the training data can contain both training data that correspond to the target application context and training data that do not correspond to the target application context. For each decoding task, all target classes of the training data of the data stream annotated for this decoding task must be annotated, i.e. the respective data stream of the training data is completely annotated for the respective decoding task. In addition, at least training data for this decoding task are annotated for each decoding task. In particular, there are training data for each decoding task that relate to the target application context of the neural network.
Allgemein bezieht sich der Zielanwendungskontext auf das neuronale Netz. In anderen Fällen kann der Zielanwendungskontext jedoch unabhängig für jede Dekodieraufgabe definiert werden.In general, the target application context relates to the neural network. In other cases, however, the target application context can be defined independently for each decoding task.
Die Mini-Stapel sind kleine Teilmengen von Trainingsdaten, die bei jedem Trainingsschritt eines iterativen Trainingsprozesses des neuronalen Netzes verwendet werden. Die Trainingsdaten werden während des Trainings in N Mini-Stapel aufgeteilt. Jeder Mini-Stapel hat eine Stapelgröße m, d.h., der Mini-Stapel enthält m Proben von Trainingsdaten. Typische Werte für die Stapelgröße m sind z.B. 8, 16, 32. Die gesamte Menge der Trainingsdaten entspricht einer Epoche, die eine Datengröße von N*m Proben aufweist. Die Stapelgröße wird z.B. in Abhängigkeit von einer GPU-Kapazität zum Ausführen des Trainings des neuronalen Netzes gewählt. Die Mini-Stapel ermöglichen eine effiziente Verarbeitung großer Mengen an Trainingsdaten. Aufgrund von Speicherbegrenzungen von GPUs ist es in der Regel nicht möglich, die gesamten Trainingsdaten in einem Schritt rückzupropagieren.The mini-stacks are small subsets of training data that are used in each training step of an iterative training process of the neural network. The training data is split into N mini-batches during training. Each mini-batch has a batch size m, i.e. the mini-batch contains m samples of training data. Typical values for the stack size m are, for example, 8, 16, 32. The total amount of training data corresponds to an epoch with a data size of N * m samples. The stack size is selected, for example, depending on a GPU capacity for carrying out the training of the neural network. The mini-batches enable efficient processing of large amounts of training data. Due to the memory limitations of GPUs, it is usually not possible to propagate the entire training data back in one step.
Jeder der Mini-Stapel von Trainingsdaten weist vorzugsweise einen Sub-Mini-Stapel für jede Dekodieraufgabe auf. Jeder der Sub-Mini-Stapel weist vorzugsweise Trainingsdaten für eine der Dekodieraufgaben auf. Daher werden alle Dekodieraufgaben in jeder Iteration, d.h. mit jedem Mini-Stapel, trainiert. Die Sub-Mini-Stapel werden im Allgemeinen aus ungesehenen Trainingsdaten gebildet, d.h. aus Trainingsdaten, die während einer Epoche noch nicht verwendet worden sind. Eine Epoche bezieht sich im Allgemeinen auf die Präsentation des vollständigen Trainingsdatensatzes für das neuronale Netz für ein Training. Falls die Trainingsdaten jedoch für die verschiedenen Trainingsaufgaben eine unterschiedliche Größe aufweisen, kann dies nicht vollständig angewendet werden, sondern es können z.B. einige der Trainingsdaten nicht verwendet werden. Beim Trainieren des neuronalen Netzes werden typischerweise mehrere Trainingsepochen durchgeführt.Each of the mini-batches of training data preferably has a sub-mini-batch for each decoding task. Each of the sub-mini-stacks preferably has training data for one of the decoding tasks. Therefore, all decoding tasks are trained in each iteration, i.e. with each mini-batch. The sub-mini-batches are generally formed from unseen training data, i.e. training data that has not yet been used during an epoch. An epoch generally relates to the presentation of the complete training data set for the neural network for a training session. However, if the training data have a different size for the different training tasks, this cannot be applied in full, but some of the training data, for example, cannot be used. When training the neural network, several training epochs are typically carried out.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Kombinieren der dem Zielanwendungskontext entsprechenden und nicht entsprechenden Trainingsdaten für die gemeinsam trainierten Dekodieraufgaben nach einem Kombinationsschema zum Bereitstellen des jeweiligen Sub-Mini-Stapels das Bereitstellen eines individuellen Kombinationsschemas für jede der gemeinsam trainierten Dekodieraufgaben auf, und weist das Aktualisieren des Kombinationsschemas zum Kombinieren der Sub-Mini-Stapel von Trainingsdaten in Abhängigkeit von einer Lernentwicklung des neuronalen Netzes das individuelle Aktualisieren des Kombinationsschemas in Abhängigkeit von der Lernentwicklung des neuronalen Netzes für jede der gemeinsam trainierten Dekodieraufgaben auf. Daher wird die individuelle Lernentwicklung für jede der Dekodieraufgaben individuell bestimmt, so dass die individuelle Lernentwicklung zum Aktualisieren des Kombinationsschemas für jede der Dekodieraufgaben verwendet werden kann. Somit kann jeder der Sub-Mini-Trainingsdatensätze zum Trainieren der verschiedenen Dekodieraufgaben individuell unter Berücksichtigung der jeweiligen Lernentwicklung zusammengestellt werden. Das individuelle Kombinationsschema ermöglicht ein verbessertes Training des neuronalen Netzes, da das Trainieren jeder der Dekodieraufgaben unabhängig voneinander angepasst wird.According to a modified embodiment of the invention, combining the training data corresponding to the target application context and not corresponding to the jointly trained decoding tasks according to a combination scheme for providing the respective sub-mini-stack includes providing an individual combination scheme for each of the jointly trained decoding tasks, and has that Updating the combination scheme for combining the sub-mini-stacks of training data as a function of a learning development of the neural network, the individual updating of the combination scheme depending on the learning development of the neural network for each of the jointly trained decoding tasks. Therefore, the individual learning development is determined individually for each of the decoding tasks, so that the individual learning development can be used for updating the combination scheme for each of the decoding tasks. Thus, each of the sub-mini training data sets for training the various decoding tasks can be put together individually, taking into account the respective learning development. The individual combination scheme enables improved training of the neural network, since the training of each of the decoding tasks is adapted independently of one another.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Kombinieren der dem Zielanwendungskontext entsprechenden und nicht entsprechenden Trainingsdaten für die gemeinsam trainierten Dekodieraufgaben gemäß einem Kombinationsschema zum Bereitstellen des jeweiligen Sub-Mini-Stapels das Auswählen der dem Zielanwendungskontext entsprechenden und nicht entsprechenden Trainingsdaten gemäß einem Verhältnis auf, und weist das Aktualisieren des Kombinationsschemas zum Kombinieren der Sub-Mini-Stapel von Trainingsdaten in Abhängigkeit von einer Lernentwicklung des neuronalen Netzes das Aktualisieren des Verhältnisses auf. Daher werden jeder der beiden Kategorien (die dem Zielanwendungskontext entspricht oder nicht entspricht) gemäß dem Verhältnis Proben von Trainingsdaten entnommen. Die Präsentation der Trainingsdaten für das neuronale Netz wird daher hinsichtlich ihrer Zusammensetzung von den beiden Datenkategorien gesteuert. Das Verhältnis ist vorzugsweise ein Wert innerhalb eines Zahlenraumes zwischen Null und Eins. Es kann aber auch ein beliebiger andersartiger Wert aus einem beliebigen Zahlenraum verwendet werden, insofern er ein Verhältnis zwischen den Trainingsdaten, die aus den beiden Datenkategorien entnommen werden, angeben kann.According to a modified embodiment of the invention, combining the training data corresponding and not corresponding to the target application context for the jointly trained decoding tasks according to a combination scheme for providing the respective sub-mini-stack includes selecting the training data corresponding and not corresponding to the target application context in accordance with a ratio, and the updating of the combination scheme for combining the sub-mini-batches of training data as a function of a learning development of the neural network comprises the updating of the ratio. Therefore, training data is sampled according to the ratio of each of the two categories (whether or not corresponding to the target application context). The presentation of the training data for the neural network is therefore dependent on the composition of the controlled by both data categories. The ratio is preferably a value within a number range between zero and one. However, any other value from any number range can also be used, provided that it can indicate a relationship between the training data that are taken from the two data categories.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Auswählen der Trainingsdaten aus dem ersten und dem zweiten Datenstrom gemäß einem Verhältnis das Erzeugen einer Zufallszahl, insbesondere zwischen null und eins, für jede Trainingsdatenprobe, die dem jeweiligen Sub-Mini-Stapel hinzugefügt werden soll, und das Entnehmen der hinzuzufügenden Trainingsdatenprobe aus dem ersten oder zweiten Datenstrom in Abhängigkeit davon auf, ob die Zufallszahl größer als das Verhältnis ist oder nicht. Die Zufallszahlen werden innerhalb des gleichen Zahlenraums, in dem das Verhältnis angegeben wird, typischerweise eine reelle Zahl zwischen null und eins, generiert. Auch wenn das Verhältnis die Präsentation der Trainingsdaten aus dem ersten und zweiten Datenstrom für das neuronale Netz definiert, ermöglichen die Zufallszahlen eine flexiblere Auswahl der Trainingsdaten aus dem ersten und dem zweiten Datenstrom. Daher können die einzelnen Sub-Mini-Stapel Trainingsdaten mit anderen Prozentsätzen aus den beiden Datenströmen enthalten, als durch das Verhältnis angegeben ist. Bei der Betrachtung mehrerer Sub-Mini-Stapel können die Sub-Mini-Stapel jedoch die Trainingsdaten aus den beiden Datenströmen mit dem definierten Verhältnis enthalten. Da die Sub-Mini-Stapel in der Regel nur eine kleine Anzahl von Trainingsdatenproben enthalten, kann das Verhältnis nicht mit hoher Genauigkeit angewendet werden. Wenn der Sub-Mini-Stapel z.B. zehn Proben von Trainingsdaten enthält, können nur zehn Verhältnisse angewendet werden. Mit den Zufallszahlen erzielt das Verfahren eine korrekte Anwendung der Trainingsdaten aus den beiden Datenströmen entsprechend dem Verhältnis für mehrere Sub-Mini-Stapel von Trainingsdaten. Auch wenn sich das Verhältnis während des Trainings des neuronalen Netzes ändert, gelten die gleichen Prinzipien.According to a modified embodiment of the invention, the selection of the training data from the first and the second data stream according to a ratio includes the generation of a random number, in particular between zero and one, for each training data sample that is to be added to the respective sub-mini-batch, and that Taking the training data sample to be added from the first or second data stream as a function of whether the random number is greater than the ratio or not. The random numbers are generated within the same number range in which the ratio is specified, typically a real number between zero and one. Even if the ratio defines the presentation of the training data from the first and second data streams for the neural network, the random numbers allow a more flexible selection of the training data from the first and second data streams. Therefore, the individual sub-mini-batches may contain training data with different percentages from the two data streams than indicated by the ratio. When considering several sub-mini-batches, however, the sub-mini-batches can contain the training data from the two data streams with the defined ratio. Since the sub-mini-batches typically contain only a small number of training data samples, the ratio cannot be applied with high accuracy. For example, if the sub-mini-batch contains ten samples of training data, only ten ratios can be applied. With the random numbers, the method achieves a correct application of the training data from the two data streams in accordance with the ratio for several sub-mini-stacks of training data. Even if the relationship changes during training of the neural network, the same principles apply.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Aktualisieren des Kombinationsschemas zum Kombinieren der Sub-Mini-Stapel von Trainingsdaten in Abhängigkeit von einer Lernentwicklung des neuronalen Netzes das Anwenden einer Lernrate auf. Die Lernrate ist ein Maß für eine Veränderung der Zusammensetzung der Sub-Mini-Stapel. Sie ist typischerweise ein numerischer Wert. Die Lernrate kann gewählt und angepasst werden, um das Aktualisieren des Kombinationsschemas anzupassen. Eine höhere Lernrate ermöglicht allgemein eine schnellere Konvergenz, erhöht aber das Risiko einer Überanpassung einer bestimmten Art von Trainingsdaten. Die Lernrate kann während des Trainings des neuronalen Netzes variieren.According to a modified embodiment of the invention, the updating of the combination scheme for combining the sub-mini-stacks of training data as a function of a learning development of the neural network includes applying a learning rate. The learning rate is a measure of a change in the composition of the sub-mini-stacks. It is typically a numerical value. The learning rate can be chosen and adjusted to accommodate the updating of the combination scheme. A higher learning rate generally allows faster convergence, but increases the risk of overfitting a certain type of training data. The learning rate can vary during the training of the neural network.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Kombinieren der Trainingsdaten des ersten und des zweiten Datenstroms für die gemeinsam trainierten Dekodieraufgaben gemäß einem Kombinationsschema zum Bereitstellen des jeweiligen Sub-Mini-Stapels das Wiederverwenden von Trainingsdaten des ersten und/oder des zweiten Datenstroms von Trainingsdaten für die jeweilige Dekodieraufgabe auf. Wenn mehrere unabhängig voneinander bereitgestellte Trainingsdatensätze verwendet werden, besteht eine hohe Wahrscheinlichkeit dafür, dass einer oder mehrere der Datenströme von Trainingsdaten mehr Trainingsdaten enthalten als andere Datenströme von Trainingsdaten. Dies kann dazu führen, dass ein Teil der Trainingsdaten während einer Epoche nicht genutzt wird, falls das Training sofort abgebrochen wird, wenn keine ungenutzten Trainingsdaten aus einem oder mehreren Datenströmen von Trainingsdaten mehr zur Verfügung stehen. Durch das Wiederverwenden eines Teils der bereits verwendeten Trainingsdaten während einer Epoche kann die Nutzung der verfügbaren Trainingsdaten verbessert werden. Dies ist insbesondere dann wichtig, wenn die meisten Datenströme mehr Trainingsdaten aufweisen als ein einzelner Datenstrom von Trainingsdaten oder nur einige wenige Datenströme von Trainingsdaten. Das Wiederverwenden von Trainingsdaten ist daher insbesondere bei unausgewogenen Datenströmen von Trainingsdaten für die jeweilige Dekodieraufgabe sinnvoll. Falls die Trainingsdaten für die verschiedenen Aufgaben unausgewogen sind, können auch die Trainingsdaten des ersten und des zweiten Datenstroms von Trainingsdaten einer oder mehrerer vollständiger Dekodieraufgabe(n) wiederverwendet werden.According to a modified embodiment of the invention, combining the training data of the first and second data streams for the jointly trained decoding tasks according to a combination scheme for providing the respective sub-mini-stack includes reusing training data of the first and / or the second data stream of training data for the respective decoding task. If several independently provided training data sets are used, there is a high probability that one or more of the data streams of training data contain more training data than other data streams of training data. This can lead to part of the training data not being used during an epoch if the training is terminated immediately when no more unused training data from one or more data streams of training data are available. By reusing part of the training data that has already been used during an epoch, the use of the available training data can be improved. This is particularly important when most of the data streams contain more training data than a single data stream of training data or only a few data streams of training data. The reuse of training data is therefore particularly useful in the case of unbalanced data streams of training data for the respective decoding task. If the training data for the different tasks are unbalanced, the training data of the first and the second data stream of training data of one or more complete decoding task (s) can also be reused.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Anordnen der mehreren unterschiedlich annotierten Trainingsdatensätze in Datenströmen, wobei zum Trainieren jeder der mehreren Dekodieraufgaben ein erster Datenstrom mit Trainingsdaten bereitgestellt wird, die einem Zielanwendungskontext des neuronalen Netzes entsprechen, und zum zusätzlichen Trainieren mindestens einer gemeinsam trainierten Dekodieraufgabe aus den mehreren Dekodieraufgaben ein zweiter Datenstrom mit Trainingsdaten bereitgestellt wird, die nicht dem Zielanwendungskontext des neuronalen Netzes entsprechen, das Kombinieren aller Trainingsdatensätze, die einer bestimmten Dekodieraufgabe und dem jeweiligen Zielanwendungskontext entsprechen, in dem jeweiligen ersten Datenstrom und das Kombinieren aller Trainingsdatensätze, die der bestimmten Dekodieraufgabe und nicht der jeweiligen Zielanwendung entsprechen, in dem jeweiligen zweiten Datenstrom auf. Somit werden alle verfügbaren Trainingsdaten, die für das Trainieren einer der Dekodieraufgaben annotiert sind, in dem jeweiligen ersten und/oder zweiten Datenstrom kombiniert. Insbesondere wenn mehrere Trainingsdatensätze bereitgestellt werden, die für das Trainieren einer bestimmten Dekodieraufgabe geeignet sind, die dem Zielanwendungskontext entspricht, werden die einzelnen Proben aus diesen Trainingsdatensätzen in dem jeweiligen ersten Datenstrom kombiniert. Auf ähnliche weise werden, falls mehrere Trainingsdatensätze für das Trainieren einer bestimmten Dekodieraufgabe bereitgestellt werden, die nicht dem Zielanwendungskontext entspricht, die Proben aus diesen Trainingsdatensätzen in dem jeweiligen zweiten Datenstrom kombiniert. Zum Bereitstellen der Trainingsdaten aus mehreren Trainingsdatensätzen in einem Datenstrom können Mischstrategien angewendet werden. Alternativ kann ein Zufallszugriff auf die Trainingsdaten der Datenströme ausgeführt werden.According to a modified embodiment of the invention, arranging the multiple differently annotated training data sets in data streams, a first data stream with training data corresponding to a target application context of the neural network being provided for training each of the multiple decoding tasks, and for additional training at least one jointly trained decoding task The multiple decoding tasks are provided with a second data stream with training data that do not correspond to the target application context of the neural network, combining all training data sets that correspond to a specific decoding task and the respective target application context in the respective first data stream and combining all training data sets that correspond to the specific decoding task and do not correspond to the respective target application in the respective second data stream. Thus, all are available Training data that are annotated for training one of the decoding tasks, combined in the respective first and / or second data stream. In particular, if several training data sets are provided which are suitable for training a specific decoding task that corresponds to the target application context, the individual samples from these training data sets are combined in the respective first data stream. Similarly, if several training data sets are provided for training a specific decoding task that does not correspond to the target application context, the samples from these training data sets are combined in the respective second data stream. Mixing strategies can be used to provide the training data from several training data sets in a data stream. Alternatively, the training data of the data streams can be accessed at random.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Trainieren des neuronalen Netzes unter Verwendung der erzeugten Mini-Stapel das Trainieren des neuronalen Netzes in einer synchronen Rückpropagationsweise auf, und weist das Aktualisieren des Kombinationsschemas für die Sub-Mini-Stapel von Trainingsdaten in Abhängigkeit von einer Lernentwicklung des neuronalen Netzes das dynamische Aktualisieren des Kombinationsschemas für nachfolgende Mini-Stapel von Trainingsdaten in Abhängigkeit von einer Lernentwicklung des neuronalen Netzes auf. Demnach wird das neuronale Netz nach jeder Trainingssequenz mit einem Mini-Stapel aktualisiert, wobei für jede Dekodieraufgabe z.B. Aufgabenverluste aus jedem Sub-Mini-Stapel ermittelt werden und ein Fehler gleichzeitig im jeweiligen Dekodierer dieser speziellen Dekodieraufgabe und zusätzlich im Kodierer rückpropagiert wird. Dies gewährleistet eine gute Ausgewogenheit der trainierten Aufgaben, insbesondere im Hinblick auf das Training des Kodierers, z.B. das Trainieren von Kodierermerkmalen.According to a modified embodiment of the invention, training the neural network using the generated mini-stacks comprises training the neural network in a synchronous back-propagation manner, and comprises updating the combination scheme for the sub-mini-stacks of training data depending on a learning development of the neural network dynamically updating the combination scheme for subsequent mini-stacks of training data as a function of a learning development of the neural network. According to this, the neural network is updated with a mini-stack after each training sequence, whereby for each decoding task e.g. task losses from each sub-mini-stack are determined and an error is simultaneously backpropagated in the respective decoder of this special decoding task and additionally in the encoder. This ensures a good balance of the trained tasks, particularly with regard to training the coder, e.g. training coder features.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Erzeugen von Mini-Stapeln mit mehreren Sub-Mini-Stapeln von Trainingsdaten zum Trainieren jeder der Dekodieraufgaben das Ausgleichen der Sub-Mini-Stapel für jeden der Mini-Stapel gemäß einem Ausgleichsschema auf. Verschiedene Ausgleichsschemas zum parallelen Ausgleichen des Trainings der mehreren Dekodieraufgaben sind auf dem Fachgebiet bekannt.According to a modified embodiment of the invention, generating mini-stacks with multiple sub-mini-stacks of training data for training each of the decoding tasks includes balancing the sub-mini-stacks for each of the mini-stacks according to a balancing scheme. Various equalization schemes for equalizing the training of the multiple decoding tasks in parallel are known in the art.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Verfahren einen Schritt zum Bestimmen einer Lernentwicklung des neuronalen Netzes in Abhängigkeit von einem Validierungsverlust und/oder von einem Validierungsschlüssel-Leistungsindikator des neuronalen Netzes auf. Der Validierungsverlust ist eine Größe, die beim Deep Learning häufig verwendet wird, um eine gute Schätzung darüber zu erhalten, wie das neuronale Netz lernt, z.B. eine Trainingsgeschwindigkeit und dergleichen. Insbesondere gibt der Validierungsverlust Auskunft darüber, ob das neuronale Netz noch lernt oder vielmehr eine Überanpassung auftritt. Um ein System zu erhalten, das gut verallgemeinert, insbesondere um ein System zu erhalten, das für alle Trainingsdatensätze gut funktioniert, ist eine Überanpassung zu vermeiden. Eine Überanpassung kann erkannt werden, wenn der Validierungsverlust zu steigen beginnt, anstatt zu sinken. Tatsächlich kann jeder andere Parameter, der eine gute Schätzung der Überanpassung des neuronalen Netzes angibt, verwendet werden. Insbesondere kann der Validierungsschlüssel-Leistungsindikator (Validierungs-KPI) anstelle des Validierungsverlustes verwendet werden, falls er verfügbar ist.According to a modified embodiment of the invention, the method has a step for determining a learning development of the neural network as a function of a loss of validation and / or of a validation key performance indicator of the neural network. The loss of validation is a quantity that is often used in deep learning to get a good estimate of how the neural network is learning, e.g. a training speed and the like. In particular, the loss of validation provides information as to whether the neural network is still learning or rather an over-adaptation occurs. In order to get a system that generalizes well, especially to get a system that works well for all training data sets, avoid overfitting. Overfitting can be detected when the loss of validation begins to increase instead of decreasing. In fact, any other parameter that gives a good estimate of the neural network overfitting can be used. In particular, the Validation Key Performance Indicator (Validation KPI) can be used in place of the Loss of Validation if it is available.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Bestimmen einer Lernentwicklung des neuronalen Netzes in Abhängigkeit von einem Validierungsverlust und/oder von einem Validierungsschlüssel-Leistungsindikator des neuronalen Netzes das unabhängige Bestimmen der Lernentwicklung des neuronalen Netzes für jede der Dekodieraufgaben auf. Dies ermöglicht einen guten und detaillierten Einblick in den Lernprozess des neuronalen Netzes. Die individuell ermittelte Lernentwicklung ermöglicht insbesondere ein individuelles Aktualisieren des Kombinationsschemas für die Trainingsdaten aus dem ersten und dem zweiten Datenstrom.According to a modified embodiment of the invention, the determination of a learning development of the neural network as a function of a loss of validation and / or of a validation key performance indicator of the neural network comprises the independent determination of the learning development of the neural network for each of the decoding tasks. This enables a good and detailed insight into the learning process of the neural network. The individually determined learning development enables in particular an individual updating of the combination scheme for the training data from the first and the second data stream.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Bestimmen einer Lernentwicklung des neuronalen Netzes in Abhängigkeit von einem Validierungsverlust und/oder von einem Validierungsschlüssel-Leistungsindikator des neuronalen Netzes das unabhängige Bestimmen der Lernentwicklung des neuronalen Netzes für jeden der Anwendungskontexte auf. Demnach wird die Lernentwicklung für das ausgeführte Training unter Verwendung der jeweiligen Trainingsdaten aus dem ersten und dem zweiten Datenstrom individuell ermittelt. Auf der Grundlage dieser ermittelten Lernentwicklung lässt sich zuverlässig bestimmen, ob das neuronale Netz als Ganzes und/oder die jeweiligen Dekodieraufgaben vom Trainieren mit Trainingsdaten mit dem entsprechenden Zielanwendungskontext oder mit Trainingsdaten ohne den entsprechenden Zielanwendungskontext mehr profitieren. Somit kann das Trainieren des neuronalen Netzes auf der Grundlage der Aktualisierung des Kombinationsschemas als Ganzes und/oder der jeweiligen Dekodieraufgaben auf die effizienteste Weise angepasst werden.According to a modified embodiment of the invention, the determination of a learning development of the neural network as a function of a loss of validation and / or of a Validation key performance indicator of the neural network on the independent determination of the learning development of the neural network for each of the application contexts. Accordingly, the learning development for the training carried out is determined individually using the respective training data from the first and the second data stream. On the basis of this determined learning development, it can be reliably determined whether the neural network as a whole and / or the respective decoding tasks benefit more from training with training data with the corresponding target application context or with training data without the corresponding target application context. Thus, the training of the neural network can be adapted in the most efficient way on the basis of the updating of the combination scheme as a whole and / or of the respective decoding tasks.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Bestimmen einer Lernentwicklung des neuronalen Netzes in Abhängigkeit von einem Validierungsverlust und/oder von einem Validierungsschlüssel-Leistungsindikator des neuronalen Netzes das Anwenden einer Lernrate auf. Die Lernentwicklung kann somit anhand einer Lernrate generisch bestimmt werden. Die Lernrate ist typischerweise ein numerischer Wert. Die Lernentwicklung kann als Grundlage für das Aktualisieren des Kombinationsschemas verwendet werden. Eine höhere Lernrate ermöglicht im Allgemeinen eine schnellere Konvergenz, erhöht aber das Risiko einer Überanpassung einer bestimmten Art von Trainingsdaten. Beispielsweise kann ein Aktualisieren des Verhältnisses für die Auswahl der Trainingsdaten aus dem ersten und dem zweiten Datenstrom durch Multiplizieren eines Gradienten des Validierungsverlusts mit der Lernrate erfolgen. Dieses Produkt kann von einem aktuellen Verhältnis subtrahiert werden.According to a modified embodiment of the invention, the determination of a learning development of the neural network as a function of a loss of validation and / or of a validation key performance indicator of the neural network includes the application of a learning rate. The learning development can thus be determined generically on the basis of a learning rate. The learning rate is typically a numerical value. The learning development can be used as a basis for updating the combination scheme. A higher learning rate generally allows for faster convergence, but increases the risk of overfitting a particular type of training data. For example, the ratio for the selection of the training data from the first and the second data stream can be updated by multiplying a gradient of the validation loss by the learning rate. This product can be subtracted from a current ratio.
Gemäß einer modifizierten Ausführungsform der Erfindung weist das Verfahren einen Schritt zum Abbrechen des Trainings auf, falls die Lernentwicklung darauf hinweist, dass sich das neuronale Netz nicht weiter verbessert, insbesondere, wenn die Lernentwicklung darauf hinweist, dass sich das neuronale Netz in Bezug auf mindestens eine der Dekodieraufgaben nicht weiter verbessert. Daher wird das Training abgebrochen, so dass eine Überanpassung des neuronalen Netzes vermieden werden kann. Beispielsweise kann das neuronale Netz als sich nicht verbessernd betrachtet werden, wenn der Gradient des Validierungsverlusts für das Training des neuronalen Netzes mit Trainingsdaten aus dem ersten Datenstrom und/oder für das Training des neuronalen Netzes mit Trainingsdaten aus dem zweiten Datenstrom größer als null ist.According to a modified embodiment of the invention, the method has a step for terminating the training if the learning development indicates that the neural network is no longer improving, in particular if the learning development indicates that the neural network is changing in relation to at least one the decoding tasks not further improved. The training is therefore terminated so that overadaptation of the neural network can be avoided. For example, the neural network can be regarded as not improving if the gradient of the validation loss for training the neural network with training data from the first data stream and / or for training the neural network with training data from the second data stream is greater than zero.
Diese und andere Aspekte der Erfindung werden anhand der nachstehend beschriebenen Ausführungsformen ersichtlich und erläutert. Einzelne Merkmale, die in den Ausführungsformen dargestellt sind, können für sich alleine oder in Kombination einen Aspekt der vorliegenden Erfindung bilden. Merkmale der verschiedenen Ausführungsformen können von einer Ausführungsform auf eine andere Ausführungsform übertragen werden.These and other aspects of the invention will be apparent and illustrated by the embodiments described below. Individual features that are shown in the embodiments can form an aspect of the present invention on their own or in combination. Features of the various embodiments can be transferred from one embodiment to another embodiment.
Es zeigen:
-
1 eine schematische Darstellung eines neuronalen Netzes, das einen einzelnen Kodierer und zwei Dekodierer aufweist, wobei dem Kodierer Eingabedaten mit zwei Datenströmen zugeführt werden und jeder der Dekodierer entsprechend seiner Dekodieraufgabe eine einzelne Ausgabe bereitstellt, gemäß einer ersten bevorzugten Ausführungsform; -
2 eine Tabelle, die die Anwendbarkeit verschiedener Trainingsdatensätze angibt, die für verschiedene Dekodieraufgaben bereitgestellt werden, und außerdem angibt, ob der Trainingsdatensatz dem Zielanwendungskontext zugehörig ist, in Übereinstimmung mit der ersten Ausführungsform; -
3 eine schematische Zeichnung, die einen Sub-Mini-Stapel von Trainingsdaten zum Trainieren eines neuronalen Netzes mit zwei Dekodierern für zwei Dekodieraufgaben darstellt, in Übereinstimmung mit der ersten Ausführungsform; -
4 eine schematische Zeichnung, die zwei in3 dargestellte Sub-Mini-Stapel von Trainingsdaten zum Trainieren einer Dekodieraufgabe des neuronalen Netzes darstellt, die dem Zielanwendungskontext entsprechen bzw. nicht dem Zielanwendungskontext der Mini-Trainingsdatensätze für die anderen Dekodieraufgaben entsprechen; -
5 beispielhaft ein Diagramm, das eine Zusammensetzung der Sub-Mini-Stapel von Trainingsdaten mit Trainingsdaten darstellt, die dem Anwendungskontext entsprechen und Trainingsdaten, die nicht dem Anwendungskontext entsprechen, über verschiedene Epochen in Übereinstimmung mit der ersten Ausführungsform; und -
6 ein Ablaufdiagramm, das ein Verfahren zum Trainieren des vorstehend erwähnten neuronalen Netzes mit einem Kodierer und mehreren Dekodierern mit annotierten Trainingsdaten darstellt, wobei jede der mehreren Dekodieraufgaben einen Zielanwendungskontext aufweist, in Übereinstimmung mit der ersten Ausführungsform.
-
1 a schematic representation of a neural network having a single encoder and two decoders, the encoder being supplied with input data with two data streams and each of the decoders providing a single output corresponding to its decoding task, according to a first preferred embodiment; -
2 a table indicating the applicability of various training data sets provided for different decoding tasks and also indicating whether the training data set is associated with the target application context, in accordance with the first embodiment; -
3 Fig. 13 is a schematic drawing showing a sub-mini-batch of training data for training a neural network with two decoders for two decoding tasks, in accordance with the first embodiment; -
4th a schematic drawing showing two in3 The illustrated sub-mini-stacks of training data for training a decoding task of the neural network, which correspond to the target application context or do not correspond to the target application context of the mini-training data sets for the other decoding tasks; -
5 is an exemplary diagram illustrating a composition of the sub-mini-stacks of training data with training data that correspond to the application context and training data that do not correspond to the application context over different epochs in accordance with the first embodiment; and -
6th Figure 12 is a flowchart illustrating a method of training the aforementioned neural network with an encoder and multiple decoders with annotated training data, each of the multiple decoding tasks having a target application context, in accordance with the first embodiment.
Das neuronale Netz
Zum Ausführen des Trainings werden die Trainingsdaten
Daher werden die Sätze
Das Verfahren beginnt mit Schritt S100, der sich auf das Bereitstellen mehrerer Sätze
Schritt S110 bezieht sich auf das Anordnen der mehreren Sätze
In einem anderen Beispiel, in dem mehrere der bereitgestellten Sätze
Schritt S120 bezieht sich auf das Erzeugen von Mini-Stapeln
Daher werden die Trainingsdaten
Schritt S130 bezieht sich auf das Erzeugen der Sub-Mini-Stapel
Das Kombinationsschema weist das Bereitstellen eines Verhältnisses auf, und die Proben von Trainingsdaten
In dieser Ausführungsform ist das Kombinationsschema ein individuelles Kombinationsschema für jede der gemeinsam trainierten Dekodieraufgaben
Typischerweise handelt es sich bei den Proben von Trainingsdaten
Die Trainingsdaten
Im Fall einer erstmaligen Ausführung von Schritt S130 müssen die Werte für PZiel und PAndere initialisiert werden. Die Initialisierung kann z.B. sein
PZiel = PAndere = 0,5 oder
PZiel = 1 and PAndere = 0, oder
PZiel = 0 and PAndere = 1 .
Die Initialisierung kann beliebig ausgeführt werden.If step S130 is carried out for the first time, the values for P target and P other must be initialized. The initialization can be, for example
P Goal = P Other = 0.5 or
P Target = 1 and P Other = 0, or
P Target = 0 and P Other = 1.
The initialization can be carried out in any way.
Basierend darauf wird für jede Probe eine zufällige Gleitkommazahl f zwischen null und eins generiert. Falls die zufällige Gleitkommazahl f kleiner als PZiel ist, wird eine Probe von Trainingsdaten
Schritt S140 bezieht sich auf das Trainieren des neuronalen Netzes
Schritt S150 bezieht sich auf das Bestimmen einer Lernentwicklung des neuronalen Netzes
Die Lernentwicklung des neuronalen Netzes
Das Bestimmen der Lernentwicklung des neuronalen Netzes
Schritt S160 bezieht sich auf das Aktualisieren des Kombinationsschemas zum Kombinieren der Sub-Mini-Stapel
Das Verhältnis, d.h. PZiel, wird größer, wenn das neuronale Netz
Das Aktualisieren des Kombinationsschemas bezieht sich auf ein Aktualisieren des Verhältnisses und wird in Abhängigkeit von der Lernentwicklung des neuronalen Netzes
Eine mögliche Entwicklung des Verhältnisses, d.h. eine Entwicklung der Wahrscheinlichkeiten PZiel und PAndere, ist beispielhaft in
Schritt S170 bezieht sich auf das Beenden des Trainings, falls die Lernentwicklung anzeigt, dass sich das neuronale Netz
Andernfalls wird das Training wie vorstehend diskutiert fortgesetzt.Otherwise, the training continues as discussed above.
BezugszeichenlisteList of reference symbols
- 1010
- neuronales Netzneural network
- 1212th
- KodiererEncoder
- 1414th
- EingabedatenInput data
- 1616
- DekodiererDecoder
- 1818th
- DekodieraufgabeDecoding task
- 2020th
- TrainingsdatenTraining data
- 2222nd
- TrainingsdatensatzTraining data set
- 2424
- erster (Erfassungs-) Datenstromfirst (acquisition) data stream
- 2626th
- zweiter (Segmentierungs-) Datenstromsecond (segmentation) data stream
- 2828
- Ausgabeoutput
- 3232
- Mini-StapelMini pile
- 3434
- Sub-Mini-StapelSub-mini stacks
- 3636
- Sub-Mini-StapelSub-mini stacks
- 3838
- Menge von Trainingsdaten, die dem Zielanwendungskontext entsprechenSet of training data that corresponds to the target application context
- 4040
- Menge von Trainingsdaten, die nicht dem Zielanwendungskontext entsprechenAmount of training data that does not correspond to the target application context
Claims (14)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019134156.6A DE102019134156A1 (en) | 2019-12-12 | 2019-12-12 | Train a multitask neural network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019134156.6A DE102019134156A1 (en) | 2019-12-12 | 2019-12-12 | Train a multitask neural network |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102019134156A1 true DE102019134156A1 (en) | 2021-06-17 |
Family
ID=76085125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102019134156.6A Pending DE102019134156A1 (en) | 2019-12-12 | 2019-12-12 | Train a multitask neural network |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102019134156A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190205764A1 (en) * | 2016-09-06 | 2019-07-04 | Mitsubishi Electric Corporation | Learning device, signal processing device, and learning method |
-
2019
- 2019-12-12 DE DE102019134156.6A patent/DE102019134156A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190205764A1 (en) * | 2016-09-06 | 2019-07-04 | Mitsubishi Electric Corporation | Learning device, signal processing device, and learning method |
Non-Patent Citations (2)
Title |
---|
KENDALL, Alex; GAL, Yarin; CIPOLLA, Roberto: Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics. 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. IEEE Xplore [online]. DOI: 10.1109/CVPR.2018.00781, In: IEEE * |
RUDER, Sebastian: An overview of multi-task learning in deep neural networks. arXiv preprint arXiv:1706.05098, 2017. URL: https://arxiv.org/abs/1706.05098 [abgerufen am 01.09.2020] * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE212020000731U1 (en) | Contrastive pre-training for language tasks | |
EP0862160A2 (en) | Speech recognition method with model adaptation | |
DE102017218889A1 (en) | Unarmed parameterized AI module and method of operation | |
DE102020001541A1 (en) | Method for transforming acquired sensor data from a first data domain into a second data domain | |
DE102019204139A1 (en) | Training for artificial neural networks with better utilization of the learning data sets | |
DE102018206806A1 (en) | Method and device for converting an input image of a first domain into an output image of a second domain | |
EP1190373B1 (en) | Address reading method | |
DE102018006332A1 (en) | Procedure for determining traffic light switching times | |
DE102019134156A1 (en) | Train a multitask neural network | |
DE3836789A1 (en) | DEVICE FOR GENERATING BRIGHTNESS LEVELS ON A DISPLAY SCREEN | |
DE4417932B4 (en) | A method and system for obtaining target adjustment amounts for execution parameters by learning a plurality of sets of pattern input data and pattern output data | |
DE102019213061A1 (en) | Classification of AI modules | |
DE102019204118A1 (en) | Method for transferring a feature of a first image to a second image | |
DE112020005759T5 (en) | Method and system for determining task compatibility in neural networks | |
EP3507943B1 (en) | Method for communication in a communication network | |
EP0978052A1 (en) | Computer-aided selection of training data for neural networks | |
EP3905097A1 (en) | Device and method for determining a knowledge graph | |
EP0591259B1 (en) | Method of processing uncertainties in input data in neuronal networks | |
DE60007333T2 (en) | TRAINABLE, ADAPTABLE FOCUSED REPLICATOR NETWORK FOR DATA ANALYSIS | |
DE102022206892A1 (en) | Method for determining an optimal architecture of an artificial neural network | |
DE202022103792U1 (en) | Device for determining an optimal architecture of an artificial neural network | |
DE102021204343A1 (en) | Controller for generating training data for training a machine learning algorithm | |
DE202021102084U1 (en) | Device for determining network configurations of a neural network while fulfilling a number of secondary conditions | |
DE102022210480A1 (en) | Method for training a machine learning algorithm using a reinforcement learning method | |
DE202019102339U1 (en) | Device for generating an image |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R083 | Amendment of/additions to inventor(s) | ||
R163 | Identified publications notified |