DE102019214546B4 - Computer-implemented method and apparatus for optimizing an artificial neural network architecture - Google Patents

Computer-implemented method and apparatus for optimizing an artificial neural network architecture Download PDF

Info

Publication number
DE102019214546B4
DE102019214546B4 DE102019214546.9A DE102019214546A DE102019214546B4 DE 102019214546 B4 DE102019214546 B4 DE 102019214546B4 DE 102019214546 A DE102019214546 A DE 102019214546A DE 102019214546 B4 DE102019214546 B4 DE 102019214546B4
Authority
DE
Germany
Prior art keywords
neural network
artificial neural
architecture
function
determined
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.)
Active
Application number
DE102019214546.9A
Other languages
German (de)
Other versions
DE102019214546A1 (en
Inventor
Thomas Elsken
Christoph Schorn
Sebastian Vogel
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 DE102019214546.9A priority Critical patent/DE102019214546B4/en
Publication of DE102019214546A1 publication Critical patent/DE102019214546A1/en
Application granted granted Critical
Publication of DE102019214546B4 publication Critical patent/DE102019214546B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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

Abstract

Computerimplementiertes Verfahren zur Optimierung einer Architektur eines künstlichen neuronalen Netzwerks, wobei eine Architektur des künstlichen neuronalen Netzwerks vorgegeben wird, in der Rechenoperationen des künstlichen neuronalen Netzwerks in Funktions-Schichten zusammengefasst sind, dadurch gekennzeichnet, dass abhängig von der Architektur ein Kehrwert einer Anzahl von Neuronen des künstlichen neuronalen Netzwerks in einer Ausgangs-Schicht einer der Funktions-Schichten bestimmt wird (202), wobei für diese Funktions-Schicht abhängig von der Architektur ein Faktor abhängig von einer Fenstergröße eines Max-Pooling Fensters in einer der Funktions-Schicht nachfolgenden anderen der Funktions-Schichten bestimmt wird (204), wobei ein Maß für eine Empfindlichkeit der Architektur gegenüber Hardware-Speicherfehlern abhängig von einem Produkt des Kehrwerts mit dem Faktor bestimmt wird (208), wobei überprüft wird, ob das Maß einen Schwellwert unterschreitet (210) und wobei ein Hardware-Beschleuniger (106) mit Neuronen, Verbindungen zwischen Neuronen, Gewichten und/oder Aktivierungsfunktionen konfiguriert wird, die von der Architektur vorgegeben sind, wenn das Maß den Schwellwert unterschreitet (210) und wobei anderenfalls das Maß für eine andere Architektur bestimmt wird.Computer-implemented method for optimizing an architecture of an artificial neural network, an architecture of the artificial neural network being specified in which arithmetic operations of the artificial neural network are combined in function layers, characterized in that depending on the architecture, a reciprocal of a number of neurons of the artificial neural network in an output layer of one of the function layers is determined (202), a factor depending on a window size of a max-pooling window in one of the function layers following the function layer for this function layer depending on the architecture -layers is determined (204), with a measure for a sensitivity of the architecture to hardware memory errors being determined as a function of a product of the reciprocal value and the factor (208), with it being checked whether the measure falls below a threshold value (210) and where a hardware description configuring the hleuniger (106) with neurons, connections between neurons, weights and/or activation functions specified by the architecture if the metric falls below the threshold (210) and otherwise determining the metric for another architecture.

Description

Stand der TechnikState of the art

Die Erfindung geht aus von einer Vorrichtung und einem Verfahren zur Optimierung einer Architektur eines künstlichen neuronalen Netzwerks.The invention is based on a device and a method for optimizing an architecture of an artificial neural network.

Wünschenswert ist es, künstliche neuronale Netzwerke bereitzustellen, die insbesondere gegenüber zufälligen Hardware-Speicherfehlern robust sind. Zufällige Hardware-Speicherfehler sind beispielsweise Bit-Flip Fehler, die durch eine auf einen Speicher einwirkende elektromagnetische Strahlung ausgelöst werden. Eine Bewertung einer Architektur eines künstlichen neuronalen Netzwerks mit einer Vielzahl Neuronen gegenüber derartigen Fehlern ist jedoch schwer darzustellen.It is desirable to provide artificial neural networks that are particularly robust to random hardware memory failures. Random hardware memory errors are, for example, bit flip errors that are triggered by electromagnetic radiation affecting a memory. However, an evaluation of an artificial neural network architecture with a large number of neurons against such errors is difficult to present.

Aus SCHORN, Christoph; GUNTORO, Andre; ASCHEID, Gerd: An efficient bit-flip resilience optimization method for deep neural networks. In: 2019 Design, Automation & Test in Europa Conference & Exhibition (DATE). IEEE, 2019. S. 1507-1512 sowie ELSKEN, Thomas; METZEN, Jan Hendrik; HUTTER, Frank: Efficient multiobjective neural architecture search via lamarckian evolution. Version 4, S. 1-23, URL: https://arxiv.org/pdf/1804.09081 sind Verfahren zum Optimieren der Architektur künstlicher neuronaler Netze bekannt.From SCHORN, Christoph; GUNTORO, Andre; ASCHEID, Gerd: An efficient bit-flip resilience optimization method for deep neural networks. In: 2019 Design, Automation & Test in Europa Conference & Exhibition (DATE). IEEE, 2019. pp. 1507-1512 and ELSKEN, Thomas; METZEN, Jan Hendrik; HUTTER, Frank: Efficient multiobjective neural architecture search via lamarckian evolution. Version 4, pp. 1-23, URL: https://arxiv.org/pdf/1804.09081 methods for optimizing the architecture of artificial neural networks are known.

Offenbarung der ErfindungDisclosure of Invention

Die Vorrichtung und das Verfahren gemäß der unabhängigen Ansprüche ermöglicht eine besonders gute Bewertung der Robustheit der Architektur künstlicher neuronaler Netzwerke gegenüber zufälligen Hardware-Speicherfehlern. Damit ist eine Optimierung einer Architektur des künstlichen neuronalen Netzwerks besonders effizient möglich.The device and the method according to the independent claims enable a particularly good evaluation of the robustness of the architecture of artificial neural networks with regard to random hardware memory errors. An optimization of an architecture of the artificial neural network is thus possible in a particularly efficient manner.

In einem computerimplementierten Verfahren zur Optimierung einer Architektur eines künstlichen neuronalen Netzwerks wird eine Architektur des künstlichen neuronalen Netzwerks vorgegeben, in der Rechenoperationen des künstlichen neuronalen Netzwerks in Funktions-Schichten zusammengefasst sind, wobei abhängig von der Architektur ein Kehrwert einer Anzahl von Neuronen des künstlichen neuronalen Netzwerks in einer Ausgangs-Schicht einer der Funktions-Schichten bestimmt wird, wobei für diese Funktions-Schicht abhängig von der Architektur ein Faktor abhängig von einer Fenstergröße eines Max-Pooling Fensters in einer der Funktions-Schicht nachfolgenden anderen der Funktions-Schichten bestimmt wird, wobei ein Maß für eine Empfindlichkeit der Architektur gegenüber Hardware-Speicherfehlern abhängig von einem Produkt des Kehrwerts mit dem Faktor bestimmt wird, wobei überprüft wird, ob das Maß einen Schwellwert unterschreitet und wobei ein Hardware-Beschleuniger mit Neuronen, Verbindungen zwischen Neuronen, Gewichten und/oder Aktivierungsfunktionen konfiguriert wird, die von der Architektur vorgegeben sind, wenn das Maß den Schwellwert unterschreitet und wobei anderenfalls das Maß für eine andere Architektur bestimmt wird. Dieses Maß stellt eine Kenngröße für die Robustheit des künstlichen neuronalen Netzwerks dar. Eine Funktions-Schicht ist hier beispielsweise, anders als in typischen Deep Learning Software Tools, folgendermaßen definiert: Eine Funktions-Schicht beinhaltet alle Rechenoperationen die ein dedizierter Deep Neural Network Hardware-Beschleuniger nacheinander durchführen kann, bevor das Ergebnis in einer Output Feature Map für die Berechnung durch die nächste Funktions-Schicht in einem Speicher abgelegt wird. Die Rechenoperationen sind beispielsweise die Teilrechenoperationen für einen Convolutional-Layer, einen Pooling-Layer, eine batch normalization, oder eine activation function. Der Speicher ist im Beispiel ein Hardware-Speicher. Die letzte Teilrechenoperation der Funktions-Schicht liefert hierbei ein Ergebnis in der Ausgangs-Schicht. Für den Hardware-Speicher wird beispielsweise eine konstante und gleichverteilte Bit-Flip Wahrscheinlichkeit für den Hardware-Speichers zugrunde gelegt. Die Bit-Flip Wahrscheinlichkeit gibt an, mit welcher Wahrscheinlichkeit ein Bit im Speicher seinen Wert z.B. in Reaktion auf äußere Einflüsse ändert. Das Maß wird für eine Berechnung einer optimierten Architektur für ein künstliches neuronales Netzwerk eingesetzt. Dieses Maß stellt eine hinsichtlich der Rechenzeit und Rechenressourcen günstig auszuwertenden Kenngröße der Architektur dar. Die Kenngröße ermöglicht es, die Robustheit neuronaler Netze gegenüber Bit-Flip Fehlern zu bewerten und durch die diesbezügliche Optimierung der Architektur zu erhöhen. Um die Robustheit zu maximieren wird insbesondere die Fehlersensitivität der Architektur dadurch minimiert, dass der Schwellwert von der Architektur unterschritten wird, die im Speicher implementiert wird. Dadurch wird ein optimiertes künstliches neuronales Netzwerk automatisiert erzeugt.In a computer-implemented method for optimizing an architecture of an artificial neural network, an architecture of the artificial neural network is specified, in which arithmetic operations of the artificial neural network are combined in functional layers, with a reciprocal of a number of neurons of the artificial neural network depending on the architecture is determined in an output layer of one of the functional layers, a factor depending on a window size of a max pooling window in one of the functional layers following the functional layer being determined for this functional layer depending on the architecture, wherein a measure of a sensitivity of the architecture to hardware memory errors is determined as a function of a product of the reciprocal and the factor, it being checked whether the measure falls below a threshold value and a hardware accelerator with neurons, connections between neurons, weights and/or activation functions dictated by the architecture are configured if the metric falls below the threshold and otherwise the metric is determined for a different architecture. This measure represents a parameter for the robustness of the artificial neural network. Here, for example, unlike in typical deep learning software tools, a function layer is defined as follows: A function layer contains all computing operations that a dedicated deep neural network hardware accelerator sequentially before storing the result in an output feature map in memory for computation by the next function layer. The arithmetic operations are, for example, the partial arithmetic operations for a convolutional layer, a pooling layer, a batch normalization, or an activation function. In the example, the memory is a hardware memory. The last sub-arithmetic operation of the function layer supplies a result in the output layer. For the hardware memory, for example, a constant and evenly distributed bit flip probability for the hardware memory is taken as a basis. The bit flip probability indicates the probability that a bit in memory will change its value, e.g. in response to external influences. The measure is used for a calculation of an optimized architecture for an artificial neural network. This measure represents a parameter of the architecture that can be evaluated favorably in terms of computing time and computing resources. The parameter makes it possible to evaluate the robustness of neural networks with regard to bit flip errors and to increase it by optimizing the architecture in this regard. In order to maximize the robustness, the error sensitivity of the architecture is minimized in particular by the fact that the architecture that is implemented in the memory falls below the threshold value. This automatically generates an optimized artificial neural network.

In einem Aspekt wird der Faktor für die Funktions-Schicht abhängig von einem insbesondere arithmetischen Mittelwert der individuellen Fenstergrößen von Max-Pooling Fenstern für eine Mehrzahl der nachfolgenden anderen der Funktions-Schichten bestimmt. Dies ermöglicht eine besonders effiziente Berechnung für komplexere Architekturen.In one aspect, the factor for the function layer is dependent on a particular arithmetic mean of the individual window sizes of max-pooling windows for a plurality of the following next to the other functional layers. This enables a particularly efficient calculation for more complex architectures.

In einem Aspekt wird abhängig vom Maß eine Architektur für das künstliche neuronale Netzwerk aus einer Mehrzahl Architekturen für das künstliche neuronale Netzwerk ausgewählt. Das Maß kann beispielsweise in einer Kostenfunktion für ein Sampeln von Architekturen zur Bewertung eingesetzt werden, wobei die Architektur ausgewählt wird, die die Kostenfunktion minimiert.In one aspect, an artificial neural network architecture is selected from a plurality of artificial neural network architectures depending on the metric. For example, the metric can be used in a cost function for sampling architectures for evaluation, choosing the architecture that minimizes the cost function.

Bevorzugt wird eine Architektur für das künstliche neuronale Netzwerk bestimmt, die eine Kostenfunktion minimiert, wobei die Kostenfunktion abhängig vom Maß definiert ist.An architecture for the artificial neural network is preferably determined which minimizes a cost function, the cost function being defined as a function of the measure.

Vorzugweise ist die Kostenfunktion abhängig von einer Anzahl Rechenoperationen oder einer Anzahl benötigter Speichertransfers für eine Bestimmung eines Ergebnisses durch den Hardware-Beschleuniger 106 definiert. Dadurch wird ein besonders schnelles, effizientes und robustes künstliches neuronales Netzwerk automatisiert erzeugt.Preferably, the cost function is defined as a function of a number of arithmetic operations or a number of memory transfers required for the hardware accelerator 106 to determine a result. This automatically generates a particularly fast, efficient and robust artificial neural network.

In einem Aspekt definiert die Architektur ein künstliches neuronales Netzwerk zur Erkennung oder Klassifikation von Objekten abhängig von Sensordaten, insbesondere von Videodaten, Daten zur optischen Abstands- oder Geschwindigkeitsmessung oder Radardaten, wobei abhängig von den Sensordaten eine Eingangsgröße für das künstliche neuronale Netzwerk bestimmt wird, wobei abhängig von einem Ausgangssignal des künstlichen neuronalen Netzwerks ein Ansteuersignal zum Ansteuern eines wenigstens teilautonomen Roboters, eines zumindest teilweise autonomen Fahrzeugs, eines Aktuators, einer Maschine, eines Haushaltsgeräts oder eines Heimwerkgeräts bestimmt wird.In one aspect, the architecture defines an artificial neural network for the detection or classification of objects depending on sensor data, in particular video data, data for optical distance or speed measurement or radar data, an input variable for the artificial neural network being determined depending on the sensor data, where depending on an output signal of the artificial neural network, a control signal for controlling an at least partially autonomous robot, an at least partially autonomous vehicle, an actuator, a machine, a household appliance or a home improvement device is determined.

In einem Aspekt definiert die Architektur ein künstliches neuronales Netzwerk zur Erkennung oder Klassifikation von Objekten abhängig von Sensordaten, insbesondere von Videodaten oder Radardaten, wobei abhängig von Sensordaten ein Eingangsgröße für das künstliche neuronale Netzwerk bestimmt wird, wobei abhängig von einem Ausgangssignal des künstlichen neuronalen Netzwerks eine Information über einen Fußgänger und/oder ein Verkehrsschild und/oder ein Fahrzeug und/oder deren Position relativ zueinander bestimmt wird.In one aspect, the architecture defines an artificial neural network for detecting or classifying objects depending on sensor data, in particular video data or radar data, with an input variable for the artificial neural network being determined depending on sensor data, with an output signal of the artificial neural network determining a Information about a pedestrian and/or a traffic sign and/or a vehicle and/or their position relative to one another is determined.

In einem Aspekt definiert die Architektur ein künstliches neuronales Netzwerk zur Segmentierung von Sensordaten, insbesondere von Videodaten, von Daten zur optischen Abstands- oder Geschwindigkeitsmessung oder von Radardaten definiert, wobei abhängig von den Sensordaten eine Eingangsgröße für das künstliche neuronale Netzwerk bestimmt wird, wobei abhängig von einem Ausgangssignal des künstlichen neuronalen Netzwerks segmentierte Sensordaten bestimmt werden.In one aspect, the architecture defines an artificial neural network for segmenting sensor data, in particular video data, data for optical distance or speed measurement or radar data, with an input variable for the artificial neural network being determined depending on the sensor data, with depending on segmented sensor data are determined from an output signal of the artificial neural network.

Vorzugsweise wird in einer ersten Phase eine Architektur für das künstliche neuronale Netzwerk bestimmt, für die das Maß den Schwellwert unterschreitet, wobei in einer zweiten Phase Trainingsdaten bereitgestellt werden und diese Architektur abhängig von den Trainingsdaten trainiert wird, und wobei in einer dritten Phase die Sensordaten mit dem so trainierten künstlichen neuronalen Netzwerk verarbeitet werden.In a first phase, an architecture for the artificial neural network is preferably determined for which the measure falls below the threshold value, with training data being provided in a second phase and this architecture being trained as a function of the training data, and with the sensor data being used in a third phase processed in the artificial neural network trained in this way.

Eine Vorrichtung umfasst einen Prozessor und einen Speicher für ein künstliches neuronales Netzwerk, die ausgebildet sind, das Verfahren auszuführen.A device comprises a processor and a memory for an artificial neural network, which are designed to carry out the method.

Weitere vorteilhafte Ausführungsformen ergeben sich aus der folgenden Beschreibung und der Zeichnung. In der Zeichnung zeigt:

  • 1 eine schematische Darstellung von Teilen einer Recheneinrichtung,
  • 2 Schritte in einem Verfahren für die Recheneinrichtung,
  • 3 ein Berechnungsschema für das Verfahren.
Further advantageous embodiments result from the following description and the drawing. In the drawing shows:
  • 1 a schematic representation of parts of a computing device,
  • 2 steps in a method for the computing device,
  • 3 a calculation scheme for the procedure.

In 1 ist eine Vorrichtung 100 schematisch dargestellt.In 1 a device 100 is shown schematically.

Die Vorrichtung 100 umfasst einen Prozessor 102, einen Speicher 104, einen Hardware-Beschleuniger 106 für ein künstliches neuronales Netzwerk, einen Sensor 108 und eine Ausgabeeinrichtung 110. Das künstliche neuronale Netzwerk weist eine Vielzahl Neuronen auf. Der Hardware-Beschleuniger 106 kann mit Neuronen, Verbindungen zwischen Neuronen, Gewichten und/oder Aktivierungsfunktionen gemäß einer Architektur für das künstliche neuronale Netzwerk konfiguriert werden.The apparatus 100 comprises a processor 102, a memory 104, an artificial neural network hardware accelerator 106, a sensor 108 and an output device 110. The artificial neural network comprises a plurality of neurons. The hardware accelerator 106 can be configured with neurons, connections between neurons, weights, and/or activation functions according to an artificial neural network architecture.

Der Speicher 104 kann für das Abspeichern der Konfigurationen von neuronalen Netzen als auch für das Schreiben/Lesen von Eingangs- und Ausgangstensoren des künstlichen neuronalen Netzwerks verwendet werden. Es muss nicht notwendigerweise derselbe Speicher 104 für das Abspeichern der Konfigurationen von neuronalen Netzen und das Schreiben/Lesen von Eingang- und Ausgangstensoren des künstlichen neuronalen Netzwerks verwendet werden. Es können dafür verschiedene Speicher verwendet werden.The memory 104 can be used for storing the configurations of neural networks as well as for writing/reading input and output tensors of the artificial neural network. The same memory 104 need not necessarily be used for storing neural network configurations and writing/reading input and output tensors of the artificial neural network. Different memories can be used for this.

Der Hardware-Beschleuniger 106 ist im Beispiel ausgebildet, Ergebnisse aus einer Ausgabeschicht des künstlichen neuronalen Netzwerks in den Speicher 104 zu schreiben. Entsprechende Daten können vom Hardware-Beschleuniger 106 über den Prozessor 102 zum Speicher 104 fließen. In 1 sind Pfeile dargestellt, die Datenflüsse dafür und andere beispielhafte Datenflüsse darstellen. Der Hardware-Beschleuniger 106 ist ausgebildet, das Ergebnis über den Prozessor 102 an die Ausgabeeinrichtung 110 auszugeben.In the example, the hardware accelerator 106 is configured to write results from an output layer of the artificial neural network to the memory 104 . Corresponding data may flow from hardware accelerator 106 to memory 104 via processor 102 . In 1 arrows are shown representing data flows for this and other exemplary data flows. The hardware accelerator 106 is designed to output the result to the output device 110 via the processor 102 .

Ein Speicherzugriff für das Schreiben/Lesen von Eingangs- und Ausgangstensoren nicht notwendigerweise über den Prozessor 102 erfolgen. Es kann ein Direktzugriff vom Hardware-Beschleuniger 106 auf den Speicher 104, ein sogenannter „Direct Memory Access“ vorgesehen sein. In dem Fall ist beispielsweise ein zentraler Datenbus vorgesehen, an welchen der Prozessor 102, der Speicher 104, der Hardware-Beschleuniger 106, die Eingabeeinrichtung 108 und die Ausgabeeinrichtung 110 angeschlossen sind und der den Datenfluss regelt.Memory access for writing/reading input and output tensors is not necessarily done through the processor 102. A direct access from the hardware accelerator 106 to the memory 104, a so-called “direct memory access”, can be provided. In this case, for example, a central data bus is provided, to which the processor 102, the memory 104, the hardware accelerator 106, the input device 108 and the output device 110 are connected and which regulates the data flow.

Der Sensor 108 ist ausgebildet Sensordaten zu liefern. Die Ausgabeeinrichtung 110 ist ausgebildet, ein Ausgabesignal auszugeben.The sensor 108 is designed to deliver sensor data. The output device 110 is designed to output an output signal.

Die Vorrichtung 100 ist ausgebildet, das im Folgenden beschriebene Verfahren durchzuführen. Durch das Verfahren wird eine Robustheit von Architekturen für das künstliche neuronale Netzwerk bewertet und das künstliche neuronale Netzwerk im Speicher 104 nach einer im Verfahren bestimmten besonders robusten Architektur konfiguriert.The device 100 is designed to carry out the method described below. The method evaluates the robustness of architectures for the artificial neural network and configures the artificial neural network in memory 104 according to a particularly robust architecture determined in the method.

Insbesondere wird eine Robustheit gegenüber zufälligen Hardware-Speicherfehlern, d. h. insbesondere Bit-Flip Fehlern, die im Speicher 104 auftreten können, bewertet. Diese Fehler können beispielweise durch eine auf einen Speicher 104 einwirkende elektromagnetische Strahlung ausgelöst werden. Diese Fehler treten beispielsweise mit einer als konstant und gleichverteilt angenommenen Bit-Flip Wahrscheinlichkeit auf.In particular, robustness against random hardware memory errors, i. H. especially bit flip errors that can occur in the memory 104 evaluated. These errors can be triggered, for example, by electromagnetic radiation acting on a memory 104 . These errors occur, for example, with a bit flip probability that is assumed to be constant and uniformly distributed.

Im Verfahren wird ein Maß fASI(N) für eine Empfindlichkeit einer Architektur des künstlichen neuronalen Netzwerks mit N Funktions-Schichten bestimmt. Eine niedrige Empfindlichkeit, insbesondere gegenüber den zufälligen Hardware-Speicherfehlern, insbesondere gegenüber den Bit-Flip Fehlern, die durch die auf den Speicher 104 einwirkende elektromagnetische Strahlung ausgelöst werden, bedeutet eine hohe Robustheit. In diesem Zusammenhang bedeutet Empfindlichkeit, dass eine Ausgabe eines mit Bit-Flip-Fehlern versehenen neuronalen Netzwerks wesentlich von einer unbeeinflussten Variante des Netzwerks abweicht. Eine wesentliche Abweichung liegt beispielsweise vor, wenn andere Schlüsse aus der Ausgabe gezogen werden, wie zum Beispiel veränderte Klassifikations-Ergebnisse.In the method, a measure f ASI (N) for a sensitivity of an architecture of the artificial neural network with N functional layers is determined. A low sensitivity, in particular to the random hardware memory errors, in particular to the bit flip errors that are triggered by the electromagnetic radiation acting on the memory 104, means a high level of robustness. In this context, sensitivity means that an output of a neural network with bit-flip errors deviates significantly from an unaffected variant of the network. A significant deviation exists, for example, if other conclusions are drawn from the output, such as changed classification results.

Das künstliche neuronale Netzwerk umfasst im Beispiel wenigstens eine Funktions-Schicht l, die durch eine Vielzahl Rechenoperationen des künstlichen neuronalen Netzwerks definiert ist, die insbesondere von einem Hardware-Beschleuniger 106 zur Bestimmung eines Ergebnis in einer Ausgangs-Schicht der Funktions-Schicht l nacheinander durchführbar sind. Das Ergebnis kann als ein Ausgangstensor oder eine Output Feature Map definiert sein. Das Ergebnis wird bei der Verwendung des künstlichen neuronalen Netzwerks im Speicher 104 gespeichert. Eine dieser Funktions-Schicht l nachfolgende Funktions-Schicht kann das Ergebnis zur anschließenden Verarbeitung aus dem Speicher 104 laden. Es kann eine Vielzahl der Funktions-Schichten l vorgesehen sein.In the example, the artificial neural network comprises at least one function layer l, which is defined by a large number of arithmetic operations of the artificial neural network, which can be carried out one after the other in particular by a hardware accelerator 106 to determine a result in an output layer of the function layer l are. The result can be defined as an output tensor or an output feature map. The result is stored in memory 104 when using the artificial neural network. A function layer following this function layer 1 can load the result from the memory 104 for subsequent processing. A large number of functional layers 1 can be provided.

Das Verfahren umfasst im Beispiel drei Phasen in denen das künstliche neuronale Netzwerk zuerst bestimmt, dann trainiert und anschließend verwendet wird. Diese drei Phasen können in der im Folgenden beschriebenen Reihenfolge oder unabhängig voneinander ausgeführt werden.In the example, the method comprises three phases in which the artificial neural network is first determined, then trained and then used. These three phases can be performed in the order described below or independently.

In einer ersten Phase wird in einem Schritt 202 für die Funktions-Schicht l ein Kehrwert einer Anzahl n(l) von Neuronen des künstlichen neuronalen Netzwerks in der Ausgangs-Schicht der Funktions-Schicht l bestimmt. Wenn eine Vielzahl der Funktions-Schichten l vorgesehen ist, wird für jede der Schichten ein individueller Kehrwert bestimmt.In a first phase, in a step 202 for the function layer l, a reciprocal of a number n (l) of neurons of the artificial neural network in the output layer of the function layer l is determined. If a large number of functional layers 1 are provided, an individual reciprocal value is determined for each of the layers.

In der ersten Phase wird in einem Schritt 204 für die Funktions-Schicht l ein Faktor λ(l) abhängig von einer Fenstergröße eines Max-Pooling Fensters für das Ergebnis in der nachfolgenden Funktions-Schicht bestimmt. Dieser Faktor λ(l) wird im Folgenden auch als Max-Pooling Faktor λ(l) bezeichnet.In the first phase, in a step 204 for the function layer l, a factor λ (l) is determined as a function of a window size of a max pooling window for the result in the subsequent function layer. This factor λ (l) is also referred to below as the max pooling factor λ (l) .

Wenn das Ergebnis in der Ausgangs-Schicht der Funktions-Schicht l zur anschließenden Verarbeitung in einer Vielzahl der Funktions-Schicht l nachfolgenden Funktions-Schichten bestimmt ist, wird der Max-Pooling Faktor λ(l) abhängig von einem insbesondere arithmetischen Mittelwert bestimmt, der über individuelle Fenstergrößen der Max-Pooling Fenster für die Mehrzahl der nachfolgenden Funktions-Schichten definiert ist.If the result in the output layer of function layer l is determined for subsequent processing in a multiplicity of function layers following function layer l, the max pooling factor λ (l) is determined as a function of a particularly arithmetic mean value that is defined via individual window sizes of the max-pooling window for the majority of the subsequent functional layers.

Wenn eine Vielzahl der Funktions-Schichten l vorgesehen ist, wird für jede der Schichten ein individueller Max-Pooling Faktor λ(l) bestimmt.If a large number of functional layers l are provided, an individual max pooling factor λ (l) is determined for each of the layers.

In der ersten Phase kann in einem optionalen Schritt 206 für die Funktions-Schicht l ein weiterer Faktor ς(l) bestimmt werden, der abhängig von einer Anzahl Funktions-Schichten definiert ist, deren Ergebnis in derselben nachfolgenden Funktions-Schicht insbesondere durch komponentenweise Addition von Eingangstensoren, die aus dem Speicher 104 gelesen werden, vereinigt werden. Die Eingangstensoren entsprechen im Beispiel den Ausgangstensoren, die zuvor gespeichert wurden.In the first phase, in an optional step 206 for the functional layer l, a further factor ς (l) can be determined, which is defined as a function of a number of functional layers, the result of which is in the same subsequent functional layer, in particular by component-wise addition of Input tensors read from memory 104 are merged. In the example, the input tensors correspond to the output tensors that were previously saved.

Wenn eine Vielzahl der Funktions-Schichten l vorgesehen ist, wird für jede der Schichten ein individueller Faktor ς(l) bestimmt. Für Funktions-Schichten l, die nicht in eine komponentenweise Addition eingehen, d.h. wenn keiner der nachfolgenden Funktions-Schichten eine komponentenweise Addition ausführt, ist dieser Faktor ς(l) = 1.If a large number of functional layers l are provided, an individual factor ς (l) is determined for each of the layers. For function layers l that are not included in a component-wise addition, i.e. if none of the subsequent function layers carries out a component-wise addition, this factor is ς (l) = 1.

In der ersten Phase wird in einem Schritt 208 das Maß fASI(N) für die Empfindlichkeit abhängig von einem Produkt des Kehrwerts mit dem Max-Pooling Faktors λ(l) bestimmt.In the first phase, in a step 208, the measure f ASI (N) for the sensitivity is determined as a function of a product of the reciprocal and the max pooling factor λ (1) .

Wenn eine Vielzahl der Funktions-Schichten l vorgesehen ist, wird das Maß fASI(N) abhängig von einer Summe einer Vielzahl der Produkte bestimmt, die für individuelle Funktions-Schichten l bestimmt werden.When a plurality of the functional layers l are provided, the measure f ASI (N) is determined depending on a sum of a plurality of the products determined for individual functional layers l.

Für eine Anzahl N von Funktions-Schichten l wird das Maß fASI(N) beispielsweise bestimmt zu: ƒ A S I ( N ) = Σ i N 1 n l λ ( l ) ς ( l )

Figure DE102019214546B4_0001
For a number N of function layers l, the measure f ASI (N) is determined, for example, as: ƒ A S I ( N ) = Σ i N 1 n l λ ( l ) ς ( l )
Figure DE102019214546B4_0001

In einem Schritt 210 wird abhängig vom Maß fASI(N) eine Architektur für das künstliche neuronale Netzwerk aus einer Mehrzahl Architekturen für das künstliche neuronale Netzwerk bestimmt.In a step 210, an architecture for the artificial neural network is determined from a plurality of architectures for the artificial neural network as a function of the measure f ASI (N).

Beispielsweise wird für jede Architektur einer Vielzahl Architekturen für das künstliche neuronale Netzwerk ein individuelles Maß fASIN) bestimmt. Der Speicher 104 wird in diesem Beispiel mit Neuronen, Verbindungen zwischen Neuronen, Gewichten und/oder Aktivierungsfunktionen konfiguriert, die von der der Architektur mit dem kleinsten der individuellen Maß vorgegeben werden.For example, an individual measure f ASI N) is determined for each architecture of a large number of architectures for the artificial neural network. The memory 104 is configured in this example with neurons, connections between neurons, weights and/or activation functions dictated by the architecture with the smallest of the individual metrics.

