DE102020209254A1 - Vorrichtung zur rechnergestützten Klassifikation von Sensordaten unter Verwendung einer trainierten neuronalen Netzstruktur - Google Patents

Vorrichtung zur rechnergestützten Klassifikation von Sensordaten unter Verwendung einer trainierten neuronalen Netzstruktur Download PDF

Info

Publication number
DE102020209254A1
DE102020209254A1 DE102020209254.0A DE102020209254A DE102020209254A1 DE 102020209254 A1 DE102020209254 A1 DE 102020209254A1 DE 102020209254 A DE102020209254 A DE 102020209254A DE 102020209254 A1 DE102020209254 A1 DE 102020209254A1
Authority
DE
Germany
Prior art keywords
signals
neural network
lookup
neurons
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020209254.0A
Other languages
English (en)
Inventor
Domenik Helms
Gregor Schiele
Moritz Könnecke
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.)
OFFIS eV
Universitaet Duisburg Essen
Original Assignee
OFFIS eV
Universitaet Duisburg Essen
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 OFFIS eV, Universitaet Duisburg Essen filed Critical OFFIS eV
Priority to DE102020209254.0A priority Critical patent/DE102020209254A1/de
Publication of DE102020209254A1 publication Critical patent/DE102020209254A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors

Landscapes

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

Abstract

Die Erfindung betrifft einer Vorrichtung zur rechnergestützten Klassifikation von Sensordaten (SD) unter Verwendung einer trainierten neuronalen Netzstruktur (NN), die ein oder mehrere neuronale Netze umfasst und eine Vielzahl von Schichten (CL1, PL1, .., CLn, PLn, FC1, ..., FCn) aus künstlichen Neuronen (NE) enthält. Die neuronale Netzstruktur (NN) ist auf einem FPGA (100) ausgebildet, der derart programmiert ist, dass Lookup-Tabellen (LTO, LT1, ..., LT9) definiert sind, welche jeweils aus einer oder mehreren vorgegebenen Lookup-Basiszellen (BZ) des FPGA (100) gebildet werden und aus mehreren Eingangssignalen (x0, x1, ..., v2) ein Ausgangssignal (uo, u1, ..., y) erzeugen. Das oder die Neuronen (NE) zumindest eines Teils der Neuronen (NE) sind spezifische Neuronen (NE), die jeweils einen Lookup-Block (LB) bilden, wobei der Lookup-Block (LB) ein Baum aus mehreren Lookup-Tabellen (LTO, LT1, ..., LT9) in mehreren Hierarchieebenen (H1, H2, H3) ist.

