DE102019214546A1 - Computer-implemented method and device for optimizing an architecture of an artificial neural network - Google Patents

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

Info

Publication number
DE102019214546A1
DE102019214546A1 DE102019214546.9A DE102019214546A DE102019214546A1 DE 102019214546 A1 DE102019214546 A1 DE 102019214546A1 DE 102019214546 A DE102019214546 A DE 102019214546A DE 102019214546 A1 DE102019214546 A1 DE 102019214546A1
Authority
DE
Germany
Prior art keywords
neural network
artificial neural
architecture
determined
depending
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.)
Granted
Application number
DE102019214546.9A
Other languages
German (de)
Other versions
DE102019214546B4 (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

Landscapes

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

Abstract

Vorrichtung und 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, 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 (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.Device and 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 summarized in functional layers, with a reciprocal of a number of neurons of the artificial neural network depending on the architecture neural network in an output layer of one of the functional layers is determined (202), for this functional layer, depending on the architecture, a factor depending on a window size of a max-pooling window in one of the other functional layers following the functional layer. Layers is determined (204), a measure for a sensitivity of the architecture to hardware memory errors depending on a product of the reciprocal value with the factor is determined (208), it is checked whether the measure falls below a threshold value (210) and where a Hardware acceleration it (106) is configured with neurons, connections between neurons, weights and / or activation functions that are specified by the architecture if the measure falls below the threshold value (210) and otherwise the measure is determined for a different 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 against random hardware memory errors. Random hardware memory errors are, for example, bit-flip errors that are triggered by electromagnetic radiation acting on a memory. However, an assessment of an architecture of an artificial neural network with a large number of neurons against such errors is difficult to represent.

Offenbarung der ErfindungDisclosure of the 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 assessment of the robustness of the architecture of artificial neural networks with respect to random hardware memory errors. 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 summarized in functional layers, a reciprocal of a number of neurons of the artificial neural network depending on the architecture one of the functional layers is determined in an output layer, a factor being determined for this functional layer depending on the architecture depending on a window size of a max-pooling window in one of the other functional layers following the functional layer, wherein a measure for a sensitivity of the architecture to hardware memory errors depending on a product of the reciprocal value with the factor is determined, whereby it is checked whether the measure falls below a threshold value and wherein a hardware accelerator with neurons, connections between Neurons, weights and / or activation functions is configured, which are specified by the architecture, if the measure falls below the threshold value and otherwise the measure is determined for a different architecture. This measure represents a parameter for the robustness of the artificial neural network. For example, a functional layer is defined as follows, unlike in typical deep learning software tools: A functional layer contains all computing operations that a dedicated deep neural network hardware accelerator can be carried out one after the other before the result is stored in an output feature map for calculation by the next functional layer in a memory. 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 functional layer provides a result in the output layer. For the hardware memory, for example, a constant and uniformly distributed bit flip probability is used as the basis for the hardware memory. The bit flip probability indicates the probability with which a bit in the memory changes its value, e.g. in response to external influences. The measure is used to calculate 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 against bit-flip errors and to increase it by optimizing the architecture in this regard. In order to maximize the robustness, in particular the error sensitivity of the architecture is minimized in 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 functional layer is determined as a function of an in particular arithmetic mean value of the individual window sizes of max pooling windows for a plurality of the other subsequent 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, depending on the degree, an architecture for the artificial neural network is selected from a plurality of architectures for the artificial neural network. The measure can be used, for example, in a cost function for sampling architectures for evaluation, the architecture being selected which 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 is preferably determined for the artificial neural network 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.The cost function is preferably dependent on a number of arithmetic operations or a number of memory transfers required for the hardware accelerator to determine a result 106 Are defined. 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 recognizing or classifying objects as a function of 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 as a function of the sensor data, whereby 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 do-it-yourself 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 recognizing or classifying objects as a function of sensor data, in particular video data or radar data, an input variable for the artificial neural network being determined as a function of sensor data 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, an input variable for the artificial neural network being determined as a function of the sensor data, 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 in a third phase 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 emerge 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,
  • 3rd a calculation scheme for the process.

In 1 ist eine Vorrichtung 100 schematisch dargestellt.In 1 is a device 100 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 device 100 includes a processor 102 , a memory 104 , a hardware accelerator 106 for an artificial neural network, a sensor 108 and an output device 110 . The artificial neural network has a large number of neurons. The hardware accelerator 106 can be configured with neurons, connections between neurons, weights and / or activation functions according to an architecture for the artificial neural network.

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. It doesn't necessarily have to be the same memory 104 can be used for storing the configurations of neural networks and for 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.The hardware accelerator 106 is designed in the example, results from an output layer of the artificial neural network in the memory 104 to write. Corresponding data can from Hardware accelerator 106 about the processor 102 to the store 104 flow. In 1 arrows are shown that represent data flows for this and other exemplary data flows. The hardware accelerator 106 is designed to output the result via the processor 102 to the output device 110 to spend.

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.A memory access for writing / reading input and output tensors not necessarily via the processor 102 respectively. It can be a direct access from the hardware accelerator 106 on the memory 104 , a so-called "direct memory access" can be provided. In this case, for example, a central data bus is provided on which the processor 102 , the memory 104 , the hardware accelerator 106 , the input device 108 and the output device 110 connected and that regulates the flow of data.

Der Sensor 108 ist ausgebildet Sensordaten zu liefern. Die Ausgabeeinrichtung 110 ist ausgebildet, ein Ausgabesignal auszugeben.The sensor 108 is trained 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 trained to carry out the procedure described below. The method evaluates the robustness of architectures for the artificial neural network and the artificial neural network in the memory 104 configured according to a particularly robust architecture determined in the process.

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, it is robust to random hardware memory errors, ie in particular bit-flip errors that occur in the memory 104 can occur, rated. These errors can be caused, for example, by an on a memory 104 acting electromagnetic radiation can be triggered. 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 caused by the memory 104 acting electromagnetic radiation is triggered, means a high level of robustness. In this context, sensitivity means that an output of a neural network provided with bit-flip errors deviates significantly from an uninfluenced variant of the network. A significant deviation occurs, 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 functional layer 1, which is defined by a large number of arithmetic operations of the artificial neural network, in particular by a hardware accelerator 106 to determine a result in an output layer of the functional layer 1 can be carried out one after the other. The result can be defined as an output tensor or an output feature map. The result is when using the artificial neural network in memory 104 saved. A function layer following this function layer 1 can take the result for the subsequent processing from the memory 104 load. A multiplicity of the 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 carried out in the order described below or independently of one another.

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.The first phase is one step 202 a reciprocal of a number n (l) of neurons of the artificial neural network in the output layer of the functional layer l is determined for the functional layer l. If a plurality of the functional layers 1 is 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.The first phase is in one step 204 for the functional 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 functional 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 the functional layer 1 is determined for subsequent processing in a large number of functional layers following the functional layer 1, the max-pooling factor λ (1) is determined as a function of an in particular arithmetic mean value, the the max-pooling window for the majority of the subsequent functional layers is defined via individual window sizes.

Wenn eine Vielzahl der Funktions-Schichten l vorgesehen ist, wird für jede der Schichten ein individueller Max-Pooling Faktor λ(l) bestimmt.If a multiplicity of the functional layers l is 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.The first phase can be an optional step 206 a further factor l (l) can be determined for the functional layer l, which is defined as a function of a number of functional layers, the result of which in the same subsequent functional layer, in particular by component-wise addition of input tensors from the memory 104 to be read, to be united. In the example, the input tensors correspond to the output tensors that were previously stored.

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 plurality of the functional layers l is 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, ie if none of the following function layers carry 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.The first phase is in one step 208 the measure f ASI (N) for the sensitivity is determined as a function of a product of the reciprocal value with the max pooling factor λ (l) .

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.If a multiplicity of the functional layers 1 is provided, the measure f ASI (N) is determined as a function of a sum of a multiplicity of the products which are determined for individual functional layers 1.

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

Figure DE102019214546A1_0001
For a number N of functional layers I, the measure f ASI (N) is determined, for example, as: f A. S. I. ( N ) = l N 1 n l λ ( l ) ς ( l )
Figure DE102019214546A1_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 one step 210 an architecture for the artificial neural network from a plurality of architectures for the artificial neural network is determined 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ß fASI(N) 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 that are specified by the architecture with the smallest of the individual dimensions.

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 will be in crotch 210 configured 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 an architecture with another architecture, the threshold value can also be defined by the measure f ASI (N), which was 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 dimension is not undershot, the architecture with the smallest dimension 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 pre-published DE 102017219282 A1 specified. In particular, an evaluation unit by means of the measure f ASI (N) is used as a cost function for evaluating the performance of the artificial neural network or of further developments of the artificial neural network. In this the artificial neural network is defined by 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 further developments of the artificial neural network are optimized by varying the respective parameters p. The resulting measures f ASI (N) in this example keep the artificial neural network or select that one of the developments of the artificial neural network whose measure f ASI (N) is minimal compared to the other measures f ASI (N) . For this purpose, a topology of a respective neural network N, for example a graph which 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). The return value of this function is a numerical value that indicates the architecture sensitivity. High sensitivity corresponds to in this example of poor robustness against bit-flip errors. In an example, this value is used 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 an efficiency of the neural network for a given hardware accelerator, can be used 106 estimate, be used. This additional cost function takes into account, for example, a number of arithmetic operations or a number of required memory transfers for the determination of 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 can be or comprise 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.A second phase will be in one step 212 Training data provided and this architecture 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 recognizing objects as a function of 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 are 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 a recognition of 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 are 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.A third phase will be in one step 214 processes the sensor data 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 the 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 traffic sign and / or a vehicle and / or their position relative to one another is determined as the output signal as a function of 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 are determined as an output signal as a function of 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 3rd is a calculation scheme exemplary for an artificial neural network 300 with a network input on a first functional layer 302 with n = 1000 neurons in an output layer of the first functional layer 302 shown. The first functional layer 302 includes, for example, the arithmetic operations 2D Convolution and Activation. The first functional layer 302 a layer index l = 1 is assigned.

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.The first functional layer 302 immediately following is a hidden second functional layer 304 arranged. Arranged immediately below in this context means that an output tensor of the first functional layer 302 , for example in memory 104 is stored, the input tensor of the hidden second functional layer 304 , for example from memory 104 is read. The hidden second functional layer 304 comprises, for example, n = 1000 neurons in an output layer of the second functional layer 304 . The second functional layer 304 includes, for example, the arithmetic operations 2D Convolution and Activation. The hidden second functional layer 304 a layer index l = 2 is assigned.

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.The first functional layer 302 immediately following is a hidden third functional layer 306 arranged. Arranged immediately below in this context means that the output tensor of the first functional layer 302 the input tensor of the hidden third functional layer 306 , for example from memory 104 is read. The hidden third functional layer 306 comprises, for example, n = 100 neurons in an output layer of the third functional layer 306 . The hidden third functional layer is designed for 2x2 max pooling and, for example, 2D convolution and activation. The hidden third functional layer 304 a layer index l = 3 is assigned.

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.The hidden second functional layer 304 immediately following is a hidden fourth functional layer 308 arranged whose input tensor through an output tensor of the hidden second functional layer 304 is defined. The hidden fourth functional layer 308 comprises, for example, n = 100 neurons in an output layer of the fourth functional layer 308 . The hidden fourth functional layer 308 is trained for 2x2 max pooling as well as 2D convolution and activation, for example. The hidden fourth functional layer 308 a layer index l = 4 is assigned.

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.The hidden third functional layer 306 immediately following is a hidden fifth functional layer 310 arranged whose input tensor through an output tensor of the hidden third functional layer 306 is defined. The hidden fifth functional layer 310 comprises, for example, n = 100 neurons in an output layer of the fifth functional layer 310 . The fifth functional layer 310 includes, for example, the arithmetic operations 2D Convolution and Activation. The hidden fifth functional layer 310 a layer index l = 5 is assigned.

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 functional layer 308 and the hidden fifth layer 310 is a hidden addition layer 312 immediately downstream. In the hidden addition layer 312 a component-wise addition of input tensors is carried out, for example from the memory 104 are read and dependent on the output tensors of the hidden fourth functional layer 308 and the hidden fifth functional layer 310 are defined. In the example these input tensors are added to 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.The hidden addition layer 312 immediately following is a hidden sixth functional layer 314 arranged whose input tensor through an output tensor of the hidden addition layer 312 is defined. The hidden sixth functional layer 314 comprises, for example, n = 100 neurons in an output layer of the sixth functional layer 314 . The hidden sixth functional layer 314 is trained for 4x4 max pooling as well as 2D convolution and activation, for example. The hidden sixth functional layer 314 a layer index l = 6 is assigned.

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.The hidden sixth functional layer 314 immediately following is a seventh functional layer 316 arranged whose input tensor through an output tensor of the hidden sixth functional layer 314 is defined. The seventh functional layer 316 comprises, for example, n = 10 neurons in an output layer of the seventh functional layer 316 . The seventh functional layer 316 includes, for example, the computing operations Fully Connected and Activation. The seventh functional layer 316 Output layer provides a network output. The seventh functional layer 316 a layer index l = 7 is assigned.

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.The functional layers with the layer indices are general 1 - 7th each functional layer that can contain several arithmetic operations, eg 2D convolution, activation, max pooling, which are provided by the hardware accelerator 106 in one computing step of the hardware accelerator 106 be calculated. In this example it must be from the hardware accelerator 106 for everyone in 3rd function layers shown a result in the memory 104 to be written. The memory 104 is prone to errors. The value must be taken from the memory in a function layer that is arranged downstream of another function layer 104 reloaded. So each arrow in the figure goes with a load from memory 104 hand in hand. Due to these loading processes, the functional layers cannot share the hardware accelerator 106 be calculated. A layer could, however, also contain further arithmetic operations if the hardware accelerator is implemented 106 this without intermediate storage in a faulty memory 104 enables.

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

Figure DE102019214546A1_0002
den Max-Pooling Faktor λ(l), und den weiteren Faktor ζ(l) sowie das daraus berechnete jeweilige Produkt 1 n ( l ) λ ( l ) ς ( l )
Figure DE102019214546A1_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 DE102019214546A1_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 value for each of the layers I individually 1 n ( l ) ,
Figure DE102019214546A1_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 DE102019214546A1_0003
resulting for this architecture. The addition layer 312 is not directly included in the calculation of the dimension f ASI (N) in this example. The influence of the addition layer 312 is influenced by other factors in the Layers modeled with layer index l = 4 and l = 5. This goes through the addition layer 312 indirectly the measure f ASI (N). I. 1 n ( l )
Figure DE102019214546A1_0004
λ (l) ζ (l) product
1 0.001 2.5 1 0.0025 2 0.001 4th 1 0.004 3rd 0.01 1 1 0.01 4th 0.01 16 2 0.32 5 0.01 16 2 0.32 6th 0.01 1 1 0.01 7th 0.1 1 1 0.1

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

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, for example, a deep neural network that runs on the hardware accelerator 106 is performed. 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 small or limited hardware resources. Hardware resources are, for example, power consumption, latency or memory bandwidth for the processing of data by 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 relate to the use for robots, machine tools, production machines or control systems.

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 102017219282 A1 [0038]DE 102017219282 A1 [0038]

Claims (12)

Computerimplementiertes Verfahren zur Optimierung einer Architektur eines künstlichen neuronalen Netzwerks, dadurch gekennzeichnet, dass eine Architektur des künstlichen neuronalen Netzwerks vorgegeben wird, 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 (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, characterized in that an architecture of the artificial neural network is specified, in which arithmetic operations of the artificial neural network are summarized in functional layers, with a reciprocal of a number of neurons depending on the architecture artificial neural network in an output layer of one of the functional layers is determined (202), for this functional layer, depending on the architecture, a factor depending on a window size of a max-pooling window in one of the other functional layers following the functional layer Layers is determined (204), a measure for a sensitivity of the architecture to hardware memory errors being determined as a function of a product of the reciprocal value with the factor (208), it being checked whether the measure falls below a threshold value (210) and where a hardware bes Accelerator (106) is configured with neurons, connections between neurons, weights and / or activation functions that are specified by the architecture if the measure falls below the threshold value (210) and otherwise the measure is determined for a different 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 according to Claim 1 , characterized in that the factor for the functional layer is determined as a function of an in particular arithmetic mean value of the individual window sizes of max pooling windows for a plurality of the other subsequent functional layers (204). 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 is determined for the artificial neural network 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 according to Claim 4 , characterized in that the cost function is defined as a function of a number of arithmetic operations or a number of required memory transfers 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 recognizing or classifying objects depending on sensor data, in particular video data, data for optical distance or speed measurement or radar data, with 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 do-it-yourself device is 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).Method according to one of the Claims 1 to 5 , 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 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 Network information about a pedestrian and / or a traffic sign and / or a vehicle and / or their position relative to one another 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).Method according to one of the Claims 1 to 5 , characterized in that 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 sensor data segmented by an output signal 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.Method according to one of the Claims 6 to 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 as a function of 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 according to one of the Claims 1 to 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 they are executed on a computer, a method according to one of the Claims 1 to 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 is based Claim 11 is stored.
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 true DE102019214546A1 (en) 2021-03-25
DE102019214546B4 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)