Der Hardware-Beschleuniger 106 wird im Schritt 210 mit Neuronen, Verbindungen zwischen Neuronen, Gewichten und/oder Aktivierungsfunktionen gemäß einer Architektur konfiguriert, für die das Maß fASI(N) einen Schwellwert unterschreitet. Der Schwellwert ist beispielsweise im Bereich zwischen 0 und 1 und beträgt beispielsweise 0,1 oder 0,2 oder 0,5. Der Schwellwert kann für einen Vergleich einer Architektur mit einer anderen Architektur auch durch das Maß fASI(N) definiert sein, das für eine der beiden zu vergleichenden Architekturen bestimmt wurde. Wenn das Maß den Schwellwert nicht unterschreitet können diese Schritte beispielsweise solange wiederholt werden, bis eine bestimmte Anzahl Architekturen bestimmt und mit dem Maß bewertet wurden. Sofern das Maß nicht unterschritten wird, kann die Architektur mit dem kleinsten Maß verwendet werden. Die Architekturen definieren eine Topologie für ein künstliches neuronales Netzwerk, die Neuronen, Verbindungen zwischen Neuronen, Gewichten und/oder Aktivierungsfunktionen umfasst.The hardware accelerator 106 is configured in step 210 with neurons, connections between neurons, weights and/or activation functions according to an architecture for which the measure f ASI (N) falls below a threshold value. The threshold value is, for example, in the range between 0 and 1 and is, for example, 0.1 or 0.2 or 0.5. For a comparison of one architecture with another architecture, the threshold value can also be defined by the measure f ASI (N) determined for one of the two architectures to be compared. If the measure does not fall below the threshold value, these steps can be repeated, for example, until a certain number of architectures have been determined and evaluated with the measure. Provided that the size is not undercut, the architecture with the smallest size can be used. The architectures define a topology for an artificial neural network that includes neurons, connections between neurons, weights, and/or activation functions.