Description

  • Die Erfindung betrifft eine Vorrichtung zur rechnergestützten Klassifikation von Sensordaten unter Verwendung einer trainierten neuronalen Netzstruktur.
  • Künstliche neuronale Netze werden heutzutage in einer Vielzahl von Anwendungsbereichen eingesetzt. Häufig dienen neuronale Netze dazu, die Messungen von Sensoren auszuwerten und die entsprechenden Sensordaten geeignet zu klassifizieren, beispielsweise um aus den Sensordaten Fehlerbilder in einer industriellen Produktionsanlage abzuleiten. In vielen Fällen besteht der Bedarf an einer Umsetzung eines neuronalen Netzes, das Sensordaten mit geringer Latenz und geringem Bedarf an elektrischer Energie klassifiziert.
  • Im Stand der Technik werden Ansätze beschrieben, die neuronale Netze unter Verwendung von Logikblöcken in FPGAs (FPGA = Field Programmable Gate Array) realisieren (siehe beispielsweise US 2019/0171420 A1 ).
  • In der Druckschrift Erwei Wang et al., „LUTNet: Learning FPGA Configurations for Highly Efficient Neural Network Interference“, IEEE Transactions On Computers, 2. März 2020, wird ein neuronales Netz beschrieben, das über Lookup-Tabellen auf einem FPGA realisiert ist. Für die Gewichte sowie Ein- und Ausgänge der Neuronen sind nur binäre Werte zugelassen, was die Genauigkeit der mit dem neuronalen Netz durchgeführten Berechnungen einschränkt. Ferner können solche Netze nicht mit gängigen Methoden, wie z.B. Backpropagation, trainiert werden.
  • Aufgabe der Erfindung ist es, eine Vorrichtung zur rechnergestützten Klassifikation von Sensordaten unter Verwendung einer trainierten neuronalen Netzstruktur zu schaffen, die genaue Klassifikationsergebnisse mit geringem Rechenaufwand und geringem Energieverbrauch liefert.
  • Diese Aufgabe wird durch die Vorrichtung gemäß Patentanspruch 1 gelöst. Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen definiert.
  • Die erfindungsgemäße Vorrichtung dient zur rechnergestützten Klassifikation von Sensordaten unter Verwendung einer trainierten neuronalen Netzstruktur, die ein oder mehrere neuronale Netze umfasst und eine Vielzahl von Schichten aus künstlichen Neuronen enthält. Jedes Neuron umfasst eine Vielzahl von Eingängen und einen Ausgang, um ein Signal am Ausgang in Abhängigkeit von jeweiligen Signalen an der Vielzahl von Eingängen zu erzeugen. In der nachfolgenden Beschreibung der erfindungsgemäßen Vorrichtung sind Merkmale, die Verfahrensschritte enthalten, immer dahingehend zu verstehen, dass die Vorrichtung derart ausgestaltet ist, dass der entsprechende Verfahrensschritt im Betrieb der Vorrichtung ausgeführt wird. Hier und im Folgenden bezieht sich der Begriff des Signals bzw. des Sensorsignals bzw. des Eingangssignals bzw. des Ausgangssignals immer auf ein digitales Signal.
  • Die neuronale Netzstruktur der erfindungsgemäßen Vorrichtung umfasst eine Eingangsschicht zur Zufuhr von Sensorsignalen, wobei die Sensorsignale auf Sensordaten in der Form von Messungen einer oder mehreren Sensoren basieren. Vorzugsweise resultieren die Sensorsignale aus einer Vorverarbeitung der ursprünglichen Sensordaten. Die neuronale Netzstruktur umfasst ferner eine Ausgangsschicht, über deren Ausgangssignale die der Eingangsschicht zugeführten Sensorsignale klassifiziert werden, indem diese Sensorsignale zumindest einer Klasse aus einer Mehrzahl von Klassen zugeordnet werden.
  • Die neuronale Netzstruktur ist auf einem FPGA ausgebildet, das auch als programmierbares Logikgatter bezeichnet wird. In an sich bekannter Weise enthält das FPGA ein Feld aus vorgegebenen (physikalisch vorhandenen) Lookup-Basiszellen, die jeweils aus Signalen aus mehreren 1-Bit-Eingängen ein Signal an einem 1-Bit-Ausgang erzeugen. Das FPGA ist derart programmiert, dass Lookup-Tabellen definiert sind, welche jeweils aus einer oder mehreren Lookup-Basiszellen des FPGA gebildet werden und aus mehreren Eingangssignalen ein Ausgangssignal erzeugen. Die Eingangssignale und Ausgangssignale können dabei auch Mehrbit-Signale sein.
  • Erfindungsgemäß sind das oder die Neuronen zumindest eines Teils der Neuronen spezifische Neuronen, die jeweils einen Lookup-Block bilden, der das jeweilige spezifische Neuron (d.h. dessen Parameter) modelliert. Dabei wird der entsprechende Lookup-Block durch eine neuartige baumartige Struktur aus mehreren Lookup-Tabellen gebildet. In dieser baumartigen Struktur sind die Lookup-Tabellen in mehreren Hierarchieebenen angeordnet, die durch die folgenden Merkmale charakterisiert sind.
  • Die niedrigste Hierarchieebene besteht aus mehreren Lookup-Tabellen, deren Eingangssignale den Signalen an den Eingängen des jeweiligen spezifischen Neurons entsprechen. Den Lookup-Tabellen einer jeweiligen Hierarchieebene, die eine nächsthöhere Hierarchieebene zu einer benachbarten Hierarchieebene ist (d.h. alle Hierarchieebenen außer der niedrigsten), werden ausschließlich digitale Ausgangssignale der Lookup-Tabellen der benachbarten Hierarchieebene (d.h. keine anderen Signale als diese Ausgangssignale) zugeführt, wobei in jeder Lookup-Tabelle in der jeweiligen Hierarchieebene mehrere Ausgangssignale von Lookup-Tabellen der benachbarten Hierarchieebene kombiniert werden. Aufgrund der Kombination der Ausgangssignale nimmt die Anzahl der Lookup-Tabellen von einer Hierarchieebene zu der nächsthöheren Hierarchieebene ab. Ferner besteht die höchste Hierarchieebene aus einer einzelnen Lookup-Tabelle, deren Ausgangssignal dem Signal am Ausgang des jeweiligen spezifischen Neurons entspricht.
  • Die erfindungsgemäße Vorrichtung weist den Vorteil auf, dass durch die baumartige Verschaltung von Lookup-Tabellen auch Neuronen mit einer großen Anzahl von Eingängen auf einem FPGA ohne die Einschränkung auf binäre Gewichte und Ein- und Ausgänge realisiert werden können. Gleichzeitig wird durch die Verwendung von Lookup-Tabellen, die ohne aufwändige Berechnungen lediglich durch Auslesen eines Speichers Eingangssignale auf ein Ausgangssignal abbilden, ein energieeffizienter Betrieb der Vorrichtung ermöglicht. In der detaillierten Beschreibung wird dargelegt, wie die oben definierte neuronale Netzstruktur geeignet trainiert werden kann.
  • Je nach verwendetem FPGA können die vorgegebenen Lookup-Basiszellen in der erfindungsgemäßen Vorrichtung unterschiedliche Größen aufweisen. In einer Variante sind die vorgegebenen Lookup-Basiszellen jeweils 32-Bit-Basiszellen mit fünf 1-Bit-Eingängen. Ebenso kann ein FPGA verwendet werden, in dem die vorgegebenen Lookup-Basiszellen jeweils 64-Bit-Basiszellen mit sechs 1-Bit-Eingängen sind.
  • In einer weiteren bevorzugten Variante werden in einem jeweiligen spezifischen Neuron zwischen benachbarten Hierarchieebenen Signale mit einer Bitbreite von mindestens zwei Bit, vorzugsweise von mindestens drei Bit, übertragen. Hierdurch wird die Genauigkeit der Klassifikation verbessert.
  • In einer weiteren, besonders bevorzugten Ausführungsform liegen das oder die spezifischen Neuronen, welche die oben definierte baumartige Struktur aufweisen, in einem oder mehreren sog. Convolutional Layers eines Convolutional Neural Networks, das häufig auch als CNN bezeichnet wird und eine Anzahl von Convolutional Layers (d.h. zumindest einen Convolutional Layer) umfasst. Vorzugsweise sind alle Neuronen in den jeweiligen Convolutional Layers die oben definierten spezifischen Neuronen. Convolutional Neural Networks mit entsprechenden Convolutional Layers sind dem Fachmann dabei an sich bekannt. Die Neuronen in einem solchen Netz führen eine Faltung auf den Eingangssignalen durch, um hierdurch spezifische Merkmale in den Eingangssignalen zu detektieren. Optional können sich in dem Convolutional Neural Network an die entsprechenden Convolutional Layers jeweilige Pooling-Layers anschließend, die ebenfalls bekannt sind und die Datenmenge reduzieren. Convolutional Neural Networks kommen häufig bei der Verarbeitung von Bilddaten zum Einsatz. Ein Convolutional Neural Network kann im Rahmen der Erfindung allgemein zur Verarbeitung von Sensordaten genutzt werden.
  • In einer bevorzugten Variante der soeben beschriebenen Ausführungsform enthält das Convolutional Neural Network die Eingangsschicht der neuronalen Netzstruktur, wobei die Eingangsschicht ein Convolutional Layer ist, dessen Neuronen spezifische Neuronen sind, wobei sich an die Anzahl von Convolutional Layers ein Fully Connected Neural Network aus einem oder mehreren Fully Connected Layers anschließt, das die Ausgangsschicht der neuronalen Netzstruktur enthält. Eine konkrete Ausgestaltung dieser Architektur wird in der detaillierten Beschreibung anhand von EKG-Signalen erläutert. In einer bevorzugten Variante sind nur die Neuronen in den Convolutional Layers als spezifische Neuronen in der Form von baumartig verschalteten Lookup-Tabellen realisiert.
  • In einer weiteren bevorzugten Variante ist das Fully Connected Neural Network in einem oder mehreren DSP-Slices des FPGA implementiert (DSP = Digital Signal Processing). Die Integration solcher Slices in FPGAs ist an sich bekannt, und die Slices fungieren als digitale Signalprozessoren, die eigenständig Berechnungen durchführen können. Bei der Realisierung des Fully Connected Neural Networks über DSP-Slices werden dessen Neuronen vorzugsweise auf herkömmliche Weise und nicht basierend auf der baumartigen Verschaltung von Lookup-Tabellen realisiert.
  • In einer weiteren bevorzugten Ausführungsform ist die erfindungsgemäße Vorrichtung derart ausgestaltet, dass die Sensordaten vorverarbeitet werden, wobei die vorverarbeiteten Sensordaten die Sensorsignale darstellen, die der Eingangsschicht der neuronalen Netzstruktur zugeführt werden. Die Vorverarbeitung kann beispielsweise eine Dynamic Range Compression und/oder eine Quantisierung umfassen.
  • In einer weiteren, besonders bevorzugten Ausführungsform repräsentieren die Sensordaten eine oder mehrere Zeitreihen der Messungen des oder der Sensoren, wobei die Sensorsignale, die der Eingangsschicht zugeführt werden, zu einem oder mehreren aufeinander folgenden und ggf. überlappenden Zeitabschnitten der Zeitreihe oder Zeitreihen gehören. Vorzugsweise wird diese Ausführungsform mit der obigen Ausführungsform eines Convolutional Neural Networks kombiniert.
  • In einer besonders bevorzugten Variante der soeben beschriebenen Ausführungsform umfassen die Sensordaten eine Anzahl von EKG-Signalen, wobei die EKG-Signale jeweils eine Zeitreihe einer elektrischen Potentialdifferenz eines am menschlichen oder tierischen Körper gemessenen Elektrokardiogramms repräsentieren. Die Sensorsignale, die der Eingangsschicht zugeführt werden, gehören dabei zu einem oder mehreren aufeinander folgenden Zeitabschnitten des oder der EKG-Signale, wobei die Sensorsignale dahingehend klassifiziert werden, ob und/oder welcher oder welche Krankheitszustände für das Herz vorliegen, von dem die EKG-Signale stammen. Durch die erfindungsgemäße Realisierung der neuronalen Netzstruktur auf einem FPGA kann dabei mit wenig Energieverbrauch eine Herzaktivität überwacht werden.
  • Die erfindungsgemäße Vorrichtung kann auch zur Klassifikation von beliebigen anderen Sensordaten als EKG-Signalen eingesetzt werden. In einer weiteren bevorzugten Variante stammen die Sensordaten aus einem Herstellungsprozess, in dem ein beliebiges Produkt produziert wird. Dabei werden die Sensorsignale dahingehend klassifiziert, ob und/oder welche Fehlerbilder im Herstellungsprozess auftreten.
  • In einer bevorzugten Variante der obigen Ausführungsform, die vorzugsweise mit einem Convolutional Neural Network realisiert wird, sind die Sensordaten Dickemessungen, die eine zeitliche Entwicklung einer Dicke einer Ummantelung eines Kabels und insbesondere eines elektrischen Kabels an einer oder mehreren vorgegebenen Messstellen während der Aufbringung der Ummantelung auf das Kabel repräsentieren, wobei die Sensorsignale dahingehend klassifiziert werden, ob und/oder welches oder welche Fehlerbilder bei der Aufbringung der Ummantelung des Kabels auftreten.
  • Ausführungsbeispiele der Erfindung werden nachfolgend anhand der beigefügten Figuren detailliert beschrieben.
  • Es zeigen:
    • 1 eine Darstellung, die die Funktionsweise eines konventionellen Neurons in einem neuronalen Netz verdeutlicht;
    • 2 ein Beispiel einer Verschaltung von Basiszellen eines FPGA zu einer Lookup-Tabelle;
    • 3 ein Beispiel eines Lookup-Blocks, der in einer Ausführungsform der Erfindung zur Implementierung eines Neurons auf einem FPGA genutzt wird;
    • 4 den Aufbau der im Lookup-Block der 3 verwendeten Lookup-Tabellen basierend auf der Verschaltung entsprechender Basiszellen;
    • 5 eine Darstellung eines Neurons mit quantisierter Aktivierungsfunktion, die im Rahmen des Trainings einer Variante des erfindungsgemäßen neuronalen Netzes verwendet wird;
    • 6 eine schematische Darstellung einer Variante der erfindungsgemäßen Vorrichtung zur Klassifikation von EKG-Signalen unter Verwendung eines Convolutional Neural Networks; und
    • 7 eine Darstellung, die den Aufbau eines jeweiligen Neurons in einem Convolutional Layer des Convolutional Neural Networks aus 6 verdeutlicht.
  • 1 zeigt den Aufbau eines konventionellen Neurons in einem neuronalen Netz. Das Verhalten eines solchen Neurons wird mit einem weiter unten näher beschriebenen Lookup-Block eines FPGA approximativ modelliert. Das Neuron ist als Kreis dargestellt und mit Bezugszeichen NE bezeichnet. Es umfasst eine Vielzahl von Eingängen IN, wobei in dem Beispiel der 1 sechs Eingänge angedeutet sind. An den Eingängen liegen entsprechende Eingangssignale x0, x1, ..., x5 an. Die Eingangssignale stammen von Neuronen einer tieferen Schicht bzw. sind Eingangssignale des neuronalen Netzes, sofern das Neuron in der Eingangsschicht des neuronalen Netzes vorgesehen ist. Jedes der Eingangssignale wird mit reelwertigen Gewichten w0, w1, ..., w5 gewichtet und diese gewichteten Signale werden zusammen mit einem reelwertigen Bias b im Neuron NE summiert. Mittels einer sog. Aktivierungsfunktion AF wird dann aus dieser Summe an einem entsprechenden Ausgang OU des Ausgangssignal y des Neurons generiert. Häufig wird als Aktivierungsfunktion AF die sog. Rectifier-Funktion genutzt, die den Maximalwert aus der gewichteten Summe und dem Wert Null angibt. Diese Rectifier-Funktion ist auch in 1 angedeutet.
  • Mathematisch lässt sich die Ausgabe y des Neurons NE wie folgt beschreiben: y ( x 0 , x 1 , , x N 1 ) = m a x ( 0, i = 0 N 1 w i x i + b )
    Figure DE102020209254A1_0001
    wobei N die Anzahl der Eingänge IN des Neurons NE repräsentiert
  • Aus dem Stand der Technik ist es unter anderem bekannt, die Gleichung (1) basierend auf binären Gewichten wi sowie binären Eingangs- und Ausgangswerten xi und y durch einfache Binäroperationen (XNOR) über Lookup-Tabellen auf einem FPGA umzusetzen. Ein großer Nachteil dieser Methode ist, dass die Gewichte binär sind, und sich daher kleine Änderungen der Gewichte (insbesondere während des Lernprozesses des neuronalen Netzes) nicht realisieren lassen.
  • Im Unterschied zum Stand der Technik sind die Neuronen des erfindungsgemäßen neuronalen Netzes nicht auf binäre Gewichte sowie binäre Eingangs- und Ausgangswerte beschränkt. Hierzu werden Lookup-Tabellen eines FPGA auf neuartige Weise miteinander verknüpft.
  • Wie bekannt, sind FPGAs hochkonfigurierbare Logikbausteine, die vom Benutzer auf elektronische Weise konfiguriert und so zu nahezu beliebigen Logikschaltungen (z.B. einem Prozessor) verknüpft werden können. Aktuelle FPGAs enthalten viele 10000 sog. Basiszellen, die in den Patentansprüchen als Lookup-Basiszellen bezeichnet werden. Jede Basiszelle stellt eine physikalisch vorhandene Einheit auf dem FPGA dar und hat eine vorbestimmte Anzahl von mehreren 1-Bit-Eingägen und gibt für entsprechende Bitkombinationen an diesen Eingängen einen Binärwert an einem 1-Bit-Ausgang aus. Durch die Basiszelle wird somit eine Lookup-Tabelle realisiert, welche jeder Bitkombination an den Eingängen einen vorgegebenen Bitwert am Ausgang zuweist. Diese Zuweisung ist bei der Programmierung des FPGAs beliebig festlegbar. Je nach Ausgestaltung des FPGAs kann die Anzahl der 1-Bit-Eingänge an einer Basiszelle unterschiedlich festgelegt sein. Üblicherweise hat eine Basiszelle fünf Eingänge und damit 32 Speicherbits oder sechs Eingänge und damit 64 Speicherbits. Mehrere Basiszellen können im Rahmen der Programmierung des FPGA über frei konfigurierbare Verbindungsleitungen miteinander verknüpft werden. Im Folgenden wird ein FPGA mit 64-Bit-Basiszellen (d.h. sechs 1-Bit-Eingängen) betrachtet.
  • Es ist möglich, mehrere Basiszellen eines FPGA so miteinander zu verschalten, dass diese wie eine binäre Tabelle mit größerer oder kleinerer Eingangsanzahl funktioniert.
  • Beispielhaft ist dies in 2 dargestellt, welche die Verschaltung von fünf 64-Bit-Basiszellen BZ0, BZ1, BZ2, BZ3 und BZ4 wiedergibt. Die 1-Bit-Eingangswerte x0 bis x5 werden gleichzeitig den Basiszellen BZ0 bis BZ3 zugeführt, die insgesamt einen 4-Bit-Wert liefern, welcher der Basiszelle BZ4 zugeführt wird. In Kombination mit den zwei weiteren 1-Bit-Werten x6 und x7, die ebenfalls der Basiszelle BZ4 zugeführt werden, wird dann durch die Basiszelle BZ4 ein Binärwert y am Ausgang generiert. Es entsteht somit durch diese Verschaltung eine binäre Tabelle mit 8 1-Bit-Eingängen und einem 1-Bit-Ausgang.
  • Im Folgenden wird eine binäre Tabelle mit n 1-Bit-Eingängen und einem 1-Bit-Ausgang als n-Block bezeichnet. Ein solcher n-Block stellt eine Ausführungsform einer Lookup-Tabelle im Sinne der Patentansprüche dar. Aus praktischen Gründen ist n limitiert, da der Hardwareaufwand exponentiell mit n steigt. Für einen n-Block benötigt man über 2(n-6) Basiszellen, n ist also auf Werte deutlich unter 20 beschränkt.
  • Fasst man mehrere n-Blöcke zusammen, die die gleichen Eingangswerte zugeführt bekommen, aber unterschiedliche Werte in den elementaren Basiszellen gespeichert haben, kann man damit Mehr-Bit-Ausgangswerte erzeugen. Werden m dieser n-Blöcke kombiniert, erhält man einen Logikblock, der im Folgenden als n-to-m-Block bezeichnet wird und ebenfalls eine Ausführungsform einer Lookup-Tabelle im Sinne der Patentansprüche darstellt. Beispielsweise kann ein 6-to-4-Block für jede der 26=64 möglichen Kombinationen seiner n=6 Eingänge einen Wert aus m=4 Bits (0 bis 15) am Ausgang erzeugen.
  • Es ist nun möglich, die n Eingänge von n-to-m Blöcken nicht als n unabhängige binäre Werte aufzufassen, sondern jeweils b von diesen als eine b-Bit-Zahl zu interpretieren. Dies hat keinen Einfluss auf die Umsetzung in der Hardware. Ein 6-to-2-Block kann entweder für sechs 1-Bit-Eingänge oder für drei 2-Bit-Eingänge bzw. für zwei 3-Bit-Eingänge je einen 2-Bit-Ausgang erzeugen. Im Folgenden werden Blöcke, die aus n b-Bit-Eingängen einen m-Bit-Ausgang generieren als nxb-to-m-Blöcke bezeichnet.
  • Auch diese Blöcke sind Varianten von Lookup-Tabellen im Sinne der Patentansprüche.
  • Erfindungsgemäß wird ein jeweiliges Neuron durch eine baumartige Verschaltung der oben beschriebenen Lookup-Tabellen auf einem FPGA realisiert, wie weiter unten noch näher beschrieben wird. Das Ausgangssignal y einer jeweiligen Lookup-Tabelle wird dabei in Abhängigkeit von den Eingangssignalen Xi wie folgt modelliert: y ( x i ) = m a x ( 0, m i n ( 2 B y 1, i = 0 N 1 w i x i + b ) )
    Figure DE102020209254A1_0002
    wobei die Gaussklammer [x] das Abrunden auf ganze Werte beschreibt.
  • Der Ausgang y einer jeweiligen Lookup-Tabelle weist dabei die Bitbreite By auf und die Eingänge xi haben die Bitbreite Bx. Es sind somit beliebige Quantisierungen für die Eingangs- und Ausgangssignale möglich. Ferner sind die Größen wZ und b reelwertig, d.h. sie werden beim Trainieren der Neuronen als Fließkommazahlen realisiert. Die Lookup-Tabellen bilden somit alle x i [ 0,2 B x 1 ] auf y i [ 0,2 B y 1 ]
    Figure DE102020209254A1_0003
    ab. Da wi und b reelwertig bleiben können, kann ein Lernen per Backpropagation durchgeführt werden.
  • Die erfindungsgemäße baumartige Verschaltung der Lookup-Tabellen lässt sich allgemein als ein Baum aus mehreren Hierarchieebenen beschreiben, der einem Lookup-Block und damit einem spezifischen Neuron im Sinne der Patentansprüche entspricht. Dabei besteht die niedrigste Hierarchieebene aus mehreren Lookup-Tabellen, die entsprechende Blattknoten des Baums bilden und deren digitale Eingangssignale den Signalen an den Eingängen des jeweiligen spezifischen Neurons entsprechen. Ferner werden den Lookup-Tabellen einer jeweiligen Hierarchieebene, die eine nächsthöhere Hierarchieebene zu einer benachbarten Hierarchieebene ist, ausschließlich digitale Ausgangssignale der Lookup-Tabellen der benachbarten Hierarchieebene zugeführt, wobei in jeder Lookup-Tabelle der jeweiligen Hierarchieebene mehrere Ausgangssignale von Lookup-Tabellen der benachbarten Hierarchieebene kombiniert werden.
  • Darüber hinaus besteht die höchste Hierarchieebene aus einer einzelnen Lookup-Tabelle, die einen Wurzelknoten in dem Baum darstellt und deren digitales Ausgangssignal dem Signal am Ausgang des jeweiligen spezifischen Neurons entspricht.
  • 3 zeigt eine konkrete Realisierung eines spezifischen Neurons in der Form eines Lookup-Blocks LB gemäß der obigen Definition. Wie man aus 3 erkennt, besteht der Lookup-Block aus drei Hierarchieebenen H1, H2 und H3. Die Hierarchieebene H1 ist die niedrigste Hierarchieebene, die Hierarchieebene H2 eine Zwischenebene und die Hierarchieebene H3 die höchste Hierarchieebene. Die Hierarchieebene H1 enthält insgesamt sechs Lookup-Tabellen LT0, LT1, ..., LT5, wobei nur drei dieser Tabellen wiedergegeben sind. Jede dieser Lookup-Tabellen ist ein 6-to-3-Block, der sechs Ein-Bit-Signale xi erhält, so dass den sechs 6-to-3-Blöcken insgesamt 36 1-Bit-Signale x0 bis x35 zugeführt werden.
  • Die einzelnen Lookup-Blöcke LT0 bis LT5 erzeugen ein 3-Bit-Ausgangssignal. Mit anderen Worten erzeugt die Lookup-Tabelle LT0 das 3-Bit-Ausgangssignal u0, die Lookup-Tabelle LT1 das Drei-Bit-Ausgangssignal u1, die Lookup-Tabelle LT2 das 3-Bit-Ausgangssignal u2, die Lookup-Tabelle LT3 das 3-Bit-Ausgangssignal u3, die Lookup-Tabelle LT4 das 3-Bit-Ausgangssignal u4 und die Lookup-Tabelle LT5 das 3-Bit-Ausgangssignal u5. Jeweils zwei dieser benachbarten Ausgangssignale werden dann Lookup-Tabellen LT6, LT7 und LT8 in der Hierarchieebene H2 zugeführt. Die einzelnen Lookup-Tabellen LT6 bis LT8 entsprechen dabei jeweiligen 2x3-to-3-Blöcken. Konkret werden der Lookup-Tabelle LT6 die beiden Ausgangssignale u0 und u1, der Lookup-Tabelle LT7 die beiden Ausgangssignale u2 und u3 sowie der Lookup-Tabelle LT8 die beiden Ausgangssignale u4 und u5 zugeführt. Die Lookup-Tabelle LT6 erzeugt hieraus das 3-Bit-Ausgangssignal vo, die Lookup-Tabelle LT7 das 3-Bit-Ausgangssignal v1 und die Lookup-Tabelle LT8 das 3-Bit-Ausgangssignal v2. Diese drei Ausgangssignale v0 bis v2 werden anschließend der höchsten Hierarchieebene H3 zugeführt, die aus der einzelnen Lookup-Tabelle LT9 in der Form eines 3x3-to-1-Blocks besteht. Diese Lookup-Tabelle erzeugt den 1-Bit-Wert y.
  • Wie bereits oben erwähnt, werden die einzelnen Lookup-Tabellen durch eine geeignete Verschaltung von Basiszellen realisiert. Die entsprechende Verschaltung der Basiszellen für die in 3 dargestellten 6-to-3-Blöcke bzw. 2x3-to-3- Blöcke bzw. den 3x3-to-1-Block ist in 4 wiedergegeben. Das entsprechende FPGA enthält dabei 64-Bit-Basiszellen, die in 4 allgemein mit BZ bezeichnet sind. Wie man erkennt, ist ein 6-to-3-Block durch drei Basiszellen realisiert, die parallel die gleichen 6-Bit-Werte erhalten und einen 3-Bit-Wert ausgeben. Demgegenüber ist ein 2x3-to-3-Block durch drei Basiszellen umgesetzt, die jeweils die gleichen Eingangswerte in der Form von zwei 3-Bit-Werten erhalten und auf diese Weise einen Drei-Bit-Wert generieren. Ferner ist ein 3x3-to-1-Block durch insgesamt elf Basiszellen realisiert. Acht links angeordnete Basiszellen erhalten dabei die gleichen Eingangssignale in der Form von zwei 3-Bit-Werten. Hierdurch entstehen zwei 4-Bit-Werte, die separat in zwei mittlere Basiszellen eingespeist werden, die zusätzlich die gleichen zwei Bits eines 3-Bit-Werts erhalten. Als Ausgang erzeugen die beiden mittleren Basiszellen zwei 1-Bit-Werte, die einer rechts angeordneten Basiszelle neben dem dritten Bit des 3-Bit-Werts zugeführt werden, dessen ersten beiden Bits den mittleren Basiszellen zugeführt wurden. Hieraus erzeugt die rechte Basiszelle einen 1-Bit-Wert. Die rechte Basiszelle hat dabei noch weitere Eingänge, die jedoch nicht genutzt werden.
  • Im Folgenden wird konkret für den Baum der 3 die effektive Ausgabefunktion des hierdurch realisierten spezifischen Neurons angegeben. Für andere Zahlen von Eingängen x, für andere innere Bitbreiten von u und v und für andere Hardwarevorgaben ergeben sich andere Bäume, die zu entsprechenden Ausgaben führen.
  • Entsprechend der Gleichung (2) lauten die uj (j = 0, 1, ..., 5) in 3 wie folgt: u j ( x 6 j , , x 6 j + 5 ) = m a x ( 0, m i n ( 7, i = 0 5 w j , i x i + 6 j + b j ) )
    Figure DE102020209254A1_0004
  • Die vk(k = 0, 1, 2) ergeben sich dann mit Gewichten mk,h und Bias ck (um die Verwechslung mit den Gewichten wj,i und dem Bias bj der Hierarchieebene H1 zu vermeiden): v k ( u 2 k , u 2 k + 1 ) = m a x ( 0, m i n ( 7, h = 0 1 m k , h u h + 2 k + c k ) )
    Figure DE102020209254A1_0005
  • Gleichung (3) in (4) eingesetzt ergibt dann für ein vk: v k ( u 2 k , u 2 k + 1 ) = v k ( x 12 k , , x 12 k + 11 ) = = m a x ( 0, m i n ( 7, [ h = 0 1 m k , h m a x ( 0, m i n ( 7, [ i = 0 5 w h + 2 k , i x i + 6 ( h + 2 k ) + b ( h + 2 k ) ] ) ) + c k ] ) )
    Figure DE102020209254A1_0006
  • Für eine Verschaltung von n-to-m-Blöcken in lediglich zwei Hierarchieebenen würde Gleichung (5) mit k=0 bereits der Ausgabefunktion entsprechen. Im hier betrachteten Beispiel gibt es noch eine dritte Hierarchieebene mit Gewichten ng und Bias d: y ( v 0 , , v 2 ) = m a x ( 0, m i n ( 1, g = 0 2 n g v g + d ) )
    Figure DE102020209254A1_0007
  • Durch Einsetzen von Gleichung (5) in Gleichung (6) ergibt sich hieraus: y ( x 0 , , x 35 ) = m a x ( 0, m i n ( 1, [ g = 0 2 n g m a x ( 0, m i n ( 7, [ h = 0 1 m g , h m a x ( 0, m i n ( 7, i = 0 5 w h + 2 g , i x i + 6 ( h + 2 g ) + b ( h + 2 g ) ) ) + c g ] ) ) + d ] ) )
    Figure DE102020209254A1_0008
  • Gleichungen (3), (5) und (7) verhalten sich in der Anwendung in Neuronalen Netzen ähnlich; die doppelte bzw. dreifache min-Funktion wird für immer größere innere Bitbreite weniger relevant und die Parameter ng, mk,h und wi,j können während des Trainings bestimmt werden. Als einzige entscheidende (den Unterschied zwischen (3), (5) und (7) definierende) Änderung bleibt die doppelte/dreifache max-Funktion: Es wird für Teilsummen bereits aufgerundet, was zu einem leicht veränderten Ergebnis führt.
  • Auch hier ist es hilfreich, dass das Netz so wie es ist trainiert werden kann. Im Training werden die Lookup-Tabellen in den einzelnen Hierarchieebenen wie unabhängige Schichten betrachtet und können so innerhalb ihrer Einschränkungen so weit wie möglich optimiert werden.
  • Im Folgenden wird beschrieben, wie ein neuronales Netzes mit Neuronen, die entsprechend den obigen Erläuterungen aus einer baumartigen Verschaltung von Lookup-Tabellen bestehen, gelernt bzw. trainiert werden kann. Zunächst wird ein reguläres, uneingeschränktes (unquantisiertes) Netz basierend auf konventionellen Neuronen entsprechend Gleichung (1) erzeugt und dessen Metaparameter mittels Backpropagation solange optimiert, bis das Netz die gewünschte Genauigkeit erreicht hat. In der Aktivierungsfunktion der jeweiligen Neuronen wird dann zunächst eine grobe Quantisierung (z.B. auf 4 Bit) eingeführt und das Training wiederholt, um die Parameter auf das durch die Quantisierung eingeführte Rauschen anzupassen. Beim wiederholten Training wird eine Erweiterung einer normalen Backpropagation-Trainingsmethode genutzt, bei der Quantisierungsartefakte (als Teil der Aktivierungsfunktion) regulär dargestellt werden können. Für die Backpropagation werden die durch die Quantisierung erzeugten Unstetigkeiten ignoriert und nur die zusätzliche Sättigung beim maximalen Wert des Ausgangssignals berücksichtigt, wodurch ein herkömmlicher, hocheffizienter Lernprozess genutzt werden kann. Dies wird nochmals in 5 verdeutlicht, die ein Neuron mit einer quantisierten Aktivierungsfunktion AF zeigt, die im Rahmen des Trainings mittels Backpropagation genutzt wird. Der Aufbau des Neurons unterscheidet sich vom Aufbau des Neurons aus 1 lediglich darin, dass die Aktivierungsfunktion eine Quantisierung und Sättigung beschreibt.
  • Anschließend werden Neuronen mit vielen Eingängen durch die oben beschriebenen Lookup-Blocks mit wenigen Eingängen in mehreren Hierarchieebenen ersetzt. Am Übergang zwischen den Hierarchieebenen werden zunächst Werte mit einer Bitbreite von 3 Bit (optional auch mehr) gewählt. Danach wird für jedes Neuron einzeln entschieden, ob es noch gröber quantisiert werden kann. Hierzu können dem Fachmann geläufige Methoden genutzt werden. Beispielsweise wird eine Kostenfunktion : L = 2 B x N 6 B y
    Figure DE102020209254A1_0009
    berechnet, welche die Zahl der benötigten Lookup-Tabellen in einem Neuron angibt, und diese dann mit dem durch die gröbere Quantisierung einhergehenden Genauigkeitsverlust verglichen. Entsprechende Vergleichskriterien, basierend auf denen dann entschieden wird, ob gröber quantisiert wird, liegen im Rahmen von fachmännischem Handeln.
  • Bisher wurde beschrieben, wie auf einem FPGA ganze Neuronen basierend auf einer baumartigen Verschaltung von Lookup-Blöcken realisiert werden können. Im Folgenden wird beispielhaft die Verwendung einer neuronalen Netzstruktur mit solchen Neuronen zur Überwachung von EKG-Signalen beschrieben, um Vorhofflimmern zu detektieren. Die hier betrachtete EKG-Sensorik, die elektrische Potentialdifferenzen zwischen Elektroden auf der Haut eines menschlichen Patienten misst, erfasst zwei Kanäle (d.h. zwei Potentialdifferenzen) und liefert somit zwei Messsignale in der Form von entsprechenden Zeitreihen jeweiliger Potentialdifferenzen. Jedes dieser Messsignale wird mit einer bestimmten Abtastfrequenz und Bitbreite abgetastet (konkret 500Hz, 16bit). Die Bitbreite ist hoch genug, um alle relevanten Artefakte im Signal korrekt abzubilden. Die Signale können als zwei Funktionen f1(t) und f2(t) interpretiert werden. Ein medizinischer Fachmann kann diesen Signalen das Auftreten von Vorhofflimmern entnehmen.
  • Aufgabe der hier beschriebenen Ausführungsform ist es, mittels eines neuronalen Netzes auf einem FPGA automatisch basierend auf entsprechenden Zeitspannen der beiden Messsignale (z.B. den letzten 1024 Werten (~2 Sekunden)) eine Signalklassifikation dahingehend vorzunehmen, ob Vorhofflimmern vorliegt oder nicht. Das Klassifikationsergebnis wird dabei durch den Vergleich von Ausgabewerten am Ausgang der neuronalen Netzstruktur repräsentiert.
  • In der hier beschriebenen Ausführungsform wird das zur Klassifikation verwendete neuronale Netz dadurch realisiert, dass ein Convolutional Neural Network, das zur Bilderkennung genutzt wird, auf eine Dimension reduziert wird. Die entsprechende Architektur, die eine Ausführungsform der erfindungsgemäßen Vorrichtung darstellt, ist in 6 wiedergegeben.
  • Ausgangspunkt sind die oben beschriebenen Sensordaten SD in der Form von zwei EKG-Signalen, die als 16-Bit-Eingangsstrom der neuronalen Netzstruktur NN zugeführt werden. Die neuronale Netzstruktur ist dabei auf einem entsprechenden FPGA 100 realisiert, das lediglich schematisch durch eine gestrichelte Umrandung angedeutet ist. Die Sensordaten SD werden zunächst einer Vorverarbeitung unterzogen. In der hier beschriebenen Ausführungsform werden die beiden EKG-Signale einer an sich bekannten Dynamic Range Compression unterzogen, die in 1 mit DRC bezeichnet ist. Dabei wird berücksichtigt, dass die EKG-Signale teils sehr schlecht ausgesteuert sind (dicker Patient, Schweiß, Position der Elektroden, usw.). Die spätere Quantisierung auf geringe Bitbreiten benötigt jedoch die volle Ausnutzung des Wertebereichs, was durch die Dynamic Range Compression erreicht wird.
  • Nach der Dynamic Range Compression werden die 16-Bit-Signale in einem weiteren Vorverarbeitungsschritt einer Eingangsquantisierung IQ unterzogen. Mittels der Quantisierung werden die beiden 16-Bit-Messsignale auf jeweils 2-Bit-Signale SI abgebildet, welche Sensorsignale im Sinne der Patentansprüche darstellen. Gegebenenfalls kann auch eine weitere Vorverarbeitung der Sensordaten je nach Anforderung der Anwendung erfolgen (z.B. Tiefpassfilterung, Downsampling und dergleichen).
  • Nach der Vorverarbeitung werden die beiden 2-Bit-Signale SI in ein Schieberegister SR geschrieben, das sich einfach auf dem FPGA 100 realisieren lässt. In an sich bekannter Weise wird dem Schieberegister ein Wert eingeschoben und alle anderen Werte werden eine Position weiter geschoben, so dass das letzte Datum im Schieberegister entfällt.
  • An das Schieberegister SR schließt sich als Eingangsschicht des neuronalen Netzes ein an sich bekannter Convolutional Layer CL1 an. In dieser Schicht werden zwei Wertereihen mit 1024 aufeinander folgenden Werten der beiden EKG-Signale verarbeitet, was einer Zeitspanne von etwa 2 Sekunden entspricht. Dabei wird jeweils ein kurzer Zeitabschnitt von neun Werten (auch als Kernel-Größe bezeichnet) beider Wertereihen (also 18 Werte) parallel in zwölf Filterneuronen NE gegeben, die als Lookup-Blocks LB auf dem FPGA 100 entsprechend der obigen Beschreibung realisiert sind. Diese Filterneuronen führen in an sich bekannter Weise eine Faltung durch, um Signalformen zu erkennen. Die Faltung ist dabei für jedes Filterneuron unterschiedlich und wird durch unterschiedliche Gewichte der jeweiligen Filterneuronen realisiert. Aus Übersichtlichkeitsgründen sind in 6 nur vier von den zwölf Filterneuronen wiedergegeben.
  • Anschließend wird der Zeitabschnitt um fünf Werte bzw. Messzeitpunkte (als Stride bezeichnet) verschoben, und die nächsten 18 Werte werden den gleichen zwölf Filterneuronen zugeführt. Für die betrachtete Zeitspanne von 1024 Werten erfolgt somit die erste Berechnung auf den Werten 1 bis 9, die zweite auf den Werten 6 bis 14 und die zweihundertvierte (und letzte) auf den Werten 1016 bis 1024. Der Ausgang der Schicht CL1 wird folglich durch 204 mal 12 Werte gebildet, wobei jeder dieser Werte angibt, wie sehr eine bestimmte elementare Signalform (z.B. eine fallende Flanke) erkannt wurde.
  • Das Schieberegister SR übernimmt die Speicherung von so vielen Werten, die entsprechend der Kernel-Größe der Schicht CL1 gleichzeitig verarbeitet werden, d.h. von 2 · 9= 18 Werten je 2 Bit. Nach einem Berechnungsschritt schiebt das Schieberegister SR nicht um ein Bit weiter, sondern genau so weit, wie es einer Verschiebung um fünf Werte gemäß dem Stride entspricht. Im hier beschriebenen Beispiel werden somit für einen neuen Berechnungsschritt immer 20 neue Bits eingeschoben (Produkt aus fünf Werten von jeweils 2 Bit für zwei EKG-Signale).
  • Das für die Schicht CL1 beschriebene Verfahren wird im Prinzip für den darauf folgenden zweiten Convolutional Layer (nicht explizit in 6 gezeigt) wiederholt, wobei nunmehr dieser zweiten Schicht anstatt von zwei EKG-Signalen die 204 Ausgabewerte der zwölf Filterneuronen unter Verwendung eines Schieberegisters SR' zugeführt werden, das weiter unten näher beschrieben wird. Auch dieser Convolutional Layer und alle weiteren Convolutional Layers enthalten Filterneutonen, die als Lookup-Blocks LB auf dem FPGA 100 entsprechend der obigen Beschreibung realisiert sind. Jeder einzelne Wert stellt dabei keine Amplitude mehr dar, sondern eine der 12 „Kategorien“, die in der Schicht CL1 durch die Filterneuronen erkannt wurden (z.B. „steigende Flanke“). Was genau diese Kategorien sind, braucht nicht vorgegeben werden, sondern wird beim Training von selbst bestimmt. Wenn beispielsweise der zweite Convolutional Layer acht Filterneuronen hat und jeweils fünf aufeinander folgende Kategorien (d.h. Kernel-Größe = 5) zusammenfasst, werden acht Neuronen benötigt, jedes davon mit 5·12=60 Eingängen. Bei einem Stride von 5 ergeben sich 8(Filter) · 41 (=204/Stride) Werte am Ausgang, jeder fasst die Kategorien der ersten Schicht CL1 zu „Metakategorien“ zusammen (z.B. „stark steigend, dann konstant, dann stark fallend“ = „Positiver Peak“).
  • Der darauf folgende dritte Convolutional Layer (nicht explizit in 6 gezeigt) liest 41-mal die acht „Metakategorien“ ein und fasst davon jeweils z.B. sieben Stück zusammen, das Ganze für zehn Filterneuronen. Bei einem Stride von 7 ergeben sich 6·10 „Metametakategorien“ (z.B. „kleine Zacke, dann große Zacke, dann kleine negative Zacke“).
  • Die obige Vorgehensweise lässt sich beliebig weit fortsetzen. Bemerkenswert ist die Tatsache, dass jeder einzelne Wert in jedem Convolutional Layer eine immer größere Zeitbasis repräsentiert. Die Kategorien der ersten Schicht haben jeweils 9 Werte zusammengefasst, also Abschnitte von 18ms (9/500Hz) beschrieben. Die zweite Schicht kombiniert bei einem Stride von 5 je fünf dieser Blöcke ohne Überlapp, daher beschreibt jeder Ausgangswert etwa 90ms. Die dritte Schicht hat dann bei einem Stride von 7 schon pro Wert einen Überblick über Abschnitte von 630 ms. Allgemein kann eine beliebige Anzahl von n Convolutional Layers CL1, ..., CLn verwendet werden, wie in 6 angedeutet ist. Jedem Convolutional Layer ist dabei ein geeignetes Schieberegister vorgeschaltet.
  • Da im hier beschriebenen Ausführungsbeispiel eine Granularität von 630 ms ausreichend ist, werden die 6 · 10 Werte der dritten Schicht in eine Fully Connected Schicht eines regulären Fully Connected Neural Networks gegeben. Diese Schicht ist in 3 mit FC1 bezeichnet. In einem Fully Connected Neural Network ist jedes Neuron einer Schicht mit allen Neuronen von benachbarten Schichten verbunden. Die Neuronen in dem Fully Connected Neural Network sind dabei nicht über Lookup-Blöcke realisiert. Das Fully Connected Neural Network wird weiter unten näher beschrieben.
  • Wie oben erwähnt, sind alle Neuronen der Convolutional Layers basierend auf entsprechenden Lookup-Blöcken in der Form einer baumartigen Struktur von Lookup-Tabellen in mehreren Hierarchieebenen realisiert. Beispielhaft ist in 7 die Struktur eines entsprechenden Neurons NE bzw. Lookup-Blocks LB aus der Schicht CL1 wiedergegeben. Wie man erkennt, hat der Lookup-Block LB drei Hierarchieebenen H1, H2 und H3, ähnlich wie in der Variante der 3. Es werden nunmehr jedoch als Eingangssignale 18 2-Bit-Signale xo, x1, ..., x17 zugeführt, die aus der Eingangsquantisierung IQ der 6 stammen. In der Hierarchieebene H1 sind sechs Lookup-Tabellen LT0 bis LT5 vorgesehen, die jeweils drei benachbarte 2-Bit-Signale als Eingänge erhalten. Die Lookup-Tabellen der Hierarchieebene H1 sind als 3x2-to-3-Blocks ausgebildet, so dass 3-Bit-Ausgangswerte an den entsprechenden Ausgängen der Lookup-Tabellen erhalten werden, nämlich Ausgangswerte u0, u1, ..., u5 für die entsprechenden Lookup-Tabellen LT0, LT1, ..., LT5.
  • Diese Ausgangswerte werden wiederum als Eingangswerte den drei Lookup-Tabellen LT6, LT7 und LT8 der zweiten Hierarchieebene H2 zugeführt, wobei jede Lookup-Tabelle dieser Hierarchieebene immer zwei benachbarte 3-Bit-Werte aus den Lookup-Tabellen der Hierarchieebene H1 erhält. Die Lookup-Tabellen LT6 bis LT8 sind als 2x3-to-3-Blöcke ausgestaltet, so dass als Ausgangssignale für die jeweiligen drei Lookup-Tabellen 3-Bit-Werte generiert werden, die in 6 als v0, v1 und v2 bezeichnet sind. Diese Werte werden schließlich der als 3x3-to-2-Block ausgebildeten Lookup-Tabelle LT9 der Hierarchieebene H3 zugeführt, die daraus den 2-Bit-Wert y erzeugt.
  • Es werden somit durch die zwölf Neuronen der Schicht CL1 zwölf 2-Bit-Werte ausgegeben, die dann in dem Schieberegister SR' zwischengespeichert werden. Genauso wie das Schieberegister SR sammelt das Schieberegister SR' genug Daten für den entsprechenden Verarbeitungsschritt im zweiten Convolutional Layer. Wie oben angedeutet, kann für den zweiten Convolutional Layer sowohl die Kernel-Größe als auch die Stride-Größe den Wert 5 annehmen. In diesem Fall nimmt das Schieberegister SR' je Aktivierung 24 Bit an, speichert 5·24 Bit und triggert die nachfolgende Schicht alle fünf Aktivierungen. Demzufolge ergibt sich am Eingang der zweiten Convolutional Schicht ein Signal von 60·2 Bit mit einer Frequenz von 20 Hz.
  • Optional schließt sich an jeden der Convolutional Layer CL1, ..., CLn ein an sich bekannter Pooling Layer an. Entsprechende Pooling Layer sind in 6 beispielhaft durch Bezugszeichen PL1, ..., PLn angedeutet. Jeder Pooling Layer reduziert mit einer herkömmlichen Methodik die Datenmenge am Ausgang des vorgeschalteten Convolutional Layers. Dies geschieht durch einen Addierer, welcher dem hinter dem entsprechenden Convolutional Layer liegenden Schieberegister nachgelagert ist, oder ggf. durch Maximum-Funktionen. Addierer sind sehr effizient auf FPGAs realisierbar. Für Maximum-Funktionen können konventionelle 3x2-to-2-Blöcke baumartig verwendet werden.
  • Allgemein nimmt der erste Convolutional Layer aus 6 die Daten direkt aus dem Eingang mit einer um den Stride-Faktor reduzierten Frequenz an und gibt sie mit wesentlich geringerer, um den nächsten Stride-Faktor reduzierte Frequenz an den nächsten Convolutional Layer weiter, der genauso verfährt. Die immer geringer werdende Frequenz reduziert die Aktivität und damit den Energieverbrauch der späteren Layer deutlich. Dies ist insbesondere für die Fully Connected Layer des nachfolgenden Fully Connected Neural Networks hilfreich. Diese Layer sind wesentlich weniger kompakt und daher weniger energiesparend als die Convolutional Layers gebaut.
  • Gemäß 6 befindet sich am Ende des letzten Convolutional Layers CLn bzw. Pooling Layers PLn das Schieberegister SR", in das die in Frequenz und Menge stark reduzierten Daten geschrieben werden. Die letzte Schicht wird mit deutlich höherer Bitbreite (z.B. vier Bit) realisiert. An das Schieberegister SR" schließt sich das Fully Connected Neural Network aus einer oder mehreren aufeinander folgenden Fully Connected Layers FC1, ..., FCn an. Die Daten im Schieberegister SR" werden dabei in einen Speicherblock mit wahlfreiem Zugriff geschrieben, um anschließend durch das Fully Connected Neural Network verarbeitet zu werden. Wie oben erwähnt, sind in dem Fully Connected Neural Network die Neuronen in konventioneller Weise und nicht basierend auf Lookup-Blocks realisiert.
  • Zur Realisierung des Fully Connected Neural Networks werden sog. DSP-Slices des verwendeten FPGA 100 genutzt. Dazu wird der Ausgang aus der Übergabeschicht in die DSP-Slices gespeist. Aktuelle DSPs sind in der Lage, nach dem SIMD-Prinzip (Single Instruction Multiple Data) statt einer Multiplikation hoher Bitbreite auch mehrere Multiplikationen geringer Bitbreite gleichzeitig zu verarbeiten und auch anschließend getrennt zu akkumulieren. Dies bedeutet, dass jedes einzelne DSP-Slice mehrere Neuronen gleichzeitig berechnen kann und das hunderte vorhandene DSP-Slices gemeinsam eine beachtliche Menge von Berechnungen parallel und dennoch bei geringem Energieverbrauch durchführen können. Daher kann der Beitrag eines jeden Werts einer Schicht für alle Neuronen der nächsten Schicht parallel berechnet werden. Es müssen dazu nur die Gewichte aus dem Speicher geladen werden, die Zwischenergebnisse verbleiben in den Akkumulatorregistern der DSPs. Auf diese Weise werden die sonst dominierenden Speicherkosten stark reduziert. Da auch diese Gewichte in der Bitbreite eingeschränkt sein sollen (auf etwa 8 Bit), können mehrere Gewichte in jedem einzelnen Datenwort gespeichert werden. Statt zwei Speicherzugriffen (Eingang und Gewicht lesen) pro Eingang jedes Neurons wird nur noch ein Lesezugriff pro Eingang je vier Neuronen benötigt, was einem Effizienzgewinn von Faktor 8 entspricht.
  • Im hier beschriebenen Ausführungsbeispiel reicht lediglich eine Fully Connected Schicht mit nur zwei Neuronen aus, wobei ein Neuron kodiert, wie sehr ein Vorflimmern erkannt wurde, und das andere Neuron, wie sehr kein Vorhofflimmern erkannt wurde. Der Vergleich der nunmehr wieder in etwa 8 Bit kodierten Werte ergibt die Klassifikation, ob Vorhofflimmern vorliegt oder nicht. Mit anderen Worten liegt Vorhofflimmern dann vor, wenn der Ausgabewert des Neurons, das kodiert, wie sehr Vorhofflimmern erkannt wurde, größer ist als der Ausgabewert des Neurons, welches kodiert, wie sehr kein Vorhofflimmern erkannt wurde. Darüber hinaus erhält man eine Abschätzung der Konfidenz über den Absolutwert des Differenzbetrags der Ausgabewerte der beiden Neuronen. Mit Bezug auf 6 erhält man somit über die Ausgangssignale des Fully Connected Neural Networks die Information, ob die Sensordaten zu der Klasse C1 (Vorhofflimmern) oder zu der Klasse C2 (kein Vorhofflimmern) gehören.
  • Die erfindungsgemäße Struktur eines neuronalen Netzes umfassend Neuronen in der Form von Lookup-Blocks kann auch zur Klassifikation von beliebigen anderen Sensordaten als EKG-Signalen eingesetzt werden. Im Folgenden wird als weiteres Beispiel eine Klassifikation in einem Produktionsprozess beschrieben.
  • An einer Produktionsstraße, in der Kupferkabel mit Kunststoff als Isolationsschicht ummantelt werden, wird direkt nach dem Extruder (dem Gerät, dass den Kunststoff auf die Kupferader aufbringt) die Dicke dieser Schicht in mehrere Richtungen (z.B. in vier orthogonalen Richtungen, die senkrecht auf die Längsrichtung des Kabels stehen) mit sehr hoher Zeitauflösung gemessen. Das Kabel durchläuft die Produktion mit einer Geschwindigkeit von mehreren Metern pro Sekunde, die Dicke soll aber mehrmals pro Millimeter gemessen werden, weshalb Messungen im hohen kHz-Bereich benötigt werden.
  • Ein Experte kann der Analyse der Dickeverteilung der Ummantelung (Absolute Dicke, Exzentrizität quer zur Leitungsrichtung, Gleichmäßigkeit der Dicke entlang der Leitungsrichtung, etc.) Fehler im Herstellungsprozess ansehen (z.B. Extrudertemperatur zu gering, Vorschub zu hoch, Beimischung zu gering, etc.). Allerdings muss er dazu ein Stück des Kabels untersuchen. Dies ist erst am Ende der Produktion möglich, wenn das Kabel auf Rollen aufgeteilt wird. In der Zwischenzeit sind viele Kilometer mangelhaftes Kabel hergestellt worden.
  • Mit der erfindungsgemäßen neuronalen Netzstruktur kann nunmehr eine automatische Erkennung und Klassifizierung der Artefakte der Dicke der Ummantelung im Mikrosekundenbereich durchgeführt werden. Die vier Sensormessgrößen (Kabeldicke quer zur Leitungsrichtung) kommen im hohen kHz-Bereich in das Erkennersystem. Dieses wird auf die Detektion von sechs klassischen Fehlerbildern (plus Normalfall) trainiert und soll innerhalb weniger Millisekunden aus den Sensordaten das Auftreten von Fehlerbildern ermitteln. Mithilfe der Vorhersage der Artefakte kann eine verbesserte Einregelung der Produktionsanlage (Steuerung relevanter Parameter in der Produktion) realisiert werden. Neu ergibt sich die Möglichkeit, auch kurzfristige Schwankungen (die nur über wenige Meter der Leitung auftreten) durch die schnelle Regelung auszugleichen.
  • Die im Vorangegangenen beschriebenen Ausführungsformen der Erfindung weisen eine Reihe von Vorteilen auf. Insbesondere kann auf einem FPGA eine neuronale Netzstruktur mithilfe von baumartig verschalteten Lookup-Tabellen realisiert werden, ohne dass die Gewichte und die Ein- und Ausgangssignale der Neuronen binär quantisiert werden müssen. Es können somit Sensordaten hochgenau lediglich mit den Ressourcen eines FPGA und folglich mit geringem elektrischen Energiebedarf klassifiziert werden. Ferner ist es weiterhin möglich, das neuronale Netz mit einem herkömmlichen Backpropagation-Verfahren zu trainieren.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • 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.
  • Zitierte Patentliteratur
    • US 2019/0171420 A1 [0003]

