DE102019214436A1 - Method, device and computer program for operating an artificial neural network - Google Patents

Method, device and computer program for operating an artificial neural network Download PDF

Info

Publication number
DE102019214436A1
DE102019214436A1 DE102019214436.5A DE102019214436A DE102019214436A1 DE 102019214436 A1 DE102019214436 A1 DE 102019214436A1 DE 102019214436 A DE102019214436 A DE 102019214436A DE 102019214436 A1 DE102019214436 A1 DE 102019214436A1
Authority
DE
Germany
Prior art keywords
neural network
artificial neural
memory
variable
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019214436.5A
Other languages
German (de)
Inventor
Volker Fischer
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
Priority to DE102019214436.5A priority Critical patent/DE102019214436A1/en
Priority to CN202011001002.4A priority patent/CN112541568A/en
Publication of DE102019214436A1 publication Critical patent/DE102019214436A1/en
Pending legal-status Critical Current

Links

Images

Classifications

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

Landscapes

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

Abstract

Die Erfindung betrifft ein Verfahren (20) zum Betreiben eines künstlichen neuronalen Netzes. Das Verfahren umfasst die Schritte: Schrittweises Verarbeiten einer bereitgestellten Eingangsgröße gemäß einer Reihenfolge von Schichten des künstlichen neuronalen Netzes, wobei Eingangsgrößen der Schichten alternierend aus einem von zumindest zwei Speichermodulen eines Datenspeichers ausgelesen und die ermittelte Eingangsgröße für ihre unmittelbar nachfolgende Schicht in dem anderen Speichermodul hinterlegt werden. Daraufhin folgt ein Anpassen zumindest einer der Parameter basierend auf einer lokalen Lernregel. Die Erfindung betrifft ferner ein Computerprogramm und eine Vorrichtung zum Ausführen des Verfahrens (20) und ein maschinenlesbares Speicherelement, auf dem das Computerprogramm gespeichert ist.The invention relates to a method (20) for operating an artificial neural network. The method comprises the following steps: Step-by-step processing of a provided input variable according to a sequence of layers of the artificial neural network, input variables of the layers being read alternately from one of at least two memory modules of a data memory and the determined input variable for its immediately following layer being stored in the other memory module . This is followed by an adaptation of at least one of the parameters based on a local learning rule. The invention also relates to a computer program and a device for carrying out the method (20) and a machine-readable memory element on which the computer program is stored.

Description

Technisches GebietTechnical area

Die Erfindung betrifft ein Verfahren zum Betreiben eines künstlichen neuronalen Netzes unter Verwendung einer lokalen Lernregel. Ebenso betrifft die Erfindung eine Vorrichtung und ein Computerprogramm, die jeweils eingerichtet sind, das Verfahren auszuführen.The invention relates to a method for operating an artificial neural network using a local learning rule. The invention also relates to a device and a computer program which are each set up to carry out the method.

Stand der TechnikState of the art

Es ist bekannt, Schichten der künstlichen neuronalen Netze vollständig parallelisiert auszuführen, wie gezeigt von den Autoren Fischer, V., Köhler, J. und Pfeil, T. in der Veröffentlichung „The streaming rollout of deep networkstowards fully model-parallel execution“, Advances in Neural Information Processing Systems (pp. 4043-4054), https://arxiv.org/pdf/1806.04965.pdf, sowie gezeigt in der DE 20 2018 104 373 U1 .It is known to execute layers of the artificial neural networks completely in parallel, as shown by the authors Fischer, V., Köhler, J. and Pfeil, T. in the publication “The streaming rollout of deep networkstowards fully model-parallel execution”, Advances in Neural Information Processing Systems (pp. 4043-4054), https://arxiv.org/pdf/1806.04965.pdf, as well as shown in the DE 20 2018 104 373 U1 .

Das nicht-vorveröffentlichte Dokument DE 10 2019 214 010 offenbart einen Datenspeicher, welcher zwei Speichermodule aufweist, die derart miteinander verbunden sind, dass die Zwischengrößen eines künstlichen neuronalen Netzes alternierend in den beiden Speichermodulen ausgelesen und hinterlegt werden.The non-prepublished document DE 10 2019 214 010 discloses a data memory which has two memory modules which are connected to one another in such a way that the intermediate variables of an artificial neural network are alternately read out and stored in the two memory modules.

Vorteile der ErfindungAdvantages of the invention

Das Anlernen von künstlichen neuronalen Netzen ist aufwendig und teuer, da zum einen gelabelte Daten benötigt werden und zum anderen aufwändige Berechnungen durchgeführt werden müssen, um eine annährend optimale Parametrisierung zu ermitteln. Daher ist das Anlernen nur mit ausreichend viel Rechenleistung durchführbar. Das führt dazu, dass die Parametrisierung während eines Betreibens des künstlichen neuronalen Netzes fix ist und nachträglich nicht verändert wird.The training of artificial neural networks is complex and expensive, because on the one hand labeled data is required and on the other hand complex calculations have to be carried out in order to determine an approximately optimal parameterization. Training can therefore only be carried out with sufficient computing power. This means that the parameterization is fixed while the artificial neural network is in operation and is not changed afterwards.

Jedoch ist es wünschenswert, die Parametrisierung nachträglich nachjustieren zu können, um z.B. auf neue Situationen reagieren zu können.However, it is desirable to be able to readjust the parameterization afterwards, e.g. to be able to react to new situations.

Das vorgeschlagene Verfahren führt vorteilhafterweise ein „Finetuning“ mit einer lokalen Lernregel der Parametrisierung des künstlichen neuronalen Netzes durch. Das künstliche neuronale Netz kann dadurch nachträglich für eine spezielle Anwendung oder für einen Anwender spezifisch eingestellt werden. Das „Finetuning“ ist sogar während des Betriebs des künstlichen neuronalen Netzes durchführbar.The proposed method advantageously carries out “fine tuning” with a local learning rule for the parameterization of the artificial neural network. The artificial neural network can thus be set subsequently for a special application or specifically for a user. The "fine tuning" can even be carried out while the artificial neural network is in operation.

Offenbarung der ErfindungDisclosure of the invention

In einem ersten Aspekt wird ein, insbesondere computerimplementiertes oder rein hardwareimplementiertes, Verfahren zum Betreiben eines künstlichen neuronalen Netzes, insbesondere zur Nachadaption von Parametern des künstlichen neuronalen Netzes, gemäß dem unabhängigen Anspruch 1 vorgestellt.In a first aspect, a method, in particular computer-implemented or purely hardware-implemented, for operating an artificial neural network, in particular for post-adaptation of parameters of the artificial neural network, according to independent claim 1 is presented.

Das künstliche neuronale Netz weist eine Reihenfolge von Schichten auf, denen jeweils zumindest ein Parameter zugeordnet ist. Die Parameter können Gewichte oder Filter sein. Das Verfahren umfasst die folgenden Schritte: Schrittweises Verarbeiten einer bereitgestellten Eingangsgröße des künstlichen neuronalen Netzes gemäß der Reihenfolge der Schichten des künstlichen neuronalen Netzes oder gemäß einer Reihenfolge von Berechnungen der Schichten des künstlichen neuronalen Netzes. Unter dem schrittweisen Verarbeiten kann ein Propagieren der Eingangsgröße durch das künstliche neuronale Netz verstanden werden. Beim schrittweisen Verarbeiten werden Eingangsgrößen der Schichten aus einem von zumindest zwei Speichermodulen eines Datenspeichers ausgelesen, die Eingangsgröße der jeweiligen unmittelbar nachfolgenden Schicht gemäß der Reihenfolge werden dann abhängig von dem Parameter, der der jeweiligen Schicht zugeordnet ist, und abhängig von einer der ausgelesenen Eingangsgrößen ermittelt und daraufhin in dem anderen Speichermodul hinterlegt. Das Lesen und Hinterlegen erfolgt alternierend zwischen den beiden Speichermodulen. Unter alternierend kann verstanden werden, dass abwechselnd die Eingangsgrößen in den Speichermodulen ausgelesen und hinterlegt werden. D.h. nach jedem Berechnungsschritt liegt in einem der Speichermodule die aktuell ermittelte Eingangsgröße und in dem anderen Speichermodul die vorhergehend ermittelte Eingangsgröße vor. D.h. es wird aus einem ersten Speichermodul gelesen und dann in dem zweiten Speichermodul gespeichert, daraufhin wird aus dem zweiten Speichermodul gelesen und dann in dem ersten Speichermodul gespeichert. Daraufhin folgt ein Anpassen zumindest eines Parameters einer vorgebbaren Schicht basierend auf einer lokalen Lernregel abhängig von zumindest der Eingangsgröße der vorgebbaren Schicht, die in dem einem der Speichermodule hinterlegt ist, und der Eingangsgröße für deren unmittelbar nachfolgenden verbundenen Schicht, die in dem anderen Speichermodul hinterlegt ist.The artificial neural network has a sequence of layers, each of which is assigned at least one parameter. The parameters can be weights or filters. The method comprises the following steps: Step-by-step processing of a provided input variable of the artificial neural network according to the sequence of the layers of the artificial neural network or according to a sequence of calculations of the layers of the artificial neural network. The step-by-step processing can be understood to mean propagating the input variable through the artificial neural network. In the case of step-by-step processing, the input variables of the layers are read from one of at least two memory modules of a data memory; the input variables of the respective immediately following layer are then determined in accordance with the sequence depending on the parameter assigned to the respective layer and depending on one of the input variables read then stored in the other memory module. Reading and storing takes place alternately between the two memory modules. Alternating can be understood to mean that the input variables are alternately read out and stored in the memory modules. This means that after each calculation step, the currently determined input variable is available in one of the memory modules and the previously determined input variable is available in the other memory module. That is, it is read from a first memory module and then stored in the second memory module, then read from the second memory module and then stored in the first memory module. This is followed by an adaptation of at least one parameter of a specifiable layer based on a local learning rule depending on at least the input variable of the specifiable layer that is stored in one of the memory modules and the input variable for its immediately following connected layer that is stored in the other memory module .