Das Maß fASI(N) wird beispielsweise als Kostenfunktion in einem Berechnungsschema für die Architektur künstlicher neuronaler Netzwerke eingesetzt. Ein Beispiel für ein derartiges Berechnungsschema ist in der vorveröffentlichten DE 102017219282 A1 angegeben. Insbesondere wird eine Bewertungseinheit mittels dem Maß fASI(N) als Kostenfunktion zur Bewertung der Leistungsfähigkeit des künstlichen neuronalen Netzwerks oder von Weiterbildungen des künstlichen neuronalen Netzwerks verwendet. In diesem ist das künstliche neuronale Netzwerk durch Parameter p definiert.The measure f ASI (N) is used, for example, as a cost function in a calculation scheme for the architecture of artificial neural networks. An example of such a calculation scheme is in the previously published DE 102017219282 A1 specified. In particular, an evaluation unit uses the measure f ASI (N) as a cost function to evaluate the performance of the artificial neural network works or by further developments of the artificial neural network. In this, the artificial neural network is defined by the parameter p.

Durch Variation der jeweiligen Parameter p wird das künstliche neuronale Netzwerk oder werden die Weiterbildungen des künstlichen neuronalen Netzwerks optimiert. Durch die sich dann ergebenden Maße fASI(N) wird in diesem Beispiel das künstliche neuronale Netzwerk beibehalten oder diejenige der Weiterbildungen des künstlichen neuronalen Netzwerks ausgewählt, deren Maß fASI(N) minimal im Vergleich zu den anderen Maßen fASI(N) ist. Dazu kann eine Topologie eines jeweiligen neuronalen Netzwerk N, beispielsweise ein Graph, der das künstliche neuronale Netzwerk N und die Parametrisierung seiner Schichten als Parameter p definiert, an eine Funktion zur Berechnung des Maßes fASI(N) übergeben werden. Als Rückgabewert liefert diese Funktion einen numerischen Wert der die Architektursensitivität angibt. Hohe Sensitivität entspricht in diesem Beispiel geringer Robustheit gegenüber Bit-Flip Fehlern. Dieser Wert wird in einem Beispiel für ein Sampling von Parent-Architekturen und Child-Architekturen sowie für eine Berechnung einer Pareto Front verwendet. Zusätzlich zum Maß fASI(N) können weitere Kostenfunktionen, welche z.B. eine Effizienz des neuronalen Netzwerks für einen gegebenen Hardware-Beschleuniger 106 abschätzen, verwendet werden. Diese weitere Kostenfunktion berücksichtigt beispielweise eine Anzahl Rechenoperationen oder eine Anzahl benötigter Speichertransfers für die Bestimmung des Ergebnisses durch diesen Hardware-Beschleuniger 106.The artificial neural network or the developments of the artificial neural network are optimized by varying the respective parameters p. In this example, the resulting dimensions f ASI (N) mean that the artificial neural network is retained or that one of the developments of the artificial neural network is selected whose dimension f ASI (N) is minimal compared to the other dimensions f ASI (N). . For this purpose, a topology of a respective neural network N, for example a graph that defines the artificial neural network N and the parameterization of its layers as parameter p, can be transferred to a function for calculating the measure f ASI (N). As a return value, this function returns a numeric value that indicates the architecture sensitivity. In this example, high sensitivity corresponds to low robustness to bit flip errors. This value is used in an example for sampling parent architectures and child architectures and for calculating a Pareto front. In addition to the measure f ASI (N), further cost functions which, for example, estimate an efficiency of the neural network for a given hardware accelerator 106 can be used. This further cost function takes into account, for example, a number of arithmetic operations or a number of memory transfers required for determining the result by this hardware accelerator 106.