Claims (11)

  1. Vorrichtung zur rechnergestützten Klassifikation von Sensordaten (SD) unter Verwendung einer trainierten neuronalen Netzstruktur (NN), die ein oder mehrere neuronale Netze umfasst und eine Vielzahl von Schichten (CL1, PL1, ..., CLn, PLn, FC1, ..., FCn) aus künstlichen Neuronen (NE) enthält, wobei jedes Neuron (NE) eine Vielzahl von Eingängen (IN) und einen Ausgang (OU) umfasst, um ein Signal am Ausgang (OU) in Abhängigkeit von jeweiligen Signalen an der Vielzahl von Eingängen (IN) zu erzeugen, wobei die Vorrichtung derart konfiguriert ist, dass: - die neuronale Netzstruktur (NN) eine Eingangsschicht (CL1) zur Zufuhr von Sensorsignalen (SI) umfasst, wobei die Sensorsignale (SI) auf Sensordaten (SD) in der Form von Messungen einer oder mehrerer Sensoren basieren; - die neuronalen Netzstruktur (NN) eine Ausgangsschicht (FCn) umfasst, über deren Ausgangssignale die der Eingangsschicht (CL1) zugeführten Sensorsignale (SI) klassifiziert werden, indem die Sensorsignale (SI) zumindest einer Klasse (CL1, CL2) aus einer Mehrzahl von Klassen (CL1, CL2) zugeordnet werden; - die neuronale Netzstruktur (NN) auf einem FPGA (100) ausgebildet ist, das ein Feld aus vorgegebenen Lookup-Basiszellen (BZ) umfasst, die jeweils aus Signalen an mehreren 1-Bit-Eingängen ein Signal an einem 1-Bit-Ausgang erzeugen; - wobei das FPGA (100) derart programmiert ist, dass Lookup-Tabellen (LTO, LT1, ..., LT9) definiert sind, welche jeweils aus einer oder mehreren vorgegebenen Lookup-Basiszellen (BZ) des FPGA (100) gebildet werden und aus mehreren Eingangssignalen (x0, x1, ..., v2) ein Ausgangssignal (uo, u1, ..., y) erzeugen; - wobei das oder die Neuronen (NE) zumindest eines Teils der Neuronen (NE) spezifische Neuronen (NE) sind, die jeweils einen Lookup-Block (LB) bilden, der das jeweilige spezifische Neuron (NE) modelliert, wobei der Lookup-Block (LB) ein Baum aus mehreren Lookup-Tabellen (LTO, LT1, ..., LT9) in mehreren Hierarchieebenen (H1, H2, H3) ist, wobei i. die niedrigste Hierarchieebene (H1) aus mehreren Lookup-Tabellen (LTO, LT1, ..., LT5) besteht, deren Eingangssignale (xo, x1, ..., x35) den Signalen an den Eingängen (IN) des jeweiligen spezifischen Neurons (NE) entsprechen; ii. den Lookup-Tabellen (LT6,..., LT9) einer jeweiligen Hierarchieebene (H2, H3), die eine nächsthöhere Hierarchieebene (H2, H3) zu einer benachbarten Hierarchieebene (H1, H2) ist, ausschließlich Ausgangssignalen (uo, u1, ..., v2) der Lookup-Tabellen (LTO, LT1, ..., LT8) der benachbarten Hierarchieebene (H1, H2) zugeführt werden und dabei in jeder Lookup-Tabelle (LT6,..., LT9) der jeweiligen Hierarchieebene (H2, H3) mehrere Ausgangssignale (u0, u1, ..., v2) von Lookup-Tabellen (LTO, LT1, ..., LT8) der benachbarten Hierarchieebene (H1, H2) kombiniert werden; iii. die höchste Hierarchieebene (H3) aus einer einzelne Lookup-Tabelle (L9) besteht, deren Ausgangssignal (y) dem Signal am Ausgang (OU) des jeweiligen spezifischen Neurons (NE) entspricht.
  2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die vorgegebenen Lookup-Basiszellen (BZ) jeweils 32-Bit-Basiszellen mit fünf 1-Bit-Eingängen sind oder dass die vorgegebenen Lookup-Basiszellen (BZ) jeweils 64-Bit-Basiszellen mit sechs 1-Bit-Eingängen sind.
  3. Vorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass in einem jeweiligen spezifischen Neuron (NE) zwischen benachbarten Hierarchieebenen (H1, H2, H3) Signale (uo, u1, ..., v2) mit einer Bitbreite von zumindest 2 Bit, vorzugsweise von zumindest 3 Bit, übertragen werden.
  4. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das oder die spezifischen Neuronen (NE) in einem oder mehreren Convolutional Layers (CL1, ..., CLn) eines Convolutional Neural Networks liegen, das eine Anzahl von Convolutional Layers (CL1, ..., CLn) umfasst, wobei vorzugsweise alle Neuronen (NE) in den jeweiligen Convolutional Layers (CL1, .., CLn) spezifische Neuronen (NE) sind.
  5. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass das Convolutional Neural Network die Eingangsschicht (CL1) der neuronalen Netzstruktur (NN) enthält, wobei die Eingangsschicht (CL1) ein Convolutional Layer ist, dessen Neuronen (NE) spezifische Neuronen sind, wobei sich die Anzahl von Convolutional Layers (CL1, ..., CLn) ein Fully Connected Neural Network aus einem oder mehreren Fully Connected Layers (FC1, ..., FCn) anschließt, wobei das Fully Connected Neural Network die Ausgangsschicht (FCn) der neuronalen Netzstruktur (NN) enthält.
  6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, dass das Fully Connected Neural Network in einem oder mehreren DSP-Slices des FPGA (100) implementiert ist.
  7. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass die Sensordaten (SD) vorverarbeitet werden, wobei die vorverarbeiteten Sensordaten die Sensorsignale (SI) darstellen, die der Eingangsschicht (CL1) der neuronalen Netzstruktur (NN) zugeführt werden.
  8. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Sensordaten (SD) eine oder mehrere Zeitreihen der Messungen des oder der Sensoren repräsentieren, wobei die Sensorsignale (SI), die der Eingangsschicht (CL1) zugeführt werden, zu einem oder mehreren aufeinander folgenden Zeitabschnitten der Zeitreihe oder Zeitreihen gehören.
  9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass die Sensordaten (SD) eine Anzahl von EKG-Signalen umfassen, die jeweils eine Zeitreihe einer elektrischen Potentialdifferenz eines am menschlichen oder tierischen Körper gemessenen Elektrokardiogramms repräsentieren, wobei die Sensorsignale (SI), die der Eingangsschicht (CL1) zugeführt werden, zu einem oder mehreren aufeinander folgenden Zeitabschnitten des oder der EKG-Signale gehören, wobei die Sensorsignale (SI) dahingehend klassifiziert werden, ob und/oder welcher oder welche Krankheitszustände für das Herz vorliegen, von dem die EKG-Signale stammen.
  10. Vorrichtung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Sensordaten (SD) aus einem Herstellungsprozess stammen, wobei die Sensorsignale (SI) dahingehend klassifiziert werden, ob und/oder welches oder welche Fehlerbilder im Herstellungsprozess auftreten.
  11. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass die Sensordaten (SD) Dickemessungen sind, die eine zeitliche Entwicklung einer Dicke einer Ummantelung eines Kabels an einer oder mehreren vorgegebenen Messstellen während der Aufbringung der Ummantelung auf das Kabel repräsentieren, wobei die Sensorsignale (SI) dahingehend klassifiziert werden, ob und/oder welches oder welche Fehlerbilder bei der Aufbringung der Ummantelung des Kabels auftreten.