Die Eingangsgrößen der Schichten können Zwischengrößen, insbesondere Zwischenergebnisse, des künstlichen neuronalen Netzes sein. Es sei angemerkt, dass der zumindest eine Parameter der letzten Schicht abhängig von der Eingangsgröße dieser Schicht und abhängig von einer Ausgangsgröße des künstlichen neuronalen Netzes, bzw. abhängig von einer ermittelten Ausgangsgröße dieser Schicht, basierend auf der lokalen Lernregel angepasst werden kann. Die Ausgangsgröße des künstlichen neuronalen Netzes kann in einem der Speichermodule oder in einem weiteren Speicher hinterlegt sein. Die Eingangsgröße des künstlichen neuronalen Netzes ist die Eingangsgröße der ersten Schicht der Reihenfolge der Schichten.The input variables of the layers can be intermediate variables, in particular intermediate results, of the artificial neural network. It should be noted that the at least one parameter of the last layer is dependent on the input variable of this layer and dependent on an output variable of the artificial neural network, or is dependent can be adapted from a determined output variable of this layer, based on the local learning rule. The output variable of the artificial neural network can be stored in one of the memory modules or in a further memory. The input variable of the artificial neural network is the input variable of the first layer in the sequence of layers.

Es sei angemerkt, dass der Datenspeicher auch mehr als zwei Speichermodule aufweisen kann, wobei die ermittelten Eingangsgrößen der Schichten jeweils alternierend in einem der Speichermodule hinterlegt wird. Der Vorteil ist hierbei, dass die Anpassung des Parameters abhängig von mehreren vorhergehend ermittelten Eingangsgrößen, die jeweils in einem der Speichermodule hinterlegt sind, durchgeführt werden kann, also weiter in die Vergangenheit geschaut werden kann. Die Speichermodule können jeweils für jede Schicht einen Speicherbereich aufweisen, in welchen deren Eingangsgrößen hinterlegt werden.It should be noted that the data memory can also have more than two memory modules, the determined input variables of the layers being stored alternately in one of the memory modules. The advantage here is that the adjustment of the parameter can be carried out as a function of several previously determined input variables that are each stored in one of the memory modules, that is to say, one can look further into the past. The memory modules can each have a memory area for each layer in which their input variables are stored.

Es sei angemerkt, dass der Schritt des Anpassens des Parameters einmal beim Propagieren der Eingangsgröße durch das künstliche neuronale Netz ausgeführt werden kann. Alternativ kann der Schritt des Anpassens beim Propagieren der Eingangsgröße mehrmals, vorzugsweise für unterschiedliche Parameter, ausgeführt werden.It should be noted that the step of adapting the parameter can be carried out once when the input variable is propagated through the artificial neural network. Alternatively, the step of adapting can be carried out several times when the input variable is propagated, preferably for different parameters.

Nach dem Anpassen kann erneut die Eingangsgröße der nachfolgenden Schicht der vorgebbaren Schicht abhängig von dem angepassten Parameter ermittelt und diese Eingangsgröße der nachfolgenden Schicht dann in dem anderen Speichermodul hinterlegt werden.After the adaptation, the input variable of the subsequent layer of the predefinable layer can again be determined as a function of the adapted parameter and this input variable of the subsequent layer can then be stored in the other memory module.

Der Schritt des Anpassens kann entweder zwischen einem der Verarbeitungsschritte beim schrittweisen Verarbeiten nachdem die Ausgangsgrößen hinterlegt wurden oder nachdem eine Ausgangsgröße des künstlichen neuronalen Netzes abhängig von der bereitgestellten Eingangsgröße ermittelt wurde, ausgeführt werden. D.h. nach dem Schritt des Anpassens kann das Propagieren fortgesetzt werden, oder eine neue Eingangsgröße kann durch das künstliche neuronale Netz propagiert werden.The step of adapting can be carried out either between one of the processing steps during step-by-step processing after the output variables have been stored or after an output variable of the artificial neural network has been determined as a function of the input variable provided. That is, after the step of adapting, the propagation can be continued, or a new input variable can be propagated through the artificial neural network.

Unter einer lokalen Lernregel kann verstanden werden, dass nur lokale Eingangsgrößen einer Schicht beim Anpassen des Parameters verwendet werden. Die lokalen Eingangsgrößen können diejenigen Eingangsgrößen sein, welche zur Verarbeitung mit dem Parameter verwendet werden und die davon abhängig ermittelten Eingangsgrößen. Vorzugsweise sind die lokalen Eingangsgrößen nur die Eingangsgrößen derjenigen Schichten des künstlichen neuronalen Netzes, die unmittelbar, insbesondere nachfolgend gemäß der Reihenfolge der Schichten, miteinander im künstlichen neuronalen Netz verbunden sind und/oder die, die unmittelbar einen Berechnungszeitschritt auseinanderliegen. Denkbar ist auch, dass die lokalen Eingangsgrößen die Eingangsgrößen derjenigen Schichten des künstlichen neuronalen Netzes sind, die mittelbar nebeneinanderliegen, also z.B. zwei oder mehr Schichten voneinander entfernt liegen. Vorzugsweise ist die lokale Lernregel unabhängig von einem aktuellen Wert des Parameters. Die lokale Lernregel kann auch als eine Heuristik angesehen werden, nach welcher die Parameter angepasst werden, um eine Abschätzung für eine geeignete Anpassung zu erhalten.A local learning rule can be understood to mean that only local input variables of a layer are used when adjusting the parameter. The local input variables can be those input variables that are used for processing with the parameter and the input variables determined as a function of this. The local input variables are preferably only the input variables of those layers of the artificial neural network that are directly connected to one another in the artificial neural network, in particular subsequently in accordance with the sequence of the layers, and / or those that are immediately one calculation time step apart. It is also conceivable that the local input variables are the input variables of those layers of the artificial neural network that are indirectly next to one another, i.e. two or more layers apart from one another, for example. The local learning rule is preferably independent of a current value of the parameter. The local learning rule can also be viewed as a heuristic according to which the parameters are adapted in order to obtain an estimate for a suitable adaptation.

Der Vorteil des Verfahrens ist, dass aufgrund der lokalen Lernregel das nachträgliche Anpassen der Parameter selbst auf einem mobilen Endgerät und sogar während des Betreibens des künstlichen neuronalen Netzes durchgeführt werden kann. Der Vorteil des alternierenden Lesens und Schreibens der Eingangsgrößen in die zwei Speichermodule des Datenspeichers ist, dass immer eine aktuelle ermittelte Eingangsgröße und eine vorhergehend ermittelte Eingangsgröße für die lokale Lernregel im Speicher zur Verfügung steht. Alternierendes Lesen und Speichern ist ferner vorteilhaft, da hier der Speicher besonders gut ausgelastet ist und da es ein beliebig ausgeprägtes parallelisierte Betreiben der Schichten ermöglicht.The advantage of the method is that, due to the local learning rule, the subsequent adjustment of the parameters can be carried out even on a mobile terminal and even while the artificial neural network is in operation. The advantage of the alternating reading and writing of the input variables in the two memory modules of the data memory is that a currently determined input variable and a previously determined input variable are always available in the memory for the local learning rule. Alternating reading and storing is also advantageous since the memory is particularly well utilized here and since it enables the layers to be operated in parallel in any way.

Vorzugsweise ist das künstliche neuronale Netz ein bereits angelerntes oder vorangelerntes künstliches neuronales Netz, also Parameter wurden durch eine Mehrzahl von Anlernschritte vor Beginn des vorgeschlagenen Verfahrens bereits angepasst. Die Parameter des künstlichen neuronalen Netzes können durch eine Optimierung einer Kostenfunktion (engl. loss function), vorzugsweise einer Optimierung mittels eines Gradiententabstiegsverfahrens, vor-/angelernt worden sein. Unter einem vorangelernten künstlichen neuronalen Netz kann verstanden werden, dass die Optimierung nicht vollständig ausgeführt wurde und mittendrin abgebrochen wurde, also ein Optimum der Kostenfunktion nicht erreicht wurde. Dieses Vorgehen hat den Vorteil, dass dadurch schneller eine benutzerspezifische oder anwendungsspezifische Parametrisierung basierend auf der lokalen Lernregel eingestellt werden kann. D.h. bei der Auslieferung des künstlichen neuronalen Netzes an einen Nutzer müssen z.B. anwendungs-/länder- und/ oder nutzerspezifische Anpassungen der Parameter des künstlichen neuronalen Netzes nicht vorgenommen werden, da diese beim Betreiben des künstlichen neuronalen Netzes basierend auf der lokalen Lernregel vorgenommen werden können.The artificial neural network is preferably an already learned or previously learned artificial neural network, that is to say parameters have already been adapted by a plurality of learning steps before the start of the proposed method. The parameters of the artificial neural network can have been pre-learned / learned by optimizing a cost function (loss function), preferably by optimizing by means of a gradient descent method. A pre-learned artificial neural network can be understood to mean that the optimization was not carried out completely and was terminated in the middle, i.e. an optimum of the cost function was not achieved. This procedure has the advantage that a user-specific or application-specific parameterization based on the local learning rule can be set more quickly. This means that when the artificial neural network is delivered to a user, e.g. application / country- and / or user-specific adjustments to the parameters of the artificial neural network do not have to be made, since these can be carried out when operating the artificial neural network based on the local learning rule.