Cited By (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

Family Cites Families (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

Cited By (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

Also Published As

Publication number Publication date
DE102019214546B4 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
DE102018111905A1 (en) Domain-specific language for generating recurrent neural network architectures
DE112019000739T5 (en) TIME SERIES ACQUISITION FOR ANALYZING AND CORRECTING A SYSTEM STATUS
DE102017218889A1 (en) Unarmed parameterized AI module and method of operation
EP3736817A1 (en) Checking and / or improvement in the consistency of data codes in medical image processing
CN117075582A (en) Industrial process generalized zero sample fault diagnosis method based on DSECMR-VAE
DE102023202593A1 (en) Method and system for recommending modules for an engineering project
DE102018216078A1 (en) Method and device for operating a control system
DE102015216953A1 (en) Method and device for measuring a unit to be tested
DE102019214546B4 (en) Computer-implemented method and apparatus for optimizing an artificial neural network architecture
DE102013206291A1 (en) Method and apparatus for creating a non-parametric, data-based function model
DE102019207575A1 (en) Method for assessing a function-specific robustness of a neural network
EP3857455A1 (en) Machine learning system and a method, a computer program and a device for creating the machine learning system
DE102013225768A1 (en) Method and apparatus for determining a LOLIMOT model
DE102021212483A1 (en) Data processing device and method and program for deep learning of a neural network
DE102019220615A1 (en) Method and device for recognizing and classifying objects
DE102019207573A1 (en) Method for the function-specific robustification of a neural network
DE102019114049A1 (en) Method for validating a driver assistance system using further generated test input data sets
DE102020132042A1 (en) Method, system, test system and computer program product for the predictive determination of test results for a technical test object
DE102016113310A1 (en) A method for evaluating statements of a plurality of sources about a plurality of facts
DE102023200301A1 (en) Method and device for feature selection
DE102022120560A1 (en) METHOD FOR CALIBRATION OF A TORQUE SENSOR SYSTEM FOR A TRANSMISSION
DE102021132542A1 (en) METHOD OF PROVIDING BIT FLIP ERRORS RESISTANT; PERTURBATION-RESISTANT AND COMPRESSED NEURAL NETWORK; COMPUTER PROGRAM; DRIVER ASSISTANCE SYSTEM
DE102021207275A1 (en) Method for creating an artificial neural network
DE102021125306A1 (en) Method and device for providing a precise and robust neural network
DE202021103700U1 (en) Device for generating an artificial neural network

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