Der Hardware-Beschleuniger 106 kann eine Graphical Processing Unit, eine Digital Signal Processing Unit, eine programmierbare FPGA oder eine dedizierte Recheneinrichtung sein oder umfassen.The hardware accelerator 106 may be or include a graphical processing unit, a digital signal processing unit, a programmable FPGA, or a dedicated computing device.

In einer zweiten Phase werden in einem Schritt 212 Trainingsdaten bereitgestellt und diese Architektur abhängig von den Trainingsdaten trainiert.In a second phase, training data is provided in a step 212 and this architecture is trained depending on the training data.

In einem ersten Aspekt definiert die Architektur beispielsweise ein künstliches neuronales Netzwerk zur Erkennung von Objekten abhängig von Sensordaten, insbesondere von Videodaten, Daten zur optischen Abstands- oder Geschwindigkeitsmessung oder Radardaten. In diesem Fall werden im Beispiel die Sensordaten als Trainingsdaten vorgegeben, eine Eingangsgröße für das künstliche neuronale Netzwerk abhängig von den Sensordaten bestimmt und das künstliche neuronale Netzwerk zur Erkennung der Objekte trainiert. Statt einer Erkennung von Objekten kann auch eine Klassifikation von Objekten vorgesehen sein.In a first aspect, the architecture defines, for example, an artificial neural network for detecting objects depending on sensor data, in particular video data, data for optical distance or speed measurement, or radar data. In this case, in the example, the sensor data is specified as training data, an input variable for the artificial neural network is determined as a function of the sensor data, and the artificial neural network is trained to recognize the objects. Instead of recognizing objects, a classification of objects can also be provided.