Es wird vorgeschlagen, dass der Datenspeicher wie im Folgenden vorgeschlagen aufgebaut ist. Der Datenspeicher umfasst zwei Speichermodule, die jeweils eine Mehrzahl von Speicherbereichen aufweisen. Es wird vorgeschlagen, dass die Speicherbereiche der zwei Speichermodule jeweils nach einer vorgebbaren Reihenfolge von ausgeführten Berechnungen des künstlichen neuronalen Netzes angeordnet sind. Die Speicherbereiche der zwei Speichermodule können jeweils mit zumindest einem aus der Reihenfolge unmittelbare nachfolgenden Speicherbereich des anderen Speichermoduls verschaltet sein. Also Speicherbereiche des ersten Speichermoduls sind jeweils mit zumindest einem gemäß der Reihenfolge unmittelbar nachfolgenden Speicherbereich des zweiten Speichermoduls und die Speicherbereiche des zweiten Speichermoduls sind jeweils mit zumindest einem gemäß der Reihenfolge unmittelbar nachfolgenden Speicherbereich des ersten Speichermoduls verschaltet.It is proposed that the data memory be constructed as proposed below. The data memory comprises two memory modules, each having a plurality of storage areas. It is proposed that the memory areas of the two memory modules are each arranged according to a predeterminable sequence of calculations carried out by the artificial neural network. The memory areas of the two memory modules can each be interconnected with at least one memory area of the other memory module immediately following from the sequence. So memory areas of the first memory module are each connected to at least one immediately following memory area of the second memory module in accordance with the sequence and the memory areas of the second memory module are each connected to at least one immediately following memory area of the first memory module in accordance with the sequence.

Es kann gesagt werden, dass der Speicherbereich des ersten Speichermoduls mit seiner Position in der Reihenfolge der Speicherbereiche des ersten Speichermoduls mit dem Speicherbereich des zweiten Speichermoduls, der eine unmittelbar nachfolgende Position dieser Position in der Reihenfolge der Speicherbereiche des zweiten Speichermoduls hat, verschaltet ist. Das gleiche gilt für die Speicherbereiche des zweiten Speichermoduls. Es sei angemerkt, dass dadurch eine „überkreuzte“- Verschaltung der Speicherbereiche zwischen den Speichermodulen entsteht.It can be said that the memory area of the first memory module is connected with its position in the order of the memory areas of the first memory module with the memory area of the second memory module, which has an immediately following position of this position in the order of the memory areas of the second memory module. The same applies to the memory areas of the second memory module. It should be noted that this creates a “crossed” interconnection of the memory areas between the memory modules.

Die vorgebbare Reihenfolge der Speicherbereiche kann der Reihenfolge der Schichten des künstlichen neuronalen Netzes entsprechen.The predeterminable sequence of the memory areas can correspond to the sequence of the layers of the artificial neural network.

Die Speicherbereiche können derart miteinander verschaltet sein, dass hinterlegte Eingangsgrößen einer der Speicherbereiche eines der Speichermodule in zumindest einem aus der Reihenfolge nachfolgenden Speicherbereich des anderen Speichermodules hinterlegbar sind. D.h. die Speicherbereiche des ersten Speichermoduls können mit den Speicherbereichen des zweiten Speichermoduls derart verschalten sein, dass hinterlegte Eingangsgrößen aus zumindest einem Speicherbereich des ersten Speichermoduls geladen werden und daraufhin in einem gemäß der Reihenfolge nachfolgendem Speicherbereich des zweiten Speichermoduls hinterlegbar sind. Das gleiche gilt auch für die Speicherbereiche des zweiten Speichermoduls. Es kann daher gesagt werden, dass die Speicherbereiche des ersten Speichermoduls nicht gemäß der Reihenfolge mit ihren nachfolgenden Speicherbereichen des ersten Speichermoduls verschaltet sind und damit keine Daten innerhalb der Speicherbereiche des ersten Speichermoduls übertragen werden können. Das gleiche gilt auch für die Speicherbereiche des zweiten Speichermoduls. D.h. die Speicherbereiche sind mit den Speicherbereichen des anderen Speichermoduls derart miteinander verschaltet, dass Eingangsgrößen alternierend aus dem ersten Speichermodul geladen, verarbeitet und daraufhin in dem zweiten Speichermodul geschrieben werden.The memory areas can be interconnected in such a way that stored input variables of one of the memory areas of one of the memory modules can be stored in at least one memory area of the other memory module that follows from the sequence. That is, the memory areas of the first memory module can be interconnected with the memory areas of the second memory module in such a way that stored input variables are loaded from at least one memory area of the first memory module and can then be stored in a memory area of the second memory module following the sequence. The same also applies to the memory areas of the second memory module. It can therefore be said that the memory areas of the first memory module are not interconnected in accordance with the sequence with their subsequent memory areas of the first memory module and thus no data can be transmitted within the memory areas of the first memory module. The same also applies to the memory areas of the second memory module. That is, the memory areas are interconnected with the memory areas of the other memory module in such a way that input variables are alternately loaded from the first memory module, processed and then written to the second memory module.

Der Vorteil des Datenspeichers ist, dass die Eingangsgrößen durch diese Art der Verschaltung der Speicherbereiche, insbesondere durch die „überkreuzte“-Verschaltung, der Speicherbereiche alternierend in den zwei Speichermodulen gelesen und gespeichert werden. Damit erlaubt dieser Datenspeicher besonders effizient das künstliche neuronale Netz unter Verwendung eines strömenden Steuerungsmusters (engl. streaming rollout) auszuführen.The advantage of the data memory is that the input variables are read and stored alternately in the two memory modules through this type of interconnection of the memory areas, in particular through the “crossed” interconnection of the memory areas. This data memory thus enables the artificial neural network to be carried out particularly efficiently using a streaming control pattern.

Vorzugsweise sind die zwei Speichermodule identisch.The two memory modules are preferably identical.

Die Speichermodule sind vorzugsweise Register oder Pufferspeicher (engl. Cache) zumindest einer Recheneinheit (z.B. einer CPU/GPU), und/oder sind Arbeitsspeicher (RAM). Alternativ können die Speichermodule Massenspeicher, wie eine Festplatte, sein.The memory modules are preferably registers or buffer memories (cache) of at least one processing unit (e.g. a CPU / GPU), and / or are working memories (RAM). Alternatively, the memory modules can be mass storage devices, such as a hard disk.

Vorzugsweise sind die zwei Speichermodule, insbesondere Speicherbereiche, symmetrisch zueinander angeordnet. Der Vorteil dieses speziellen Aufbaus ist, dass eine bessere Gesamtperformance durch kürzere Datenpfade erzielt wird. Also ein hoher Datendurchsatz (engl. throughput) und kurze Verzögerung (engl. latency) werden beim Ausführen von Berechnungen des künstlichen neuronalen Netzes unter Verwendung des vorgeschlagenen Datenspeichers erzielt, da die Eingangsgrößen besonders schnell alternierend geladen und gespeichert werden können.The two memory modules, in particular memory areas, are preferably arranged symmetrically to one another. The advantage of this special structure is that better overall performance is achieved through shorter data paths. A high throughput and short latency are achieved when performing calculations of the artificial neural network using the proposed data memory, since the input variables can be loaded and stored alternately particularly quickly.

Weiterhin wird vorgeschlagen, dass jedem Speicherbereich jeweils einer Schicht oder zumindest einem Neuron des künstlichen neuronalen Netzes zugeordnet ist, und die Speicherbereiche jeweils eingerichtet sind, die Eingangsgrößen der jeweiligen zugeordneten Schicht zu hinterlegen. Vorzugsweise weisen die Speicherbereiche zumindest so viel Speicherplatz auf, wie benötigt wird, um die jeweilige Eingangsgröße zu hinterlegen. Bspw. für eine Eingangsgröße einer faltenden Schicht (engl. convolutional layer) weist der zugehörige Speicherbereich mehr Speicherplatz auf als ein Speicherbereich für einen schwach vermaschte Schicht nahe am Ausgang des künstlichen neuronalen Netzes.It is further proposed that each memory area is assigned to a layer or at least one neuron of the artificial neural network, and the memory areas are each set up to store the input variables of the respective assigned layer. The memory areas preferably have at least as much memory space as is required to store the respective input variable. For example, for an input variable of a convolutional layer, the associated memory area has more memory space than a memory area for a weakly meshed layer close to the output of the artificial neural network.

Weiterhin wird vorgeschlagen, dass die Verschaltung der Speicherbereiche über Verbindungen erfolgt, die jeweils eingerichtet sind, mathematische Operationen auszuführen. Vorzugsweise entsprechen die mathematischen Operationen der Verbindungen denjenigen mathematischen Operationen, die die Schichten des jeweils zugeordneten Speicherbereichs durchführt. Denkbar ist, dass die Verbindungen in Hardware implementierte mathematische Operationen sind. Die mathematischen Operationen können Additionen (bspw. von einzelnen Elementen der Eingangsgröße) und/oder Multiplikationen (bspw. von einzelnen Elementen der Eingangsgröße oder mit einem Multiplikanden) sein. Zusätzlich oder alternativ können die mathematischen Operationen auch eine Faltung mit einem vorgebbaren Filter und/oder Pooling sein.It is also proposed that the interconnection of the memory areas takes place via connections which are each set up to carry out mathematical operations. The mathematical operations of the connections preferably correspond to those mathematical operations carried out by the layers of the respectively assigned memory area. It is conceivable that the Connections are mathematical operations implemented in hardware. The mathematical operations can be additions (for example of individual elements of the input variable) and / or multiplications (for example of individual elements of the input variable or with a multiplicand). Additionally or alternatively, the mathematical operations can also be a convolution with a predefinable filter and / or pooling.