DE102020209254.0A 2020-07-22 2020-07-22 Vorrichtung zur rechnergestützten Klassifikation von Sensordaten unter Verwendung einer trainierten neuronalen Netzstruktur Pending DE102020209254A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102020209254.0A DE102020209254A1 (de) 2020-07-22 2020-07-22 Vorrichtung zur rechnergestützten Klassifikation von Sensordaten unter Verwendung einer trainierten neuronalen Netzstruktur

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020209254.0A DE102020209254A1 (de) 2020-07-22 2020-07-22 Vorrichtung zur rechnergestützten Klassifikation von Sensordaten unter Verwendung einer trainierten neuronalen Netzstruktur

Publications (1)

Publication Number Publication Date
DE102020209254A1 true DE102020209254A1 (de) 2022-01-27

Family

ID=79179204

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020209254.0A Pending DE102020209254A1 (de) 2020-07-22 2020-07-22 Vorrichtung zur rechnergestützten Klassifikation von Sensordaten unter Verwendung einer trainierten neuronalen Netzstruktur

Country Status (1)

Country Link
DE (1) DE102020209254A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190171420A1 (en) 2017-12-06 2019-06-06 Advanced Micro Devices, Inc. Dynamic, variable bit-width numerical precision on fpgas for machine learning tasks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190171420A1 (en) 2017-12-06 2019-06-06 Advanced Micro Devices, Inc. Dynamic, variable bit-width numerical precision on fpgas for machine learning tasks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FARAONE, Julian, et al.: Addnet: Deep neural networks using fpga-optimized multipliers. In: IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 28, 2019, No. 1, 115-128. https://doi.org/10.1109/TVLSI.2019.2939429 [abgerufen am 31.03.2021]