In einem zweiten Aspekt definiert die Architektur beispielsweise ein künstliches neuronales Netzwerk zur Segmentierung von Sensordaten, insbesondere von Videodaten, von Daten zur optischen Abstands- oder Geschwindigkeitsmessung oder von Radardaten. In diesem Fall werden im Beispiel die Sensordaten als Trainingsdaten vorgegeben, eine Eingangsgröße für das künstliche neuronale Netzwerk abhängig von den Sensordaten bestimmt und das künstliche neuronale Netzwerk zur Segmentierung der Sensordaten trainiert.In a second aspect, the architecture defines, for example, an artificial neural network for segmenting sensor data, in particular video data, data for optical distance or speed measurement, or radar data. In this case, in the example, the sensor data is specified as training data, an input variable for the artificial neural network is determined as a function of the sensor data, and the artificial neural network is trained to segment the sensor data.

In einer dritten Phase werden in einem Schritt 214 die Sensordaten mit dem so trainierten künstlichen neuronalen Netzwerk verarbeitet. Im Beispiel wird abhängig von den Sensordaten eine Eingangsgröße für das künstliche neuronale Netzwerk bestimmt. Im Beispiel wird das Ausgabesignal abhängig von den Eingangsgrößen bestimmt.In a third phase, in a step 214, the sensor data are processed with the artificial neural network trained in this way. In the example, an input variable for the artificial neural network is determined depending on the sensor data. In the example, the output signal is determined depending on the input variables.

Im ersten Aspekt kann vorgesehen sein, dass als Ausgabesignal abhängig von einem Ausgangssignal des künstlichen neuronalen Netzwerks ein Ansteuersignal zum Ansteuern eines wenigstens teilautonomen Roboters, eines zumindest teilweise autonomen Fahrzeugs, eines Aktuators, einer Maschine, eines Haushaltsgeräts oder eines Heimwerkgeräts bestimmt wird. Im ersten Aspekt kann vorgesehen sein, dass als Ausgabesignal abhängig von einem Ausgangssignal des künstlichen neuronalen Netzwerks eine Information über einen Fußgänger und/oder ein Verkehrsschild und/oder ein Fahrzeug und/oder deren Position relativ zueinander bestimmt wird.In the first aspect, it can be provided that a control signal for controlling an at least partially autonomous robot, an at least partially autonomous vehicle, an actuator, a machine, a household appliance or a do-it-yourself device is determined as an output signal depending on an output signal of the artificial neural network. In the first aspect, it can be provided that information about a pedestrian and/or a road sign and/or a vehicle and/or their position relative to one another is determined as an output signal depending on an output signal of the artificial neural network.

Im zweiten Aspekt werden als Ausgabesignal abhängig von einem Ausgangssignal des künstlichen neuronalen Netzwerks segmentierte Sensordaten bestimmt.In the second aspect, segmented sensor data is determined as an output signal depending on an output signal of the artificial neural network.

In 3 ist ein Berechnungsschema beispielhaft für ein künstliches neuronales Netzwerk 300 mit einem Network Input an einer ersten Funktions-Schicht 302 mit n=1000 Neuronen in einer Ausgangs-Schicht der ersten Funktions-Schicht 302 dargestellt. Die erste Funktions-Schicht 302 beinhaltet beispielsweise die Rechenoperationen 2D Convolution und Activation. Der ersten Funktions-Schicht 302 ist ein Layer Index l = 1 zugeordnet.In 3 a calculation scheme is shown as an example for an artificial neural network 300 with a network input at a first function layer 302 with n=1000 neurons in an output layer of the first function layer 302. The first function layer 302 contains the arithmetic operations 2D convolution and activation, for example. A layer index l=1 is assigned to the first functional layer 302 .

Der ersten Funktions-Schicht 302 unmittelbar nachfolgend ist eine verborgene zweite Funktions-Schicht 304 angeordnet. Unmittelbar nachfolgend angeordnet bedeutet in diesem Zusammenhang, dass ein Ausgangstensor der ersten Funktions-Schicht 302, der beispielsweise im Speicher 104 gespeichert wird, den Eingangstensor der verborgenen zweiten Funktions-Schicht 304, der beispielsweise aus dem Speicher 104 gelesen wird, definiert. Die verborgene zweite Funktions-Schicht 304 umfasst beispielsweise n=1000 Neuronen in einer Ausgangs-Schicht der zweiten Funktions-Schicht 304. Die zweite Funktions-Schicht 304 beinhaltet beispielsweise die Rechenoperationen 2D Convolution und Activation. Der verborgenen zweiten Funktions-Schicht 304 ist ein Layer Index l = 2 zugeordnet.A hidden second function layer 304 is arranged immediately after the first function layer 302 . In this context, arranged immediately following means that an output tensor of the first function layer 302, which is stored in the memory 104, for example, defines the input tensor of the hidden second function layer 304, which is read from the memory 104, for example. The hidden second function layer 304 includes, for example, n=1000 neurons in an output layer of the second function layer 304. The second function layer 304 contains, for example, the arithmetic operations 2D convolution and activation. A layer index l=2 is assigned to the hidden second function layer 304 .