Weiterhin wird vorgeschlagen, dass die Verbindungen die Speicherbereiche durch zumindest eine Recheneinheit verschalten sind und die Recheneinheit eingerichtet ist, die math. Operatoren auf die hinterlegbaren Eingangsgrößen in dem jeweiligen Speicherbereich auszuführen. D.h. die Verbindung verbindet die Recheneinheit mit den zugehörigen Speicherbereichen, aus welchem die Eingangsgröße geladen wird und in welche das die verarbeitete Eingangsgröße durch die Recheneinheit hinterlegt werden soll. D.h. die Verbindung ist eingerichtet, die Eingangsgrößen zu laden und zu speichern. Vorzugsweise ist die Verbindung ein Datenbus.It is also proposed that the connections, the memory areas are interconnected by at least one processing unit and the processing unit is set up to do math. Execute operators on the input variables that can be stored in the respective memory area. This means that the connection connects the processing unit with the associated memory areas from which the input variable is loaded and in which the processed input variable is to be stored by the processing unit. This means that the connection is set up to load and save the input variables. The connection is preferably a data bus.

Vorzugsweise ist die Recheneinheit eingerichtet, Berechnungen der Schichten, insbesondere der Neuronen parallel auszuführen. Besonders bevorzugt ist die Recheneinheit eingerichtet abhängig von einem Steuerungsmuster (engl. rollout pattern), welches dem künstlichen neuronalen Netz zugeordnet ist, die Berechnungen der Schichten gleichzeitig/parallel auszuführen. Alternativ kann die Recheneinheit eingerichtet sein, jeweils einen Rechenkern für jeden Speicherbereich bereitzustellen. Vorzugsweise sind den Speicherbereichen der zwei Speichermodulen, die an der gleichen Position in der Reihenfolge liegen, die gleiche Recheneinheit zugeordnet. Vorteilhaft ist hierbei, dass ein beliebig ausgeprägtes paralleles Ausführen des künstlichen neuronalen Netzes durch den vorgeschlagenen Datenspeicher ermöglicht wird. Vorzugsweise führt die Recheneinheiten die Berechnungen abhängig von dem Steuerungsmuster, welches dem neuronalen Netz zugeordnet ist, aus. Das Steuerungsmuster charakterisiert min. eine Reihenfolge von, insbesondere sequenziellen, Berechnungen, nach welcher die Schichten oder Neuronen des tiefen neuronalen Netzes ihre Eingangsgrößen ermitteln. Das Steuerungsmuster kann auch mehrere Reihenfolgen charakterisieren, welche dann beim Betreiben des tiefen neuronalen Netzes abhängig von dem Steuerungsmuster parallel ausgeführt werden können.The computing unit is preferably set up to perform calculations of the layers, in particular of the neurons, in parallel. The computing unit is particularly preferably set up as a function of a control pattern (rollout pattern) which is assigned to the artificial neural network to carry out the calculations of the layers simultaneously / in parallel. Alternatively, the computing unit can be set up to provide a computing core for each memory area. The same processing unit is preferably assigned to the memory areas of the two memory modules which are in the same position in the sequence. It is advantageous here that any parallel execution of the artificial neural network is made possible by the proposed data memory. The computing units preferably carry out the calculations as a function of the control pattern which is assigned to the neural network. The control pattern characterizes at least a sequence of, in particular sequential, calculations according to which the layers or neurons of the deep neural network determine their input variables. The control pattern can also characterize several sequences which can then be executed in parallel when the deep neural network is operated depending on the control pattern.

Zusätzlich kann die Recheneinheit mit einem weiteren Speicher verschaltet sein, in welchem die Parameter des künstlichen neuronalen Netzes hinterlegt sind.In addition, the computing unit can be connected to a further memory in which the parameters of the artificial neural network are stored.

Weiterhin wird vorgeschlagen, dass zumindest jeweils einer der Speicherbereiche der zwei Speichermodule mit dem Speicherbereich an der gleichen Position der Reihenfolge des anderen Speichermoduls verschaltet ist. Also der Speicherbereich des ersten Speichermoduls ist mit dem Speicherbereich des zweiten Speichermoduls bidirektional verschaltet, die beide an der gleichen Position der Reihenfolge liegen. Dadurch wird eine Verbindung des künstlichen neuronalen Netzes, welches eine Schicht auf sich selbst referenziert, abgebildet. Es wird ferner vorgeschlagen, dass jeweils einer der Speicherbereiche der zwei Speichermodule zusätzlich mit einem weiteren Speicherbereich des anderen Speichermoduls verschaltet ist, der nicht unmittelbar nachfolgend in der Reihenfolge angeordnet ist. Also die Speicherbereiche der beiden Speichermodule, die jeweils an der gleichen Position in der Reihenfolge liegen, sind jeweils zusätzlich mit zumindest einem weiteren Speicherbereich des anderen Speichermoduls verschaltet. Dadurch wird eine Überbrückungsverbindung des künstlichen neuronalen Netzes abgebildet. Der Datenspeicher erlaubt dadurch ein besonders effizientes Verarbeiten von Zeitreihen.It is further proposed that at least one of the memory areas of the two memory modules is connected to the memory area at the same position in the sequence of the other memory module. The memory area of the first memory module is thus interconnected bidirectionally with the memory area of the second memory module, both of which are in the same position in the sequence. As a result, a connection of the artificial neural network, which references a layer to itself, is mapped. It is further proposed that in each case one of the memory areas of the two memory modules is additionally interconnected with a further memory area of the other memory module, which is not arranged immediately afterwards in the sequence. That is, the memory areas of the two memory modules, which are each in the same position in the sequence, are each additionally interconnected with at least one further memory area of the other memory module. As a result, a bridging connection of the artificial neural network is mapped. The data memory allows particularly efficient processing of time series.

Weiterhin wird vorgeschlagen, dass ein letzter Speicherbereich der Reihenfolge der Speichermodule, seine hinterlegte Eingangsgröße als Ausgangsgröße des künstlichen neuronalen Netzes bereitstellt, wobei in einem ersten Speicherbereich der Reihenfolge eine Eingangsgröße des künstlichen neuronalen Netzes hinterlegbar ist.It is also proposed that a last memory area in the sequence of the memory modules provides its stored input variable as the output variable of the artificial neural network, an input variable of the artificial neural network being able to be stored in a first memory area of the sequence.

Weiterhin wird vorgeschlagen, dass das Verarbeiten der bereitgestellten Eingangsgröße abhängig von einem Steuerungsmuster (eng. rollout patter) ausgeführt wird. Vorzugsweise wird ein strömendes Steuerungsmuster (engl. streaming rollout) verwendet. Damit kann besonders effizient die bereitgestellte Eingangsgröße verarbeitet werden. Dieser Vorteil kommt besonders bei künstlichen neuronalen Netzen wie einem rekurrenten neuronalen Netz zum Tragen.It is also proposed that the processing of the input variable provided is carried out as a function of a control pattern (rollout patter). A streaming rollout is preferably used. The input variable provided can thus be processed particularly efficiently. This advantage is particularly useful in artificial neural networks such as a recurrent neural network.

Beim schrittweisen Verarbeiten der Eingangsgröße wird beim strömenden Steuerungsmuster zu jedem Verarbeitungsschritt jeweils alle Eingangsgrößen der Schichten ermittelt, wohingegen bei einem sequenziellen Betreiben nur die Eingangsgröße nach ihrer Position in der Reihenfolge der Schichten nacheinander ermittelt werden.With the step-by-step processing of the input variable, all input variables of the layers are determined for each processing step in the flowing control pattern, whereas with sequential operation only the input variables are determined according to their position in the order of the layers one after the other.

Weiterhin wird vorgeschlagen, dass beim Anpassen des Parameters zu einem Wert dieses Parameters ein Wert (Δw), welcher basierend auf der lokalen Lernregel ermittelt wird, addiert wird. Ferner wird vorgeschlagen, dass der ermittelte Wert (Δw) der lokalen Lernregel abhängig von zumindest den zwei Eingangsgrößen gewichtet mit einen vorgebbaren Faktor (η) ermittelt wird.Furthermore, it is proposed that when adapting the parameter, a value (Δw), which is determined based on the local learning rule, is added to a value of this parameter. It is also proposed that the determined value (Δw) of the local learning rule be determined as a function of at least the two input variables weighted with a predeterminable factor (η).

Vorzugsweise ist die lokale Lernregel eine der folgenden: Hebb'sche Lernregel: Δ w = η x y

Figure DE102019214436A1_0001
mit x, der Eingangsgröße der vorgebbaren Schicht und y, der Ausgangsgröße der vorgebbaren Schicht, also die Eingangsgröße der unmittelbar nachfolgenden Schicht der vorgebbaren Schicht, sowie ein vorgebbarer Faktor η.The local learning rule is preferably one of the following: Hebb's learning rule: Δ w = η x y
Figure DE102019214436A1_0001
with x, the input variable of the specifiable layer and y, the output variable of the specifiable layer, that is, the input variable of the immediately following layer of the specifiable layer, and a specifiable factor η.