Similar Documents

Publication Publication Date Title
DE112022000106T5 (de) Verfahren zur Getriebefehlerdiagnose und Signalerfassung, eine Vorrichtung und ein elektronisches Gerät
EP3785177B1 (de) Verfahren und vorrichtung zum ermitteln einer netzkonfiguration eines neuronalen netzes
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor
EP3719811A1 (de) Konsistenz von datenkennzeichnungen bei der medizinischen bildverarbeitung zur zellklassifizierung
DE102019105850A1 (de) Verfahren zur Erzeugung eines reduzierten neuronalen Netzes für ein Steuergerät eines Fahrzeuges mithilfe von Eigenvektoren
EP2433185B1 (de) Vorrichtung und verfahren zum bearbeiten einer prozesssimulationsdatenbasis eines prozesses
DE102020207449B4 (de) Verfahren, Computerprogramm und Vorrichtung zum Verarbeiten von Signalen
DE4121453C2 (de) Näherungsschlußfolgerungsvorrichtung
DE102023205594A1 (de) Verfahren und Systeme zum Trainieren eines Maschinenlernmodells mit während eines Herstellungsprozesses erfassten Messdaten
DE102020209254A1 (de) Vorrichtung zur rechnergestützten Klassifikation von Sensordaten unter Verwendung einer trainierten neuronalen Netzstruktur
DE19701931C1 (de) Verfahren zur Detektion von Synchronizität zwischen mehreren digitalen Meßreihen mit Hilfe eines Rechners
DE4209296A1 (de) Wort- und wortkettenerkennungssystem auf der basis eines neuronalen netzes mit automatischer zellbildung und -komprimierung sowie nachlernverfahren
EP0978052B1 (de) Rechnergestütztes verfahren zur auswahl von trainingsdaten für ein neuronales netz
DE102023203460B3 (de) Computerimplementiertes Verfahren zum Betrieb einer Bildgebungseinrichtung, Bildgebungseinrichtung, Computerprogramm und elektronisch lesbarer Datenträger
DE102019214308B4 (de) Schnelles quantisiertes Training trainierbarer Module
WO2022242812A1 (de) Computerimplementiertes verfahren und system zur bestimmung von optimierten systemparametern eines technischen systems mittels einer kostenfunktion
DE102022206892A1 (de) Verfahren zum Bestimmen einer optimalen Architektur eines künstlichen neuronalen Netzes
WO2020169416A1 (de) Quantisiertes training trainierbarer module
DE102020212328A1 (de) Vorrichtung und computerimplementiertes Verfahren für eine Netzwerkarchitektursuche
WO2022152683A1 (de) Ermitteln einer konfidenz eines künstlichen neuronalen netzwerks
DE10301420A1 (de) Verfahren zur Ermittlung des zulässigen Arbeitsbereichs eines neuronalen Netzes
WO2020089287A1 (de) Datenverarbeitungsvorrichtung mit einem künstlichen neuronalen netzwerk und verfahren zur datenverarbeitung
DE202021103700U1 (de) Vorrichtung zum Erzeugen eines künstlichen neuronalen Netzes
EP1190383B1 (de) Verfahren zur rechnergestützten ermittlung einer zugehörigkeit einer vorgegebenen eingangsgrösse zu einem cluster
DE102022115101A1 (de) Automatisierter entwurf von architekturen künstlicher neuronaler netze

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication