[go: up one dir, main page]

WO2020193481A1 - Verfahren und vorrichtung für training und herstellung eines künstlichen neuronalen netzes - Google Patents

Verfahren und vorrichtung für training und herstellung eines künstlichen neuronalen netzes Download PDF

Info

Publication number
WO2020193481A1
WO2020193481A1 PCT/EP2020/058017 EP2020058017W WO2020193481A1 WO 2020193481 A1 WO2020193481 A1 WO 2020193481A1 EP 2020058017 W EP2020058017 W EP 2020058017W WO 2020193481 A1 WO2020193481 A1 WO 2020193481A1
Authority
WO
WIPO (PCT)
Prior art keywords
neurons
artificial neural
layer
specific
neural network
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.)
Ceased
Application number
PCT/EP2020/058017
Other languages
English (en)
French (fr)
Inventor
Markus Hanselmann
Thilo Strauss
Holger Ulmer
Andrej Junginger
Katharina Dormann
Matthias Werner
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of WO2020193481A1 publication Critical patent/WO2020193481A1/de
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Definitions

  • the invention relates to a method and a device for training and for producing an artificial neural network.
  • One of the difficulties is to choose an architecture of the network structure of the artificial neural network so that it is possible to use a
  • Another difficulty is to choose an architecture of the network structure of the artificial neural network so that it can be used on a system with limited resources such as memory or
  • Computing capacity is possible.
  • a control unit in a vehicle, a smartphone or a tablet it is essential, for example, to choose the number of neurons per network layer as low as possible in order to create a small artificial neural network that still has sufficient performance for the underlying problem.
  • the use of artificial neural networks to solve the same problem on different devices therefore requires different device-specific models with different network structures, which under the given Boundary conditions represent an optimal compromise between resource requirements and performance.
  • Device-unspecific model switched off, for example, a previously specified number of neurons in each layer of the artificial neural network. However, this means that no device-specific models can be trained and produced for different devices.
  • a method for producing a plurality of device-specific artificial neural networks provides that, in a first iteration, depending on a general network architecture that includes a plurality of neurons, neurons of a device-specific network architecture for one of the plurality
  • device-specific artificial neural networks are determined stochastically, with a training data point for an output of the artificial neural network by the neurons of the device-specific
  • Network architecture is propagated forward, the weights of the neurons of the device-specific network architecture being determined for a second iteration by backpropagation as a function of the output, and the weights of the other neurons being retained for the second iteration.
  • the model training for several devices on which the function of the artificial neural network is to be carried out is carried out iteratively.
  • a network architecture, which is to be optimized, is determined, in particular stochastically, for each training data point. The so produced
  • Device-specific artificial neural networks have an optimized network architecture for a given problem, taking into account boundary conditions due to resource restrictions.
  • a Pareto-optimal solution with regard to the size of the artificial neural network compared to its performance can thus be selected without the artificial neural network having to be retrained for this purpose. Alternatively, you can retrain in order to further increase performance.
  • In order to take the resource restrictions into account for example, by specifying the number of neurons for a certain device-specific artificial neural network, it is systematically determined how many neurons are required per layer in order to achieve a desired performance on the device.
  • the training process for the various device-specific artificial neural networks is not much more complex than the normal training of an artificial neural network.
  • a plurality of device-specific artificial neural networks are preferably produced depending on the general network architecture, with the neurons being selected from a plurality of training data points for each training data point, which define the device-specific artificial neural network to be trained in this training data point, with the neurons for each training data point , which define the device-specific artificial neural network to be trained in this training data point, training data are propagated forward, the weights of the neurons of the device-specific artificial neural network to be trained being determined by backpropagation as a function of the output, and the weights of the other neurons being maintained.
  • the neurons that are the neurons for a device-specific layer of the device-specific network architecture are preferably selected from a layer of the general network architecture. A subset of the neurons of the entire artificial neural network thus forms the neurons of the same layer of the device-specific artificial neural network.
  • the neurons that are used in the general network architecture and in the are preferably selected from the general network architecture
  • Device-specific network architecture form a group of neurons which define the same function in the device-specific network architecture as in the general network architecture. This leaves logical groups of
  • Neurons e.g. Forming filters in a convolutional neural network.
  • a priority is preferably defined for a neuron, the weights for the neuron being determined as a function of the priority in the backpropagation or remaining unchanged.
  • the priority gives the neurons a natural order.
  • the training process is designed in such a way that neurons with a higher priority are used more frequently in the training process than those with a lower priority. Seen clearly, the network is conditioned in the training process to encode important information in the neurons of higher priority. In other words, the information is that in
  • the neuron is preferably assigned a parameter which defines the priority, the parameter being compared with a threshold value in a comparison, and the weights for the neuron being determined as a function of a result of the comparison or remaining unchanged.
  • This parameter can be easily evaluated during training based on the comparison with the threshold value.
  • An ordinal number which characterizes the priority is preferably defined for each of the plurality of neurons, with only the neurons in the backpropagation can be determined whose ordinal number is below an upper limit for the ordinal numbers.
  • the ordinal number gives the neurons a natural order.
  • the training process is designed in such a way that neurons with a smaller ordinal number are used more frequently in the training process than those with a high ordinal number.
  • Important information is thus encoded in the lower order neurons. This means that the higher the order of a neuron, the more specific the information encoded there. This means that important information is only encoded in the weights of the neurons that correspond to a low ordinal number.
  • Neurons that functionally belong together are preferably defined by the same ordinal number. Logical groups of neurons that fulfill a function in the network architecture can thus be taken into account.
  • a separate threshold value or a separate upper limit is defined only for the neurons of this layer.
  • the neurons are given their own natural order in each layer.
  • the general network architecture is preferably designed as a deep artificial neural network, in particular with at least one layer, which is designed as a fully connected layer or as a convolutional layer. This is a preferred network architecture; the network architecture can additionally or alternatively comprise other layer types.
  • a method for producing a classification device in particular for a robot, a tool or an at least partially autonomous vehicle, provides that a device-specific artificial neural network is determined according to the method according to one of the preceding claims, the network architecture of the device-specific artificial neural network thus determined without further training is transferred to the classifier. Separate retraining is not necessary, but could lead to better prediction. This enables the same functionality to be efficiently implemented on devices that provide different resources for the functionality.
  • a method for training a plurality of device specific artificial neural networks comprising a plurality of layers is also provided.
  • the method for training comprises the following steps in a first iteration for a first training data point of a first batch from a plurality of batches of an epoch of training data: stochastically determining a value for a layer of the plurality of layers, the value being dependent on a maximum number of neurons for this layer is determined, determining a plurality of neurons from the neurons of the layer and depending on the value, forward propagation of the batch by the plurality of neurons, determining an output of the artificial neural network or the layer, backward propagation, in particular with
  • a batch describes a subset of the training data on the basis of which the gradient for the update of the weights is calculated.
  • a batch contains training data points.
  • Network architectures that differ in the number of neurons in the layers are trained synchronously.
  • the value is preferably determined to be positive and less than or equal to the maximum number of neurons.
  • the methodology of how the values are selected is stochastic; the choice of the distribution of the values is not specified and can be specified by the user. In particular, depending on the maximum number of neurons, the value can be sampled uniformly from an interval between one and the maximum number of neurons. Provision is preferably made for a maximum number of neurons to be specified for each of the layers, in particular before the start of training. This means that device-specific requirements with regard to resources are taken into account.
  • Each neuron of the artificial neural network is preferably assigned an ordinal number, the ordinal number assigned to a neuron being compared with the value in a comparison, and it being determined depending on the result of the comparison whether a neuron is part of a
  • the training process takes place as with a fixed, predetermined one
  • FIG. 1 shows a schematic illustration of an artificial neural network
  • FIG. 2 shows a schematic illustration of steps in a method for training the artificial neural network
  • FIG. 3 shows a schematic representation of steps in a method for producing a device-specific artificial neural network.
  • FIG. 1 shows a schematic illustration of an artificial neural network 100.
  • the artificial neural network 100 includes a general one
  • Network architecture with an input layer 102, at least one hidden layer 104 and an output layer 106.
  • a hidden layer 104 is shown in FIG. 1, but several hidden layers can be provided.
  • the neurons that are arranged in a hidden layer are assigned ordinal numbers. In the example, one of the ordinal numbers 1, 2, 3, 4, 5, 6, 7, 8 is assigned to each neuron in the hidden layer 104. The same atomic number can also be assigned to groups of neurons. In the example, the ordinal numbers indicate a priority.
  • the general network architecture is designed, for example, as a deep artificial neural network.
  • the at least one hidden layer 104 is designed, for example, as a fully connected layer or as a convolutional layer. This is a preferred general network architecture; the general network architecture may additionally or alternatively be others
  • Layer types include.
  • FIG. 2 shows a schematic representation of steps in a method for training the artificial neural network.
  • the method for training the artificial neural network is based on the assumption that the artificial neural network comprises a plurality of layers,..., L k .
  • An ordinal number is assigned to each neuron of the artificial neural network.
  • a variety of epochs of training data arranged in batches are used for training.
  • each neuron in a layer L is assigned a unique ordinal number.
  • the ordinal numbers start at 1 and are
  • the neurons of a filter can form a group
  • the latter can be achieved by assigning the same ordinal number to the neurons in a group.
  • a maximum number of neurons m can be provided for each of the layers L before the start of the training.
  • the example provides only this maximum number of neurons m, in each of the Layers U to use.
  • every neuron becomes its
  • the training process is carried out in the same way as with a fixed, predetermined network architecture.
  • the artificial neural network is trained in a monitored manner. That is, for training
  • Input-output pairs (c; y,) are available.
  • the training data x are fed into the network and the output of the network, ie the prediction p (x), is compared with a desired result y using a so-called cost function.
  • C C ⁇ (p (x); y, which can be parameterized via a parameter set Q if necessary, a measure is given that indicates how far the prediction deviates from the basic truth. If the cost function is differentiable,
  • the gradients of C with reference to the weights of the neural network can be determined for each training pair (x; y,). The gradients can then be used to assign the weights of the neural network according to a predetermined rule
  • backpropagation This process is referred to below as backpropagation.
  • backpropagation There are many forms of backpropagation.
  • the gradients can be averaged over several training examples before the weights are updated.
  • the update rule for updating the weights may also vary.
  • regularizations can be applied and included in the cost function.
  • the procedure described below is independent of the exact design of the weight optimization process, i.e. the methods described below are universal in this regard and independent of the relevant characteristics of the training process.
  • an epoch with a large number of batches is selected in a step 202.
  • a step 204 is then carried out.
  • step 204 a batch is selected from the plurality of batches of the epoch.
  • a step 206 is then carried out.
  • step 206 a value u, for one layer U of the plurality of layers,
  • L k is determined.
  • the value u is determined for this layer L as a function of a maximum number of neurons m.
  • the value u is determined so that it is positive and less than or equal to the maximum number of neurons m ,.
  • the user can specify exactly how values u are selected. For example, u, uniform is sampled from the interval N n [1; m,]. A step 208 is then carried out.
  • a plurality of neurons is determined from the neurons of the layer L and depending on the value u.
  • only those neurons are used in layer L whose ordinal number is less than or equal to Ui.
  • the ordinal number that is assigned to a neuron is compared with the value u in a comparison and, depending on the result of the comparison, it is determined whether a neuron is part of a device-specific one
  • the device-specific network is therefore stochastic. For the plurality of neurons, forward propagation of the batch is carried out by the plurality of neurons to determine an output of the artificial neural network or the U-layer. A step 210 is then carried out.
  • step 210 a deviation of the output from an expected output is determined in a backward propagation.
  • a gradient is calculated in order to determine new weights for the multiplicity of neurons.
  • a step 212 is then carried out.
  • step 212 only the weights of the plurality of neurons are determined depending on the output.
  • step 214 is then carried out.
  • step 214 it is checked whether a termination criterion is met. If that
  • step 202 is carried out.
  • Training data point in a forward pass and the associated backward pass only updated the weights of the neurons used for that in this
  • the number of neurons is not given directly, but rather a logical group of neurons, e.g. represent a filter in a convolutional network to assign a common ordinal number.
  • FIG. 3 shows a schematic representation of steps in a method for producing a device-specific artificial neural network.
  • the method for producing the device-specific artificial neural network provides in a step 302 that the device-specific network architecture for the device-specific artificial neural network is determined as a function of the general network architecture. In particular, the number of neurons for a certain device-specific artificial neural network is systematically determined. The example defines how many neurons per layer are necessary to achieve the desired performance on a target device.
  • a step 304 is then carried out.
  • the neurons that are used for the device-specific network architecture are selected from the plurality of neurons as a function of the specified number.
  • a number of neurons is selected from a layer of the general network architecture, which are the neurons for a device-specific layer of the device-specific
  • neurons are selected from the general network architecture which form a group of neurons in the general network architecture and in the device-specific network architecture which define the same function in the device-specific network architecture as in the general network architecture. This leaves logical groups of neurons, e.g. Forming filters in a convolutional neural network.
  • a priority is defined for the neurons in the example.
  • the weights for a neuron are determined depending on the priority in the backpropagation or remain unchanged.
  • the priority gives the neurons a natural order.
  • the priorities and the training process are designed in such a way that neurons with a higher priority are used more frequently in the training process than those with a lower priority. This encodes important information in the weights belonging to neurons of higher priority.
  • a parameter is assigned to the neuron in the example that defines the priority.
  • the parameter is compared, for example, in a comparison with a threshold value which indicates the priority from which a neuron is to be selected for coding important information.
  • the weights for a specific neuron are determined either updated or remain unchanged depending on a result of the comparison with the threshold value.
  • an ordinal number is defined in particular as a parameter for each of the plurality of neurons.
  • the ordinal number characterizes the priority.
  • the threshold forms an upper limit.
  • Backpropagation only determines the updates of the weights for the neurons whose ordinal number is below the upper bound for the
  • Ordinal numbers lies.
  • the ordinal number gives the neurons a natural order.
  • the training process is designed in such a way that neurons with a smaller ordinal number are used more frequently in the training process than those with a high ordinal number.
  • neurons that functionally belong together are defined by the same ordinal number. This means that logical groups of
  • Neurons that fulfill a function in the network architecture
  • a separate threshold value or a separate upper limit can only be defined for the neurons of this layer.
  • the neurons are given their own natural order in each layer.
  • a step 306 is then carried out.
  • step 306 training data of a training data point for an output of the artificial neural network are propagated forward by the neurons of the device-specific network architecture.
  • a step 308 is then carried out.
  • step 308 the weights of the neurons of the device-specific network architecture are determined by backpropagation as a function of the output. The weights of the other neurons are retained.
  • Steps 302 to 308 are repeated to create a plurality of device-specific artificial neural networks depending on the general
  • the neurons are selected in this case in step 304 through which the in this case Training data point to be trained device-specific artificial neural network is defined.
  • step 306 training data are propagated forward in this case by the neurons that define the device-specific artificial neural network to be trained in this training data point.
  • step 308 in this case, only the weights of these neurons of the device-specific artificial neural network to be trained are determined by backpropagation as a function of the output. The weights of the other neurons are maintained.
  • the selection of neurons is made before or after the batch.
  • step 304 can be omitted during training with the batch.
  • a method for producing a classification device provides that a device-specific artificial neural network is determined according to the method according to one of the preceding claims.
  • the network architecture of the device-specific artificial neural network determined in this way is then transferred to the classification device without further training.
  • the classification device can in particular be used for a robot, a tool or an at least partially autonomous vehicle.
  • Training data overfitted Another advantage is that a model is found that has an optimal architecture for the underlying question under restrictions such as storage space. Another advantage is that several models for different target platforms with different restrictions are trained at the same time, which leads to comparable behavior on comparable data.
  • This approach can be used in any area in which neural networks are used, especially if the resources on the target platform are limited. This approach is of particular relevance when it comes to autonomous driving, in which neural networks are used on control units.

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)
  • Feedback Control In General (AREA)

Abstract

Verfahren zur Herstellung einer Klassifizierungseinrichtung, zur Herstellung einer Vielzahl gerätespezifischer künstlicher neuronaler Netzwerke und Verfahren zum Trainieren einer Vielzahl gerätespezifischer künstlicher neuronaler Netzwerke, die eine Vielzahl von Schichten umfassen, wobei das Verfahren zum Trainieren in einer ersten Iteration für einen ersten Trainingsdatenpunkt eines ersten Batches aus einer Vielzahl Batches einer Epoche von Trainingsdaten folgende Schritte umfasst: stochastisches Bestimmen (206) eines Werts für eine Schicht der Vielzahl von Schichten, wobei der Wert abhängig von einer maximalen Anzahl von Neuronen für diese Schicht bestimmt wird, Bestimmen (208) einer Vielzahl von Neuronen aus den Neuronen der Schicht und abhängig vom Wert, Vorwärtspropagation (208) des Batches durch die Vielzahl von Neuronen, Bestimmen (208) einer Ausgabe des künstlichen neuronalen Netzwerks oder der Schicht, Rückwärtspropagation (210), insbesondere mit Berechnung eines Gradienten einer Abweichung der Ausgabe von einer erwarteten Ausgabe, wobei für eine zweite Iteration die Gewichte der Vielzahl der Neuronen abhängig von der Ausgabe bestimmt werden (212) und wobei die Gewichte anderer Neuronen der Schicht für die zweite Iteration für einen zweiten Batch aus der Vielzahl Batches erhalten bleiben.