Oja Lernregel: Δ w = η ( x y y 2 w )

Figure DE102019214436A1_0002
mit w, dem Wert des betrachteten Parameters der vorgebbaren Schicht.
nichtlineare Hebb'sche Lernregel: Δ w = η ( x y 3 w )
Figure DE102019214436A1_0003
Für den Fall, dass die vorgebbare Schicht zusätzlich über eine Überbrückungsverbindung (engl. skip connection) eine weitere Eingangsgröße erhält, und der Überbrückungsverbindung ein Gewicht ws zugeordnet ist, dann kann dieses Gewicht ws ebenfalls nach einer der aufgeführten Gleichungen angepasst werden.Oh yes, learning rule: Δ w = η ( x y - y 2 w )
Figure DE102019214436A1_0002
with w, the value of the considered parameter of the specifiable layer.
non-linear Hebbian learning rule: Δ w = η ( x y 3rd - w )
Figure DE102019214436A1_0003
In the event that the specifiable layer additionally receives a further input variable via a skip connection and a weight w s is assigned to the bridging connection, then this weight w s can also be adapted according to one of the equations listed.

Besonders bevorzugt ist die Lernregel auch abhängig von vorhergehend ermittelten Eingangsgrößen (t - 1) der Schichten. Die Lernregel kann dann eine der folgenden sein: Δ w = η ( x ( t ) ( y ( t ) y ( t 1 ) ) 3 w ( t ) )

Figure DE102019214436A1_0004
oder: Δ w = η ( x ( t ) x ( t 1 ) ) ( y ( t ) y ( t 1 ) )
Figure DE102019214436A1_0005
D.h. der Parameter kann basierend auf einer lokalen Lernregel abhängig von den Eingangsgrößen x(t), x(t - 1) der Schicht, welchen dieser Parameter zugeordnet ist, die in beiden Speichermodulen hinterlegt sind und den ermittelten Eingangsgrößen y(t), y(t - 1) der nachfolgenden Schichten, die in beiden Speichermodulen hinterlegt sind, angepasst werden. Es sei angemerkt, dass die Eingangsgrößen x(t) in einem der Speichermodule und die Eingangsgröße x(t — 1) in dem anderen Speichermodul hinterlegt sind, also getrennt voneinander in unterschiedlichen Speichermodulen hinterlegt sind. Dadurch werden auch Eingangsgrößen der unmittelbar verbundenen Schichten verwendet, die aktuell ermittelt und die zu einem vorhergehenden Zeitpunkt ermittelt wurden.The learning rule is particularly preferably also dependent on previously determined input variables (t − 1) of the layers. The learning rule can then be one of the following: Δ w = η ( x ( t ) ( y ( t ) - y ( t - 1 ) ) 3rd - w ( t ) )
Figure DE102019214436A1_0004
or: Δ w = η ( x ( t ) - x ( t - 1 ) ) ( y ( t ) - y ( t - 1 ) )
Figure DE102019214436A1_0005
Ie the parameter can be based on a local learning rule depending on the input variables x (t), x (t - 1) of the layer to which these parameters are assigned, which are stored in both memory modules and the determined input variables y (t), y ( t - 1) of the following layers, which are stored in both memory modules, can be adapted. It should be noted that the input variables x (t) are stored in one of the memory modules and the input variable x (t − 1) in the other memory module, that is to say are stored separately from one another in different memory modules. In this way, input variables of the directly connected layers are also used, which are currently determined and which were determined at a previous point in time.

Der Vorteil hierbei ist, dass diese lokalen Lernregeln dazu verwendet werden können, die Modellparameter während der Ausführung des künstlichen neuronalen Netzes zur Laufzeit in einer praktikablen Weise zu verfeinern, da die berechneten Werte Δw sehr schnell berechnet werden können.The advantage here is that these local learning rules can be used to refine the model parameters in a practicable manner during the execution of the artificial neural network at runtime, since the calculated values Δw can be calculated very quickly.

Es sei angemerkt, dass weitere lokale Lernregeln verwendet werden können. So kann bspw. die Multiplikation durch eine Addition ersetzt werden. Es sei angemerkt, das auch andere math. Operationen denkbar sind.It should be noted that other local learning rules can be used. For example, the multiplication can be replaced by an addition. It should be noted that other math. Operations are conceivable.

Weiterhin wird vorgeschlagen, dass eine ermittelte Ausgangsgröße des künstlichen neuronalen Netzes nach dem Propagieren mit Referenzdaten verglichen wird, wobei dann, wenn eine Abweichung der ermittelten Ausgangsgröße zu den Referenzdaten größer als eine vorgebbare maximale Abweichung ist, der Schritt des Anpassens ausgeführt wird. Die Referenzdaten können aus anderweitig erfassten Sensordaten ermittelt werden und z.B. in Form von „Ground Truth“ Referenzdaten oder durch einen Nutzer, der die ermittelte Ausgangsgröße bewertet, bereitgestellt werden.It is also proposed that a determined output variable of the artificial neural network is compared with reference data after propagation, the step of adapting being carried out if a deviation of the determined output variable from the reference data is greater than a predeterminable maximum deviation. The reference data can be determined from otherwise recorded sensor data and provided, for example, in the form of "ground truth" reference data or by a user who evaluates the determined output variable.

Weiterhin wird vorgeschlagen, dass mehrere unterschiedliche Eingangsgrößen durch das künstliche neuronale Netz verarbeitet werden und der Parameter über einen Mittelwert aller Änderungen Δw angepasst wird. D.h. Die Anpassung wird dann erst nach einer Mehrzahl von Durchläufen ausgeführt.It is also proposed that several different input variables be processed by the artificial neural network and that the parameter be adapted using an average value of all changes Δw. This means that the adjustment is only carried out after a number of runs.

Weiterhin wird vorgeschlagen, dass die Parameter angepasst werden, welche einen Wert größer als einen vorgebbaren Schwellwert aufweisen.It is also proposed that the parameters are adapted which have a value greater than a predeterminable threshold value.

Vorzugsweise liegt dieser Schwellwert bei 5% oder 10% oder 20% der größten Werte der Parameter. Alternativ können 5% oder 10% oder 20% der Parameter angepasst werden. Denkbar ist, dass beliebig vorgebbare Parameter angepasst werden. Denkbar ist auch, dass zufällig ausgewählte Parameter angepasst werden. Vorteilhaft ist, wenn immer die gleichen Parameter angepasst werden. Falls dies nicht zielführend ist, können alternativ unterschiedliche Parameter angepasst werden.This threshold value is preferably 5% or 10% or 20% of the largest values of the parameters. Alternatively, 5% or 10% or 20% of the parameters can be adjusted. It is conceivable that any parameters that can be specified can be adapted. It is also conceivable that randomly selected parameters are adjusted. It is advantageous if the same parameters are always adjusted. If this is not expedient, different parameters can be adjusted as an alternative.

Abhängig von einer Änderung auf welche sich das künstliche neuronale Netz anpassen soll, z.B., wenn sich die Sensordaten verändern, also z.B. herrschen im Winter andere Belichtungsstatistiken als im Sommer und an diese soll sich das künstliche neuronale Netz anpassen, dann werden vorzugsweise die Parameter der Schichten nahe am Netzeingang angepasst. Geht es eher darum abstraktere Konzepte anzupassen, z.B. ist es wird wichtiger Hunde richtig zu erkennen als Katzen, dann werden vorzugsweise die Parameter der Schichten nahe des Netzausgangs angepasst. Unter Schichten nahe am Netzeingang oder nahe am Netzausgang können die Schichten verstanden werden, die unmittelbar mit einer Eingangsschicht oder Ausgangsschicht verbunden sind.Depending on a change to which the artificial neural network is to adapt, e.g. if the sensor data change, e.g. if the exposure statistics in winter are different than in summer and the artificial neural network is to adapt to these, then the parameters of the layers are preferably adjusted close to the mains input. If the aim is to adapt more abstract concepts, e.g. it is more important to recognize dogs correctly than cats, then the parameters of the layers near the network output are preferably adapted. Under layers close to Network input or close to the network output can be understood as the layers that are directly connected to an input layer or output layer.

Denkbar ist, dass dann, wenn beim Schritt des Anpassens des Parameters dessen Wert über mehrere Schritte hinweg reduziert wird, dieser Parameter daraufhin aus dem künstlichen neuronalen Netz entfernt wird. Zusätzlich oder alternativ, wird der angepasste Parameter dann, wenn dessen Wert einen unteren, vorgebbaren Schwellwert unterschreitet, aus dem künstlichen neuronalen Netz entfernt.It is conceivable that if, in the step of adapting the parameter, its value is reduced over several steps, this parameter is then removed from the artificial neural network. Additionally or alternatively, the adjusted parameter is removed from the artificial neural network when its value falls below a lower, predeterminable threshold value.

Weiterhin wird vorgeschlagen, dass nach dem Anpassen des Parameters eine Regularisierung der Parameter durchgeführt wird.It is also proposed that after the parameter has been adapted, the parameters are regularized.

Unter einer Regularisierung kann eine Normierung oder eine Skalierung des Wertes des angepassten Parameters relativ zu den Werten der anderen Parameter verstanden werden. Der Vorteil hierbei ist, dass ein stabiles numerisches Verhalten garantiert wird. Die Regularisierung kann eine Lp Norm sein: w(t) = w(t) / || w(t) ||p.A regularization can be understood to mean a normalization or a scaling of the value of the adapted parameter relative to the values of the other parameters. The advantage here is that stable numerical behavior is guaranteed. The regularization can be an L p norm: w (t) = w (t) / || w (t) || p .

Vorzugsweise wird das künstliche neuronale Netz in intelligenten mobilen Geräten verwendet, wie z.B. eBikes oder Uhren (engl. smart watches) oder autonomen Rasenmähern.The artificial neural network is preferably used in intelligent mobile devices, such as e-bikes or smart watches or autonomous lawnmowers.

Das vorgeschlagene Verfahren kann in einem physikalischen/technischen System, z.B. einem Roboter oder einem zumindest teilautonomen Fahrzeug eingesetzt werden, welches einen Aktor aufweist. Die ermittelte Ausgangsgröße des künstlichen neuronalen Netzes kann von einer Steuereinheit verwendet werden, sodass die Steuereinheit abhängig von dieser Ausgangsgröße den Aktor steuert. Die Steuereinheit kann hierfür eine Steuergröße abhängig von der ermittelten Ausgangsgröße bestimmen und diese zum Steuern des Aktors verwenden.The proposed method can be used in a physical / technical system, e.g. a robot or an at least partially autonomous vehicle, which has an actuator. The determined output variable of the artificial neural network can be used by a control unit so that the control unit controls the actuator as a function of this output variable. For this purpose, the control unit can determine a control variable as a function of the determined output variable and use this to control the actuator.

Alternativ kann abhängig von der ermittelten Ausgangsgröße des künstlichen neuronalen Netzes die Steuergröße ermittelte werden, die zum Steuern eines Aktors eines technischen Systems verwendet werden kann. Die Steuerung kann entsprechend der Steuergröße erfolgen. Das technische System kann zum Beispiel eine zumindest teilautonome Maschine, ein zumindest teilautonomes Fahrzeug, ein Roboter, ein Werkzeug, eine Werkmaschine oder ein Flugobjekt wie eine Drohne sein. Beispielsweise so kann eine Bewegung des Roboters oder Fahrzeugs gesteuert werden oder eine Steuerung des Aktors erfolgen.Alternatively, depending on the determined output variable of the artificial neural network, the control variable can be determined that can be used to control an actuator of a technical system. The control can take place according to the control variable. The technical system can be, for example, an at least partially autonomous machine, an at least partially autonomous vehicle, a robot, a tool, a work machine or a flying object such as a drone. For example, a movement of the robot or vehicle can be controlled or the actuator can be controlled.

Die bereitgestellte Eingangsgröße des künstlichen neuronalen Netzes kann bspw. abhängig von erfassten Sensordaten ermittelt und dem künstlichen neuronalen Netz bereitgestellt werden. Die Sensordaten können von einem Sensor, wie z.B. einer Kamera, des technischen Systems erfasst oder alternativ von extern empfangen werden.The input variable provided by the artificial neural network can, for example, be determined as a function of the sensed sensor data and made available to the artificial neural network. The sensor data can be recorded by a sensor, such as a camera, of the technical system or, alternatively, can be received externally.

In einem weiteren Aspekt wird ein Computerprogramm vorgeschlagen. Das Computerprogramm ist eingerichtet, eines der vorherigen genannten Verfahren auszuführen. Das Computerprogramm umfasst Anweisungen, die einen Computer veranlassen, eines dieser genannten Verfahren mit all seinen Schritten auszuführen, wenn das Computerprogramm auf dem Computer abläuft. Ferner wird ein maschinenlesbares Speichermodul vorgeschlagen, auf welchem das Computerprogramm gespeichert ist. Des Weiteren wird eine Vorrichtung vorgeschlagen, die eingerichtet ist eines der Verfahren auszuführen. In a further aspect, a computer program is proposed. The computer program is set up to carry out one of the aforementioned methods. The computer program comprises instructions which cause a computer to carry out one of these named methods with all of its steps when the computer program runs on the computer. Furthermore, a machine-readable memory module is proposed on which the computer program is stored. Furthermore, a device is proposed which is set up to carry out one of the methods.

Ausführungsbeispiele der oben genannten Aspekte sind in den beiliegenden Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Dabei zeigen:Exemplary embodiments of the above-mentioned aspects are shown in the accompanying drawings and explained in more detail in the description below. Show:

FigurenlisteFigure list

  • 1 schematisch einen Datenspeicher; 1 schematically a data memory;
  • 2 schematisch ein Flussdiagramm eines Verfahrens zum Betreiben des künstlichen neuronalen Netzes. 2 schematically a flow chart of a method for operating the artificial neural network.

1 zeigt eine schematische Darstellung eines Datenspeichers welcher zwei Speichermodule (11a,11b) aufweist. Die Speichermodule (11a,11b) umfassen jeweils eine Mehrzahl von Speicherbereichen (13a,13b). Die Speicherbereiche (13a,13b) sind eingerichtet, Eingangsgrößen von Schichten eines künstlichen neuronalen Netzes, zu speichern. Die Eingangsgrößen der Schichten sollen im Folgenden als Zwischengrößen bezeichnet werden. Vorzugsweise sind die Speicherbereiche beider Speichermodule (11a,11b) jeweils einer Schicht des künstlichen neuronalen Netzes zugeordnet. Alternativ kann jeder Speicherbereich einem Neuron des künstlichen neuronalen Netzes zugeordnet sein. In dem Ausführungsbeispiel der 1 sind die Speicherbereiche beider Speichermodule (11a,11b) nach einer Reihenfolge der Schichten des künstlichen neuronalen Netzes angeordnet. Die Speicherbereiche des ersten und zweiten Speichermoduls, die an der gleichen Position gemäß der Reihenfolge angeordnet sind, sind der gleichen Schicht zugeordnet. D.h. jede Schicht ist einem Speicherbereich des ersten und einem Speicherbereich des zweiten Speichermoduls zugeordnet. 1 shows a schematic representation of a data memory which has two memory modules ( 11a , 11b ) having. The memory modules ( 11a , 11b ) each comprise a plurality of memory areas ( 13a , 13b ). The memory areas ( 13a , 13b ) are set up to store input variables from layers of an artificial neural network. In the following, the input variables of the layers will be referred to as intermediate variables. The memory areas of both memory modules ( 11a , 11b ) each assigned to a layer of the artificial neural network. Alternatively, each memory area can be assigned to a neuron of the artificial neural network. In the embodiment of 1 are the memory areas of both memory modules ( 11a , 11b ) arranged according to an order of the layers of the artificial neural network. The memory areas of the first and second memory modules, which are arranged in the same position in accordance with the order, are assigned to the same layer. In other words, each layer is assigned to a memory area of the first and a memory area of the second memory module.

Die Speicherbereiche des ersten Speichermoduls (11a) sind jeweils über Verbindungen (12) mit jeweils einem gemäß der Reihenfolge nachfolgenden Speicherbereich des zweiten Speichermoduls (11b) verschaltet, die derjenigen Schicht zugeordnet sind, die der Schicht folgt, welcher dem jeweiligen Speicherbereich des ersten Speichermoduls (IIa) zugeordnet ist. Es sei angemerkt, dass diese Verbindungen in 1 nicht dargestellt sind. Ebenso sind die Speicherbereiche (13b) des zweiten Speichermoduls (11b) mit den nachfolgenden Bereichen (13a) mittels Verbindungen (12) verschaltet.The memory areas of the first memory module ( 11a) are each via connections ( 12th ) each with a memory area of the second memory module following the sequence ( 11b) interconnected that are assigned to that layer that follows the layer that follows the respective Memory area of the first memory module (IIa) is assigned. It should be noted that these connections are in 1 are not shown. The memory areas ( 13b) of the second memory module ( 11b) with the following areas ( 13a) by means of connections ( 12th ) interconnected.

Vorzugsweise sind die Speicherbereiche der Speichermodule durch die Verbindung (12) über zumindest eine Recheneinheit (141) verschaltet. Die Recheneinheit (141) ist eingerichtet, die in dem jeweiligen Speicherbereich (13b) hinterlegte Zwischengröße zu verarbeiten, und in dem nachfolgenden Speicherbereich des anderen Speichermoduls zu hinterlegen. Die Recheneinheit (141) kann eingerichtet sein, die Rechenoperationen bzw. Berechnungen derjenigen Schicht durchzuführen, die in der Abfolge der Schichten des künstlichen neuronalen Netzes derjenigen Schicht folgt, welche dem nachfolgenden Speicherbereich zugeordnet ist.The memory areas of the memory modules are preferably connected through the connection ( 12th ) via at least one processing unit ( 141 ) interconnected. The arithmetic unit ( 141 ) is set up in the respective memory area ( 13b) to process the stored intermediate size, and to store it in the subsequent memory area of the other memory module. The arithmetic unit ( 141 ) can be set up to carry out the arithmetic operations or calculations of that layer which, in the sequence of layers of the artificial neural network, follows that layer which is assigned to the subsequent memory area.

Die Speicherbereiche (13a, 13b), welche an der gleichen Position der Reihenfolge der Speicherbereich der Speichermodule liegen, können jeweils mit der gleichen Recheneinheit (141) verschaltet sein.The memory areas ( 13a , 13b) , which are in the same position in the sequence of the memory area of the memory modules, can each with the same processing unit ( 141 ) be interconnected.

