DE102019214436A1 - Method, device and computer program for operating an artificial neural network - Google Patents
Method, device and computer program for operating an artificial neural network Download PDFInfo
- Publication number
- DE102019214436A1 DE102019214436A1 DE102019214436.5A DE102019214436A DE102019214436A1 DE 102019214436 A1 DE102019214436 A1 DE 102019214436A1 DE 102019214436 A DE102019214436 A DE 102019214436A DE 102019214436 A1 DE102019214436 A1 DE 102019214436A1
- Authority
- DE
- Germany
- Prior art keywords
- neural network
- artificial neural
- memory
- variable
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
Die Erfindung betrifft ein Verfahren (20) zum Betreiben eines künstlichen neuronalen Netzes. Das Verfahren umfasst die Schritte: Schrittweises Verarbeiten einer bereitgestellten Eingangsgröße gemäß einer Reihenfolge von Schichten des künstlichen neuronalen Netzes, wobei Eingangsgrößen der Schichten alternierend aus einem von zumindest zwei Speichermodulen eines Datenspeichers ausgelesen und die ermittelte Eingangsgröße für ihre unmittelbar nachfolgende Schicht in dem anderen Speichermodul hinterlegt werden. Daraufhin folgt ein Anpassen zumindest einer der Parameter basierend auf einer lokalen Lernregel. Die Erfindung betrifft ferner ein Computerprogramm und eine Vorrichtung zum Ausführen des Verfahrens (20) und ein maschinenlesbares Speicherelement, auf dem das Computerprogramm gespeichert ist.The invention relates to a method (20) for operating an artificial neural network. The method comprises the following steps: Step-by-step processing of a provided input variable according to a sequence of layers of the artificial neural network, input variables of the layers being read alternately from one of at least two memory modules of a data memory and the determined input variable for its immediately following layer being stored in the other memory module . This is followed by an adaptation of at least one of the parameters based on a local learning rule. The invention also relates to a computer program and a device for carrying out the method (20) and a machine-readable memory element on which the computer program is stored.
Description
Technisches GebietTechnical area
Die Erfindung betrifft ein Verfahren zum Betreiben eines künstlichen neuronalen Netzes unter Verwendung einer lokalen Lernregel. Ebenso betrifft die Erfindung eine Vorrichtung und ein Computerprogramm, die jeweils eingerichtet sind, das Verfahren auszuführen.The invention relates to a method for operating an artificial neural network using a local learning rule. The invention also relates to a device and a computer program which are each set up to carry out the method.
Stand der TechnikState of the art
Es ist bekannt, Schichten der künstlichen neuronalen Netze vollständig parallelisiert auszuführen, wie gezeigt von den Autoren Fischer, V., Köhler, J. und Pfeil, T. in der Veröffentlichung „The streaming rollout of deep networkstowards fully model-parallel execution“, Advances in Neural Information Processing Systems (pp. 4043-4054), https://arxiv.org/pdf/1806.04965.pdf, sowie gezeigt in der
Das nicht-vorveröffentlichte Dokument
Vorteile der ErfindungAdvantages of the invention
Das Anlernen von künstlichen neuronalen Netzen ist aufwendig und teuer, da zum einen gelabelte Daten benötigt werden und zum anderen aufwändige Berechnungen durchgeführt werden müssen, um eine annährend optimale Parametrisierung zu ermitteln. Daher ist das Anlernen nur mit ausreichend viel Rechenleistung durchführbar. Das führt dazu, dass die Parametrisierung während eines Betreibens des künstlichen neuronalen Netzes fix ist und nachträglich nicht verändert wird.The training of artificial neural networks is complex and expensive, because on the one hand labeled data is required and on the other hand complex calculations have to be carried out in order to determine an approximately optimal parameterization. Training can therefore only be carried out with sufficient computing power. This means that the parameterization is fixed while the artificial neural network is in operation and is not changed afterwards.
Jedoch ist es wünschenswert, die Parametrisierung nachträglich nachjustieren zu können, um z.B. auf neue Situationen reagieren zu können.However, it is desirable to be able to readjust the parameterization afterwards, e.g. to be able to react to new situations.
Das vorgeschlagene Verfahren führt vorteilhafterweise ein „Finetuning“ mit einer lokalen Lernregel der Parametrisierung des künstlichen neuronalen Netzes durch. Das künstliche neuronale Netz kann dadurch nachträglich für eine spezielle Anwendung oder für einen Anwender spezifisch eingestellt werden. Das „Finetuning“ ist sogar während des Betriebs des künstlichen neuronalen Netzes durchführbar.The proposed method advantageously carries out “fine tuning” with a local learning rule for the parameterization of the artificial neural network. The artificial neural network can thus be set subsequently for a special application or specifically for a user. The "fine tuning" can even be carried out while the artificial neural network is in operation.
Offenbarung der ErfindungDisclosure of the invention
In einem ersten Aspekt wird ein, insbesondere computerimplementiertes oder rein hardwareimplementiertes, Verfahren zum Betreiben eines künstlichen neuronalen Netzes, insbesondere zur Nachadaption von Parametern des künstlichen neuronalen Netzes, gemäß dem unabhängigen Anspruch 1 vorgestellt.In a first aspect, a method, in particular computer-implemented or purely hardware-implemented, for operating an artificial neural network, in particular for post-adaptation of parameters of the artificial neural network, according to independent claim 1 is presented.
Das künstliche neuronale Netz weist eine Reihenfolge von Schichten auf, denen jeweils zumindest ein Parameter zugeordnet ist. Die Parameter können Gewichte oder Filter sein. Das Verfahren umfasst die folgenden Schritte: Schrittweises Verarbeiten einer bereitgestellten Eingangsgröße des künstlichen neuronalen Netzes gemäß der Reihenfolge der Schichten des künstlichen neuronalen Netzes oder gemäß einer Reihenfolge von Berechnungen der Schichten des künstlichen neuronalen Netzes. Unter dem schrittweisen Verarbeiten kann ein Propagieren der Eingangsgröße durch das künstliche neuronale Netz verstanden werden. Beim schrittweisen Verarbeiten werden Eingangsgrößen der Schichten aus einem von zumindest zwei Speichermodulen eines Datenspeichers ausgelesen, die Eingangsgröße der jeweiligen unmittelbar nachfolgenden Schicht gemäß der Reihenfolge werden dann abhängig von dem Parameter, der der jeweiligen Schicht zugeordnet ist, und abhängig von einer der ausgelesenen Eingangsgrößen ermittelt und daraufhin in dem anderen Speichermodul hinterlegt. Das Lesen und Hinterlegen erfolgt alternierend zwischen den beiden Speichermodulen. Unter alternierend kann verstanden werden, dass abwechselnd die Eingangsgrößen in den Speichermodulen ausgelesen und hinterlegt werden. D.h. nach jedem Berechnungsschritt liegt in einem der Speichermodule die aktuell ermittelte Eingangsgröße und in dem anderen Speichermodul die vorhergehend ermittelte Eingangsgröße vor. D.h. es wird aus einem ersten Speichermodul gelesen und dann in dem zweiten Speichermodul gespeichert, daraufhin wird aus dem zweiten Speichermodul gelesen und dann in dem ersten Speichermodul gespeichert. Daraufhin folgt ein Anpassen zumindest eines Parameters einer vorgebbaren Schicht basierend auf einer lokalen Lernregel abhängig von zumindest der Eingangsgröße der vorgebbaren Schicht, die in dem einem der Speichermodule hinterlegt ist, und der Eingangsgröße für deren unmittelbar nachfolgenden verbundenen Schicht, die in dem anderen Speichermodul hinterlegt ist.The artificial neural network has a sequence of layers, each of which is assigned at least one parameter. The parameters can be weights or filters. The method comprises the following steps: Step-by-step processing of a provided input variable of the artificial neural network according to the sequence of the layers of the artificial neural network or according to a sequence of calculations of the layers of the artificial neural network. The step-by-step processing can be understood to mean propagating the input variable through the artificial neural network. In the case of step-by-step processing, the input variables of the layers are read from one of at least two memory modules of a data memory; the input variables of the respective immediately following layer are then determined in accordance with the sequence depending on the parameter assigned to the respective layer and depending on one of the input variables read then stored in the other memory module. Reading and storing takes place alternately between the two memory modules. Alternating can be understood to mean that the input variables are alternately read out and stored in the memory modules. This means that after each calculation step, the currently determined input variable is available in one of the memory modules and the previously determined input variable is available in the other memory module. That is, it is read from a first memory module and then stored in the second memory module, then read from the second memory module and then stored in the first memory module. This is followed by an adaptation of at least one parameter of a specifiable layer based on a local learning rule depending on at least the input variable of the specifiable layer that is stored in one of the memory modules and the input variable for its immediately following connected layer that is stored in the other memory module .
Die Eingangsgrößen der Schichten können Zwischengrößen, insbesondere Zwischenergebnisse, des künstlichen neuronalen Netzes sein. Es sei angemerkt, dass der zumindest eine Parameter der letzten Schicht abhängig von der Eingangsgröße dieser Schicht und abhängig von einer Ausgangsgröße des künstlichen neuronalen Netzes, bzw. abhängig von einer ermittelten Ausgangsgröße dieser Schicht, basierend auf der lokalen Lernregel angepasst werden kann. Die Ausgangsgröße des künstlichen neuronalen Netzes kann in einem der Speichermodule oder in einem weiteren Speicher hinterlegt sein. Die Eingangsgröße des künstlichen neuronalen Netzes ist die Eingangsgröße der ersten Schicht der Reihenfolge der Schichten.The input variables of the layers can be intermediate variables, in particular intermediate results, of the artificial neural network. It should be noted that the at least one parameter of the last layer is dependent on the input variable of this layer and dependent on an output variable of the artificial neural network, or is dependent can be adapted from a determined output variable of this layer, based on the local learning rule. The output variable of the artificial neural network can be stored in one of the memory modules or in a further memory. The input variable of the artificial neural network is the input variable of the first layer in the sequence of layers.
Es sei angemerkt, dass der Datenspeicher auch mehr als zwei Speichermodule aufweisen kann, wobei die ermittelten Eingangsgrößen der Schichten jeweils alternierend in einem der Speichermodule hinterlegt wird. Der Vorteil ist hierbei, dass die Anpassung des Parameters abhängig von mehreren vorhergehend ermittelten Eingangsgrößen, die jeweils in einem der Speichermodule hinterlegt sind, durchgeführt werden kann, also weiter in die Vergangenheit geschaut werden kann. Die Speichermodule können jeweils für jede Schicht einen Speicherbereich aufweisen, in welchen deren Eingangsgrößen hinterlegt werden.It should be noted that the data memory can also have more than two memory modules, the determined input variables of the layers being stored alternately in one of the memory modules. The advantage here is that the adjustment of the parameter can be carried out as a function of several previously determined input variables that are each stored in one of the memory modules, that is to say, one can look further into the past. The memory modules can each have a memory area for each layer in which their input variables are stored.
Es sei angemerkt, dass der Schritt des Anpassens des Parameters einmal beim Propagieren der Eingangsgröße durch das künstliche neuronale Netz ausgeführt werden kann. Alternativ kann der Schritt des Anpassens beim Propagieren der Eingangsgröße mehrmals, vorzugsweise für unterschiedliche Parameter, ausgeführt werden.It should be noted that the step of adapting the parameter can be carried out once when the input variable is propagated through the artificial neural network. Alternatively, the step of adapting can be carried out several times when the input variable is propagated, preferably for different parameters.
Nach dem Anpassen kann erneut die Eingangsgröße der nachfolgenden Schicht der vorgebbaren Schicht abhängig von dem angepassten Parameter ermittelt und diese Eingangsgröße der nachfolgenden Schicht dann in dem anderen Speichermodul hinterlegt werden.After the adaptation, the input variable of the subsequent layer of the predefinable layer can again be determined as a function of the adapted parameter and this input variable of the subsequent layer can then be stored in the other memory module.
Der Schritt des Anpassens kann entweder zwischen einem der Verarbeitungsschritte beim schrittweisen Verarbeiten nachdem die Ausgangsgrößen hinterlegt wurden oder nachdem eine Ausgangsgröße des künstlichen neuronalen Netzes abhängig von der bereitgestellten Eingangsgröße ermittelt wurde, ausgeführt werden. D.h. nach dem Schritt des Anpassens kann das Propagieren fortgesetzt werden, oder eine neue Eingangsgröße kann durch das künstliche neuronale Netz propagiert werden.The step of adapting can be carried out either between one of the processing steps during step-by-step processing after the output variables have been stored or after an output variable of the artificial neural network has been determined as a function of the input variable provided. That is, after the step of adapting, the propagation can be continued, or a new input variable can be propagated through the artificial neural network.
Unter einer lokalen Lernregel kann verstanden werden, dass nur lokale Eingangsgrößen einer Schicht beim Anpassen des Parameters verwendet werden. Die lokalen Eingangsgrößen können diejenigen Eingangsgrößen sein, welche zur Verarbeitung mit dem Parameter verwendet werden und die davon abhängig ermittelten Eingangsgrößen. Vorzugsweise sind die lokalen Eingangsgrößen nur die Eingangsgrößen derjenigen Schichten des künstlichen neuronalen Netzes, die unmittelbar, insbesondere nachfolgend gemäß der Reihenfolge der Schichten, miteinander im künstlichen neuronalen Netz verbunden sind und/oder die, die unmittelbar einen Berechnungszeitschritt auseinanderliegen. Denkbar ist auch, dass die lokalen Eingangsgrößen die Eingangsgrößen derjenigen Schichten des künstlichen neuronalen Netzes sind, die mittelbar nebeneinanderliegen, also z.B. zwei oder mehr Schichten voneinander entfernt liegen. Vorzugsweise ist die lokale Lernregel unabhängig von einem aktuellen Wert des Parameters. Die lokale Lernregel kann auch als eine Heuristik angesehen werden, nach welcher die Parameter angepasst werden, um eine Abschätzung für eine geeignete Anpassung zu erhalten.A local learning rule can be understood to mean that only local input variables of a layer are used when adjusting the parameter. The local input variables can be those input variables that are used for processing with the parameter and the input variables determined as a function of this. The local input variables are preferably only the input variables of those layers of the artificial neural network that are directly connected to one another in the artificial neural network, in particular subsequently in accordance with the sequence of the layers, and / or those that are immediately one calculation time step apart. It is also conceivable that the local input variables are the input variables of those layers of the artificial neural network that are indirectly next to one another, i.e. two or more layers apart from one another, for example. The local learning rule is preferably independent of a current value of the parameter. The local learning rule can also be viewed as a heuristic according to which the parameters are adapted in order to obtain an estimate for a suitable adaptation.
Der Vorteil des Verfahrens ist, dass aufgrund der lokalen Lernregel das nachträgliche Anpassen der Parameter selbst auf einem mobilen Endgerät und sogar während des Betreibens des künstlichen neuronalen Netzes durchgeführt werden kann. Der Vorteil des alternierenden Lesens und Schreibens der Eingangsgrößen in die zwei Speichermodule des Datenspeichers ist, dass immer eine aktuelle ermittelte Eingangsgröße und eine vorhergehend ermittelte Eingangsgröße für die lokale Lernregel im Speicher zur Verfügung steht. Alternierendes Lesen und Speichern ist ferner vorteilhaft, da hier der Speicher besonders gut ausgelastet ist und da es ein beliebig ausgeprägtes parallelisierte Betreiben der Schichten ermöglicht.The advantage of the method is that, due to the local learning rule, the subsequent adjustment of the parameters can be carried out even on a mobile terminal and even while the artificial neural network is in operation. The advantage of the alternating reading and writing of the input variables in the two memory modules of the data memory is that a currently determined input variable and a previously determined input variable are always available in the memory for the local learning rule. Alternating reading and storing is also advantageous since the memory is particularly well utilized here and since it enables the layers to be operated in parallel in any way.
Vorzugsweise ist das künstliche neuronale Netz ein bereits angelerntes oder vorangelerntes künstliches neuronales Netz, also Parameter wurden durch eine Mehrzahl von Anlernschritte vor Beginn des vorgeschlagenen Verfahrens bereits angepasst. Die Parameter des künstlichen neuronalen Netzes können durch eine Optimierung einer Kostenfunktion (engl. loss function), vorzugsweise einer Optimierung mittels eines Gradiententabstiegsverfahrens, vor-/angelernt worden sein. Unter einem vorangelernten künstlichen neuronalen Netz kann verstanden werden, dass die Optimierung nicht vollständig ausgeführt wurde und mittendrin abgebrochen wurde, also ein Optimum der Kostenfunktion nicht erreicht wurde. Dieses Vorgehen hat den Vorteil, dass dadurch schneller eine benutzerspezifische oder anwendungsspezifische Parametrisierung basierend auf der lokalen Lernregel eingestellt werden kann. D.h. bei der Auslieferung des künstlichen neuronalen Netzes an einen Nutzer müssen z.B. anwendungs-/länder- und/ oder nutzerspezifische Anpassungen der Parameter des künstlichen neuronalen Netzes nicht vorgenommen werden, da diese beim Betreiben des künstlichen neuronalen Netzes basierend auf der lokalen Lernregel vorgenommen werden können.The artificial neural network is preferably an already learned or previously learned artificial neural network, that is to say parameters have already been adapted by a plurality of learning steps before the start of the proposed method. The parameters of the artificial neural network can have been pre-learned / learned by optimizing a cost function (loss function), preferably by optimizing by means of a gradient descent method. A pre-learned artificial neural network can be understood to mean that the optimization was not carried out completely and was terminated in the middle, i.e. an optimum of the cost function was not achieved. This procedure has the advantage that a user-specific or application-specific parameterization based on the local learning rule can be set more quickly. This means that when the artificial neural network is delivered to a user, e.g. application / country- and / or user-specific adjustments to the parameters of the artificial neural network do not have to be made, since these can be carried out when operating the artificial neural network based on the local learning rule.
Es wird vorgeschlagen, dass der Datenspeicher wie im Folgenden vorgeschlagen aufgebaut ist. Der Datenspeicher umfasst zwei Speichermodule, die jeweils eine Mehrzahl von Speicherbereichen aufweisen. Es wird vorgeschlagen, dass die Speicherbereiche der zwei Speichermodule jeweils nach einer vorgebbaren Reihenfolge von ausgeführten Berechnungen des künstlichen neuronalen Netzes angeordnet sind. Die Speicherbereiche der zwei Speichermodule können jeweils mit zumindest einem aus der Reihenfolge unmittelbare nachfolgenden Speicherbereich des anderen Speichermoduls verschaltet sein. Also Speicherbereiche des ersten Speichermoduls sind jeweils mit zumindest einem gemäß der Reihenfolge unmittelbar nachfolgenden Speicherbereich des zweiten Speichermoduls und die Speicherbereiche des zweiten Speichermoduls sind jeweils mit zumindest einem gemäß der Reihenfolge unmittelbar nachfolgenden Speicherbereich des ersten Speichermoduls verschaltet.It is proposed that the data memory be constructed as proposed below. The data memory comprises two memory modules, each having a plurality of storage areas. It is proposed that the memory areas of the two memory modules are each arranged according to a predeterminable sequence of calculations carried out by the artificial neural network. The memory areas of the two memory modules can each be interconnected with at least one memory area of the other memory module immediately following from the sequence. So memory areas of the first memory module are each connected to at least one immediately following memory area of the second memory module in accordance with the sequence and the memory areas of the second memory module are each connected to at least one immediately following memory area of the first memory module in accordance with the sequence.
Es kann gesagt werden, dass der Speicherbereich des ersten Speichermoduls mit seiner Position in der Reihenfolge der Speicherbereiche des ersten Speichermoduls mit dem Speicherbereich des zweiten Speichermoduls, der eine unmittelbar nachfolgende Position dieser Position in der Reihenfolge der Speicherbereiche des zweiten Speichermoduls hat, verschaltet ist. Das gleiche gilt für die Speicherbereiche des zweiten Speichermoduls. Es sei angemerkt, dass dadurch eine „überkreuzte“- Verschaltung der Speicherbereiche zwischen den Speichermodulen entsteht.It can be said that the memory area of the first memory module is connected with its position in the order of the memory areas of the first memory module with the memory area of the second memory module, which has an immediately following position of this position in the order of the memory areas of the second memory module. The same applies to the memory areas of the second memory module. It should be noted that this creates a “crossed” interconnection of the memory areas between the memory modules.
Die vorgebbare Reihenfolge der Speicherbereiche kann der Reihenfolge der Schichten des künstlichen neuronalen Netzes entsprechen.The predeterminable sequence of the memory areas can correspond to the sequence of the layers of the artificial neural network.
Die Speicherbereiche können derart miteinander verschaltet sein, dass hinterlegte Eingangsgrößen einer der Speicherbereiche eines der Speichermodule in zumindest einem aus der Reihenfolge nachfolgenden Speicherbereich des anderen Speichermodules hinterlegbar sind. D.h. die Speicherbereiche des ersten Speichermoduls können mit den Speicherbereichen des zweiten Speichermoduls derart verschalten sein, dass hinterlegte Eingangsgrößen aus zumindest einem Speicherbereich des ersten Speichermoduls geladen werden und daraufhin in einem gemäß der Reihenfolge nachfolgendem Speicherbereich des zweiten Speichermoduls hinterlegbar sind. Das gleiche gilt auch für die Speicherbereiche des zweiten Speichermoduls. Es kann daher gesagt werden, dass die Speicherbereiche des ersten Speichermoduls nicht gemäß der Reihenfolge mit ihren nachfolgenden Speicherbereichen des ersten Speichermoduls verschaltet sind und damit keine Daten innerhalb der Speicherbereiche des ersten Speichermoduls übertragen werden können. Das gleiche gilt auch für die Speicherbereiche des zweiten Speichermoduls. D.h. die Speicherbereiche sind mit den Speicherbereichen des anderen Speichermoduls derart miteinander verschaltet, dass Eingangsgrößen alternierend aus dem ersten Speichermodul geladen, verarbeitet und daraufhin in dem zweiten Speichermodul geschrieben werden.The memory areas can be interconnected in such a way that stored input variables of one of the memory areas of one of the memory modules can be stored in at least one memory area of the other memory module that follows from the sequence. That is, the memory areas of the first memory module can be interconnected with the memory areas of the second memory module in such a way that stored input variables are loaded from at least one memory area of the first memory module and can then be stored in a memory area of the second memory module following the sequence. The same also applies to the memory areas of the second memory module. It can therefore be said that the memory areas of the first memory module are not interconnected in accordance with the sequence with their subsequent memory areas of the first memory module and thus no data can be transmitted within the memory areas of the first memory module. The same also applies to the memory areas of the second memory module. That is, the memory areas are interconnected with the memory areas of the other memory module in such a way that input variables are alternately loaded from the first memory module, processed and then written to the second memory module.
Der Vorteil des Datenspeichers ist, dass die Eingangsgrößen durch diese Art der Verschaltung der Speicherbereiche, insbesondere durch die „überkreuzte“-Verschaltung, der Speicherbereiche alternierend in den zwei Speichermodulen gelesen und gespeichert werden. Damit erlaubt dieser Datenspeicher besonders effizient das künstliche neuronale Netz unter Verwendung eines strömenden Steuerungsmusters (engl. streaming rollout) auszuführen.The advantage of the data memory is that the input variables are read and stored alternately in the two memory modules through this type of interconnection of the memory areas, in particular through the “crossed” interconnection of the memory areas. This data memory thus enables the artificial neural network to be carried out particularly efficiently using a streaming control pattern.
Vorzugsweise sind die zwei Speichermodule identisch.The two memory modules are preferably identical.
Die Speichermodule sind vorzugsweise Register oder Pufferspeicher (engl. Cache) zumindest einer Recheneinheit (z.B. einer CPU/GPU), und/oder sind Arbeitsspeicher (RAM). Alternativ können die Speichermodule Massenspeicher, wie eine Festplatte, sein.The memory modules are preferably registers or buffer memories (cache) of at least one processing unit (e.g. a CPU / GPU), and / or are working memories (RAM). Alternatively, the memory modules can be mass storage devices, such as a hard disk.
Vorzugsweise sind die zwei Speichermodule, insbesondere Speicherbereiche, symmetrisch zueinander angeordnet. Der Vorteil dieses speziellen Aufbaus ist, dass eine bessere Gesamtperformance durch kürzere Datenpfade erzielt wird. Also ein hoher Datendurchsatz (engl. throughput) und kurze Verzögerung (engl. latency) werden beim Ausführen von Berechnungen des künstlichen neuronalen Netzes unter Verwendung des vorgeschlagenen Datenspeichers erzielt, da die Eingangsgrößen besonders schnell alternierend geladen und gespeichert werden können.The two memory modules, in particular memory areas, are preferably arranged symmetrically to one another. The advantage of this special structure is that better overall performance is achieved through shorter data paths. A high throughput and short latency are achieved when performing calculations of the artificial neural network using the proposed data memory, since the input variables can be loaded and stored alternately particularly quickly.
Weiterhin wird vorgeschlagen, dass jedem Speicherbereich jeweils einer Schicht oder zumindest einem Neuron des künstlichen neuronalen Netzes zugeordnet ist, und die Speicherbereiche jeweils eingerichtet sind, die Eingangsgrößen der jeweiligen zugeordneten Schicht zu hinterlegen. Vorzugsweise weisen die Speicherbereiche zumindest so viel Speicherplatz auf, wie benötigt wird, um die jeweilige Eingangsgröße zu hinterlegen. Bspw. für eine Eingangsgröße einer faltenden Schicht (engl. convolutional layer) weist der zugehörige Speicherbereich mehr Speicherplatz auf als ein Speicherbereich für einen schwach vermaschte Schicht nahe am Ausgang des künstlichen neuronalen Netzes.It is further proposed that each memory area is assigned to a layer or at least one neuron of the artificial neural network, and the memory areas are each set up to store the input variables of the respective assigned layer. The memory areas preferably have at least as much memory space as is required to store the respective input variable. For example, for an input variable of a convolutional layer, the associated memory area has more memory space than a memory area for a weakly meshed layer close to the output of the artificial neural network.
Weiterhin wird vorgeschlagen, dass die Verschaltung der Speicherbereiche über Verbindungen erfolgt, die jeweils eingerichtet sind, mathematische Operationen auszuführen. Vorzugsweise entsprechen die mathematischen Operationen der Verbindungen denjenigen mathematischen Operationen, die die Schichten des jeweils zugeordneten Speicherbereichs durchführt. Denkbar ist, dass die Verbindungen in Hardware implementierte mathematische Operationen sind. Die mathematischen Operationen können Additionen (bspw. von einzelnen Elementen der Eingangsgröße) und/oder Multiplikationen (bspw. von einzelnen Elementen der Eingangsgröße oder mit einem Multiplikanden) sein. Zusätzlich oder alternativ können die mathematischen Operationen auch eine Faltung mit einem vorgebbaren Filter und/oder Pooling sein.It is also proposed that the interconnection of the memory areas takes place via connections which are each set up to carry out mathematical operations. The mathematical operations of the connections preferably correspond to those mathematical operations carried out by the layers of the respectively assigned memory area. It is conceivable that the Connections are mathematical operations implemented in hardware. The mathematical operations can be additions (for example of individual elements of the input variable) and / or multiplications (for example of individual elements of the input variable or with a multiplicand). Additionally or alternatively, the mathematical operations can also be a convolution with a predefinable filter and / or pooling.
Weiterhin wird vorgeschlagen, dass die Verbindungen die Speicherbereiche durch zumindest eine Recheneinheit verschalten sind und die Recheneinheit eingerichtet ist, die math. Operatoren auf die hinterlegbaren Eingangsgrößen in dem jeweiligen Speicherbereich auszuführen. D.h. die Verbindung verbindet die Recheneinheit mit den zugehörigen Speicherbereichen, aus welchem die Eingangsgröße geladen wird und in welche das die verarbeitete Eingangsgröße durch die Recheneinheit hinterlegt werden soll. D.h. die Verbindung ist eingerichtet, die Eingangsgrößen zu laden und zu speichern. Vorzugsweise ist die Verbindung ein Datenbus.It is also proposed that the connections, the memory areas are interconnected by at least one processing unit and the processing unit is set up to do math. Execute operators on the input variables that can be stored in the respective memory area. This means that the connection connects the processing unit with the associated memory areas from which the input variable is loaded and in which the processed input variable is to be stored by the processing unit. This means that the connection is set up to load and save the input variables. The connection is preferably a data bus.
Vorzugsweise ist die Recheneinheit eingerichtet, Berechnungen der Schichten, insbesondere der Neuronen parallel auszuführen. Besonders bevorzugt ist die Recheneinheit eingerichtet abhängig von einem Steuerungsmuster (engl. rollout pattern), welches dem künstlichen neuronalen Netz zugeordnet ist, die Berechnungen der Schichten gleichzeitig/parallel auszuführen. Alternativ kann die Recheneinheit eingerichtet sein, jeweils einen Rechenkern für jeden Speicherbereich bereitzustellen. Vorzugsweise sind den Speicherbereichen der zwei Speichermodulen, die an der gleichen Position in der Reihenfolge liegen, die gleiche Recheneinheit zugeordnet. Vorteilhaft ist hierbei, dass ein beliebig ausgeprägtes paralleles Ausführen des künstlichen neuronalen Netzes durch den vorgeschlagenen Datenspeicher ermöglicht wird. Vorzugsweise führt die Recheneinheiten die Berechnungen abhängig von dem Steuerungsmuster, welches dem neuronalen Netz zugeordnet ist, aus. Das Steuerungsmuster charakterisiert min. eine Reihenfolge von, insbesondere sequenziellen, Berechnungen, nach welcher die Schichten oder Neuronen des tiefen neuronalen Netzes ihre Eingangsgrößen ermitteln. Das Steuerungsmuster kann auch mehrere Reihenfolgen charakterisieren, welche dann beim Betreiben des tiefen neuronalen Netzes abhängig von dem Steuerungsmuster parallel ausgeführt werden können.The computing unit is preferably set up to perform calculations of the layers, in particular of the neurons, in parallel. The computing unit is particularly preferably set up as a function of a control pattern (rollout pattern) which is assigned to the artificial neural network to carry out the calculations of the layers simultaneously / in parallel. Alternatively, the computing unit can be set up to provide a computing core for each memory area. The same processing unit is preferably assigned to the memory areas of the two memory modules which are in the same position in the sequence. It is advantageous here that any parallel execution of the artificial neural network is made possible by the proposed data memory. The computing units preferably carry out the calculations as a function of the control pattern which is assigned to the neural network. The control pattern characterizes at least a sequence of, in particular sequential, calculations according to which the layers or neurons of the deep neural network determine their input variables. The control pattern can also characterize several sequences which can then be executed in parallel when the deep neural network is operated depending on the control pattern.
Zusätzlich kann die Recheneinheit mit einem weiteren Speicher verschaltet sein, in welchem die Parameter des künstlichen neuronalen Netzes hinterlegt sind.In addition, the computing unit can be connected to a further memory in which the parameters of the artificial neural network are stored.
Weiterhin wird vorgeschlagen, dass zumindest jeweils einer der Speicherbereiche der zwei Speichermodule mit dem Speicherbereich an der gleichen Position der Reihenfolge des anderen Speichermoduls verschaltet ist. Also der Speicherbereich des ersten Speichermoduls ist mit dem Speicherbereich des zweiten Speichermoduls bidirektional verschaltet, die beide an der gleichen Position der Reihenfolge liegen. Dadurch wird eine Verbindung des künstlichen neuronalen Netzes, welches eine Schicht auf sich selbst referenziert, abgebildet. Es wird ferner vorgeschlagen, dass jeweils einer der Speicherbereiche der zwei Speichermodule zusätzlich mit einem weiteren Speicherbereich des anderen Speichermoduls verschaltet ist, der nicht unmittelbar nachfolgend in der Reihenfolge angeordnet ist. Also die Speicherbereiche der beiden Speichermodule, die jeweils an der gleichen Position in der Reihenfolge liegen, sind jeweils zusätzlich mit zumindest einem weiteren Speicherbereich des anderen Speichermoduls verschaltet. Dadurch wird eine Überbrückungsverbindung des künstlichen neuronalen Netzes abgebildet. Der Datenspeicher erlaubt dadurch ein besonders effizientes Verarbeiten von Zeitreihen.It is further proposed that at least one of the memory areas of the two memory modules is connected to the memory area at the same position in the sequence of the other memory module. The memory area of the first memory module is thus interconnected bidirectionally with the memory area of the second memory module, both of which are in the same position in the sequence. As a result, a connection of the artificial neural network, which references a layer to itself, is mapped. It is further proposed that in each case one of the memory areas of the two memory modules is additionally interconnected with a further memory area of the other memory module, which is not arranged immediately afterwards in the sequence. That is, the memory areas of the two memory modules, which are each in the same position in the sequence, are each additionally interconnected with at least one further memory area of the other memory module. As a result, a bridging connection of the artificial neural network is mapped. The data memory allows particularly efficient processing of time series.
Weiterhin wird vorgeschlagen, dass ein letzter Speicherbereich der Reihenfolge der Speichermodule, seine hinterlegte Eingangsgröße als Ausgangsgröße des künstlichen neuronalen Netzes bereitstellt, wobei in einem ersten Speicherbereich der Reihenfolge eine Eingangsgröße des künstlichen neuronalen Netzes hinterlegbar ist.It is also proposed that a last memory area in the sequence of the memory modules provides its stored input variable as the output variable of the artificial neural network, an input variable of the artificial neural network being able to be stored in a first memory area of the sequence.
Weiterhin wird vorgeschlagen, dass das Verarbeiten der bereitgestellten Eingangsgröße abhängig von einem Steuerungsmuster (eng. rollout patter) ausgeführt wird. Vorzugsweise wird ein strömendes Steuerungsmuster (engl. streaming rollout) verwendet. Damit kann besonders effizient die bereitgestellte Eingangsgröße verarbeitet werden. Dieser Vorteil kommt besonders bei künstlichen neuronalen Netzen wie einem rekurrenten neuronalen Netz zum Tragen.It is also proposed that the processing of the input variable provided is carried out as a function of a control pattern (rollout patter). A streaming rollout is preferably used. The input variable provided can thus be processed particularly efficiently. This advantage is particularly useful in artificial neural networks such as a recurrent neural network.
Beim schrittweisen Verarbeiten der Eingangsgröße wird beim strömenden Steuerungsmuster zu jedem Verarbeitungsschritt jeweils alle Eingangsgrößen der Schichten ermittelt, wohingegen bei einem sequenziellen Betreiben nur die Eingangsgröße nach ihrer Position in der Reihenfolge der Schichten nacheinander ermittelt werden.With the step-by-step processing of the input variable, all input variables of the layers are determined for each processing step in the flowing control pattern, whereas with sequential operation only the input variables are determined according to their position in the order of the layers one after the other.
Weiterhin wird vorgeschlagen, dass beim Anpassen des Parameters zu einem Wert dieses Parameters ein Wert (Δw), welcher basierend auf der lokalen Lernregel ermittelt wird, addiert wird. Ferner wird vorgeschlagen, dass der ermittelte Wert (Δw) der lokalen Lernregel abhängig von zumindest den zwei Eingangsgrößen gewichtet mit einen vorgebbaren Faktor (η) ermittelt wird.Furthermore, it is proposed that when adapting the parameter, a value (Δw), which is determined based on the local learning rule, is added to a value of this parameter. It is also proposed that the determined value (Δw) of the local learning rule be determined as a function of at least the two input variables weighted with a predeterminable factor (η).
Vorzugsweise ist die lokale Lernregel eine der folgenden: Hebb'sche Lernregel:
Oja Lernregel:
nichtlineare Hebb'sche Lernregel:
non-linear Hebbian learning rule:
Besonders bevorzugt ist die Lernregel auch abhängig von vorhergehend ermittelten Eingangsgrößen (t - 1) der Schichten. Die Lernregel kann dann eine der folgenden sein:
Der Vorteil hierbei ist, dass diese lokalen Lernregeln dazu verwendet werden können, die Modellparameter während der Ausführung des künstlichen neuronalen Netzes zur Laufzeit in einer praktikablen Weise zu verfeinern, da die berechneten Werte Δw sehr schnell berechnet werden können.The advantage here is that these local learning rules can be used to refine the model parameters in a practicable manner during the execution of the artificial neural network at runtime, since the calculated values Δw can be calculated very quickly.
Es sei angemerkt, dass weitere lokale Lernregeln verwendet werden können. So kann bspw. die Multiplikation durch eine Addition ersetzt werden. Es sei angemerkt, das auch andere math. Operationen denkbar sind.It should be noted that other local learning rules can be used. For example, the multiplication can be replaced by an addition. It should be noted that other math. Operations are conceivable.
Weiterhin wird vorgeschlagen, dass eine ermittelte Ausgangsgröße des künstlichen neuronalen Netzes nach dem Propagieren mit Referenzdaten verglichen wird, wobei dann, wenn eine Abweichung der ermittelten Ausgangsgröße zu den Referenzdaten größer als eine vorgebbare maximale Abweichung ist, der Schritt des Anpassens ausgeführt wird. Die Referenzdaten können aus anderweitig erfassten Sensordaten ermittelt werden und z.B. in Form von „Ground Truth“ Referenzdaten oder durch einen Nutzer, der die ermittelte Ausgangsgröße bewertet, bereitgestellt werden.It is also proposed that a determined output variable of the artificial neural network is compared with reference data after propagation, the step of adapting being carried out if a deviation of the determined output variable from the reference data is greater than a predeterminable maximum deviation. The reference data can be determined from otherwise recorded sensor data and provided, for example, in the form of "ground truth" reference data or by a user who evaluates the determined output variable.
Weiterhin wird vorgeschlagen, dass mehrere unterschiedliche Eingangsgrößen durch das künstliche neuronale Netz verarbeitet werden und der Parameter über einen Mittelwert aller Änderungen Δw angepasst wird. D.h. Die Anpassung wird dann erst nach einer Mehrzahl von Durchläufen ausgeführt.It is also proposed that several different input variables be processed by the artificial neural network and that the parameter be adapted using an average value of all changes Δw. This means that the adjustment is only carried out after a number of runs.
Weiterhin wird vorgeschlagen, dass die Parameter angepasst werden, welche einen Wert größer als einen vorgebbaren Schwellwert aufweisen.It is also proposed that the parameters are adapted which have a value greater than a predeterminable threshold value.
Vorzugsweise liegt dieser Schwellwert bei 5% oder 10% oder 20% der größten Werte der Parameter. Alternativ können 5% oder 10% oder 20% der Parameter angepasst werden. Denkbar ist, dass beliebig vorgebbare Parameter angepasst werden. Denkbar ist auch, dass zufällig ausgewählte Parameter angepasst werden. Vorteilhaft ist, wenn immer die gleichen Parameter angepasst werden. Falls dies nicht zielführend ist, können alternativ unterschiedliche Parameter angepasst werden.This threshold value is preferably 5% or 10% or 20% of the largest values of the parameters. Alternatively, 5% or 10% or 20% of the parameters can be adjusted. It is conceivable that any parameters that can be specified can be adapted. It is also conceivable that randomly selected parameters are adjusted. It is advantageous if the same parameters are always adjusted. If this is not expedient, different parameters can be adjusted as an alternative.
Abhängig von einer Änderung auf welche sich das künstliche neuronale Netz anpassen soll, z.B., wenn sich die Sensordaten verändern, also z.B. herrschen im Winter andere Belichtungsstatistiken als im Sommer und an diese soll sich das künstliche neuronale Netz anpassen, dann werden vorzugsweise die Parameter der Schichten nahe am Netzeingang angepasst. Geht es eher darum abstraktere Konzepte anzupassen, z.B. ist es wird wichtiger Hunde richtig zu erkennen als Katzen, dann werden vorzugsweise die Parameter der Schichten nahe des Netzausgangs angepasst. Unter Schichten nahe am Netzeingang oder nahe am Netzausgang können die Schichten verstanden werden, die unmittelbar mit einer Eingangsschicht oder Ausgangsschicht verbunden sind.Depending on a change to which the artificial neural network is to adapt, e.g. if the sensor data change, e.g. if the exposure statistics in winter are different than in summer and the artificial neural network is to adapt to these, then the parameters of the layers are preferably adjusted close to the mains input. If the aim is to adapt more abstract concepts, e.g. it is more important to recognize dogs correctly than cats, then the parameters of the layers near the network output are preferably adapted. Under layers close to Network input or close to the network output can be understood as the layers that are directly connected to an input layer or output layer.
Denkbar ist, dass dann, wenn beim Schritt des Anpassens des Parameters dessen Wert über mehrere Schritte hinweg reduziert wird, dieser Parameter daraufhin aus dem künstlichen neuronalen Netz entfernt wird. Zusätzlich oder alternativ, wird der angepasste Parameter dann, wenn dessen Wert einen unteren, vorgebbaren Schwellwert unterschreitet, aus dem künstlichen neuronalen Netz entfernt.It is conceivable that if, in the step of adapting the parameter, its value is reduced over several steps, this parameter is then removed from the artificial neural network. Additionally or alternatively, the adjusted parameter is removed from the artificial neural network when its value falls below a lower, predeterminable threshold value.
Weiterhin wird vorgeschlagen, dass nach dem Anpassen des Parameters eine Regularisierung der Parameter durchgeführt wird.It is also proposed that after the parameter has been adapted, the parameters are regularized.
Unter einer Regularisierung kann eine Normierung oder eine Skalierung des Wertes des angepassten Parameters relativ zu den Werten der anderen Parameter verstanden werden. Der Vorteil hierbei ist, dass ein stabiles numerisches Verhalten garantiert wird. Die Regularisierung kann eine Lp Norm sein: w(t) = w(t) / || w(t) ||p.A regularization can be understood to mean a normalization or a scaling of the value of the adapted parameter relative to the values of the other parameters. The advantage here is that stable numerical behavior is guaranteed. The regularization can be an L p norm: w (t) = w (t) / || w (t) || p .
Vorzugsweise wird das künstliche neuronale Netz in intelligenten mobilen Geräten verwendet, wie z.B. eBikes oder Uhren (engl. smart watches) oder autonomen Rasenmähern.The artificial neural network is preferably used in intelligent mobile devices, such as e-bikes or smart watches or autonomous lawnmowers.
Das vorgeschlagene Verfahren kann in einem physikalischen/technischen System, z.B. einem Roboter oder einem zumindest teilautonomen Fahrzeug eingesetzt werden, welches einen Aktor aufweist. Die ermittelte Ausgangsgröße des künstlichen neuronalen Netzes kann von einer Steuereinheit verwendet werden, sodass die Steuereinheit abhängig von dieser Ausgangsgröße den Aktor steuert. Die Steuereinheit kann hierfür eine Steuergröße abhängig von der ermittelten Ausgangsgröße bestimmen und diese zum Steuern des Aktors verwenden.The proposed method can be used in a physical / technical system, e.g. a robot or an at least partially autonomous vehicle, which has an actuator. The determined output variable of the artificial neural network can be used by a control unit so that the control unit controls the actuator as a function of this output variable. For this purpose, the control unit can determine a control variable as a function of the determined output variable and use this to control the actuator.
Alternativ kann abhängig von der ermittelten Ausgangsgröße des künstlichen neuronalen Netzes die Steuergröße ermittelte werden, die zum Steuern eines Aktors eines technischen Systems verwendet werden kann. Die Steuerung kann entsprechend der Steuergröße erfolgen. Das technische System kann zum Beispiel eine zumindest teilautonome Maschine, ein zumindest teilautonomes Fahrzeug, ein Roboter, ein Werkzeug, eine Werkmaschine oder ein Flugobjekt wie eine Drohne sein. Beispielsweise so kann eine Bewegung des Roboters oder Fahrzeugs gesteuert werden oder eine Steuerung des Aktors erfolgen.Alternatively, depending on the determined output variable of the artificial neural network, the control variable can be determined that can be used to control an actuator of a technical system. The control can take place according to the control variable. The technical system can be, for example, an at least partially autonomous machine, an at least partially autonomous vehicle, a robot, a tool, a work machine or a flying object such as a drone. For example, a movement of the robot or vehicle can be controlled or the actuator can be controlled.
Die bereitgestellte Eingangsgröße des künstlichen neuronalen Netzes kann bspw. abhängig von erfassten Sensordaten ermittelt und dem künstlichen neuronalen Netz bereitgestellt werden. Die Sensordaten können von einem Sensor, wie z.B. einer Kamera, des technischen Systems erfasst oder alternativ von extern empfangen werden.The input variable provided by the artificial neural network can, for example, be determined as a function of the sensed sensor data and made available to the artificial neural network. The sensor data can be recorded by a sensor, such as a camera, of the technical system or, alternatively, can be received externally.
In einem weiteren Aspekt wird ein Computerprogramm vorgeschlagen. Das Computerprogramm ist eingerichtet, eines der vorherigen genannten Verfahren auszuführen. Das Computerprogramm umfasst Anweisungen, die einen Computer veranlassen, eines dieser genannten Verfahren mit all seinen Schritten auszuführen, wenn das Computerprogramm auf dem Computer abläuft. Ferner wird ein maschinenlesbares Speichermodul vorgeschlagen, auf welchem das Computerprogramm gespeichert ist. Des Weiteren wird eine Vorrichtung vorgeschlagen, die eingerichtet ist eines der Verfahren auszuführen. In a further aspect, a computer program is proposed. The computer program is set up to carry out one of the aforementioned methods. The computer program comprises instructions which cause a computer to carry out one of these named methods with all of its steps when the computer program runs on the computer. Furthermore, a machine-readable memory module is proposed on which the computer program is stored. Furthermore, a device is proposed which is set up to carry out one of the methods.
Ausführungsbeispiele der oben genannten Aspekte sind in den beiliegenden Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Dabei zeigen:Exemplary embodiments of the above-mentioned aspects are shown in the accompanying drawings and explained in more detail in the description below. Show:
FigurenlisteFigure list
-
1 schematisch einen Datenspeicher;1 schematically a data memory; -
2 schematisch ein Flussdiagramm eines Verfahrens zum Betreiben des künstlichen neuronalen Netzes.2 schematically a flow chart of a method for operating the artificial neural network.
Die Speicherbereiche des ersten Speichermoduls (
Vorzugsweise sind die Speicherbereiche der Speichermodule durch die Verbindung (
Die Speicherbereiche (
Denkbar ist, dass die Recheneinheit Zugriff auf einen weiteren Speicher (
Wird zum Beispiel eine Eingangsgröße durch ein sequenziell betriebenes künstliches neuronales Netz propagiert, kann die Eingangsgröße in einem ersten Speicherbereich (
In einer weiteren Ausführungsform kann das künstliche neuronale Netz unter Verwendung eines Steuerungsmusters betrieben werden. D.h. den Schichten des künstlichen neuronalen Netzes wird eine Steuergröße zugeordnet, die eine Reihenfolge von Berechnungen charakterisiert, nach welcher die Schicht entweder abhängig oder unabhängig von dieser Reihenfolge ihre Berechnungen durchführen. Für weitere Details über das Steuerungsmuster wird auf das eingangs genannte Dokument der Autoren Fischer et al. verwiesen. In dieser Ausführungsform können die Recheneinheiten (
Für den Fall, dass das künstliche neuronale Netz gemäß einem strömenden Steuerungsmuster gesteuert wird, also wenn alle Schichten des künstlichen neuronalen Netzes unabhängig von der Reihenfolge betrieben werden, werden alle Recheneinheiten (
Das Verfahren (
Daraufhin wird schrittweise die bereitgestellte Eingangsgröße durch das künstliche neuronale Netz propagiert. Dabei ermittelt die Schichten ihre Zwischengrößen, insbesondere abhängig von dem Steuerungsmuster. Die Zwischengrößen werden hierfür alternierend in den Speichermodulen (
Beim Propagieren können die Recheneinheiten (
Der Schritt
Nachdem Schritt
In Schritt
Optional kann dann ein Aktor eines technischen Systems abhängig von der Ausgangsgröße angesteuert oder abhängig von der Ausgangsgröße eine Steuergröße ermittelt werden.Optionally, an actuator of a technical system can then be controlled depending on the output variable or a control variable can be determined depending on the output variable.
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturPatent literature cited
- DE 202018104373 U1 [0002]DE 202018104373 U1 [0002]
- DE 102019214010 [0003]DE 102019214010 [0003]
Claims (10)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019214436.5A DE102019214436A1 (en) | 2019-09-23 | 2019-09-23 | Method, device and computer program for operating an artificial neural network |
CN202011001002.4A CN112541568A (en) | 2019-09-23 | 2020-09-22 | Method, device and computer program for operating an artificial neural network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019214436.5A DE102019214436A1 (en) | 2019-09-23 | 2019-09-23 | Method, device and computer program for operating an artificial neural network |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102019214436A1 true DE102019214436A1 (en) | 2021-03-25 |
Family
ID=74845986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102019214436.5A Pending DE102019214436A1 (en) | 2019-09-23 | 2019-09-23 | Method, device and computer program for operating an artificial neural network |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112541568A (en) |
DE (1) | DE102019214436A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102022209457A1 (en) | 2022-09-09 | 2024-03-14 | Volkswagen Aktiengesellschaft | Method for controlling an artificial neural network when providing a vehicle function |
-
2019
- 2019-09-23 DE DE102019214436.5A patent/DE102019214436A1/en active Pending
-
2020
- 2020-09-22 CN CN202011001002.4A patent/CN112541568A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102022209457A1 (en) | 2022-09-09 | 2024-03-14 | Volkswagen Aktiengesellschaft | Method for controlling an artificial neural network when providing a vehicle function |
Also Published As
Publication number | Publication date |
---|---|
CN112541568A (en) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3785177B1 (en) | Method and device for determining a network-configuration of a neural network | |
DE202017007641U1 (en) | Training machine learning models on multiple machine learning tasks | |
DE202017105403U1 (en) | Instruction set architecture for neural networks | |
EP3701433B1 (en) | Method, device and computer program for developing a deep neural network | |
WO2013170843A1 (en) | Method for training an artificial neural network | |
DE102018128890A1 (en) | Method and test device for testing a driver assistance system for a motor vehicle | |
DE102018110947A1 (en) | LOSS CALING FOR LOW NEURONAL NETWORK TRAINING WITH REDUCED PRECISION | |
WO2021008836A1 (en) | Device and computer-implemented method for the processing of digital sensor data and training method for same | |
DE102014225039A1 (en) | Method and apparatus for providing sparse Gaussian process models for calculation in an engine control unit | |
EP3748551A1 (en) | Method, device and computer program for adjusting a hyperparameter | |
DE112021005568T5 (en) | Data processing device and data processing method | |
DE102019214436A1 (en) | Method, device and computer program for operating an artificial neural network | |
EP3736742A1 (en) | Machine learning system, a method, a computer program and a device for creating the machine learning system | |
EP3785178B1 (en) | Method and device for determining a network-configuration of a neural network | |
EP3786853A1 (en) | Compression of a deep neural network | |
DE102016216950A1 (en) | Model calculation unit and control unit for calculating a multilayer perceptron model with feedforward and feedback | |
DE102019213061A1 (en) | Classification of AI modules | |
DE102019208265A1 (en) | Adaptive cleaning of measurement data for different types of disturbances | |
DE102019113874A1 (en) | HIGH-PRECISION LOW-BIT CONVOLUTIONAL NEURAL NETWORK | |
DE102019205081A1 (en) | Method, device and computer program for operating a deep neural network | |
DE202021102832U1 (en) | Device for training neural networks with regard to hardware and energy requirements | |
DE102020210700A1 (en) | More flexible iterative operation of artificial neural networks | |
DE102019214010A1 (en) | Data storage and method of operating the data storage | |
EP3811199A1 (en) | Computing unit, method and computer program for multiplying at least two multiplicands | |
DE202019103233U1 (en) | Device for setting a hyperparameter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R163 | Identified publications notified | ||
R012 | Request for examination validly filed |