Der ersten Funktions-Schicht 302 unmittelbar nachfolgend ist eine verborgene dritte Funktions-Schicht 306 angeordnet. Unmittelbar nachfolgend angeordnet bedeutet in diesem Zusammenhang, dass der Ausgangstensor der ersten Funktions-Schicht 302 den Eingangstensor der verborgenen dritten Funktions-Schicht 306, der beispielsweise aus dem Speicher 104 gelesen wird, definiert. Die verborgene dritte Funktions-Schicht 306 umfasst beispielsweise n=100 Neuronen in einer Ausgangs-Schicht der dritten Funktions-Schicht 306. Die verborgene dritte Funktions-Schicht ist ausgebildet für 2x2 Max-Pooling sowie beispielsweise 2D Convolution und Activation. Der verborgenen dritten Funktions-Schicht 304 ist ein Layer Index l = 3 zugeordnet.A hidden third function layer 306 is arranged immediately after the first function layer 302 . In this context, arranged immediately following means that the output tensor of the first function layer 302 defines the input tensor of the hidden third function layer 306, which is read from the memory 104, for example. The hidden third function layer 306 includes, for example, n=100 neurons in an output layer of the third function layer 306. The hidden third function layer is designed for 2×2 max pooling and for example 2D convolution and activation. A layer index l=3 is assigned to the hidden third function layer 304 .

Der verborgenen zweiten Funktions-Schicht 304 unmittelbar nachfolgend ist eine verborgene vierte Funktions-Schicht 308 angeordnet, deren Eingangstensor durch einen Ausgangstensor der verborgenen zweiten Funktions-Schicht 304 definiert ist. Die verborgene vierte Funktions-Schicht 308 umfasst beispielsweise n=100 Neuronen in einer Ausgangs-Schicht der vierten Funktions-Schicht 308. Die verborgene vierte Funktions-Schicht 308 ist ausgebildet für 2x2 Max-Pooling sowie beispielsweise 2D Convolution und Activation. Der verborgenen vierten Funktions-Schicht 308 ist ein Layer Index l = 4 zugeordnet.A hidden fourth function layer 308 is arranged immediately after the hidden second function layer 304 , the input tensor of which is defined by an output tensor of the hidden second function layer 304 . The hidden fourth function layer 308 includes, for example, n=100 neurons in an output layer of the fourth function layer 308. The hidden fourth function layer 308 is designed for 2×2 max pooling and for example 2D convolution and activation. A layer index l=4 is assigned to the hidden fourth function layer 308 .

Der verborgenen dritten Funktions-Schicht 306 unmittelbar nachfolgend ist eine verborgene fünfte Funktions-Schicht 310 angeordnet, deren Eingangstensor durch einen Ausgangstensor der verborgenen dritten Funktions-Schicht 306 definiert ist. Die verborgene fünfte Funktions-Schicht 310 umfasst beispielsweise n=100 Neuronen in einer Ausgangs-Schicht der fünften Funktions-Schicht 310. Die fünfte Funktions-Schicht 310 beinhaltet beispielsweise die Rechenoperationen 2D Convolution und Activation. Der verborgenen fünften Funktions-Schicht 310 ist ein Layer Index l = 5 zugeordnet.A hidden fifth function layer 310 is arranged immediately after the hidden third function layer 306 , the input tensor of which is defined by an output tensor of the hidden third function layer 306 . The hidden fifth function layer 310 includes, for example, n=100 neurons in an output layer of the fifth function layer 310. The fifth function layer 310 contains, for example, the arithmetic operations 2D convolution and activation. A layer index l=5 is assigned to the hidden fifth function layer 310 .

Der verborgenen vierten Funktions-Schicht 308 und der verborgenen fünften Schicht 310 ist eine verborgene Additions-Schicht 312 unmittelbar nachgeordnet. In der verborgenen Additions-Schicht 312 wird eine komponentenweise Addition von Eingangstensoren ausgeführt, die beispielsweise aus dem Speicher 104 gelesen werden und abhängig von den Ausgangstensoren der verborgenen vierten Funktions-Schicht 308 und der verborgenen fünften Funktions-Schicht 310 definiert sind. Im Beispiel werden diese Eingangstensoren zu einem Tensor addiert.The hidden fourth function layer 308 and the hidden fifth layer 310 is followed directly by a hidden addition layer 312 . In the hidden addition layer 312 , a component-wise addition of input tensors is carried out, which are read from the memory 104 , for example, and are defined as a function of the output tensors of the hidden fourth function layer 308 and the hidden fifth function layer 310 . In the example, these input tensors are added to form a tensor.

Der verborgenen Additions-Schicht 312 unmittelbar nachfolgend ist eine verborgene sechste Funktions-Schicht 314 angeordnet, deren Eingangstensor durch einen Ausgangstensor der verborgenen Additions-Schicht 312 definiert ist. Die verborgene sechste Funktions-Schicht 314 umfasst beispielsweise n=100 Neuronen in einer Ausgangs-Schicht der sechsten Funktions-Schicht 314. Die verborgene sechste Funktions-Schicht 314 ist ausgebildet für 4x4 Max-Pooling sowie beispielsweise 2D Convolution und Activation. Der verborgenen sechsten Funktions-Schicht 314 ist ein Layer Index l = 6 zugeordnet.A hidden sixth function layer 314 is arranged immediately after the hidden addition layer 312 , the input tensor of which is defined by an output tensor of the hidden addition layer 312 . The hidden sixth function layer 314 includes, for example, n=100 neurons in an output layer of the sixth function layer 314. The hidden sixth function layer 314 is designed for 4×4 max pooling and for example 2D convolution and activation. A layer index l=6 is assigned to the hidden sixth function layer 314 .

Der verborgenen sechsten Funktions-Schicht 314 unmittelbar nachfolgend ist eine siebte Funktions-Schicht 316 angeordnet, deren Eingangstensor durch einen Ausgangstensor der verborgene sechsten Funktions-Schicht 314 definiert ist. Die siebte Funktions-Schicht 316 umfasst beispielsweise n=10 Neuronen in einer Ausgangs-Schicht der siebten Funktions-Schicht 316. Die siebte Funktions-Schicht 316 beinhaltet beispielsweise die Rechenoperationen Fully Connected und Activation. Die siebte Funktions-Schicht 316 Ausgangs-Schichtliefert einen Network Output. Der siebten Funktions-Schicht 316 ist ein Layer Index l = 7 zugeordnet.A seventh function layer 316 is arranged immediately after the hidden sixth function layer 314 , the input tensor of which is defined by an output tensor of the hidden sixth function layer 314 . The seventh functional layer 316 includes, for example, n=10 neurons in an output layer of the seventh functional layer 316. The seventh functional layer 316 contains, for example, the arithmetic operations fully connected and activation. The seventh functional layer 316 output layer provides a network output. A layer index l=7 is assigned to the seventh functional layer 316 .

Allgemein sind die Funktions-Schichten mit den Layer Indizes 1-7 jeweils Funktions-Schichten die mehrere Rechenoperationen enthalten können, z.B. 2D Convolution, Activation, Max-Pooling, die von dem Hardware-Beschleuniger 106 in einem Rechenschritt des Hardware-Beschleunigers 106 berechnet werden. In diesem Beispiel muss vom Hardware-Beschleuniger 106 für jeden der in 3 dargestellten Funktions-Schichten ein Ergebnis in den Speicher 104 geschrieben werden. Der Speicher 104 ist fehleranfällig. In einer Funktions-Schicht, die einer anderen Funktions-Schicht nachfolgend angeordnet ist, muss der Wert aus dem Speicher 104 wieder geladen werden. Jeder Pfeil in der Abbildung geht also mit einem Laden aus dem Speicher 104 einher. Die Funktions-Schichten können aufgrund dieser Ladevorgänge nicht gemeinsam vom Hardware-Beschleuniger 106 berechnet werden. Eine Schicht könnte allerdings auch noch weitere Rechenoperationen enthalten, wenn die Realisierung des Hardware-Beschleunigers 106 dies ohne Zwischenspeichern in einem fehlerbehafteten Speicher 104 ermöglicht.In general, the function layers with the layer indices 1-7 are each function layers that can contain several arithmetic operations, eg 2D convolution, activation, max pooling, which are calculated by the hardware accelerator 106 in one computing step of the hardware accelerator 106 . In this example, hardware accelerator 106 must provide for each of the in 3 function layers shown, a result can be written into the memory 104. Memory 104 is error prone. In a function layer that is arranged downstream of another function layer, the value from the Memory 104 to be reloaded. Thus, each arrow in the figure is associated with a load from memory 104. The function layers cannot be calculated together by the hardware accelerator 106 due to these loading processes. However, a layer could also contain further arithmetic operations if the implementation of the hardware accelerator 106 allows this without intermediate storage in a faulty memory 104.