Denkbar ist, dass die Recheneinheit Zugriff auf einen weiteren Speicher (P) hat, in welchem Parameter der Schichten des künstlichen neuronalen Netzes hinterlegt sind. Die Recheneinheit kann ferner eingerichtet sein, abhängig von den Parametern und der bereitgestellten Zwischengröße, diese gemäß der jeweiligen Schicht des künstlichen neuronalen Netzes zu verarbeiten. Die Parameter können z.B. eine math. Funktion parametrisieren, die durch die Recheneinheit ausgeführt wird.It is conceivable that the processing unit has access to a further memory ( P ) has the parameters in which the layers of the artificial neural network are stored. The computation unit can also be set up, depending on the parameters and the provided intermediate variable, to process them according to the respective layer of the artificial neural network. The parameters can, for example, be a math. Parameterize the function that is carried out by the processing unit.

Wird zum Beispiel eine Eingangsgröße durch ein sequenziell betriebenes künstliches neuronales Netz propagiert, kann die Eingangsgröße in einem ersten Speicherbereich (13b) des zweiten Speichermoduls (11b) hinterlegt werden. Daraufhin wird über die Verbindung (12) die Eingangsgröße der Recheneinheit (141) bereitgestellt, die die Eingangsgröße verarbeitet, entsprechend den Berechnungen, die die erste Schicht des künstlichen neuronalen Netzes durchführt. Daraufhin wird die verarbeitete Eingangsgröße, die als Zwischengröße bezeichnet werden kann, in dem zweiten Speicherbereich des ersten Speichermoduls (IIa) hinterlegt. Daraufhin wird die Zwischengröße aus dem zweiten Speicherbereich geladen und mittels der Recheneinheit (141) oder mittels einer weiteren Recheneinheit (142) verarbeitet und in dem dritten Speicherbereich des zweiten Speichermoduls (11b) hinterlegt. Dieses alternierende Laden und Speichern zwischen dem ersten und zweiten Speichermodul (11a,11b) wird dann solange ausgeführt, bis die Zwischengröße im letzten Speicherbereich eines der beiden Speichermodule (11a,11b) hinterlegt ist und als Ausgangsgröße des künstlichen neuronalen Netzes ausgegeben werden kann.For example, if an input variable is propagated through a sequentially operated artificial neural network, the input variable can be stored in a first memory area ( 13b) of the second memory module ( 11b) be deposited. The connection ( 12th ) the input variable of the arithmetic unit ( 141 ) which processes the input variable according to the calculations carried out by the first layer of the artificial neural network. The processed input variable, which can be referred to as the intermediate variable, is then stored in the second memory area of the first memory module (IIa). The intermediate size is then loaded from the second memory area and saved using the computing unit ( 141 ) or by means of another processing unit ( 142 ) processed and stored in the third memory area of the second memory module ( 11b) deposited. This alternating loading and saving between the first and second memory module ( 11a , 11b ) is then executed until the intermediate size in the last memory area of one of the two memory modules ( 11a , 11b ) is stored and can be output as the output variable of the artificial neural network.

In einer weiteren Ausführungsform kann das künstliche neuronale Netz unter Verwendung eines Steuerungsmusters betrieben werden. D.h. den Schichten des künstlichen neuronalen Netzes wird eine Steuergröße zugeordnet, die eine Reihenfolge von Berechnungen charakterisiert, nach welcher die Schicht entweder abhängig oder unabhängig von dieser Reihenfolge ihre Berechnungen durchführen. Für weitere Details über das Steuerungsmuster wird auf das eingangs genannte Dokument der Autoren Fischer et al. verwiesen. In dieser Ausführungsform können die Recheneinheiten (141,142) abhängig von dem Steuerungsmuster ihre Berechnungen parallel durchführen, insbesondere dann, wenn das Steuerungsmuster charakterisiert, dass die Schichten unabhängig von der Reihenfolge betrieben werden.In a further embodiment, the artificial neural network can be operated using a control pattern. In other words, the layers of the artificial neural network are assigned a control variable which characterizes a sequence of calculations according to which the layer carries out its calculations either depending on or independently of this sequence. For further details on the control pattern, please refer to the document by the authors Fischer et al. referenced. In this embodiment, the computing units ( 141 , 142 ) perform their calculations in parallel depending on the control pattern, in particular if the control pattern characterizes that the layers are operated independently of the sequence.

Für den Fall, dass das künstliche neuronale Netz gemäß einem strömenden Steuerungsmuster gesteuert wird, also wenn alle Schichten des künstlichen neuronalen Netzes unabhängig von der Reihenfolge betrieben werden, werden alle Recheneinheiten (141,142) gleichzeitig betrieben. Die Recheneinheiten (141,142) verarbeiten dann zu jedem Verarbeitungsschritt alle Zwischengrößen der Speicherbereiche eines der Speichermodule (IIa) und hinterlegen die verarbeiteten Zwischengrößen in den jeweils nachfolgenden Speicherbereichen des anderen Speichermoduls (11b).In the event that the artificial neural network is controlled according to a flowing control pattern, i.e. when all layers of the artificial neural network are operated independently of the sequence, all computing units ( 141 , 142 ) operated simultaneously. The arithmetic units ( 141 , 142 ) then process all intermediate sizes of the storage areas of one of the storage modules (IIa) for each processing step and store the processed intermediate sizes in the respective subsequent storage areas of the other storage module ( 11b) .

2 zeigt schematisch ein Flussdiagramm eines Verfahrens (20) zum Betreiben eines künstlichen neuronalen Netzes unter Verwendung des Datenspeichers nach 1. 2 shows schematically a flow diagram of a method ( 20th ) for operating an artificial neural network using the data memory 1 .

Das Verfahren (20) beginnt mit Schritt 21. Hierin wird dem Datenspeicher aus 1 eine bereitgestellte Eingangsgröße des künstlichen neuronalen Netzes bereitgestellt. Die Eingangsgröße wird in einem ersten Speicherbereich (13a,13b) einer der beiden Speichermodule (11a,11b) hinterlegt.The procedure ( 20th ) starts with step 21 . This is where the data store is made 1 a provided input variable of the artificial neural network is provided. The input variable is stored in a first memory area ( 13a , 13b ) one of the two memory modules ( 11a , 11b ) deposited.

Daraufhin wird schrittweise die bereitgestellte Eingangsgröße durch das künstliche neuronale Netz propagiert. Dabei ermittelt die Schichten ihre Zwischengrößen, insbesondere abhängig von dem Steuerungsmuster. Die Zwischengrößen werden hierfür alternierend in den Speichermodulen (11a,11b) gelesen und hinterlegt.The input variable provided is then propagated step by step through the artificial neural network. The layers determine their intermediate sizes, in particular as a function of the control pattern. The intermediate sizes are alternately stored in the storage modules ( 11a , 11b ) read and stored.

Beim Propagieren können die Recheneinheiten (141,142) abhängig von dem Steuerungsmuster, welches dem künstlichen neuronalen Netz zugeordnet ist, betrieben werden. Hierbei laden die Recheneinheit die Zwischengröße, dann, wenn sie gemäß dem Steuerungsmuster die Zwischengröße verarbeiten müssen, aus dem jeweiligen Speicherbereich, verarbeiten diese Zwischengröße und hinterlegen diese in dem nachfolgenden Speicherbereich des anderen Speichermoduls.When propagating, the arithmetic units ( 141 , 142 ) are operated depending on the control pattern that is assigned to the artificial neural network. In this case, the arithmetic unit loads the intermediate variable when it has the intermediate variable according to the control pattern have to process from the respective memory area, process this intermediate size and store it in the subsequent memory area of the other memory module.

Der Schritt 22 kann zwischen einem Hinterlegen und Laden der Zwischengrößen beim Propagieren nach Schritt 21 ausgeführt werden. Zusätzlich oder alternativ kann der Schritt 22 dann ausgeführt werden, wenn die bereitgestellte Eingangsgröße durch das künstliche neuronale Netzt propagiert wurde, also das künstliche neuronale Netz die Ausgangsgröße ermittelt hat. In Schritt 22 wird einer der Parameter nach der lokalen Lernregel abhängig von zumindest zwei ermittelten Zwischengrößen nach Schritt 21 angepasst, welche die Eingangsgröße und die ermittelte Ausgangsgröße der Schicht sind, deren Parameter angepasst wird. Die Ausgangsgröße einer Schicht ist die Eingangsgröße deren unmittelbar nachfolgenden Schicht oder die Ausgangsgröße des künstlichen neuronalen Netzes.The step 22nd can choose between storing and loading the intermediate sizes when propagating according to step 21 are executed. Additionally or alternatively, the step 22nd are then carried out when the input variable provided has been propagated by the artificial neural network, that is to say the artificial neural network has determined the output variable. In step 22nd one of the parameters according to the local learning rule is dependent on at least two intermediate variables determined after step 21 adjusted, which are the input variable and the determined output variable of the layer whose parameters are being adjusted. The output variable of a layer is the input variable of its immediately following layer or the output variable of the artificial neural network.

Nachdem Schritt 22 abgeschlossen wurde, können die noch verbleibenden zu ermittelnden Zwischengrößen nach Schritt 21 ermittelt werden, bis eine Ausgangsgröße des künstlichen neuronalen Netzes vorliegt.After step 22nd has been completed, the remaining intermediate variables to be determined can be found after step 21 be determined until an output variable of the artificial neural network is available.

In Schritt 23 kann nach Beenden von Schritt 22 eine neue, bereitgestellte Eingangsgröße durch das künstliche neuronale Netz mit angepassten Parameter propagiert werden.In step 23 can after exiting step 22nd a new, provided input variable can be propagated through the artificial neural network with adapted parameters.