Description

Beschreibung
Titel
Verfahren und Vorrichtung für Training und Herstellung eines künstlichen neuronalen Netzes
Stand der Technik
Die Erfindung betrifft ein Verfahren und eine Vorrichtung für Training und zur Herstellung eines künstlichen neuronalen Netzes.
Künstliche neuronale Netze sind zur Lösung vielfältiger Probleme einsetzbar.
Eine der Schwierigkeiten besteht darin, eine Architektur der Netzstruktur des künstlichen neuronalen Netzes so zu wählen, dass es möglich ist, ein
zugrundeliegendes Problem optimal zu lösen. Für eine gute Performance ist es beispielsweise essentiell, die Anzahl der Neuronen pro Netzwerkschicht geeignet zu wählen, so dass das künstliche neuronale Netzwerk eine gute
Generalisierbarkeit auf neue, ungesehen Daten aufweist und nicht ausschließlich auf Trainingsdaten konditioniert ist, mit denen das künstlichen neuronale Netz trainiert wurde. Eine weitere Schwierigkeit besteht darin, eine Architektur der Netzstruktur des künstlichen neuronalen Netzes so zu wählen, dass der Einsatz auf einem System mit beschränkten Ressourcen wie Speicher oder
Rechenkapazität möglich ist. Für den Einsatz in einer Umgebung, die in Hinblick auf Ressourcen Beschränkungen hat, beispielsweise in einem Steuergerät in einem Fahrzeug, einem Smartphone oder einem Tablet, ist es beispielsweise essentiell die Anzahl der Neuronen pro Netzwerkschicht möglichst gering zu wählen, um ein kleines künstliches neuronales Netz herzustellen, das dennoch eine für das zugrundeliegende Problem ausreichende Performance hat. Der Einsatz künstlicher neuronale Netze zur Lösung desselben Problems auf unterschiedlichen Geräten erfordert daher verschiedene gerätespezifische Modelle mit unterschiedlichen Netzwerkstrukturen, die unter den gegebenen Randbedingungen einen optimalen Kompromiss zwischen Ressourcenbedarf und Leistungsfähigkeit darstellt.
Es ist einerseits möglich, unterschiedliche gerätespezifische Modelle mit den unterschiedlichen Netzwerkstrukturen für jedes der Geräte herzustellen und separat zu trainieren. Dies erfordert jedoch ein separates Training der gerätespezifischen Modelle für jedes der unterschiedlichen Geräte. Es ist andererseits möglich, ein geräteunspezifisches Modell mit einer tiefen neuronalen Netzwerkstruktur zu trainieren, wobei die Anzahl der Neuronen durch Dropout im Training verringert wird. Dabei wird beim Training des
geräteunspezifischen Modells eine beispielsweise vorher spezifizierte Anzahl von Neuronen in jeder Schicht des künstlichen neuronalen Netzwerks ausgeschaltet. Damit sind jedoch keine gerätespezifischen Modelle für unterschiedliche Geräte trainier- und herstellbar.
Wünschenswert ist es daher das Vorgehen für gerätespezifische Modelle demgegenüber zu verbessern.
Offenbarung der Erfindung
Dies wird durch Verfahren und Vorrichtungen nach den unabhängigen
Ansprüchen erreicht.
Ein Verfahren zur Herstellung einer Vielzahl gerätespezifischer künstlicher neuronaler Netzwerke sieht vor, dass in einer ersten Iteration abhängig von einer allgemeinen Netzwerkarchitektur, die eine Vielzahl Neuronen umfasst, Neuronen einer gerätespezifischen Netzwerkarchitektur für eines der Vielzahl
gerätespezifischer künstlicher neuronaler Netzwerke stochastisch bestimmt werden, wobei ein Trainingsdatenpunkt für eine Ausgabe des künstlichen neuronalen Netzwerks durch die Neuronen der gerätespezifischen
Netzwerkarchitektur vorwärts propagiert wird, wobei für eine zweite Iteration die Gewichte der Neuronen der gerätespezifischen Netzwerkarchitektur durch Backpropagation abhängig von der Ausgabe bestimmt werden, und wobei die Gewichte der anderen Neuronen für die zweite Iteration erhalten bleiben. Damit wird das Modelltraining für mehrere Geräte auf denen die Funktion des künstlichen neuronalen Netzwerks ausgeführt werden soll iterativ durchgeführt. Für jeden Trainingsdatenpunkt wird eine Netzwerkarchitektur insbesondere stochastisch bestimmt, die optimiert werden soll. Die so hergestellten
gerätespezifischen künstlichen neuronalen Netzwerke weisen eine optimierte Netzwerkarchitektur für eine gegebene Fragestellung unter Einbeziehung von Randbedingungen durch Ressourcenbeschränkungen auf. Damit ist eine Pareto- optimale Lösung hinsichtlich der Größe des künstlichen neuronalen Netzwerks gegenüber seiner Performance wählbar, ohne dass das künstliche neuronale Netzwerk hierzu nachtrainiert werden muss. Alternativ dazu kann nach-trainiert werden, um die Performance weiter zu erhöhen. Für eine Berücksichtigung der Ressourcenbeschränkungen wird beispielweise insbesondere durch eine Festlegung der Anzahl Neuronen für ein bestimmtes gerätespezifisches künstliches neuronales Netzwerk systematisch festgelegt, wie viele Neuronen pro Layer nötig sind, um eine gewünschte Leistung auf dem Gerät zu erzielen. Der Trainingsprozess für die verschiedenen gerätespezifischen künstlichen neuronalen Netze ist nicht viel aufwändiger, als das normale Training eines künstlichen neuronalen Netzes. Zudem wird ermöglicht, die Vielzahl an möglichen verschiedenen Netzwerkarchitekturen insbesondere mit einer oberen Schranke für die Anzahl an Neuronen pro Schicht in deren Performance gegeneinander zu evaluieren, ohne explizit jedes entsprechende
gerätespezifische Modell separat zu trainieren. Dies ermöglicht es, automatisiert, entweder grundsätzlich eine optimierte Netzarchitektur für das zugrunde liegende Problem zu finden, oder aber eine, die die entsprechenden Randbedingungen bezüglich der Ressourcen erfüllt.
Vorzugsweise wird eine Vielzahl gerätespezifischer künstlicher neuronaler Netzwerke abhängig von der allgemeinen Netzwerkarchitektur hergestellt, wobei für jeden Trainingsdatenpunkt aus einer Vielzahl Trainingsdatenpunkte die Neuronen ausgewählt werden, durch die das in diesem Trainingsdatenpunkt zu trainierende gerätespezifischen künstlichen neuronalen Netzwerke definiert ist, wobei für jeden Trainingsdatenpunkt durch die Neuronen, die das in diesem Trainingsdatenpunkt zu trainierende gerätespezifischen künstlichen neuronalen Netzwerke definieren, Trainingsdaten vorwärts propagiert werden, wobei die Gewichte der Neuronen des zu trainierenden gerätespezifischen künstlichen neuronalen Netzwerks durch Backpropagation abhängig von der Ausgabe bestimmt werden, und wobei die Gewichte der anderen Neuronen beibehalten werden. Durch Training im künstlichen neuronalen Netzwerk mit der allgemeinen Netzwerkarchitektur in einer Vielzahl Trainingsdatenpunkte wird so eine Vielzahl gerätespezifischer künstlicher neuronaler Netzwerke mit gerätespezifischer Netzwerkarchitektur hergestellt.
Vorzugsweise werden aus einer Schicht der allgemeinen Netzwerkarchitektur die Neuronen ausgewählt, die die Neuronen für eine gerätespezifische Schicht der gerätespezifischen Netzwerkarchitektur sind. Damit bildet eine Untermenge der Neuronen des gesamten künstlichen neuronalen Netzwerks die Neuronen derselben Schicht des gerätespezifischen künstlichen neuronalen Netzwerks.
Vorzugsweise werden aus der allgemeinen Netzwerkarchitektur die Neuronen ausgewählt, die in der allgemeinen Netzwerkarchitektur und in der
gerätespezifischen Netzwerkarchitektur eine Gruppe Neuronen bilden, die in der gerätespezifischen Netzwerkarchitektur dieselbe Funktion wie in der allgemeinen Netzwerkarchitektur definieren. Dadurch bleiben logische Gruppen von
Neuronen, die z.B. Filter in einem convolutional neural network bilden, erhalten.
Vorzugsweise ist für ein Neuron eine Priorität definiert, wobei die Gewichte für das Neuron abhängig von der Priorität in der Backpropagation bestimmt werden oder unverändert bleiben. Den Neuronen wird durch die Priorität eine natürliche Ordnung gegeben. Der Trainingsprozess ist derart gestaltet, dass Neuronen mit einer höheren Priorität im Trainingsprozess häufiger verwendet werden als solche mit einer niedrigeren Priorität. Anschaulich gesehen wird das Netzwerk im Trainingsprozess darauf konditioniert, wichtige Informationen in den Neuronen höherer Priorität zu codieren. Anders formuliert ist die Information die in
Neuronen codiert ist desto spezifischer desto niedriger deren Priorität ist.
Vorzugsweise ist dem Neuron ein Parameter zugeordnet, der die Priorität definiert, wobei der Parameter in einem Vergleich mit einem Schwellwert verglichen wird, und wobei die Gewichte für das Neuron abhängig von einem Ergebnis des Vergleichs bestimmt werden oder unverändert bleiben. Dieser Parameter ist im Training einfach anhand des Vergleichs mit dem Schwellwert auswertbar.
Vorzugsweise ist für jedes der Vielzahl Neuronen eine Ordnungszahl definiert, die die Priorität charakterisiert, wobei in der Backpropagation nur die Neuronen bestimmt werden, deren Ordnungszahl unterhalb einer oberen Schranke für die Ordnungszahlen liegt. Die Ordnungszahl gibt den Neuronen eine natürliche Ordnung. Der Trainingsprozess ist derart gestaltet, dass Neuronen mit einer kleineren Ordnungszahl im Trainingsprozess häufiger verwendet werden als solche mit einer hohen Ordnungszahl. Wichtige Informationen werden damit in den Neuronen niedriger Ordnung codiert. Das bedeutet, je höher die Ordnung eines Neurons ist, desto spezifischer ist die dort codierte Information. Dadurch wird wichtige Information nur in den Gewichten der Neuronen, die mit einer niedrigen Ordnungszahl korrespondieren, codiert.
Vorzugsweise sind funktional zusammengehörende Neuronen durch dieselbe Ordnungszahl definiert. Damit sind logische Gruppen von Neuronen, die eine Funktion in der Netzwerkarchitektur erfüllen, berücksichtigbar.
Vorzugsweise ist für jede Schicht eines mehrschichtigen künstlichen neuronalen Netzes ein separater Schwellwert oder eine separate obere Schranke nur für die Neuronen dieser Schicht definiert. Den Neuronen ist damit in jeder Schicht eine eigene natürliche Ordnung gegeben.
Vorzugsweise ist die allgemeine Netzwerkarchitektur als tiefes künstliches neuronales Netzwerk ausgebildet, insbesondere mit wenigstens einer Schicht, die als Fully Connected Layer oder als Convolutional Layer ausgebildet ist. Dies ist eine bevorzugte Netzwerkarchitektur, die Netzwerkarchitektur kann zusätzlich oder alternativ andere Layertypen umfassen.
Ein Verfahren zur Herstellung einer Klassifizierungseinrichtung insbesondere für einen Roboter, ein Werkzeug oder ein zumindest teilweise autonomes Fahrzeug sieht vor, dass ein gerätespezifisches künstliches neuronales Netzwerk nach dem Verfahren gemäß eines der vorherigen Ansprüche bestimmt wird, wobei die Netzwerkarchitektur des so bestimmten gerätespezifischen künstlichen neuronalen Netzwerks ohne weiteres Training auf die Klassifizierungseinrichtung übertragen wird. Ein gesondertes Nachtrainieren ist nicht nötig, könnte aber zu besserer Prädiktion führen. Dies ermöglicht eine effiziente Implementierung derselben Funktionalität auf Geräten, die unterschiedliche Ressourcen für die Funktionalität bereitstellen. Ein Verfahren zum Trainieren einer Vielzahl gerätespezifischer künstlicher neuronaler Netzwerke, die eine Vielzahl von Schichten umfassen ist ebenfalls vorgesehen. Das Verfahren zum Trainieren umfasst in einer ersten Iteration für einen ersten Trainingsdatenpunkt eines ersten Batches aus einer Vielzahl Batches einer Epoche von Trainingsdaten folgende Schritte: stochastisches Bestimmen eines Werts für eine Schicht der Vielzahl von Schichten, wobei der Wert abhängig von einer maximalen Anzahl von Neuronen für diese Schicht bestimmt wird, Bestimmen einer Vielzahl von Neuronen aus den Neuronen der Schicht und abhängig vom Wert, Vorwärtspropagation des Batches durch die Vielzahl von Neuronen, Bestimmen einer Ausgabe des künstlichen neuronalen Netzwerks oder der Schicht, Rückwärtspropagation, insbesondere mit
Berechnung eines Gradienten einer Abweichung der Ausgabe von einer erwarteten Ausgabe, wobei für eine zweite Iteration die Gewichte der Vielzahl der Neuronen abhängig von der Ausgabe bestimmt werden und wobei die Gewichte anderer Neuronen der Schicht für die zweite Iteration für einen zweiten Batch aus der Vielzahl Batches erhalten bleiben. Ein Batch bezeichnet eine Untermenge der Trainingsdaten anhand derer der Gradient für das Update der Gewichte berechnet wird. Ein Batch enthält Trainingsdatenpunkte. Bei der Iteration über die Batches werden in einem Forwardpass und dem zugehörigen Backwardpass nur die Gewichte der Neuronen aktualisiert, die für das in diesem Batch zu trainierende gerätespezifische künstliche neuronale Netzwerk trainiert werden sollen. Die anderen Gewichte bleiben unverändert erhalten für die nächsten Trainingsdatenpunkte. Im Updateschritt des Trainings führt dies nur zu einer Änderung der Gewichte, die mit diesen Neuronen korrespondieren. Trainiert man auf diese Weise, werden implizit die vielen unterschiedlichen
Netzwerkarchitekturen, die sich durch die Anzahl der Neuronen in den Layern unterscheiden, synchron trainiert.
Vorzugsweise wird der Wert positiv und kleiner oder gleich der maximalen Anzahl von Neuronen bestimmt. Die Methodik, wie die Werte gewählt werden, ist stochastisch, die Wahl der Verteilung der Werte ist hierbei nicht festgelegt und kann vom Anwender vorgegeben werden. Insbesondere kann der Wert abhängig von der maximalen Anzahl Neuronen uniform aus einem Intervall zwischen Eins und der maximalen Anzahl Neuronen gesampelt werden. Vorzugsweise ist vorgesehen, eine maximale Anzahl von Neuronen für jede der Schichten insbesondere vor Beginn des Trainings vorzugeben. Damit werden gerätespezifische Voraussetzungen hinsichtlich der Ressourcen berücksichtigt.
Vorzugsweise ist jedem Neuron des künstlichen neuronalen Netzwerks eine Ordnungszahl zugeordnet, wobei in einem Vergleich die Ordnungszahl, die einem Neuron zugeordnet ist, mit dem Wert verglichen wird, und wobei abhängig vom Ergebnis des Vergleichs bestimmt wird, ob ein Neuron Teil eines
gerätespezifischen künstlichen neuronalen Netzwerks ist oder nicht. Der Trainingsprozess erfolgt ansonsten, wie bei einer festen, vorgegebenen
Architektur. Gegebenenfalls kann jedoch eine höhere Anzahl der Epochen notwendig sein. Nach dem Training kann systematisch ausgewertet werden, welche Architektur ggf. unter den gegebenen Randbedingungen optimal ist. Hierfür können Testdaten auf den unterschiedlichen Architekturen ausgewertet werden,
indem man wiederum für die Schichten einen Wert wählt und bei der Auswertung nur diejenigen Neuronen verwendet, deren Ordnungszahl kleiner oder gleich dem Wert ist.
Weitere vorteilhafte Ausgestaltungen ergeben sich aus der folgenden
Beschreibung und der Zeichnung. In der Zeichnung zeigt
Fig. 1 eine schematische Darstellung eines künstlichen neuronalen Netzwerks, Fig. 2 eine schematische Darstellung von Schritten in einem Verfahren zum Trainieren des künstlichen neuronalen Netzwerks,
Fig. 3 eine schematische Darstellung von Schritten in einem Verfahren zum Herstellen eines gerätespezifischen künstlichen neuronalen Netzwerks.
Figur 1 zeigt eine schematische Darstellung eines künstlichen neuronalen Netzwerks 100.
Das künstliche neuronale Netzwerk 100 umfasst eine allgemeine
Netzwerkarchitektur mit einer Eingabeschicht 102, wenigstens einer verborgene Schicht 104 und einer Ausgabeschicht 106. In Figur 1 ist eine verborgene Schicht 104 dargestellt, es können jedoch mehrere verborgene Schichten vorgesehen sein. Den Neuronen, die in einer verborgenen Schicht angeordnet sind, sind Ordnungszahlen zugeordnet. Im Beispiel ist jedem Neuron in der verborgenen Schicht 104 eine der Ordnungszahlen 1 , 2, 3, 4, 5, 6, 7, 8 zugeordnet. Es können auch Gruppen von Neuronen dieselbe Ordnungszahl zugeordnet werden. Die Ordnungszahlen geben im Beispiel eine Priorität an.
Die allgemeine Netzwerkarchitektur ist beispielsweise als tiefes künstliches neuronales Netzwerk ausgebildet. Die wenigstens eine verborgene Schicht 104 ist beispielsweise als Fully Connected Layer oder als Convolutional Layer ausgebildet. Dies ist eine bevorzugte allgemeine Netzwerkarchitektur, die allgemeine Netzwerkarchitektur kann zusätzlich oder alternativ andere
Layertypen umfassen.
Figur 2 stellt eine schematische Darstellung von Schritten in einem Verfahren zum Trainieren des künstlichen neuronalen Netzwerks dar.
Das Verfahren zum Trainieren des künstlichen neuronalen Netzwerks geht davon aus, dass das künstliche neuronale Netzwerk eine Vielzahl von Schichten , ..., Lk umfasst. Jedem Neuron des künstlichen neuronalen Netzwerks ist eine Ordnungszahl zugeordnet.
Zum Trainieren werden eine Vielzahl Epochen mit Trainingsdaten verwendet, die in Batches angeordnet sind.
Im Beispiel wird jedem Neuron in einer Schicht L eine eindeutige Ordnungszahl zugeordnet. Die Ordnungszahlen beginnen im Beispiel bei 1 und sind
aufsteigend geordnet. Dadurch wird eine natürliche Ordnung der Neuronen der Schicht U definiert. Dies erfolgt im Beispiel durch Durchnummerieren der Neuronen. Wenn mehrere Neuronen zu einer Gruppe zusammengefasst sind, wird die Ordnungsstruktur auf dieser Gruppe definiert. Insbesondere können bei Convolutional Layern die Neuronen eines Filters zu einer Gruppe
zusammengefasst werden. Letzteres kann darüber realisiert werden, den Neuronen einer Gruppe dieselbe Ordnungszahl zuzuweisen.
Es kann vorgesehen sein vor dem Beginn des Trainings eine maximale Anzahl von Neuronen m, für jede der Schichten L vorzugeben. In diesem Fall ist im Beispiel vorgesehen, nur diese maximale Anzahl von Neuronen m, in jeder der Schichten U zu verwenden. In diesem Fall wird jedes Neuron dessen
Ordnungszahl kleiner oder gleich m, ist verwendet. Die übrigen Neuronen mit höheren Ordnungszahlen werden nicht verwendet.
Der Trainingsprozess erfolgt bis auf die folgenden Änderungen, wie bei einer festen, vorgegebenen Netzwerkarchitektur. Im Beispiel wird das künstliche neuronale Netzwerk überwacht trainiert. Das heißt, dass für das Training
Eingangs-Ausgangspaare (c; y,) zur Verfügung stehen. Die Trainingsdaten x, werden in das Netzwerk eingespeist und die Ausgabe des Netzwerkes, d.h. die Prädiktion p(x), über eine sogenannte Kostenfunktion mit einem gewünschten Ergebnis y, verglichen. Über eine beispielhafte Kostenfunktion C = C©(p(x); y , die bei Bedarf über einen Parametersatz Q parametrisiert sein kann, ist damit ein Maß vorgegeben, das angibt, wie weit die Prädiktion von der Grundwahrheit abweicht. Ist die Kostenfunktion differenzierbar, können zu jedem Trainingspaar (x; y,) die Gradienten von C mit Bezug auf die Gewichte des neuronalen Netzes bestimmt werden. Die Gradienten können dann dazu verwendet werden, die Gewichte des neuronalen Netzes nach einer vorgegebenen Regel zu
aktualisieren, so dass die Performance des Netzes iterativ verbessert wird.
Dieser Vorgang wird im Folgenden als Backpropagation bezeichnet. Es gibt vielerlei Ausgestaltungen der Backpropagation. So können beispielsweise bei einer Batchoptimierung die Gradienten über mehrere Trainingsbeispiele gemittelt werden, bevor die Gewichte ein Update erfahren. Die Aktualisierungsregel für die Aktualisierung der Gewichte kann ebenfalls variieren. Des Weiteren können Regularisierungen angewandt werden und in die Kostenfunktion mit eingehen. Die im Folgenden beschriebene Vorgehensweis ist unabhängig von der genauen Ausgestaltung des Optimierungsprozesses der Gewichte, d.h. die im Folgenden beschriebenen Verfahren sind diesbezüglich universell und unabhängig von der diesbezüglichen Ausprägung des Trainingsprozesses.
Nach dem Start wird in einem Schritt 202 eine Epoche mit einer Vielzahl Batches ausgewählt. Anschließend wird ein Schritt 204 ausgeführt.
Im Schritt 204 wird ein Batch aus der Vielzahl von Batches der Epoche ausgewählt. Anschließend wird ein Schritt 206 ausgeführt. Im Schritt 206 wird ein Wert u, für eine Schicht U der Vielzahl von Schichten ,
Lk bestimmt. Der Wert u, wird abhängig von einer maximalen Anzahl von Neuronen m, für diese Schicht L bestimmt. Im Beispiel wird der Wert u, so bestimmt, dass er positiv ist und kleiner oder gleich der maximalen Anzahl von Neuronen m,. Wie genau Werte u, gewählt werden, ist im Beispiel vom Anwender vorgebbar. Beispielsweise wird u, uniform aus dem Intervall N n [1 ;m,] gesampelt. Anschließend wird ein Schritt 208 ausgeführt.
Im Schritt 208 wird eine Vielzahl von Neuronen aus den Neuronen der Schicht L und abhängig vom Wert u, bestimmt. Im Beispiel werden in der Schicht L ausschließlich die Neuronen verwendet, deren Ordnungszahl kleiner oder gleich Ui ist. Dazu wird beispielsweise in einem Vergleich die Ordnungszahl, die einem Neuron zugeordnet ist, mit dem Wert u, verglichen und abhängig vom Ergebnis des Vergleichs bestimmt, ob ein Neuron Teil eines gerätespezifischen
künstlichen neuronalen Netzwerks ist oder nicht. Das bedeutet, eine so bestimmte gerätespezifische Netzwerkarchitektur umfasst in der Schicht L nur diese Vielzahl von Neuronen. Die Auswahl der Neuronen für das
gerätespezifische Netzwerk ist damit stochastisch. Für die Vielzahl von Neuronen wird eine Vorwärtspropagation des Batches durch die Vielzahl von Neuronen ausgeführt, um eine Ausgabe des künstlichen neuronalen Netzwerks oder der Schicht U zu bestimmen. Anschließend wird ein Schritt 210 ausgeführt.
Im Schritt 210 wird in einer Rückwärtspropagation eine Abweichung der Ausgabe von einer erwarteten Ausgabe bestimmt. Insbesondere erfolgt eine Berechnung eines Gradienten, um neue Gewichte für die Vielzahl von Neuronen zu bestimmen. Anschließend wird ein Schritt 212 ausgeführt.
Im Schritt 212 werden nur die Gewichte der Vielzahl der Neuronen abhängig von der Ausgabe bestimmt. Anschließend wird ein Schritt 214 ausgeführt.
Im Schritt 214 wird geprüft, ob ein Abbruchkriterium erfüllt ist. Falls das
Abbruchkriterium erfüllt ist, wird das Training beendet. Falls das Abbruchkriterium nicht erfüllt ist wird der Schritt 202 ausgeführt.
Durch diese Iteration über die Epochen und Batches werden für einen
Trainingsdatenpunkt in einem Forwardpass und dem zugehörigen Backwardpass nur die Gewichte der Neuronen aktualisiert, die für das in diesem
Trainingsdatenpunkt zu trainierende gerätespezifische künstliche neuronale Netzwerk trainiert werden. Im Updateschritt des Trainings führt dies nur zu einer Änderung der Gewichte, die mit diesen Neuronen korrespondieren. Dies führt dazu, dass wichtige Informationen für die zugrundeliegende Aufgabe über Neuronen mit einer niedrigen Ordnungszahl codiert werden. Trainiert man auf diese Weise, werden implizit die vielen unterschiedlichen Netzwerkarchitekturen, die sich durch die Anzahl der Neuronen in den Layern U unterscheiden, synchron trainiert.
Es kann vorgesehen sein, Testdaten auf unterschiedlichen im künstlichen neuronalen Netzwerk möglichen Netzwerkarchitekturen auszuwerten, indem für deren Schichten U mit i e [1 , ..., k] einen Wert 1 < u, < m, wählt und bei der Auswertung nur diejenigen Neuronen verwendet, deren Ordnungszahl kleiner oder gleich u, ist.
Es kann vorgesehen sein, nicht die Anzahl der Neuronen direkt anzugeben, sondern vielmehr einer logischen Gruppe von Neuronen, die z.B. einen Filter in einem Convolutional Netzwerk darstellen, eine gemeinsame Ordnungszahl zuzuweisen.
Figur 3 zeigt eine schematische Darstellung von Schritten in einem Verfahren zum Herstellen eines gerätespezifischen künstlichen neuronalen Netzwerks.
Das Verfahren zur Herstellung des gerätespezifischen künstlichen neuronalen Netzwerks sieht in einem Schritt 302 vor, dass abhängig von der allgemeinen Netzwerkarchitektur, die gerätespezifische Netzwerkarchitektur für das gerätespezifische künstliche neuronale Netzwerk bestimmt wird. Insbesondere wird die Anzahl Neuronen für ein bestimmtes gerätespezifisches künstliches neuronales Netzwerk systematisch festgelegt. Im Beispiel wird festgelegt, wie viele Neuronen pro Layer nötig sind, um eine gewünschte Leistung auf einem Zielgerät zu erzielen.
Anschließend wird ein Schritt 304 ausgeführt. Im Schritt 304 werden aus der Vielzahl der Neuronen abhängig von der festgelegten Anzahl die Neuronen ausgewählt, die für die gerätespezifische Netzwerkarchitektur verwendet werden. Im Beispiel wird von einer Schicht der allgemeinen Netzwerkarchitektur eine Anzahl Neuronen ausgewählt, die die Neuronen für eine gerätespezifische Schicht der gerätespezifischen
Netzwerkarchitektur definieren
Es kann vorgesehen sein, dass aus der allgemeinen Netzwerkarchitektur Neuronen ausgewählt werden, die in der allgemeinen Netzwerkarchitektur und in der gerätespezifischen Netzwerkarchitektur eine Gruppe Neuronen bilden, die in der gerätespezifischen Netzwerkarchitektur dieselbe Funktion wie in der allgemeinen Netzwerkarchitektur definieren. Dadurch bleiben logische Gruppen von Neuronen, die z.B. Filter in einem convolutional neural network bilden, erhalten.
Für die Neuronen ist im Beispiel eine Priorität definiert. Die Gewichte für ein Neuron werden abhängig von der Priorität in der Backpropagation bestimmt oder bleiben unverändert. Den Neuronen wird durch die Priorität eine natürliche Ordnung gegeben. Die Prioritäten und der Trainingsprozess sind derart gestaltet, dass Neuronen mit einer höheren Priorität im Trainingsprozess häufiger verwendet werden als solche mit einer niedrigeren Priorität. Dadurch werden wichtige Informationen in den Gewichten, die zu Neuronen höherer Priorität gehören, codiert.
Dazu ist dem Neuron im Beispiel ein Parameter zugeordnet, der die Priorität definiert. Der Parameter wird beispielsweise in einem Vergleich mit einem Schwellwert verglichen, der angibt, ab welcher Priorität ein Neuron zum Codieren von wichtiger Information auszuwählen ist. Die Gewichte für ein bestimmtes Neuron werden in diesem Aspekt abhängig von einem Ergebnis des Vergleichs mit dem Schwellwert entweder aktualisiert bestimmt oder bleiben unverändert.
In einem Aspekt ist für jedes der Vielzahl Neuronen eine Ordnungszahl insbesondere als Parameter definiert. Die Ordnungszahl charakterisiert die Priorität. Der Schwellwert bildet in diesem Fall eine obere Schranke. In der
Backpropagation werden nur die Aktualisierungen der Gewichte für die Neuronen bestimmt, deren Ordnungszahl unterhalb der oberen Schranke für die
Ordnungszahlen liegt. Die Ordnungszahl gibt den Neuronen eine natürliche Ordnung. Der Trainingsprozess ist derart gestaltet, dass Neuronen mit einer kleineren Ordnungszahl im Trainingsprozess häufiger verwendet werden als solche mit einer hohen Ordnungszahl.
Es kann vorgesehen sein, dass funktional zusammengehörende Neuronen durch dieselbe Ordnungszahl definiert sind. Damit sind logische Gruppen von
Neuronen, die eine Funktion in der Netzwerkarchitektur erfüllen,
berücksichtigbar.
Für jede Schicht eines mehrschichtigen künstlichen neuronalen Netzes kann ein separater Schwellwert oder eine separate obere Schranke nur für die Neuronen dieser Schicht definiert sein. Den Neuronen ist damit in jeder Schicht eine eigene natürliche Ordnung gegeben.
Anschließend wird ein Schritt 306 ausgeführt.
Im Schritt 306 werden Trainingsdaten eines Trainingsdatenpunkts für eine Ausgabe des künstlichen neuronalen Netzwerks durch die Neuronen der gerätespezifischen Netzwerkarchitektur vorwärts propagiert.
Anschließend wird ein Schritt 308 ausgeführt.
Im Schritt 308 werden die Gewichte der Neuronen der gerätespezifischen Netzwerkarchitektur durch Backpropagation abhängig von der Ausgabe bestimmt. Die Gewichte der anderen Neuronen bleiben erhalten.
Die Schritt 302 bis 308 werden wiederholt, um eine Vielzahl gerätespezifischer künstlicher neuronaler Netzwerke abhängig von der allgemeinen
Netzwerkarchitektur herzustellen.
Für jeden Trainingsdatenpunkt aus einer Vielzahl Trainingsdatenpunkte werden in diesem Fall im Schritt 304 die Neuronen ausgewählt, durch die das in diesem Trainingsdatenpunkt zu trainierende gerätespezifische künstliche neuronale Netzwerk definiert ist.
Im Schritt 306 werden in diesem Fall durch die Neuronen, die das in diesem Trainingsdatenpunkt zu trainierende gerätespezifische künstliche neuronale Netzwerk definieren, Trainingsdaten vorwärts propagiert.
Im Schritt 308 werden in diesem Fall nur die Gewichte dieser Neuronen des zu trainierenden gerätespezifischen künstlichen neuronalen Netzwerks durch Backpropagation abhängig von der Ausgabe bestimmt. Die Gewichte der anderen Neuronen werden beibehalten.
Es kann vorgesehen sein, mit einem Batch von Trainingsdatenpunkten dasselbe gerätespezifische künstliche neuronale Netzwerk zu trainieren. In diesem Fall wird die Auswahl der Neuronen vor oder nach dem Batch getroffen. Während des Trainings mit dem Batch kann der Schritt 304 in diesem Fall entfallen.
Ein Verfahren zur Herstellung einer Klassifizierungseinrichtung sieht vor, dass ein gerätespezifisches künstliche neuronale Netzwerk nach dem Verfahren gemäß eines der vorherigen Ansprüche bestimmt wird. Die Netzwerkarchitektur des so bestimmten gerätespezifischen künstlichen neuronalen Netzwerks wird anschießend ohne weiteres Training auf die Klassifizierungseinrichtung übertragen. Die Klassifizierungseinrichtung kann insbesondere für einen Roboter, ein Werkzeug oder ein zumindest teilweise autonomes Fahrzeug verwendet werden.
Ein Vorteil dieser Vorgehensweise sind insbesondere, dass ein Modell aufgefunden wird, das eine optimale Architektur für die zugrundeliegende
Fragestellung vorweist, d.h. nicht größer als notwendig ist und nicht auf
Trainingsdaten overfitted. Ein weiterer Vorteil ist, dass ein Modell aufgefunden wird, das eine optimale Architektur für die zugrundeliegende Fragestellung unter Einschränkungen, wie z.B. Speicherplatz, vorweist. Ein weiterer Vorteil ist, dass mehrere Modelle für unterschiedliche Zielplattformen mit unterschiedlichen Einschränkungen zeitgleich trainiert werden, was zu einem vergleichbaren Verhalten auf vergleichbaren Daten führt. Dieses Vorgehen kann in jedem Bereich eingesetzt werden, in dem neuronale Netze verwendet werden, insbesondere wenn die Ressourcen auf der Zielplattform beschränkt sind. Insbesondere bei der Thematik autonomes Fahren, bei dem neuronale Netze auf Steuergeräten eingesetzt werden, ist dieses Vorgehen von besonderer Relevanz.

Claims

Ansprüche
1. Verfahren zur Herstellung einer Vielzahl gerätespezifischer künstlicher
neuronaler Netzwerke, dadurch gekennzeichnet, dass in einer ersten Iteration abhängig von einer allgemeinen Netzwerkarchitektur, die eine Vielzahl Neuronen umfasst, Neuronen einer gerätespezifischen Netzwerkarchitektur für das gerätespezifische künstliche neuronale Netzwerk stochastisch bestimmt werden (304), wobei ein Trainingsdatenpunkt für eine Ausgabe des künstlichen neuronalen Netzwerks durch die Neuronen der
gerätespezifischen Netzwerkarchitektur vorwärts propagiert wird (306), wobei für eine zweite Iteration die Gewichte der Neuronen der gerätespezifischen Netzwerkarchitektur durch Backpropagation abhängig von der Ausgabe bestimmt werden (308), und wobei die Gewichte der anderen Neuronen für die zweite Iteration erhalten bleiben (308).
2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, das eine Vielzahl gerätespezifischer künstlicher neuronaler Netzwerke abhängig von der allgemeinen Netzwerkarchitektur hergestellt wird, wobei für jeden
Trainingsdatenpunkt aus einer Vielzahl Trainingsdatenpunkte die Neuronen ausgewählt werden (304), durch die das in diesem Trainingsdatenpunkt zu trainierende gerätespezifischen künstlichen neuronalen Netzwerke definiert ist, wobei für jeden Trainingsdatenpunkt durch die Neuronen, die das in diesem Trainingsdatenpunkt zu trainierende gerätespezifischen künstlichen neuronalen Netzwerke definieren, Trainingsdaten vorwärts propagiert werden (306), wobei die Gewichte der Neuronen des zu trainierenden
gerätespezifischen künstlichen neuronalen Netzwerks durch Backpropagation abhängig von der Ausgabe bestimmt werden (308), und wobei die Gewichte der anderen Neuronen beibehalten werden (308).
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass aus einer Schicht der allgemeinen Netzwerkarchitektur die Neuronen ausgewählt werden (304), die die Neuronen für eine gerätespezifische Schicht der gerätespezifischen Netzwerkarchitektur sind.
4. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass aus der allgemeinen Netzwerkarchitektur Neuronen ausgewählt werden (304), die in der allgemeinen Netzwerkarchitektur und in der
gerätespezifischen Netzwerkarchitektur eine Gruppe Neuronen bilden, die in der gerätespezifischen Netzwerkarchitektur dieselbe Funktion wie in der allgemeinen Netzwerkarchitektur definieren.
5. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass für ein Neuron eine Priorität definiert ist, wobei die Gewichte für das Neuron abhängig von der Priorität in der Backpropagation bestimmt werden oder unverändert bleiben.
6. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass dem Neuron ein Parameter zugeordnet ist, der die Priorität definiert, wobei der Parameter in einem Vergleich mit einem Schwellwert verglichen wird, und wobei die Gewichte für das Neuron abhängig von einem Ergebnis des Vergleichs bestimmt werden oder unverändert bleiben.
7. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass für jedes der Vielzahl Neuronen eine Ordnungszahl definiert ist, die die Priorität charakterisiert, wobei in der Backpropagation nur die Neuronen bestimmt werden, deren Ordnungszahl unterhalb einer oberen Schranke für die Ordnungszahlen liegt.
8. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass funktional zusammengehörende Neuronen durch dieselbe
Ordnungszahl definiert sind.
9. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass für jede Schicht eines mehrschichtigen künstlichen neuronalen Netzes ein separater Schwellwert oder eine separate obere Schranke nur für die Neuronen dieser Schicht definiert ist.
10. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die allgemeine Netzwerkarchitektur als tiefes künstliches neuronales Netzwerk ausgebildet ist, insbesondere mit wenigstens einer Schicht, die als Fully Connected Layer oder als Convolutional Layer ausgebildet ist.
11. Verfahren zur Herstellung einer Klassifizierungseinrichtung, insbesondere für einen Roboter, ein Werkzeug oder ein zumindest teilweise autonomes Fahrzeug, dadurch gekennzeichnet, dass ein gerätespezifisches künstliches neuronales Netzwerk nach dem Verfahren gemäß eines der vorherigen Ansprüche bestimmt wird und wobei die Netzwerkarchitektur des so bestimmten gerätespezifischen künstlichen neuronalen Netzwerks ohne weiteres Training auf die Klassifizierungseinrichtung übertragen wird.
12. Verfahren zum Trainieren einer Vielzahl gerätespezifischer künstlicher
neuronaler Netzwerke, die eine Vielzahl von Schichten umfassen, wobei das Verfahren in einer ersten Iteration für einen ersten Trainingsdatenpunkt eines ersten Batches aus einer Vielzahl Batches einer Epoche von Trainingsdaten folgende Schritte umfasst: stochastisches Bestimmen (206) eines Werts für eine Schicht der Vielzahl von Schichten, wobei der Wert abhängig von einer maximalen Anzahl von Neuronen für diese Schicht bestimmt wird,
Bestimmen (208) einer Vielzahl von Neuronen aus den Neuronen der Schicht und abhängig vom Wert,
Vorwärtspropagation (208) des Batches durch die Vielzahl von Neuronen, Bestimmen (208) einer Ausgabe des künstlichen neuronalen Netzwerks oder der Schicht,
Rückwärtspropagation (210), insbesondere mit Berechnung eines Gradienten einer Abweichung der Ausgabe von einer erwarteten
Ausgabe, wobei für eine zweite Iteration die Gewichte der Vielzahl der Neuronen abhängig von der Ausgabe bestimmt werden (212) und wobei die Gewichte anderer Neuronen der Schicht für die zweite Iteration für einen zweiten Batch aus der Vielzahl Batches erhalten bleiben.
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, dass der Wert positiv bestimmt wird und kleiner oder gleich der maximalen Anzahl von Neuronen bestimmt wird.
14. Verfahren nach einem der Ansprüche 12 oder 13, dadurch gekennzeichnet, dass vorgesehen ist, eine maximale Anzahl von Neuronen für jede der Schichten insbesondere vor Beginn des Trainings vorzugeben.
15. Verfahren nach einem der Ansprüche 12 bis 14, dadurch gekennzeichnet, dass jedem Neuron des künstlichen neuronalen Netzwerks eine
Ordnungszahl zugeordnet ist, wobei in einem Vergleich die Ordnungszahl, die einem Neuron zugeordnet ist, mit dem Wert verglichen wird, und wobei abhängig vom Ergebnis des Vergleichs bestimmt wird, ob ein Neuron Teil eines gerätespezifischen künstlichen neuronalen Netzwerks ist oder nicht.
16. Computerprogramm, dadurch gekennzeichnet, dass das Computerprogramm computerlesbare Instruktionen umfasst bei deren Ausführung durch einen Computer das Verfahren nach einem der Ansprüche 1 bis 15 abläuft.
17. Computerprogrammprodukt, dadurch gekennzeichnet, dass das
Computerprogrammprodukt einen Speicher umfasst, auf dem das
Computerprogramm nach Anspruch 16 gespeichert ist.
PCT/EP2020/058017 2019-03-26 2020-03-23 Verfahren und vorrichtung für training und herstellung eines künstlichen neuronalen netzes Ceased WO2020193481A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102019204136.1A DE102019204136A1 (de) 2019-03-26 2019-03-26 Verfahren und Vorrichtung für Training und Herstellung eines künstlichen neuronalen Netzes
DE102019204136.1 2019-03-26

Publications (1)

Publication Number Publication Date
WO2020193481A1 true WO2020193481A1 (de) 2020-10-01

Family

ID=69954060

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/058017 Ceased WO2020193481A1 (de) 2019-03-26 2020-03-23 Verfahren und vorrichtung für training und herstellung eines künstlichen neuronalen netzes

Country Status (2)

Country Link
DE (1) DE102019204136A1 (de)
WO (1) WO2020193481A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022212902A1 (de) 2022-11-30 2024-06-06 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Trainieren eines künstlichen neuronalen Netzes
WO2024239104A1 (en) * 2023-05-19 2024-11-28 Multicom Technologies Inc. Systems and methods for training deep learning models

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000003355A2 (de) * 1998-07-08 2000-01-20 Siemens Aktiengesellschaft Neuronales netz und verfahren und anordnung zum trainieren eines neuronalen netzes
US20160217368A1 (en) * 2015-01-28 2016-07-28 Google Inc. Batch normalization layers
DE202017106532U1 (de) * 2016-10-28 2018-02-05 Google Llc Suche nach einer neuronalen Architektur
WO2019001649A1 (de) * 2017-06-30 2019-01-03 Conti Temic Microelectronic Gmbh Wissenstransfer zwischen verschiedenen deep-learning architekturen

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000003355A2 (de) * 1998-07-08 2000-01-20 Siemens Aktiengesellschaft Neuronales netz und verfahren und anordnung zum trainieren eines neuronalen netzes
US20160217368A1 (en) * 2015-01-28 2016-07-28 Google Inc. Batch normalization layers
DE202017106532U1 (de) * 2016-10-28 2018-02-05 Google Llc Suche nach einer neuronalen Architektur
WO2019001649A1 (de) * 2017-06-30 2019-01-03 Conti Temic Microelectronic Gmbh Wissenstransfer zwischen verschiedenen deep-learning architekturen

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ARIEL GORDON ET AL: "MorphNet: Fast & Simple Resource-Constrained Structure Learning of Deep Networks", 2018 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION, 30 November 2017 (2017-11-30), pages 1586 - 1595, XP055603467, DOI: 10.1109/CVPR.2018.00171 *
THOMAS ELSKEN ET AL: "Simple And Efficient Architecture Search for Convolutional Neural Networks", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 13 November 2017 (2017-11-13), XP081287784 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022212902A1 (de) 2022-11-30 2024-06-06 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Trainieren eines künstlichen neuronalen Netzes
WO2024239104A1 (en) * 2023-05-19 2024-11-28 Multicom Technologies Inc. Systems and methods for training deep learning models

Also Published As

Publication number Publication date
DE102019204136A1 (de) 2020-10-01

Similar Documents

Publication Publication Date Title
EP2999998B1 (de) Methode zur ermittlung eines modells einer ausgangsgrösse eines technischen systems
DE202017102235U1 (de) Trainingssystem
DE202017102238U1 (de) Aktorsteuerungssystem
WO2019081241A1 (de) Verfahren, vorrichtung und computerprogramm zur erstellung eines tiefen neuronalen netzes
EP4193135B1 (de) Computerimplementiertes verfahren zum bereitstellen eines test-verlaufs zu testender verkehrsszenarien
EP3785177A1 (de) Verfahren und vorrichtung zum ermitteln einer netzkonfiguration eines neurona-len netzes
EP0901658B1 (de) Verfahren zur optimierung eines fuzzy-regelsatzes durch einen rechner
EP0875808A2 (de) Verfahren und System zur Generierung eines Prozessmodells eines technischen Prozesses
WO2020187591A1 (de) Verfahren und vorrichtung zum ansteuern eines roboters
EP1327959B1 (de) Neuronales Netz zur Modellierung eines physikalischen Systems sowie Verfahren zur Bildung eines solchen neuronalen Netzes
WO2020193481A1 (de) Verfahren und vorrichtung für training und herstellung eines künstlichen neuronalen netzes
DE102019216973A1 (de) Lernverfahren für neuronale netze basierend auf evolutionären algorithmen
WO2019206776A1 (de) Verfahren und vorrichtung zum ermitteln einer netzkonfiguration eines neuronalen netzes
WO2020193294A1 (de) Verfahren und vorrichtung zum kompatiblen ansteuern eines geräts mit einem neuen programmcode
DE102019212912A1 (de) Komprimieren eines tiefen neuronalen Netzes
DE69313622T2 (de) Speicherorganisationsverfahren für eine Steuerung mit unscharfer Logik und Gerät dazu
EP3736709A1 (de) Klassifikatorsystem und verfahren zum verteilten erzeugen von klassifikationsmodellen
DE102020210795A1 (de) Künstliches neuronales Netz
DE102021109169A1 (de) Verfahren zum Trainieren eines neuronalen Netzes
DE102022112606B3 (de) Computerimplementiertes Verfahren zur Kalibrierung eines technischen Systems
DE102022205547A1 (de) Verfahren zum Trainieren eines Convolutional Neural Networks
DE102022115101A1 (de) Automatisierter entwurf von architekturen künstlicher neuronaler netze
DE102022207072A1 (de) Verfahren zum Ermitteln einer optimalen Architektur eines künstlichen neuronalen Netzes
DE202021103700U1 (de) Vorrichtung zum Erzeugen eines künstlichen neuronalen Netzes
DE102023210939A1 (de) Computerimplementiertes Verfahren, das in Ausführung eine Produktionsplanung für einen speziellen Produktionsprozess in einem Produktionssystem plant und das Produktionssystem gemäß der Produktionsplanung steuert und/oder regelt, und Computerprogramm für eine Produktionsplanungs- und Steuerungsvorrichtung eines Produktionssystems

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20713624

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20713624

Country of ref document: EP

Kind code of ref document: A1