Die folgende Tabelle gibt für jede der Schichten I einzeln die Werte für den Kehrwert 1 n ( l ) ,

Figure DE102019214546B4_0002
den Max-Pooling Faktor λ(l), und den weiteren Faktor ς(l) sowie das daraus berechnete jeweilige Produkt 1 n ( l ) λ ( l ) ς ( l )
Figure DE102019214546B4_0003
an, die sich für diese Architektur ergeben. Die Additions-Schicht 312 geht in diesem Beispiel nicht direkt in die Berechnung des Maßes fASI(N) ein. Der Einfluss der Additions-Schicht 312 wird durch weitere Faktoren in den Schichten mit Layer Index l = 4 und l = 5 modelliert. Dadurch geht die Additions-Schicht 312 indirekt das Maß fASI(N) ein. I 1 n ( l )
Figure DE102019214546B4_0004
λ(l) ζ(l) Produkt
1 0,001 2,5 1 0,0025 2 0,001 4 1 0,004 3 0,01 1 1 0,01 4 0,01 16 2 0,32 5 0,01 16 2 0,32 6 0,01 1 1 0,01 7 0,1 1 1 0,1
The following table gives the values for the reciprocal for each of the layers I individually 1 n ( l ) ,
Figure DE102019214546B4_0002
the max-pooling factor λ (l) , and the further factor ς (l) as well as the respective product calculated from it 1 n ( l ) λ ( l ) ς ( l )
Figure DE102019214546B4_0003
that arise for this architecture. In this example, the addition layer 312 is not directly included in the calculation of the measure f ASI (N). The influence of the addition layer 312 is modeled by further factors in the layers with layer index l=4 and l=5. As a result, the addition layer 312 indirectly enters into the measure f ASI (N). I 1 n ( l )
Figure DE102019214546B4_0004
λ (l) ζ (l) product
1 0.001 2.5 1 0.0025 2 0.001 4 1 0.004 3 0.01 1 1 0.01 4 0.01 16 2 0.32 5 0.01 16 2 0.32 6 0.01 1 1 0.01 7 0.1 1 1 0.1

Der resultierende Wert des Maßes fASI(N) ist in diesem Beispiel fASI(N) = 0,7665.In this example, the resulting value of the dimension f ASI (N) is f ASI (N) = 0.7665.

Das künstliche neuronale Netzwerk ist beispielweise ein deep neural network, das auf dem Hardware-Beschleuniger 106 ausgeführt wird. Das künstliche neuronale Netzwerk ist beispielsweise ausgebildet, Sensordaten zu verarbeiten. Beispielsweise wird der Network Input abhängig von den Sensordaten bestimmt. Das so bestimmte künstliche neuronale Netzwerk ist besonders robust gegen Hardwarefehler und eignet sich besonders für eine Anwendung in sicherheitskritischen Anwendungen, beispielsweise in Automobilen, in denen sehr große Robustheit mit geringen oder limitierten Hardwareressourcen erreicht werden soll. Hardwareressourcen sind beispielsweise Leistungsaufnahme, Latenz oder Speicherbandbreite für die Verarbeitung von Daten durch das künstliche neuronale Netzwerk. Anwendungen in medizinischem oder industriellem Umfeld, in dem Strahlungen eingesetzt werden, können damit ebenfalls sehr robust gestaltet werden. Andere Anwendungen betreffen den Einsatz für Roboter, Werkzeugmaschinen, Produktionsmaschinen oder Regelsysteme.The artificial neural network is a deep neural network running on the hardware accelerator 106, for example. The artificial neural network is designed, for example, to process sensor data. For example, the network input is determined depending on the sensor data. The artificial neural network determined in this way is particularly robust against hardware errors and is particularly suitable for use in safety-critical applications, for example in automobiles, in which very high robustness is to be achieved with little or limited hardware resources. Hardware resources are, for example, power consumption, latency or memory bandwidth for processing data through the artificial neural network. Applications in medical or industrial environments in which radiation is used can also be designed to be very robust. Other applications concern the use for robots, machine tools, production machines or control systems.

Claims (12)

Computerimplementiertes Verfahren zur Optimierung einer Architektur eines künstlichen neuronalen Netzwerks, wobei eine Architektur des künstlichen neuronalen Netzwerks vorgegeben wird, in der Rechenoperationen des künstlichen neuronalen Netzwerks in Funktions-Schichten zusammengefasst sind, dadurch gekennzeichnet, dass abhängig von der Architektur ein Kehrwert einer Anzahl von Neuronen des künstlichen neuronalen Netzwerks in einer Ausgangs-Schicht einer der Funktions-Schichten bestimmt wird (202), wobei für diese Funktions-Schicht abhängig von der Architektur ein Faktor abhängig von einer Fenstergröße eines Max-Pooling Fensters in einer der Funktions-Schicht nachfolgenden anderen der Funktions-Schichten bestimmt wird (204), wobei ein Maß für eine Empfindlichkeit der Architektur gegenüber Hardware-Speicherfehlern abhängig von einem Produkt des Kehrwerts mit dem Faktor bestimmt wird (208), wobei überprüft wird, ob das Maß einen Schwellwert unterschreitet (210) und wobei ein Hardware-Beschleuniger (106) mit Neuronen, Verbindungen zwischen Neuronen, Gewichten und/oder Aktivierungsfunktionen konfiguriert wird, die von der Architektur vorgegeben sind, wenn das Maß den Schwellwert unterschreitet (210) und wobei anderenfalls das Maß für eine andere Architektur bestimmt wird.Computer-implemented method for optimizing an architecture of an artificial neural network, with an architecture of the artificial neural network being specified in which arithmetic operations of the artificial neural network are combined in function layers, characterized in that depending on the architecture, a reciprocal of a number of neurons of the artificial neural network in an output layer of one of the function layers is determined (202), a factor depending on a window size of a max-pooling window in one of the function layers following the function layer for this function layer depending on the architecture -layers is determined (204), with a measure for a sensitivity of the architecture to hardware memory errors being determined as a function of a product of the reciprocal value and the factor (208), with it being checked whether the measure falls below a threshold value (210) and where a hardware bes accelerating (106) with neurons, connections between neurons, weights and/or activation functions specified by the architecture if the metric falls below the threshold (210) and otherwise determining the metric for another architecture. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Faktor für die Funktions-Schicht abhängig von einem insbesondere arithmetischen Mittelwert der individuellen Fenstergrößen von Max-Pooling Fenstern für eine Mehrzahl der nachfolgenden anderen der Funktions-Schichten bestimmt wird (204).procedure after claim 1 , characterized in that the factor for the functional layer is determined (204) as a function of an in particular arithmetic mean of the individual window sizes of max-pooling windows for a plurality of the subsequent other functional layers. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass abhängig vom Maß eine Architektur für das künstliche neuronale Netzwerk aus einer Mehrzahl Architekturen für das künstliche neuronale Netzwerk ausgewählt wird (210).Method according to one of the preceding claims, characterized in that depending on the measure an architecture for the artificial neural network is selected from a plurality of architectures for the artificial neural network (210). Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass eine Architektur für das künstliche neuronale Netzwerk bestimmt wird, die eine Kostenfunktion minimiert, wobei die Kostenfunktion abhängig vom Maß definiert ist.Method according to one of the preceding claims, characterized in that an architecture for the artificial neural network is determined which minimizes a cost function, the cost function being defined as a function of the measure. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die Kostenfunktion abhängig von einer Anzahl Rechenoperationen oder einer Anzahl benötigter Speichertransfers für eine Bestimmung eines Ergebnisses durch den Hardware-Beschleuniger (106) definiert ist.procedure after claim 4 , characterized in that the cost function is defined as a function of a number of arithmetic operations or a number of memory transfers required for a determination of a result by the hardware accelerator (106). Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die Architektur ein künstliches neuronales Netzwerk zur Erkennung oder Klassifikation von Objekten abhängig von Sensordaten, insbesondere von Videodaten, Daten zur optischen Abstands- oder Geschwindigkeitsmessung oder Radardaten, definiert, wobei abhängig von den Sensordaten eine Eingangsgröße für das künstliche neuronale Netzwerk bestimmt wird, wobei abhängig von einem Ausgangssignal des künstlichen neuronalen Netzwerks ein Ansteuersignal zum Ansteuern eines wenigstens teilautonomen Roboters, eines zumindest teilweise autonomen Fahrzeugs, eines Aktuators, einer Maschine, eines Haushaltsgeräts oder eines Heimwerkgeräts bestimmt wird (214).Method according to one of the preceding claims, characterized in that the architecture defines an artificial neural network for the detection or classification of objects depending on sensor data, in particular video data, data for optical distance or speed measurement or radar data, an input variable depending on the sensor data is determined for the artificial neural network, a control signal for controlling an at least partially autonomous robot, an at least partially autonomous vehicle, an actuator, a machine, a household appliance or a DIY appliance being determined as a function of an output signal of the artificial neural network (214). Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Architektur ein künstliches neuronales Netzwerk zur Erkennung oder Klassifikation von Objekten abhängig von Sensordaten, insbesondere von Videodaten oder Radardaten definiert, wobei abhängig von Sensordaten ein Eingangsgröße für das künstliche neuronale Netzwerk bestimmt wird, wobei abhängig von einem Ausgangssignal des künstlichen neuronalen Netzwerks eine Information über einen Fußgänger und/oder ein Verkehrsschild und/oder ein Fahrzeug und/oder deren Position relativ zueinander bestimmt wird (214).Procedure according to one of Claims 1 until 5 , characterized in that the architecture defines an artificial neural network for detecting or classifying objects depending on sensor data, in particular video data or radar data, an input variable for the artificial neural network being determined depending on sensor data, and depending on an output signal of the artificial neural Network information about a pedestrian and / or a traffic sign and / or a vehicle and / or their position relative to each other is determined (214). Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Architektur ein künstliches neuronales Netzwerk zur Segmentierung von Sensordaten, insbesondere von Videodaten, von Daten zur optischen Abstands- oder Geschwindigkeitsmessung oder von Radardaten definiert, wobei abhängig von den Sensordaten ein Eingangsgröße für das künstliche neuronale Netzwerk bestimmt wird, wobei abhängig von einem Ausgangssignal des künstlichen neuronalen Netzwerks segmentierte Sensordaten bestimmt werden (214).Procedure according to one of Claims 1 until 5 , characterized in that the architecture defines an artificial neural network for the segmentation of sensor data, in particular video data, data for optical distance or speed measurement or radar data, with an input variable for the artificial neural network being determined as a function of the sensor data, with dependent sensor data segmented from an output of the artificial neural network is determined (214). Verfahren nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, dass in einer ersten Phase (202, 204, 206, 208, 210) eine Architektur für das künstliche neuronale Netzwerk bestimmt wird, für die das Maß den Schwellwert unterschreitet, wobei in einer zweiten Phase (212) Trainingsdaten bereitgestellt werden und diese Architektur abhängig von den Trainingsdaten trainiert wird, und wobei in einer dritten Phase (214) die Sensordaten mit dem so trainierten künstlichen neuronalen Netzwerk verarbeitet werden.Procedure according to one of Claims 6 until 8th , characterized in that in a first phase (202, 204, 206, 208, 210) an architecture for the artificial neural network is determined for which the measure falls below the threshold value, with training data being provided in a second phase (212) and this architecture is trained depending on the training data, and in a third phase (214) the sensor data are processed with the artificial neural network trained in this way. Vorrichtung (100) zur Optimierung einer Architektur eines künstlichen neuronalen Netzwerks, dadurch gekennzeichnet, dass die Vorrichtung (100) einen Prozessor (102), und einen Speicher (104) für das künstliche neuronale Netzwerk umfasst, die ausgebildet sind das Verfahren nach einem der Ansprüche 1 bis 9 auszuführen.Device (100) for optimizing an architecture of an artificial neural network, characterized in that the device (100) comprises a processor (102) and a memory (104) for the artificial neural network, which are designed using the method according to one of Claims 1 until 9 to execute. Computerprogramm, dadurch gekennzeichnet, dass das Computerprogramm computerlesbare Instruktionen umfasst, bei deren Ausführen auf einem Computer ein Verfahren nach einem der Ansprüche 1 bis 9 abläuft.Computer program, characterized in that the computer program comprises computer-readable instructions, when executed on a computer, a method according to one of Claims 1 until 9 expires. Computerprogrammprodukt, gekennzeichnet durch ein maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 11 gespeichert ist.Computer program product, characterized by a machine-readable storage medium on which the computer program claim 11 is saved.
DE102019214546.9A 2019-09-24 2019-09-24 Computer-implemented method and apparatus for optimizing an artificial neural network architecture Active DE102019214546B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019214546.9A DE102019214546B4 (en) 2019-09-24 2019-09-24 Computer-implemented method and apparatus for optimizing an artificial neural network architecture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019214546.9A DE102019214546B4 (en) 2019-09-24 2019-09-24 Computer-implemented method and apparatus for optimizing an artificial neural network architecture

Publications (2)

Publication Number Publication Date
DE102019214546A1 DE102019214546A1 (en) 2021-03-25
DE102019214546B4 true DE102019214546B4 (en) 2023-01-05

Family

ID=74846418

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019214546.9A Active DE102019214546B4 (en) 2019-09-24 2019-09-24 Computer-implemented method and apparatus for optimizing an artificial neural network architecture

Country Status (1)

Country Link
DE (1) DE102019214546B4 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021132542A1 (en) 2021-12-09 2023-06-15 Bayerische Motoren Werke Aktiengesellschaft METHOD OF PROVIDING BIT FLIP ERRORS RESISTANT; PERTURBATION-RESISTANT AND COMPRESSED NEURAL NETWORK; COMPUTER PROGRAM; DRIVER ASSISTANCE SYSTEM

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017219282A1 (en) 2017-10-26 2019-05-02 Albert-Ludwigs-Universität Freiburg Method and device for automatically generating an artificial neural network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017219282A1 (en) 2017-10-26 2019-05-02 Albert-Ludwigs-Universität Freiburg Method and device for automatically generating an artificial neural network

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ELSKEN, Thomas; METZEN, Jan Hendrik; HUTTER, Frank: Efficient multi-objective neural architecture search via lamarckian evolution. Version 4, S. 1-23, URL: https://arxiv.org/pdf/1804.09081 [abgerufen am 29.07.2022]
SCHORN, Christoph; GUNTORO, Andre; ASCHEID, Gerd: An efficient bit-flip resilience optimization method for deep neural networks. In: 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE). IEEE, 2019. S. 1507-1512

Also Published As

Publication number Publication date
DE102019214546A1 (en) 2021-03-25

Similar Documents

Publication Publication Date Title
DE102016015017B4 (en) Control device with learning function for detecting a cause of noise
DE102018111905A1 (en) Domain-specific language for generating recurrent neural network architectures
EP3785177B1 (en) Method and device for determining a network-configuration of a neural network
DE112016001796T5 (en) FINE-BITE IMAGE CLASSIFICATION BY EXPLORING LABELS FROM A BIPARTITE GRAPH
DE112019000739T5 (en) TIME SERIES ACQUISITION FOR ANALYZING AND CORRECTING A SYSTEM STATUS
EP3590078B1 (en) Neural network system
WO2022171788A1 (en) Prediction model for predicting product quality parameter values
DE102021205714A1 (en) SYSTEM AND PROCEDURE FOR COMBINING DIFFERENTIAL PARTIAL DIFFERENTIAL EQUATION SOLVERS AND NEURAL GRAPH NETWORKS FOR FLUID FLOW PREDICTION
DE102019217613A1 (en) METHOD OF DIAGNOSING AN ENGINE CONDITION AND DIAGNOSTIC MODELING METHOD FOR THEREOF
DE102021109382A1 (en) SYSTEM AND PROCEDURE OF A MONOTON NEURAL OPERATOR NETWORK TECHNICAL FIELD
CN117075582A (en) Industrial process generalized zero sample fault diagnosis method based on DSECMR-VAE
DE102019214546B4 (en) Computer-implemented method and apparatus for optimizing an artificial neural network architecture
DE102023205594A1 (en) Methods and systems for training a machine learning model with measurement data collected during a manufacturing process
DE102023202593A1 (en) Method and system for recommending modules for an engineering project
DE10134926A1 (en) Classifier generating device for automatically sorting objects characterized by electronic attributes, uses thin grid technique to form discrete sub-functional-spaces
EP3901713B1 (en) Method and device for operating a technical system with optimal model
DE102021212483A1 (en) Data processing device and method and program for deep learning of a neural network
DE112021004714T5 (en) ORDINAL TIME SERIES CLASSIFICATION WITH MISSING INFORMATION
DE102019220615A1 (en) Method and device for recognizing and classifying objects
DE102016113310A1 (en) A method for evaluating statements of a plurality of sources about a plurality of facts
DE102020132042A1 (en) Method, system, test system and computer program product for the predictive determination of test results for a technical test object
DE102021207275A1 (en) Method for creating an artificial neural network
DE202021103700U1 (en) Device for generating an artificial neural network
DE102020205129A1 (en) Apparatus and method for training a neural network
DE102021202335A1 (en) Method and device for testing a technical system

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final