Optional kann dann ein Aktor eines technischen Systems abhängig von der Ausgangsgröße angesteuert oder abhängig von der Ausgangsgröße eine Steuergröße ermittelt werden.Optionally, an actuator of a technical system can then be controlled depending on the output variable or a control variable can be determined depending on the output variable.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • DE 202018104373 U1 [0002]DE 202018104373 U1 [0002]
  • DE 102019214010 [0003]DE 102019214010 [0003]

Claims (10)

Verfahren (20) zum Betreiben eines künstlichen neuronalen Netzes, umfassend folgende Schritte: Schrittweises Verarbeiten einer bereitgestellten Eingangsgröße gemäß einer Reihenfolge von Schichten des künstlichen neuronalen Netzes, wobei beim schrittweisen Verarbeiten die Schichten jeweils abhängig von einer Eingangsgröße der jeweiligen Schicht und abhängig von zumindest einen Parameter, welcher der jeweiligen Schicht zugeordnet ist, eine Ausgangsgröße ermitteln, die dann als Eingangsgröße der jeweils unmittelbar nachfolgenden Schicht gemäß der Reihenfolge oder als Ausgangsgröße des künstlichen neuronalen Netzes bereitgestellt wird, wobei beim schrittweisen Verarbeiten die Eingangsgrößen der Schichten alternierend aus einem von zumindest zwei Speichermodulen (11a,11b) eines Datenspeichers ausgelesen und die ermittelten Ausgangsgrößen als bereitgestellte Eingangsgrößen der unmittelbar nachfolgenden Schichten oder als Ausgangsgröße des künstlichen neuronalen Netz in dem anderen Speichermodul (IIa) hinterlegt werden, und Anpassen des zumindest einen Parameters einer vorgebbaren Schicht basierend auf einer lokalen Lernregel abhängig von zumindest der Eingangsgröße der vorgebbaren Schicht, die in dem einem der Speichermodule (11b) hinterlegt ist, und abhängig von der ermittelten Ausgangsgröße der vorgebbaren Schicht, die als bereitgestellte Eingangsgrößen der unmittelbar nachfolgenden Schicht oder als Ausgangsgröße des künstlichen neuronalen Netzes in dem anderen Speichermodul (11a) hinterlegt ist.A method (20) for operating an artificial neural network, comprising the following steps: Step-by-step processing of a provided input variable according to a sequence of layers of the artificial neural network, In the case of step-by-step processing, the layers determine an output variable depending on an input variable of the respective layer and depending on at least one parameter assigned to the respective layer, which is then used as the input variable of the immediately following layer in accordance with the sequence or as the output variable of the artificial neural Network is provided, In the case of step-by-step processing, the input variables of the layers are alternately read from one of at least two memory modules (11a, 11b) of a data memory and the determined output variables are stored in the other memory module (IIa) as input variables provided for the immediately following layers or as output variables of the artificial neural network , and Adaptation of the at least one parameter of a predeterminable layer based on a local learning rule depending on at least the input variable of the predeterminable layer that is stored in one of the memory modules (11b), and depending on the determined output variable of the predeterminable layer, which is provided as input variables of the directly subsequent layer or as an output variable of the artificial neural network is stored in the other memory module (11a). Verfahren nach Anspruch 1, wobei das schrittweise Verarbeiten der bereitgestellten Eingangsgröße abhängig von einem Steuerungsmuster (eng. rollout patter) ausgeführt wird.Procedure according to Claim 1 The step-by-step processing of the input variable provided is carried out as a function of a control pattern (rollout patter). Verfahren nach einem der vorhergehenden Ansprüche, wobei nach dem Anpassen des Parameters eine Regularisierung der Parameter durchgeführt wird.Method according to one of the preceding claims, wherein after the adjustment of the parameter, the parameters are regularized. Verfahren nach einem der vorhergehenden Ansprüche, wobei beim Anpassen der Parameter zu einem Wert des zumindest einen Parameter ein Wert (Δw), welcher basierend auf der lokalen Lernregel ermittelt wird, addiert wird.Method according to one of the preceding claims, wherein when adapting the parameters, a value (Δw), which is determined based on the local learning rule, is added to a value of the at least one parameter. Verfahren nach Anspruch 4, wobei der ermittelte Wert (Δw) der lokalen Lernregel abhängig von den zumindest zwei Eingangsgrößen gewichtet mit einem vorgebbaren Faktor (η) ermittelt wird.Procedure according to Claim 4 , the determined value (Δw) of the local learning rule being determined as a function of the at least two input variables weighted with a predeterminable factor (η). Verfahren nach einem der vorhergehenden Ansprüche, wobei eine ermittelte Ausgangsgröße des künstlichen neuronalen Netzes nach dem schrittweisen Verarbeiten der bereitgestellten Eingangsgröße mit Referenzdaten verglichen wird, wobei dann, wenn eine Abweichung der ermittelten Ausgangsgröße zu den Referenzdaten größer als eine vorgebbare maximale Abweichung ist, der Schritt des Anpassens ausgeführt wird.Method according to one of the preceding claims, wherein a determined output variable of the artificial neural network is compared with reference data after the step-by-step processing of the provided input variable, wherein if a deviation of the determined output variable from the reference data is greater than a predeterminable maximum deviation, the step of Adjustment is carried out. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Parameter angepasst werden, welche einen Wert größer als ein vorgebbarer Schwellwert aufweisen.Method according to one of the preceding claims, wherein the parameters are adapted which have a value greater than a predeterminable threshold value. Computerprogramm, umfassend Befehle, die beim Ausführen des Computerprogramms durch einen Computer diesen veranlassen, das Verfahren nach einem der vorhergehenden Ansprüche auszuführen.Computer program, comprising instructions which, when the computer program is executed by a computer, cause the computer to execute the method according to one of the preceding claims. Maschinenlesbares Speicherelement, auf dem das Computerprogramm nach Anspruch 8 gespeichert ist.Machine-readable storage element on which the computer program is based Claim 8 is stored. Vorrichtung, die eingerichtet ist, das Verfahren nach einem der Ansprüche 1 bis 7 auszuführen.Device that is set up, the method according to one of the Claims 1 to 7th to execute.
DE102019214436.5A 2019-09-23 2019-09-23 Method, device and computer program for operating an artificial neural network Pending DE102019214436A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102019214436.5A DE102019214436A1 (en) 2019-09-23 2019-09-23 Method, device and computer program for operating an artificial neural network
CN202011001002.4A CN112541568A (en) 2019-09-23 2020-09-22 Method, device and computer program for operating an artificial neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019214436.5A DE102019214436A1 (en) 2019-09-23 2019-09-23 Method, device and computer program for operating an artificial neural network

Publications (1)

Publication Number Publication Date
DE102019214436A1 true DE102019214436A1 (en) 2021-03-25

Family

ID=74845986

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019214436.5A Pending DE102019214436A1 (en) 2019-09-23 2019-09-23 Method, device and computer program for operating an artificial neural network

Country Status (2)

Country Link
CN (1) CN112541568A (en)
DE (1) DE102019214436A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022209457A1 (en) 2022-09-09 2024-03-14 Volkswagen Aktiengesellschaft Method for controlling an artificial neural network when providing a vehicle function

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022209457A1 (en) 2022-09-09 2024-03-14 Volkswagen Aktiengesellschaft Method for controlling an artificial neural network when providing a vehicle function

Also Published As

Publication number Publication date
CN112541568A (en) 2021-03-23

Similar Documents

Publication Publication Date Title
EP3785177B1 (en) Method and device for determining a network-configuration of a neural network
DE202017007641U1 (en) Training machine learning models on multiple machine learning tasks
DE202017105403U1 (en) Instruction set architecture for neural networks
EP3701433B1 (en) Method, device and computer program for developing a deep neural network
DE102012009502A1 (en) Method for training an artificial neural network
DE102018128890A1 (en) Method and test device for testing a driver assistance system for a motor vehicle
WO2021008836A1 (en) Device and computer-implemented method for the processing of digital sensor data and training method for same
DE102018110947A1 (en) LOSS CALING FOR LOW NEURONAL NETWORK TRAINING WITH REDUCED PRECISION
DE102014225039A1 (en) Method and apparatus for providing sparse Gaussian process models for calculation in an engine control unit
EP3748551A1 (en) Method, device and computer program for adjusting a hyperparameter
DE112021005568T5 (en) Data processing device and data processing method
DE102019214436A1 (en) Method, device and computer program for operating an artificial neural network
EP3736742A1 (en) Machine learning system, a method, a computer program and a device for creating the machine learning system
EP3786853A1 (en) Compression of a deep neural network
DE102019213061A1 (en) Classification of AI modules
DE102019113874A1 (en) HIGH-PRECISION LOW-BIT CONVOLUTIONAL NEURAL NETWORK
DE202021102832U1 (en) Device for training neural networks with regard to hardware and energy requirements
DE102016216950A1 (en) Model calculation unit and control unit for calculating a multilayer perceptron model with feedforward and feedback
DE102020210700A1 (en) More flexible iterative operation of artificial neural networks
DE102019214010A1 (en) Data storage and method of operating the data storage
EP3811199A1 (en) Computing unit, method and computer program for multiplying at least two multiplicands
DE102019208265A1 (en) Adaptive cleaning of measurement data for different types of disturbances
DE202019103233U1 (en) Device for setting a hyperparameter
DE102019205081A1 (en) Method, device and computer program for operating a deep neural network
DE102020214100A1 (en) More flexible iterative operation of neural networks on hardware

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed