DE102021201269B4 - Elektronische schaltung zur berechnung einer inferenz durch ein künstliches neuronales netz - Google Patents

Elektronische schaltung zur berechnung einer inferenz durch ein künstliches neuronales netz Download PDF

Info

Publication number
DE102021201269B4
DE102021201269B4 DE102021201269.8A DE102021201269A DE102021201269B4 DE 102021201269 B4 DE102021201269 B4 DE 102021201269B4 DE 102021201269 A DE102021201269 A DE 102021201269A DE 102021201269 B4 DE102021201269 B4 DE 102021201269B4
Authority
DE
Germany
Prior art keywords
interneuron
inference
circuits
electronic circuit
circuitry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102021201269.8A
Other languages
English (en)
Other versions
DE102021201269A1 (de
Inventor
Pierre Gembaczka
Alexander Stanitzki
Burkhard Heidemann
Renee Lerch
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.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to DE102021201269.8A priority Critical patent/DE102021201269B4/de
Publication of DE102021201269A1 publication Critical patent/DE102021201269A1/de
Application granted granted Critical
Publication of DE102021201269B4 publication Critical patent/DE102021201269B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • 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
    • 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

Landscapes

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

Abstract

Elektronische Schaltung zur Berechnung einer Inferenz durch ein künstliches neuronales Netz, miteiner Vielzahl von Neuronschaltungen (12),einer Konfigurationsschaltung (30), die zwischen die Neuronschaltungen (12) geschaltet ist und konfigurierbar ist, um die Vielzahl von Neuronschaltungen (12) zu einer bestimmten Interneuronverschaltung aus einer Vielzahl von konfigurierbaren Interneuronverschaltungen (4911... 491p, 4921... 492q) zu verschalten;wobei die Vielzahl von konfigurierbaren Interneuronverschaltungen (4911... 491p, 492i... 492q) einen Satz von Interneuronverschaltungen umfasst, die alle die gleiche Netztopologie (T1KNN) ergeben und sich gegenseitig durch beteiligte Neuronschaltungen unterscheiden, die zu dieser Netztopologie beitragen, undeiner Ein/Ausgangsschnittstelle (50) zur Eingabe von Nutzeingangsdaten (54), an denen die Inferenz mittels der bestimmten Interneuronverschaltung durchzuführen ist, und Ausgabe von Inferenzergebnisdaten (56), die sich aus der Berechnung der Inferenz der Nutzeingangsdaten (54) ergeben.

Description

  • Die vorliegende Anmeldung bezieht sich auf eine elektronische Schaltung zur Berechnung einer Inferenz durch ein künstliches neuronales Netz.
  • Prozessoren für Kl-Anwendungen können als klassische Von-Neumann-Architektur mit gegebenenfalls spezialisierten,Beschleunigern ausgeführt werden. Alternativ kann die Netzstruktur künstlicher neuronaler Netze (KNN) direkt in Hardware abgebildet werden, in sogenannten neuromorphen Architekturen.
  • Neuromorphe Architekturen versprechen durch ihre spezialisierte Struktur deutlich höhere Leistungseffizienz durch die Berechnung (Inferenz und Training) von KNNs. Allerdings ist durch die Abbildung der Struktur in Hardware auch die prinzipielle Topologie der Netze festgelegt.
  • Dies bedeutet, dass neuromorphe Architekturen im Einsatz problematisch sind. Das neuronale Netz, das durch eine solche neuromorphe Architektur implementiert ist, kann beispielsweise im Einsatz mit einer Inferenzaufgabe befasst sein, die sich im Laufe der Zeit ändert. Liegt die Aufgabe des neuronalen Netzes beispielsweise in einer Gesichtserkennung oder Gesichtsklassifizierung, so kann sich beispielsweise der Personenkreis der Personen, deren Bilder einer Inferenz durch das neuronale Netz unterzogen werden, laufend vergrößern, wodurch sich ohne weitere Änderung oder Spezialisierung des neuronalen Netzes gegebenenfalls Verwechslungen bestimmter eintrainierter Personen mit anderen Personen ergeben können, was verhindern werden könnte, wenn das neuronale Netz gegebenenfalls vergrößert werden würde. Ein weiteres Beispiel könnte darin bestehen, bestimmte Vorgänge oder Handlungen in Überwachungskameras zu klassifizieren. Im Laufe der Zeit könnten sich die Abläufe und Vorgänge, mit denen das neuronale Netz in den Bildern der Überwachungskameras konfrontiert ist, ändern, und es könnte nötig sein, das neuronale Netz nicht nur hinsichtlich seiner Gewichte neu zu trainieren, sondern die Topologie zu ändern, beispielsweise durch Hinzufügung weiterer Faltungsschichten mit zugehöriger Neu-Einführung von Verbindungen zu nachfolgenden voll-verbundenen (fully connected) Schichten.
  • Ein weiteres Beispiel könnte ein neuronales Netz sein, dass ein Sensorsignal, wie z.B. das Messsignal eines Feuchtigkeitssensors, kalibriert, indem beispielsweise der Messwert zusammen mit weiteren Umgebungsmesswerten, wie z.B. Temperatur, in das neuronale Netz eingegeben wird, um durch die Inferenz an den so eingegebenen Werten einen kalibrierten Messwert auszugeben. Auch hier kann es notwendig sein, das Netz anzupassen, wie z.B. an veränderte Umgebungsbedingungen, an veränderte Genauigkeitsanforderungen oder dergleichen. Ferner könnte ein neuronales Netz dafür vorgesehen sein, aus verschiedenen Messwerten verschiedener physikalischer Größen durch Inferenz auf eine andere physikalische Größe zu schließen, und auch hier könnten die gleichen Anpassungen notwendig werden.
  • Das bedeutet aber, dass eine im Einsatz befindliche neuromorphe Architektur einen erhöhten Aufwand in Einsatzgebieten mit sich bringt, bei denen der Einsatz mit einer gewissen Wahrscheinlichkeit dazu führen wird, dass eine Änderung der Netztopologie notwendig ist. In diesem Fall wäre es bei neuromorphen Architekturen notwendig, den entsprechenden Chip oder die elektronische Schaltung physikalisch zu ersetzen. Dies erfordert den Einsatz von spezialisiertem Personal, was mit hohen Kosten einhergeht. Wünschenswert wäre eine einfache Änderbarkeit der Netztopologie, wie es bei einer Softwareimplementierung beispielsweise mittels klassischer Von-Neumann-Architektur möglich wäre.
  • Nicht zuletzt sind an einer neuromorphen Architektur eine Vielzahl an Gattern und andere Bauelemente beteiligt, was zu nicht zu vernachlässigenden Ausfallwahrscheinlichkeiten führt. Dies ist bei sicherheitskritischen Anwendungen noch schwerwiegender. In jedem Fall ist die Fehlerbeseitigung aufwändig.
  • Ansätze aus dem Stand der Technik sind bspw. bekannt aus Payvand, Melika, et al. „Onchip error-triggered learning of multi-layer memristive spiking neural networks.“ IEEE Journal on Emerging and Selected Topics in Circuits and Systems 10.4 (2020): 522-535. Die Autoren befassen sich mit einem lokalen, gradientenbasierten, fehlergetriggerten Lernalgorithmus mit Online-Aktualisierung von ternären Gewichtungen. Der vorgeschlagene Algorithmus ermöglicht das Online-Training von mehrschichtigen SNNs (Spiking Neural Networks) mit memristiver neuromorpher Hardware.
  • Ferner ist aus Yan, Yexin, et al. „Efficient reward-based structural plasticity on a SpiNNaker 2 prototype.“ IEEE transactions on biomedical circuits and systems 13.3 (2019): 579-591 ein belohnungsbasiertes synaptisches Sampling-Modell bekannt, das strukturelle Plastizität nutzt, um eine Funktion oder Aufgabe zu lernen.
  • Außerdem ist aus Billaudelle, Sebastian, et al. „Structural plasticity on an accelerated analog neuromorphic hardware system.“ Neural networks 133 (2021): 11-20 eine Vorgehensweise bekannt, um strukturelle Plastizität zu erreichen, die die Ressourcenallokation optimiert, indem die prä- und postsynaptischen Partner ständig neu verkabelt werden, während der neuronale Eingangslastfaktor konstant und das Connectom spärlich gehalten wird.
  • Die Aufgabe der vorliegenden Erfindung besteht deshalb darin, ein Konzept zur Implementierung künstlicher neuronaler Netze zu schaffen, das der Effizienz von neuromorphen Architekturen nahekommt, dabei aber eine vielseitigere und im Einsatz weniger aufwendigere Anwendung ermöglicht.
  • Diese Aufgabe wird durch den Gegenstand der unabhängigen Patentansprüche der vorliegenden Anmeldung gelöst.
  • Eine Kernidee der vorliegenden Anmeldung besteht darin, dass eine neuromorphen Architekturen nahekommende Effizienz bei gleichzeitiger vielseitigerer Einsetzbarkeit und unaufwändigerer Anwendbarkeit erhalten werden kann, wenn neuromorphe Strukturen mit dynamischer Rekonfigurierbarkeit gepaart werden. In anderen Worten ausgedrückt, besteht die Idee darin, dass das genannte Ziel mit einer elektronischen Schaltung zur Berechnung einer Inferenz, wie z.B. einer Klassifizierungsaufgabe, einer Kalibrierungsaufgabe oder einer Prädiktionsaufgabe,durch ein künstliches neuronales Netz geschaffen werden kann, wenn die elektronische Schaltung neben einer Vielzahl von Neuronschaltungen eine Konfigurationsschaltung enthält, die zwischen die Neuronschaltungen geschaltet ist und konfigurierbar ist, um die Vielzahl von Neuronschaltungen zu einer bestimmten Interneuronverschaltung (Topologie) aus einer Vielzahl möglicher Interneuronverschaltungen zu verschalten. Auf diese Weise ist es möglich, Veränderungen im Betriebseinsatz beispielsweise durch eine Änderung der Netztopologie Rechnung tragen zu können, ohne ein Auswechseln der elektronischen Schaltung zu erfordern. Darüber hinaus wird es ermöglicht, den bei der Größe und Komplexität der elektronischen Schaltung nicht auszuschließenden Fehlern einzelner Komponenten, wie zum Beispiel von Transistoren oder Dioden, ebenfalls durch Änderung der Konfiguration bzw. Umverschaltung zu begegnen, ohne ein komplettes Ersetzen der elektronischen Schaltung zu erfordern.
  • Ferner umfasst die Vielzahl von konfigurierbaren Interneuronverschaltungen einen Satz von Interneuronverschaltungen, die alle die gleiche Netztopologie ergeben und sich gegenseitig durch beteiligte Neuronschaltungen unterscheiden, die zu dieser Netztopologie beitragen,
  • Die elektronische Schaltung weist eine Ein/Ausgangsschnittstelle zur Eingabe von Nutzeingangsdaten, an denen die Inferenz mittels der bestimmten Interneuronverschaltung durchzuführen ist, und zur Ausgabe von Inferenzergebnisdaten, die sich aus der Berechnung der Inferenz der Nutzeingangsdaten ergeben, auf. Über diese Schnittstelle können auch Daten eingebbar sein, die die bestimmte Interneuronverschaltung definieren, d.h. Informationen über die bestimmte Interneuronverschaltung, die die bestimmte Interneuronverschaltung aber nicht vollständig festlegen müssen, sondern beispielsweise nur eine gewünschte Netztopologie.
  • Gemäß einem Ausführungsbeispiel weist die elektronische Schaltung einen nicht-flüchtigen Speicher auf, in welchem die Informationen über die bestimmte Interneuronverschaltung gespeichert sind. Ferner kann zusätzlich oder alternativ ein nicht-flüchtiger Speicher zur Speicherung der Interneurongewichte vorhanden sein.
  • Gemäß weiterer Ausführungsbeispiele umfasst die elektronische Schaltung selbst eine Überprüfungseinrichtung, die ausgebildet ist, um in inaktiven Phasen der elektronischen Schaltung, in denen keine Inferenz zu berechnen ist, die elektronische Schaltung auf Funktionsfähigkeit zu überprüfen. Gemäß einem Ausführungsbeispiel ist diese Überprüfungseinrichtung dazu ausgebildet, die Konfigurationsschaltung sequenziell in eine von mehreren Interneuronverschaltungen zu versetzen, die zueinander unterschiedliche Mengen von Neuronschaltungen miteinander verschalten und zu einer gleichen Netztopologie führen, um dann unter Verwendung der mehreren Interneuronverschaltungen und Sondeneingangsdaten, die für die mehreren Interneuronverschaltungen gleich sind, Inferenzen durchzuführen und anhand eines Vergleiches von Inferenzergebnissen, die durch die Inferenz unter Verwendung der mehreren Interneuronverschaltungen erhalten werden, defekte Neuronschaltungen zu erkennen. Auf diese Art und Weise ist es effizient möglich, die elektronische Schaltung transparent für den Nutzer auf die korrekte Ausführung der intendierten Inferenzen zu überprüfen. Dadurch ist eine solche elektronische Schaltung auch für Einsätze geeigneter als bisherige Implementierungen von künstlichen neuronalen Netzen, bei denen die durchzuführenden Inferenzen bestimmte Ansprüche für die Zuverlässigkeit der durchgeführten Inferenzen erfüllen soll. Beispiele solcher sicherheitskritischer Anwendungen sind beispielsweise Gesichtserkennungen zur Personenauthentifizierung oder Personenautorisierung, das Auslösen sicherheitsrelevanter Aktionen im Bereich autonomes Fahren oder dergleichen.
  • Gemäß weiterer Ausführungsbeispiele kann dabei die genannte Überprüfungseinrichtung ausgebildet sein, um auf Basis einer Erkennung defekter Neuronschaltungen eine Modifikation der bestimmten Interneuronverschaltung, die in dem nicht-flüchtigen Speicher gespeichert ist, zu bestimmen, d. h. selbstständig und nicht erst durch eine Analyse durch ein Fachpersonal, woraufhin die so erhaltene modifizierte Interneuronverschaltung anstelle der vorherigen bestimmten Interneuronverschaltung in dem nicht-flüchtigen Speicher gespeichert werden kann, woraufhin wiederum darauffolgende Inferenzen anhand der modifizierten Interneuronverschaltung durchgeführt werden, d. h. mit gleicher Netztopologie, aber ohne die Verwendung als defekt erkannter Neuronschaltungen. Auf diese Art und Weise ist die Wartung solcher elektronischen Schaltungen besonders unaufwendig.
  • Gemäß einem weiteren Ausführungsbeispiel kann die elektronische Schaltung zusätzlich oder alternativ zu den vorhergehend erwähnten Besonderheiten eine Äquivalenzabbildungseinrichtung aufweisen, die eine physikalische unklonbare Funktion (PUF) und/oder einen Zufallsgenerator aufweist und ausgebildet ist, die bestimmte Interneuronverschaltung, über die Informationen in einem nicht-flüchtigen Speicher der elektronischen Schaltung gespeichert sind, aus einer Nutzer-eingegebenen Interneuronverschaltung, die über die Ein/Ausgabeschnittstelle der elektronischen Schaltung empfangen ist, wie z.B. bei Nutzereingabe der Nutzer-eingegebenen Interneuronverschaltung so zu erzeugen, dass die bestimmte Interneuronverschaltung und die Nutzer-eingegebene Interneuronverschaltung zu einer gleichen Netztopologie führen, und/oder die bestimmte Interneuronverschaltung aus einer in dem nicht-flüchtigen tatsächlich gespeicherten Interneuronverschaltung so zu bestimmen, dass die bestimmte Interneuronverschaltung und die in dem nicht-flüchtigen Speicher tatsächlich gespeicherten Interneuronverschaltung zu einer gleichen Netztopologie führen. Dies kann beispielsweise bei jeder Konfiguration der Konfigurationsschaltung geschehen, aber könnte auch zwischen aufeinanderfolgenden, mit der Netztopologie durchzuführenden Inferenzen durchgeführt werden. Auf diese Art und Weise ist es möglich, künstliche neuronale Netze auch in Situation einzusetzen, bei denen die Inferenz gegenüber Angriffen eine Sicherheit bieten soll, die versuchen, über ein Ausspähen eines Betriebs der elektronischen Schaltung Rückschlüsse auf verarbeitete Daten zu schließen, die beispielsweise über die erwähnte Ein/Ausgabeschnittstelle der elektronischen Schaltung auch verschlüsselt mit der Außenwelt ausgetauscht werden könnten.
  • Vorteilhafte Implementierungen sind Gegenstand abhängiger Patentansprüche. Bevorzugte Ausführungsbeispiele der vorliegenden Anmeldung werden nachfolgend Bezug nehmend auf die Zeichnungen näher erläutert, es zeigen:
    • 1 ein Blockschaltbild einer elektronischen Schaltung gemäß einem Ausführungsbeispiel der vorliegenden Anmeldung, wobei manche dargestellten Elemente optional sind;
    • 2 ein Blockschaltbild eines internen Aufbaus einer Neuronschaltung gemäß einem Ausführungsbeispiel;
    • 3 eine schematische Darstellung einer Netztopologie gemäß einem Beispiel;
    • 4 eine schematische Darstellung einer Netztopologie, und zwar zur exemplarischen Veranschaulichung einer zu der Netztopologie von 3 komplexeren Netztopologie;
    • 5 eine schematische Darstellung von Interneuronverschaltungen, zu welchen die Konfigurationsschaltung von 1 in der Lage sein kann, zur Veranschaulichung zueinander äquivalenter Interneuronverschaltungen, die alle zu einer gleichen Netztopologie führen, und zur Veranschaulichung der Möglichkeit der Einstellung unterschiedlicher M Netztopologien, die sich gegenseitig unterscheiden, wie z.B. in Anzahl an Neuronen, Neuronschichten, Schichttypen oder Schichttypenreihenfolge;
    • 6 eine schematische Darstellung einer Funktionsweise der Überprüfungseinrichtung von 1 gemäß einem Ausführungsbeispiel;
    • 7 eine schematische Darstellung einer Funktionsweise der elektronischen Schaltung von 1, wonach ein zufälliges Moment eingebaut wird, um die elektronische Schaltung gemäß Informationen über die zu verwendende Interneuronschaltung in einem nicht-flüchtigen Speicher tatsächlich zu konfigurieren; und
    • 8 ein vereinfachtes Blockschaltbild eines Ausschnittes einer elektronischen Schaltung mit einer Überprüfungseinrichtung, die eine Kombination aus PUF und Pseudozufallszahlengenerator zur Erkennung fehlerhafter Neuronschaltungen verwendet.
  • 1 zeigt eine elektronische Schaltung 10 zur Berechnung einer Inferenz durch ein künstliches neuronales Netz. Die elektronische Schaltung kann eine integrierte Schaltung sein, ein gehäuster oder ungehäuster Chip oder ein Chipsatz mit Chips, die über eine Platine miteinander verbunden sind.
  • Die elektronische Schaltung 10 aus 1 umfasst eine Vielzahl von Neuronschaltungen 12. Die Neuronschaltungen 12 können alle identisch ausgebildet sein. Möglich wäre allerdings auch, dass Neuronschaltungen unterschiedlichen Typs existieren. Die Anzahl von Neuronschaltungen kann äußerst groß sein und beispielsweise zwischen 100 und 10.000 liegen. Wie in 1 angedeutet, sind die Neuronschaltungen 12 möglicherweise regelmäßig in einem Array angeordnet. Neuronschaltungen 12 sind in der Lage, Aufgaben eines Neurons in einem künstlichen neuronalen Netz zu erledigen bzw. die entsprechenden Berechnungen durchzuführen. Jede Neuronschaltung 12 umfasst also eine vorbestimmte Anzahl an Eingängen und einen Ausgang und ist in der Lage, Signale, die an den Eingängen anliegen und somit Aktivitäten von Vorgängerneuronen darstellen, einer Neuronberechnung zu unterziehen, wie zum Beispiel einer gewichteten Summation, gefolgt von einer Anwendung einer nicht linearen Funktion auf die gewichtete Summe, woraus sich ein Ausgangssignal an dem Ausgang der Neuronschaltung 12 ergibt und somit eine Aktivität des Neurons selbst darstellt, dem die Neuronschaltung 12 entspricht.
  • 2 zeigt exemplarisch den Aufbau einer Neuronschaltung 12. Zwischen die N Eingänge 141 ... 14N einerseits und den Ausgang 16 der Neuronschaltung 12 andererseits sind, in der genannten Reihenfolge, Multiplikatoren 181 ... 18N, ein Summierer 20 und ein Modul 22 zur Anwendung einer skalaren Funktion, nämlich vorzugsweise einer nicht linearen Funktion f(x), auf den Summenwert des Summierers 20 geschaltet. Jeder Multiplizierer 181 ... 18N gewichtet bzw. multipliziert ein Eingangssignal an einem entsprechenden Eingang 141 .. 14N mit einem jeweiligen Gewichtungsfaktor w1... wN - den Interneurongewichten - und gibt das so gewichtete Eingangssignal an den Summierer 20 aus. Die Eingangssignale an den Eingängen 141 ... 14N stellen die Aktivitäten des Vorgängerneurons des Neurons dar, das die Neuronschaltung 12 aus 2 repräsentiert. Die N gewichteten Eingangssignale werden in dem Summierer 20 summiert und das Summensignal von dem Modul 22 der skalaren Funktion unterzogen, woraus sich das Ausgangssignal der Interneuronschaltung 12 am Ausgang 16 ergibt, das wiederum die Aktivität des Neurons 12 darstellt. N liegt z.B. zwischen 10 und 100. Es sei darauf hingewiesen, dass alle Neuronverschaltungen 12 gleich sein können, aber nicht müssen, sondern dass beispielsweise Neuronschaltungen 12 unterschiedlichen Typs existieren können. Die unterschiedlichen Typen können sich beispielsweise in der Anzahl von Eingängen N unterscheiden. Eine Unterscheidung hinsichtlich der skalaren Funktion f(x) ist zusätzlich oder alternativ natürlich ebenfalls möglich.
  • Wie es im Folgenden noch näher erörtert wird, ist jede Neuronschaltung 12 hinsichtlich ihrer anzuwendenden Interneurongewichte w1... wN konfigurierbar. Optional kann auch eine Konfigurierbarkeit hinsichtlich der anzuwendenden skalaren Funktion in dem Modul 22 existieren. Die Anzahl N an Eingängen der Neuronschaltung 12 kann, wie erwähnt, zwischen 10 und 100 liegen. Damit mit der elektronischen Schaltung 10 ein Neuron implementierbar ist, das mehr als N Vorgängerneuronen besitzt, kann es sein, dass jede Neuronschaltung 12 oder zumindest ein bestimmter Teil davon hinsichtlich des Moduls 22 derart konfigurierbar ist, dass das Modul 22 deaktiviert wird oder umgangen wird, damit das Summensignal 20 direkt an den Ausgang 16 weitergegeben wird, so dass durch die Zusammenschaltung von drei oder mehr Neuronschaltungen 12 ein Neuron mit mehr als N Vorgängerneuronen darstellbar ist: zwei oder mehr Interneuronschaltungen 12 führen die gewichtete Summe zu Gruppen zu jeweils N Eingangssignalen aus, woraufhin die Ausgangssignale dieser Interneuronschaltungen 12 in einer weiteren Interneuronschaltung 12 mit zueinander gleichen Gewichten oder mit Gewichten von 1 aufsummiert werden und die so entstehende Summe der skalaren Funktion unterworfen wird. Es könnten auch zu diesem Zweck Neuronschaltungen 12 unterschiedlichen Typs miteinander verschaltet werden.
  • Es sollte darauf hingewiesen werden, dass die Neuronschaltungen 12 auch anders als in einem regelmäßigen Array und insbesondere anders als in einer regelmäßigen Anordnung in Spalten und Zeilen, wie es in 1 angedeutet ist, angeordnet sein könnten.
  • Über die Vielzahl von Neuronschaltungen 12 hinaus umfasst die elektronische Schaltung 10 eine Konfigurationsschaltung 30, die zwischen die Neuronschaltungen 12 geschaltet ist, und konfigurierbar ist, um die Vielzahl von Neuronschaltungen zu einer bestimmten Interneuronverschaltung aus einer Vielzahl von möglichen Interneuronverschaltungen zu verschalten. De Konfigurationsschaltung kann Multiplexer und Demultiplexer aufweisen, wie es in 8 noch gezeigt werden wird. Beispielsweise ist es möglich, dass die Konfigurationsschaltung 30 so konfiguriert ist, dass eine Netztopologie entsteht, wie sie in der 3 veranschaulicht ist. Die in 3 veranschaulichte Netztopologie 321 ist exemplarisch dazu vorgesehen, ein Bild 34 als Nutzeingangsdaten zu erhalten, um an Ausgangsneuronen bzw. Neuronen einer Abschlussschicht 36 jeweils einen Klassifizierungswert auszugeben, der angibt, ob der Bildinhalt des Bildes 34 zu einer bestimmten Klasse gehört. Die Klassen könnten beispielsweise bestimmten Personen entsprechen. Die Netztopologie 321 gemäß 3 umfasst exemplarisch eingangsseitig einen Satz von Faltungsschichten 381 ... 38i zur Durchführung einer jeweiligen Faltung mit einem Faltungskern 41 an dem Eingangsbild 34, gefolgt von einem weiteren Satz 401 ... 40i von weiteren Faltungsschichten, die eine Faltung an den Arrays von Neuronen der Schichten 381 ... 38i durchführen, woraufhin sogenannte voll-verbundene Schichten, hier drei voll-verbundene Schichten 42, 44 und 36, folgen, von denen jedes Neuron jeweils mit allen Neuronen der jeweiligen Vorgängerschicht verbunden ist, d. h. die Schicht 42 beispielsweise mit allen Neuronen der Faltungsschichten 401 ... 40i, die Neuronen der Schicht 44 mit allen Neuronen der Schicht 42 und die Neuronen der Schicht 36, die gleichzeitig die Abschlussschicht ist, mit allen Neuronen der Schicht 44. Natürlich stellt die Topologie von 3 lediglich ein exemplarisches Beispiel für eine Topologie dar, zu welcher Neuronschaltungen 12 durch die Konfigurationsschaltung 30 verschaltbar sein könnten. Dabei wird es aus der nachfolgenden Beschreibung noch deutlich werden, dass bei einer solchen Verschaltung üblicherweise nicht alle Neuronschaltungen 12 an der Interneuronverschaltung teilhaben, d.h. Neuronschaltungen 12 verblieben, die kein Neuron aus der Topologie 321 repräsentieren. Exemplarisch ist in 3 ein Neuron 471 von einer der Faltungsschichten dargestellt, das mit allen Neuronen der Vorgängerschicht innerhalb des Faltungskerns verbunden ist, die ihrerseits Vorgängerneuronen zu diesem Neuron 471 darstellen. Wie gesagt, könnte eine Neuronschaltung 12 dieses Neuron 471 implementieren, oder eine Zusammenschaltung mehrerer Neuronschaltungen 12, wie es in 2 beschrieben worden ist.
  • Es sei noch darauf hingewiesen, dass möglicher Weise die elektronische Schaltung so ausgebildet ist, dass die Neuronschaltungen 12 zu einem Zeitpunkt immer nur zur Repräsentation einer Netzschicht der Topologie verschaltet werden, die Zwischenergebnisse bzw. Aktivitäten dieser Schicht dann zwischengespeichert werden, die Neuronschaltungen 12 umkonfiguriert werden, um die Nachfolgeschicht der Topologie zu repräsentieren, und dann die zwischengespeicherten Aktivitäten an die umkonfigurierten Neuronschaltungen 12 angelegt werden usw. Die folgende Beschreibung ist ohne weiteres auf eine solche Abwandlung übertragbar.
  • Lediglich exemplarisch zeigt 4 eine zu der Netztopologie von 3 alternative Netztopologie 322, nämlich eine Netztopologie, die die gleiche Aufgabe möglicherweise mit mehr Präzision erledigt: Hier ist exemplarisch ein Satz von weiteren Faltungsschichten 461 ... 46i zwischen die voll-verbundene Schicht 42 und den Satz von Faltungsschichten 401 ... 40i geschaltet. Es kann also sein, dass die Konfigurationsschaltung 30 gemäß einer Interneuronverschaltung die Neuronschaltungen 12 so verschaltet, dass sich die Topologie 321 ergibt, und durch eine andere Interneuronverschaltung so, dass die Neuronschaltungen 12 so miteinander verbunden werden, dass sie die Topologie 322 ergeben.
  • Wie gesagt, die Topologien aus 3 und 4 stellen lediglich Beispiele dar, die den Sachverhalt veranschaulichen sollen, aber natürlich sind die konfigurierbaren Topologien nicht auf die dargestellten beschränkt. Ein weiteres Beispiel könnte ein neuronales Netz sein, dass ein Sensorsignal, wie z.B. das Messsignal eines Feuchtigkeitssensors, kalibriert, indem beispielsweise der Messwert zusammen mit weiteren Umgebungsmesswerten, wie z.B. Außentemperatur und Sensortemperatur, in das neuronale Netz eingegeben wird, um durch die Inferenz an den so eingegebenen Werten einen kalibrierten Messwert auszugeben. Das Netz könnte hier beispielsweise aus zwei vollverbundenen Schichten gebildet sein Zur Anpassung an veränderte Umgebungsbedingungen oder an erhöhte Genauigkeitsanforderungen oder dergleichen könnte ein verbessertes neuronales Netz drei vollverbundenen Schichten aufweisen. Ähnliche Netze könnten für das Prädizieren einer anderen physikalischen Größe auf Basis eines Satzes gemessener Messgrößen existieren.
  • Zu der Konfigurierbarkeit der Konfigurationsschaltung 30 sei auch nochmal auf 5 Bezug genommen. 5 veranschaulicht einen Ausschnitt aus der Vielzahl von möglichen Interneuronverschaltungen 49, zu denen die elektronische Schaltung 10 durch die Konfigurationsschaltung 30 exemplarisch durch entsprechende Verschaltung der Neuronschaltungen 12 konfigurierbar sein kann. 5 zeigt insbesondere exemplarisch, dass beispielsweise ein Satz von Interneuronverschaltungen 491 1 ... 49p 1 alle die gleiche Netztopologie T1 KNN ergeben, wobei sich die Interneuronverschaltungen 491 1.., 49p 1 durch die beteiligten Neuronschaltungen 12 unterscheiden können, also durch den Teilsatz von Neuronschaltungen 12 aus allen verfügbaren Neuronschaltungen 12, die durch die Interneuronverschaltung über die Konfigurationsschaltung 30 zu der Topologie beitragen und somit zur Inferenz mittels dieser Topologie T1 KNN, und/oder durch die Zuordnung der Interneuronschaltungen 12 zu den Neuronen 471 aus der Netztopologie T1 KNN, d. h. der Zuordnung zwischen den Interneuronschaltungen 12 einerseits und den Neuronen 471, die sie aus der jeweiligen Topologie repräsentieren, andererseits. Die Anzahl p kann groß sein und kann von der Größe der jeweiligen Netztopologie abhängen.
  • 5 veranschaulicht, dass weitere mögliche Interneuronverschaltungen 491 2 ... 49q 2 zu Verschaltungen der Neuronschaltungen 12 führen können, die alle einer Netztopologie T2 KNN entsprechen. Auf diese Arten und Weisen mag die elektronische Schaltung 10 konfigurierbar sein, um einer aus einer Vielzahl von N Netztopologien zu entsprechen, die sich beispielsweise durch die Anzahl von Neuronen, die Anzahl von Neuronenschichten, Neuronzwischenverbindungen und/oder Schichtarten (voll-verbundene oder Faltungsschicht) unterscheiden können. In 5 sind an der Interneuronverschaltung beteiligte Neuronschaltungen schraffiert und nicht-beteiligte Interneuronschaltungen nicht-schraffiert dargestellt.
  • Zurückkehrend zu der Beschreibung von 1 umfasst die elektronische Schaltung 10 ferner eine Ein/Ausgangsschnittstelle 50. Sie kann optional der Eingabe von Daten dienen, die die bestimmte Interneuronverschaltung definieren, d.h. Daten, die die Interneuronverschaltung vorgeben, zu der die Konfigurationsschaltung 30 die Neuronschaltungen 12 bzw. einen Teilsatz daraus miteinander verschalten soll. Details hierzu werden im Folgenden noch erörtert, vor allem solche, aus denen deutlich wird, dass die Daten die Interneuronverschaltung ggf. nicht eindeutig vorgeben, sondern vielleicht nur die gewünschte Netztopologie. Die Ein/Ausgangsschnittstelle dient jedenfalls zur Eingabe von Nutzeingangsdaten 54, an denen die Inferenz mittels der bestimmten Interneuronverschaltung durchzuführen ist, und zur Ausgabe von Inferenzergebnisdaten 56, die sich aus der Berechnung der Inferenz der Nutzeingangsdaten ergeben. Die Ein/Ausgangsschnittstelle 50 verwendet beispielsweise ein bestimmtes Protokoll zum Eingeben der Verschaltungsdaten 52 - falls diese Option gewählt ist - und der Nutzeingangsdaten 54 bzw. zum Ausgeben der Inferenzergebnisdaten 56. Die genaue Form der Kommunikation mit Außen über die Schnittstelle 50 ist allerdings nicht wesentlich.
  • Jedenfalls ist es möglich die elektronische Schaltung 10 über die Eingabe von den Verschaltungsdaten 52 zu konfigurieren, indem nämlich die Konfigurationsschaltung 30 entsprechend konfiguriert wird, woraufhin eine Inferenz an Nutzeingangsdaten 54 durchgeführt wird und das Ergebnis davon als Inferenzergebnis 56 ausgegeben wird. Optional kann die bestimmte Interneuronverschaltung, zu der die Konfigurationsschaltung 30 gemäß den Daten 52 eingestellt wird, bzw. Informationen darüber in einem Speicher 60 der elektrischen Schaltung 10 gespeichert werden, wobei der Speicher 60 beispielsweise ein nicht-flüchtiger Speicher ist, so dass diese bestimmte Interneuronverschaltung nach Eingabe der Informationen darüber beständig in der elektrischen Schaltung 10 vorliegt, so dass ohne eine Umkonfigurierung der elektrischen Schaltung 10 über die Eingabe neuer Verschaltungsdaten 52 Inferenzen an entsprechenden Nutzeingangsdaten 54 jeweils mittels dieser bestimmten Interneuronverschaltung ausgeführt werden. Details und Variationen hierzu werden im Folgenden noch beschrieben werden. Über die Schnittstelle 50 können natürlich zusätzlich Informationen über die Interneurongewichte eingegeben werden, mit welchen die an der bestimmten Interneuronverschaltung beteiligten Neuronschaltungen 12 ihre Funktion als Neuron in der entsprechenden Netztopologie ausführen sollen. Auch für diese Interneurongewichte kann ein Speicher 62 in der elektrischen Schaltung 10 vorgesehen sein, wie zum Beispiel ein nicht-flüchtiger Speicher. Wie es demnach in 1 gezeigt ist, kann jeder der Speicher 60 und 62 entsprechend über die Eingangsschnittstelle 50 mit den entsprechenden Informationen versorgt werden, bzw. können die Informationen in dem Speicher 60 bzw. 62 gespeichert werden, und über die Kopplung mit der Schnittstelle 50 hinaus sind die Speicher 60 und 62 auch mit der Konfigurationsschaltung 30 bzw. den Neuronschaltungen 12 gekoppelt. Es sei darauf hingewiesen, dass die Speicher 60 und 62 nicht notwendigerweise physikalisch unterschiedliche Speicher sein müssen, sondern dass sie auch unterschiedliche Teile eines gemeinsamen Speichers sein können, also beispielsweise unterschiedliche Teile eines Zellenfeldes, das durch eine gemeinsame Adressiereinheit adressierbar ist. In anderen Worten ausgedrückt, können sich die beiden Speicher 60 und 62 lediglich dadurch unterscheiden, dass sie unterschiedlichen Speicherplätzen eines Speichers zugeordnet sind. Wie bereits erwähnt, wäre die Ausführung in Form eines flüchtigen Speichers sowohl für den Speicher 60 als auch für den Speicher 62 möglich, einzeln oder für beide.
  • Wie es später beschrieben wird, ist es möglich, dass die Ein/Ausgabe der Informationen/Daten 52 bis 56 verschlüsselt geschieht. Es ist auch möglich, dass die Verschlüsselung lediglich die Daten 54 und 56 betrifft.
  • Die bisherigen Ausführungen kurz zusammenfassend verwendet die elektrische Schaltung von 1 die Nutzung eines neuromorphen Arrays aus Neuronschaltungen 12 mit dynamisch rekonfigurierbarer Topologie. Wie dargestellt ist es durch die Rekonfigurierbarkeit möglich, zwischen unterschiedlich komplexen Netzstrukturen bzw. Topologien umzuschalten. Wie es im Folgenden noch ausgeführt werden wird, ist es durch die Rekonfigurierbarkeit allerdings auch möglich, die elektrische Schaltung mit einer Fähigkeit zu versehen, „Ersatzeinheiten“ in Form von freien bzw. verfügbaren Neuronschaltungen 12 vorzusehen, die in dem Fall eines Ausfalls von Teilen des bisher konfigurierten Netzes, d. h. wie zum Beispiel der bisher beteiligten Neuronschaltungen 12, in der bestimmten Interneuronverschaltung, eine Reparatur ermöglichen.
  • Durch die umschaltbare Komplexität der verwendeten Netze kann die Leistungsaufnahme der elektrischen Schaltung für „einfache“ Problemstellungen gesenkt werden, ohne die Leistungsfähigkeit insgesamt einzuschränken. In anderen Worten ausgedrückt, ist es möglich, über die Daten 52 die Topologie des realisierten neuronalen Netzes so zu dimensionieren, dass es der gestellten Aufgabe gewachsen ist, ohne dabei überdimensioniert zu sein, so dass der pro Inferenz aufgewendete Stromverbrauch der elektrischen Schaltung an das Problem angepasst ist.
  • Wie es ferner im Folgenden noch näher ausgeführt wird, kann durch den Austausch von Einheiten bzw. einzelnen Neuronschaltungen 12 durch Ersatzeinheiten bzw. bisher nicht involvierten Neuronschaltungen 12, d.h. solchen, die gemäß der bestimmten/gespeicherten Interneuronverschaltung nicht an Inferenzen beteiligt sind, eine funktionale Sicherheit des Netzes im Sinne einer Ausfallsicherheit gewährleistet werden, was für den Einsatz von KI in sicherheitsrelevanten Bereichen von Vorteil ist.
  • Durch die beschriebene Konfigurierbarkeit ist es auch möglich, die Topologie des neuromorphen Arrays bzw. die Verbindungen zwischen den Grundeinheiten bzw. Neuronschaltungen 12 im Betrieb zu verändern. Dabei kann die Topologie, die durch die eingestellte Interneuronverschaltung vorgegeben ist, teilweise oder gänzlich durch den Inhalt des nicht-flüchtigen Speichers 60 bestimmt sein. Die Topologie kann zusätzlich oder alternativ mindestens teilweise durch die Auswertung von fertigungsbedingten Bauteiltoleranzen des elektronischen Schaltkreises bestimmt sein. Zusätzlich oder alternativ kann die Topologie mindestens teilweise durch die Eingangsdaten 52 und/oder 54 des elektronischen Schaltkreises bzw. der elektronischen Schaltung bzw. durch eine Auswertung dieser oder der bisher verarbeiteten Daten festgelegt werden.
  • Bevor mit einem weiteren Aspekt von Ausführungsbeispielen der vorliegenden Anmeldung fortgefahren wird, sei darauf hingewiesen, dass die elektronische Schaltung 10 möglicherweise nur hinsichtlich einer bestimmten Topologie eines neuronalen Netzes konfigurierbar ist, und dass beispielsweise keine Möglichkeit zur Eingabe von Verschaltungsdaten 52 gegeben ist. Eine solche elektrische Schaltung 10 wäre dann für eine bestimmte Topologie ausgelegt, wäre aber dann dazu in der Lage, diese Topologie durch unterschiedliche Verschaltungen zu realisieren. Ein nicht-flüchtiger Speicher 60 könnte dazu vorgesehen sein, eine aktuell ausgewählte Verschaltung, die zu dieser Topologie führt, nicht-flüchtig zu speichern. Die im Folgenden näher beschriebene Überprüfungseinrichtung, die optional in der elektrischen Schaltung 10 vorhanden ist, könnte dann dazu verwendet werden, um sicherzustellen, dass diese Topologie auch funktionstüchtig ist und nicht durch Defekte beeinträchtigt ist. Ferner wäre es möglich, eine zu dieser Topologie passende Verschaltung zufällig intermittierend, wie zum Beispiel zwischen jeder Inferenz oder in einem anderen regelmäßigen oder unregelmäßigen Intervall, zu wechseln, wie zum Beispiel auf eine zufällige oder auf eine deterministische Art und Weise.
  • In der nachfolgenden Beschreibung geht es darum, dass die elektrische Schaltung 10 möglicherweise auch zusätzliche Recheneinheiten enthalten kann, die nicht in der Topologie des zu berechnenden KNNs enthalten sind. Das bedeutet, die Anzahl der Neuronschaltungen 12 ist so ausgelegt, dass darunter auch solche verbleiben, die nicht zu der Inferenz beitragen, wie sie durch die bestimmte/gewählte Interneuronverschaltung der beteiligten Neuronschaltungen 12 berechnet wird, welche beispielsweise in dem nicht-flüchtigen Speicher 60 festgelegt ist. Im Folgenden wird ein Mechanismus verwendet, der Ausfälle von Recheneinheiten bzw. Neuronschaltungen 12 erkennt oder von Verbindungen im neuromorphen Array, die defekt sind, und die Funktionsfähigkeit der konfigurierten elektrischen Schaltung 10 durch Rekonfiguration der Topologie unter Verwendung der zusätzlichen Recheneinheiten bzw. nicht-verwendeten Neuronschaltungen 12 wiederherstellt.
  • Insbesondere kann, wie es durch gestrichelte Linien in 1 gezeigt ist, die elektrische Schaltung 10 eine Überprüfungseinrichtung 70 aufweisen, die ausgebildet ist, um in inaktiven Phasen der elektronischen Schaltung, in denen keine Inferenz zu berechnen ist, Defekte in der Vielzahl von Neuronschaltungen 12 zu suchen bzw. zu erkennen. Die Überprüfungseinrichtung 70 oder Überprüfungsschaltung 70 kann als eine festverdrahtete Schaltung ausgebildet sein, oder als ein Prozessor, die eine bestimmtes Programm abarbeitet.
  • 6 zeigt ein Ausführungsbeispiel dafür, wie die Überprüfungseinrichtung 70 arbeiten kann. Gemäß 6 versetzt die Überprüfungseinrichtung 70 die Konfigurationsschaltung 30 sequenziell in eine von mehreren äquivalenten Interneuronverschaltungen 49i 1... 49i r, d.h. Interneuronverschaltungen, die zu der gleichen Netztopologie Ti KNN führen - wobei i für jedwede Topologie steht, zu der die Neuronschaltungen verschaltbar sind -, und die sich vorzugsweise untereinander auch dadurch unterscheiden, dass sie zueinander unterschiedliche Mengen der Neuronschaltungen 12 miteinander verschalten, um die Netztopologie Ti KNN zu ergeben. r muss nicht notwendiger Weise alle möglichen zueinander äquivalenten Verschaltungen aufweisen, die zu der Topolgie Ti KNN führen bzw. sie repräsentieren, und muss auch nicht im Vorhinein feststehen, sondern kann im Laufe der Überprüfung bzw. Fehlererkennung bestimmt werden. Unter Verwendung dieser Interneuronverschaltungen 49i 1 ... 49ir lässt die Überprüfungseinrichtung 70 Inferenzen durchführen, und zwar anhand gleicher Sondeneingangsdaten 80. Sondeneingangsdaten 80 werden vom Namen her unterschieden von den Nutzeingangsdaten 54, da sie intern erzeugt sein können und die Inferenzergebnisse lediglich dem Zweck der Überprüfung dienen. Gemäß einem nachfolgend beschriebenen Ausführungsbeispiel werden diese Daten auch zufällig erzeugt. Sie sind allerdings für die Inferenzen gleich, die anhand der Interneuronverschaltungen 49i 1... 49ir durchgeführt werden. Es ergibt sich also ein Inferenzergebnis 821 ... 82r für jede dieser Interneuronverschaltungen 49i 1... 49ir und anhand eines Vergleichs 84, wie zum Beispiel einer Überprüfung auf Gleichheit all dieser Inferenzergebnisse 821 ... 82r, erkennt die Überprüfungseinrichtung 70 defekte Neuronschaltungen 12 unter den Neuronschaltungen 12 der elektronischen Schaltung 10. Möglicherweise variiert die Überprüfungseinrichtung 70 die Topologie Ti KNN und führt die Erkennung dann möglicherweise auf Basis von Überprüfungen 84 durch, die aus mehreren zueinander äquivalenten Interneuronverschaltungen zu unterschiedlichen Netztopologien erhalten werden. Der Ablauf aus Inferenzdurchführung und Überprüfung kann iteriert werden.
  • Es wird darauf hingewiesen, dass möglicherweise die Überprüfungseinrichtung 70 die Erkennung defekter Neuronschaltungen nicht gänzlich durchführt. Beispielsweise kann es sein, dass sie die Inferenzergebnisse 821 ... 82r über die Ein/Ausgabeschnittstelle 50 nach außen gibt, damit die Erkennung dort durchgeführt wird.
  • Ferner sei darauf hingewiesen, dass möglicherweise für die Inferenzen, die mittels der Interneuronverschaltungen 49i 1... 49ir durchgeführt werden, bestimmte Interneurongewichte für die jeweils beteiligten Neuronschaltungen 12 verwendet werden, und dass dabei die Überprüfungseinrichtung 70 möglicherweise dafür sorgen kann, dass die Interneurongewichte für solche Neuronschaltungen, die in der Netztopologie Ti KNN dem gleichen Neuron entsprechen, gleich gewählt sind. Dabei müssen natürlich die Interneurongewichte nicht aus einem Training generiert worden sein. Vielmehr kommt es darauf nicht an. Die Überprüfung 84 soll vielmehr überprüfen, ob die Interneuronverschaltungen 49i 1... 49ir auch zu dem gleichen Ergebnis gelangen, was ja der Erwartung entspricht, da sie ja alle der gleichen Netztopologie Ti KNN entsprechen.
  • Die Überprüfungseinrichtung 70 kann ausgebildet sein, um sich in Inferenz-freien Phasen selbstständig zu aktivieren, d. h. dann, wenn an der elektronischen Schaltung 10 keine Nutzeingangsdaten 54 angelegt sind, die einer Inferenz zu unterziehen sind. Die Überprüfungseinrichtung 70 kann auch dazu ausgelegt sein, jeden Überprüfungsvorgang sofort zu unterbrechen, sobald solche Nutzeingangsdaten 54 zur Durchführung einer Inferenz an die elektronische Schaltung 10 angelegt werden. Das heißt, sie unterbricht keine angeforderte Inferenz und/oder beginnt unverzüglich mit einer angeforderten Inferenz.
  • Die Überprüfungseinrichtung 70 kann ausgebildet sein, um eine Information über eine Erkennung defekter Neuronschaltungen für später abrufbar zu machen, wie zum Beispiel über die Ein/Ausgabeschnittstelle 50. Alternativ kann die Überprüfungseinrichtung 70 auch dazu ausgelegt sein, die in dem nicht-flüchtigen Speicher gespeicherten Informationen über die bestimmte Interneuronverschaltung zu ändern. Stellt die Überprüfungseinrichtung 70 beispielsweise auf Basis der Erkennung defekter Neuronschaltungen fest, dass eine gemäß der bestimmten Interneuronverschaltungen beteiligte Neuronschaltung 12 defekt ist, kann die Überprüfungseinrichtung 70 beispielsweise eine Modifikation der gespeicherten/bestimmten Interneuronverschaltung bestimmen, um eine modifizierte Interneuronverschaltung zu erhalten, die zu einer gleichen Netztopologie führt, wie die vormals gespeicherte bestimmte Interneuronverschaltung, die aber beispielsweise die defekte Neuronschaltung 12 nicht involviert, d. h. für die die defekte Neuronschaltung eine nicht-beteiligte ist, wobei die vormals gespeicherte bestimmte Interneuronverschaltung dann durch die modifizierte Interneuronverschaltung überschrieben wird.
  • In anderen Worten ausgedrückt, ist es möglich, die Funktionsfähigkeitswiederherstellung ohne Eingriff des Anwenders erfolgen zu lassen und/oder ohne Unterbrechung der Berechnung des KNNs. Die Information über die Erkennung defekter Neuronschaltungen oder eine Information über die Wiederherstellung bzw. Rekonfiguration zur Funktionsfähigkeitswiederherstellung kann außen zugänglich gemacht werden, damit der Nutzer oder angeschlossene Vorrichtungen diese Information zur Erkennung der Fehlerhäufigkeit nutzen können.
  • Verschiedene Möglichkeiten existieren dafür, die Interneuronverschaltungen 49i 1... 49i r auszuwählen, um die Überprüfung daran durchzuführen. Beispielsweise kann die Überprüfungseinrichtung zur Bestimmung dieser Interneuronverschaltungen 49i 1... 49i r einen Zufallsgenerator verwenden. Zusätzlich oder alternativ kann die Bestimmung dieser Interneuronverschaltungen auch iterativ im Wechsel mit einer jeweiligen Überprüfung 84 geschehen. Der verwendete Zufallsgenerator kann einen Pseudozufallsgenerator (PRNG; Pseudo Random Number Generator) aufweisen, könnte aber auch einen TRNG aufweisen (True Random Number Generator = Wahrer-Zufall- Generator). Der PRNG kann von einer PUF beeinflusst werden. Die Beeinflussung kann - und diese Möglichkeiten sollen für alle Gelegenheiten gelten, bei denen eine Kombination aus PRNG und PUF erwähnt wird - dadurch realisiert sein, dass eine durch die PUF gewonnene, für die elektronische Schaltung 10 individuelle Bitkombination verwendet wird, um den Anfangszustand des PRNG festzulegen, oder einen internen Zustand des PRNGs während der Zufallsgenerierung durch den PRNG zu modifizieren, wobei der PRNG ein rRückgekoppeltes Schieberegister umfassen kann. Auch die Sondeneingangsdaten 80 bzw. die Eingangsdaten 80 zum Zwecke der Überprüfung können mittels des Zufallsgenerators bestimmt werden.
  • Bei Vorliegen eines Fehlers in zum Beispiel einem einzelnen künstlichen Neuron der Topologie Ti KNN wirkt sich dieser durch die zufällige Veränderung der Topologie an verschiedenen Stellen des Netzes aus, mit unterschiedlichen Resultaten am jeweiligen Ergebnis bzw. Ausgang 821 ... 82r. Zur Auswertung, welche Neuronschaltung 12 defekt ist, kann ein sehr kleines neuronales Netz trainiert werden. Insbesondere kann dieses Modell darauf trainiert werden, anhand der Antworten 821 ... 82r bei gleichen bzw. konstanten Eingangsdaten 80, aber veränderlichen Interneuronverschaltungen, fehlerhafte Neuronen zu identifizieren. Das Modell muss nicht unbedingt ein neuronales Netz sein, sondern es kann auch ein Entscheidungsbaum (decision tree) oder eine Support-Vector-Machine verwendet werden.
  • Mithilfe eines sogenannten „lokalen Surrogat“-Modells kann die Fehlererkennung im Hintergrund ablaufen und fehlerhafte Neuronen können bei der Konfiguration ausgeschlossen werden.
  • Zusätzlich oder alternativ zu den oben genannten Ausführungsbeispielen kann die elektronische Schaltung 10 von 1 eine Besonderheit aufweisen, die eine Unvorhersagbarkeit für Dritte betrifft, wie eine bestimmte Netztopologie in der elektronischen Schaltung 10 realisiert ist, d.h. durch welche Interneuronverschaltung. Dazu sei auf 7 Bezug genommen. 7 veranschaulicht ein Ausführungsbeispiel, wonach die Interneuronverschaltung der Neuronschaltungen 12 lediglich insofern festgelegt ist, als sie eine bestimmte Netztopologie Tj KNN vorgibt. Es kann sein, dass die Informationen, die in dem nicht-flüchtigen Speicher 60 gespeichert sind, auch eine ganz bestimmte Interneuronverschaltung aus den Interneuronverschaltungen 49j1 ... 49j s festlegen, die alle zueinander äquivalente Interneuronverschaltungen darstellen, die zu der Topologie TjKNN führen. Wesentlich für das Ausführungsbeispiel von 7 ist aber, dass die Auswahl unter den zueinander äquivalenten Interneuronverschaltungen 49j1 ... 49j s durch einen Zufallsgenerator und/oder eine PUF, in 7 allgemein durch ein Modul 100 dargestellt getroffen wird. Auf diese Art und Weise ist es außenstehenden Dritten nicht möglich, zu wissen, durch welche Interneuronverschaltung aus 49j 1 .. 49i s die Inferenz an eingehenden Nutzeingangsdaten 54 durchgeführt wird, um Ausgangsdaten 56 zu erhalten. Diese Interneuronverschaltungen 49j 1 ... 49i s können sich hinsichtlich beteiligter Neuronschaltungen und/oder der Zuordnung der Neuronschaltungen 12 zu Neuronen aus der Netztopologie Tj KNN unterscheiden. Es ist für Dritte also schwierig, durch Abhörangriffe Rückschlüsse auf die verarbeiteten Daten zu schließen oder gezielt Angriffe auf die Inferenz auszuführen, um beispielsweise das Ergebnis der Inferenz von außen gezielt in dem Sinne zu beeinflussen, dass das Inferenzergebnis 56 einem vordefinierten Ergebnis entspreche.
  • Das Modul 100 könnte alternativ auch dazu verwendet werden, eingehende Verschaltungsdaten 52 von einer bestimmten der Interneuronverschaltungen 49j 1 ... 49i s auf eine zufällige zu ändern oder dazu, um aus einer durch die eingehenden Daten 52 festgelegten Topologie Tj KNN eine vorbestimmte dieser Interneuronverschaltungen auszuwählen und in dem Speicher 60 zu speichern.
  • Eine Umsetzung, die für das Ausführungsbeispiel von 6 geeignet ist, ist in 8 veranschaulicht. 8 veranschaulicht einen Ausschnitt aus der elektronischen Schaltung 10 gemäß einem Ausführungsbeispiel. Es sind drei Interneuronschaltungen 12 gezeigt, die über Multiplexer 110 einerseits und Demultiplexer 112 der Konfigurationsschaltung 30 andererseits jeweils die Aufgabe eines Neurons einer bestimmten Topologie Ti KNN übernehmen können. Insbesondere kann dazu eine Kombination aus PUF und PRNG, wie sie im Vorhergehenden kurz beschrieben worden ist, und wie sie in 8 durch den Block 120 angezeigt ist, verwendet werden, um die Konfigurationsschaltung 30 bzw. die gezeigten Multiplexer und Demultiplexer so anzusteuern, dass eine der gezeigten Neuronschaltungen 12 die Aufgabe eines bestimmten Neurons in einer bestimmten Topologie Ti KNN übernimmt und damit zu einer entsprechenden Interneuronverschaltung 49i k beiträgt. Die ausgewählte Neuronschaltung 12 wird auf diese Weise getestet, indem sie zur Überprüfung 84 beiträgt. Durch Variation, welche Neuronschaltung 12 beiträgt, kann eine Information darüber erhalten werden, welche Neuronschaltung 12 defekt ist. Die Auswahl einer aus mehreren alternativen Neuronschaltungen 12 ist natürlich nicht auf eine bestimmte Teilmenge von Neuronschaltungen 12 der elektronischen Schaltung 10 beschränkt. 8 liefert also ein Beispiel, wie ein Modul, das hier exemplarisch aus einer Kombination von PUF und PRNG gebildet ist, dazu verwendet werden kann, die Auswahl unter den zu einer Überprüfung verwendeten Interneuronverschaltungen 49i 1... 49ir durch Zufall zu treffen. Dazu ist das Modul 120 ausgelegt, um das Zufallssignal, das von dem Modul 120 ausgegeben wird, an die Konfigurationsschaltung 30 bzw. die Multiplexer 110 und Demultiplexer 112 auszugeben. Die Multiplexer und Demultiplexer arbeiten in dem Sinne, dass aus einer Gruppe von Neuronschaltungen 12 eine Teilmenge in die Topologie eingeschaltet wird. Wie es in 8 gezeigt ist, steuert hier der Zufallsgenerator, hier exemplarisch aus einer Kombination einer PUF und einem Pseudozufallszahlengenerator gebildet, auch den Speicher 62, nämlich hinsichtlich des Anlegens der Interneurongewichte an die Neuronschaltungen 12. Die Steuerung sorgt dafür, dass die richtigen Interneurongewichte an die zugehörigen Neuronschaltungen 12 angelegt werden, nämlich die Interneurongewichte, die mit einem bestimmten Neuron aus der gewünschten Topologie assoziiert sind, mit den Neuronschaltungen 12, die zufällig dazu ausgewählt worden sind, diesem Neuron zu entsprechen.
  • 8 zeigt unabhängig von den Details betreffend die zufällig Bestimmung der Interneuronverbindung auch ein Ausführungsbeispiel für die Ausgestaltung der Konfigurationsschaltung 30. Gemäß 8 können also die Neuronschaltungen 12 in Gruppen zusammengefasst sein, wobei die Neuronschaltungen 12 einer Gruppe, wie in 8 für einen Teil der Gruppe dargestellt, entlang einer Spalte angeordnet sein können. Zu jeder Neuronschaltung 12 besitzt die Konfigurationsschaltung 30 einen Demultiplexer 112 und einen Multiplexer 110. Sie können, wie in 8 gezeigt, seitlich zu den Neuronschaltungen 12 angeordnet sein, für jede Neuronschaltung 12 ein Demultiplexer 112 und ein Multiplexer 110. Sie können, wie in 8 gezeigt, so angeordnet sein, dass sich die Demultiplexer 112 auf der einen Seite und die Multiplexer 110 auf der anderen Seite befinden. Die Demultiplexer 112 besitzen einen Eingang, mit welchem sie mit einer korrespondierenden Neuronschaltung 12 einer vorhergehenden Neuronschaltungsgruppe verbunden sind (in 8 nicht gezeigt) und einen Ausgang für jede Neuronschaltung 12 der Neuronschaltungsgruppe, zu der diese Demultiplexer 112 gehören. Die Demultiplexer 112 sind in der Lage, das Eingangssignal an eine Auswahl von einer oder mehreren Neuronschaltungen 12 aus der zugehörigen Neuronschaltungsgruppe auszugeben. Die Auswahl erfolgt zufällig über das Modul 120. Jede Neuronschaltung 12 der betrachteten Neuronschaltungsgruppe erhält auf diese Weise eine bestimmte Anzahl von eingehenden Signalen von Ausgangssignalen der vorhergehenden Neuronschaltungsgruppe und übernehmen damit die Rolle eines zufällig ausgewählten Neurons der zur Überprüfung ausgewählten Netztopologie. Jede Neuronschaltung 12 der betrachteten Neuronschaltungsgruppe besitzt also so viele Eingänge wie Neuronschaltungen in der betrachteten Neuronschaltungsgruppe sind, welche Eingänge mit jedem Demultiplexer 112 verbunden sind. Ebenso besitzt jede Neuronschaltung 12 der Neuronschaltungsgruppe einen Ausgang pro Multiplexer 110, der mit dem jeweiligen Multiplexer 110 verbunden ist. Jeder Multiplexer 110 leitet das Ausgangssignal von genau einer Neuronschaltung 12 an seinen Ausgang. Jeder Multiplexer 110 besitzt lediglich einen Ausgang. Diese Ausgangssignale werden dann von den Demultiplexern 112 der Konfigurationsschaltung 30 für die nächste Neuronschaltungsgruppe empfangen. Die Auswahl der weitergeleiteten Ausgangssignale der Multiplexer 110 wird auch über das Modul 120 gesteuert und korrespondiert zu der Auswahl der Demultiplexer 112. Es werden die Ausgangssignale von den Neuronschaltungen 12 weitergeleitet, die auch mit Eingangssignalen durch die Demultiplexer 112 gefüttert worden sind.
  • Ein Signal 130 kann dazu vorgesehen sein, das Modul 120 zu veranlassen, die zufällige Konfiguration vorzunehmen. Wie gesagt, kann diese Signals 130 davon abhängig gesendet werden, ob gerade eine Inferenzaufgabe von einem Nutzer an die elektronische Schaltung 10 herangetragen wird oder nicht.
  • Obige Ausführungsbeispiele zeigten also eine Hardware zur Berechnung künstlicher neuronaler Netze. Die Recheneinheit war als neuromorphes Array ausgeführt, das heißt als vernetzte Anzahl gleicher Grundeinheiten, Neuronschaltungen genannt, wobei die Netztopologie zumindest teilweise der Topologie des zu berechnenden künstlichen neuronalen Netzes entspricht. Die Topologie des neuromorphen Arrays, d. h. die Verbindungen zwischen den Grundeinheiten im Betrieb, sind veränderbar. Die Topologie kann durch den Inhalt eines nicht-flüchtigen Speichers 60 bestimmt sein, jedenfalls zumindest teilweise, und/oder die Topologie kann durch die Auswertung von fertigungsbedingten Bauteiltoleranzen des elektronischen Schaltkreises bestimmt sein, ebenfalls jedenfalls teilweise. Wie es im Vorhergehenden beschrieben worden ist, kann eine Fehler-/Ausfallerkennung vorgesehen sein. Zur Berechnung des künstlichen neuronalen Netzes wird, wie es in 6 oder 8 beschrieben worden ist, bei jedem Durchlauf eine zufällig andere Konfiguration des neuromorphen Arrays verwendet. Bei Fehlerfreiheit aller Recheneinheiten und Verbindungen werden identische Berechnungen durchgeführt, da alle Konfigurationen gleichwertig sind. In 8 war der Aufbau schematisch für eine Neuronschaltungsgruppe dargestellt worden, die beispielsweise einem Layer entsprechen. Die „Umverdrahtung“ erfolgt, wie in 8 beschrieben, exemplarisch mittels Mutliplexer-Bäumen, welche Zwischenverbindung man auch als logarithmische Zwischenverbindung (logarithmic interconnect) bezeichnen kann, wobei die Steuerung der Umverdrahtung auf Basis eines sich bei jeder Berechnung ändernden Zufallswertes geschieht, der, wie ebenfalls in 8 veranschaulicht, aus einer Kombination von einem Pseudozufallszahlengenerator und einer PUF gewonnen werden kann. Bei Vorliegen eines Fehlers in beispielsweise einem künstlichen Neuron wirkt sich dieser durch die zufällige Veränderung der Topologie an verschiedenen Stellen des Netzes aus, mit unterschiedlichen Resultaten am Ausgang. Wie es oben bereits beschrieben worden ist, kann dann ein Modell trainiert sein, um anhand der Antwort des neuromorphen Arrays auf konstante Eingangsdaten bei veränderter Topologie die fehlerhaften Neuronen zu identifizieren. Außerdem wurde anhand der 7 beschrieben, dass es sein kann, dass die Konfiguration des neuromorphen Arrays von einem in der Hardware der elektronischen Schaltung 10 selbst gespeicherten Geheimnis abhängig gemacht werden kann, also einem „zufälligen Keim“ (seed) in der Hardware abhängig generiert werden kann. Dadurch wird die Netz-Konfiguration für einen Angreifer unvorhersehbar und Manipulationsversuche werden erschwert. Eine solche PUF ist eine Hardwarestruktur, die ein individuelles Merkmal für jede individuelle elektronische Schaltung 10 liefert, indem beispielsweise bei der Herstellung der elektronischen Schaltung in einem bestimmten Bereich eine zufällige Variation einer physikalischen Größe eingebaut wird, wie zum Beispiel eine zufällige Variation einer Kapazität oder eines Widerstandswertes. Diese örtliche Zufälligkeit in dem Bereich wird dann über entsprechende Elektroden abgegriffen und zur Erzeugung zufälliger Schwellwertabfragen verwendet. Jede Schwellwertabgabe ergibt somit ein zufälliges Bit und die Zusammensetzung dieser zufälligen Bits ergibt ein für die individuelle elektronische Schaltung 10 zufälliges Geheimnis. Mit diesem zufälligen Geheimnis kann die in 7 beschriebene Auswahl entweder direkt getroffen werden, oder aber es wird beispielsweise mit diesem Geheimnis ein Pseudozufallszahlengenerator gestartet, d. h. er wird damit geseedet (bekeimt). Pseudozufallszahlengenerator kann beispielsweise ein rückgekoppeltes Schieberegister aufweisen, dessen Register den internen Zustand des Zufallszahlengenerators definiert. Der Anfangszustand kann eben durch die PUF bestimmt werden und/oder der interne Zustand des Pseudozufallszahlengenerators laufend über die PUF beeinflusst werden. Auf diese Weise ergibt sich durch den Pseudozufallszahlengenerator eine Zahlenfolge zufälliger Art, die für jede elektronische Schaltung individuell und damit für Dritte unvorhersagbar ist. Andererseits ist die Pseudozufallszahlenfolge für jede elektronische Schaltung 10 selbst immer wieder reproduzierbar. Auf diese Art und Weise ist es möglich, einen einmal unterbrochenen Überprüfungsprozess gemäß 6 bzw. 8, weil beispielsweise ein Nutzer eine Inferenz beantragt, nach der Inferenzausführung wieder fortzusetzen.
  • Es sei am Ende noch darauf hingewiesen, dass die Topologie des neuromorphen Arrays anpassbar ist, wenn erkannt wird, dass für die Eingangsdaten 54 die Inferenz, wie z:B. die Klassifizierung, gemäß dem Ausgangsdatum 56 zu uneindeutigen Ergebnissen kommt. Im einfachsten Fall kann beispielweise eine Schwellwertentscheidung an den Ausgangsneuronen durchgeführt werden, an denen das Ausgangssignal 56 ja anliegt. In diesem Fall kann das neuromorphe Array mit einer komplexeren, leistungsfähigeren Netztopologie neu konfiguriert und die Berechnung erneut durchgeführt werden. Üblicherweise verbessert sich dadurch die Genauigkeit des Ergebnisses, es steigt aber auch der Stromverbrauch. Diese Umkonfiguration und das Feststellen, dass eine Neuberechnung der Inferenz mit einer komplexeren Netztopologie durchgeführt werden sollte, könnte von außen durchgeführt werden. Allerdings wäre es auch möglich, dass die elektronische Schaltung 10 dazu ausgebildet ist, bei der Ausführung einer Inferenz zu überprüfen, ob eben jenes Ergebnis der Inferenz eine ausreichende Klassifizierung ergibt, und, falls dies nicht der Fall ist, die neue Konfiguration selbst autonom durchzuführen und die Inferenz erneut mittels verbesserter Interneuronverschaltung durchzuführen. Die verbesserte Interneuronverschaltung kann natürlich ebenfalls in dem nicht-flüchtigen Speicher 60 gespeichert sein, gegebenenfalls zusammen mit entsprechenden Interneurongewichten für die der verbesserten Interneuronverschaltung entsprechenden Netztopologie. Die elektronische Schaltung 10 könnte dann die Umkonfiguration quasi für den Nutzer selbstständig durchführen und die verbesserten Ergebnisdaten 56 ausgeben. Der Nutzer würde von der Umkonfiguration nichts merken.
  • Die elektronische Schaltung kann natürlich auch dazu verwendet werden, Inferenzen im Rahmen eines Trainings durchzuführen. Die Inferenzen an entsprechenden Trainingsdaten können durchgeführt werden, indem die Trainingsdaten als die Nutzeingangsdaten 54 eingegeben werden, und die sich ergebenden Inferenzergebnisdaten 56 können dann beim Training verwendet werden. Möglich wäre es, dass auf der elektronischen Schaltung selbst ein Modul sitzt oder angeordnet ist, das in der Lage ist, anhand von Trainingsdaten, die über die Schnittstelle 50 eingegeben werden, ein Training selbst durchzuführen, das dann die entsprechenden Interneurongewichte ergibt. Hierzu wäre beispielsweise ein Prozessor denkbar, der diese Aufgaben übernimmt. Ein solcher Prozessor könnte nicht nur die Aufgabe eines solchen Trainingsmoduls übernehmen, sondern zusätzlich oder alternativ die Aufgaben der im vorhergehend beschriebenen Überprüfungseinrichtung und/oder die Aufgabe der soeben erwähnten Uneindeutigkeitsprüfung mit Wechsel zu einer verbesserten Interneuronverschaltung.
  • Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, sodass ein Block oder ein Bauelement einer Vorrichtung auch als ein entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschrittes zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar. Einige oder alle der Verfahrensschritte können durch einen Hardware-Apparat (oder unter Verwendung eines Hardware-Apparats), wie zum Beispiel einen Mikroprozessor, einen programmierbaren Computer oder eine elektronische Schaltung ausgeführt werden. Bei einigen Ausführungsbeispielen können einige oder mehrere der wichtigsten Verfahrensschritte durch einen solchen Apparat ausgeführt werden.
  • Je nach bestimmten Implementierungsanforderungen können manche der vorhergehend beschriebenen Module und Einrichtungen, wie z.B. der Überprüfungseinrichtung, in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Bluray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Deshalb kann das digitale Speichermedium computerlesbar sein.
  • Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.

Claims (17)

  1. Elektronische Schaltung zur Berechnung einer Inferenz durch ein künstliches neuronales Netz, mit einer Vielzahl von Neuronschaltungen (12), einer Konfigurationsschaltung (30), die zwischen die Neuronschaltungen (12) geschaltet ist und konfigurierbar ist, um die Vielzahl von Neuronschaltungen (12) zu einer bestimmten Interneuronverschaltung aus einer Vielzahl von konfigurierbaren Interneuronverschaltungen (491 1 ... 491 p, 492 1 ... 492 q) zu verschalten; wobei die Vielzahl von konfigurierbaren Interneuronverschaltungen (491 1 ... 491 p, 492 i ... 492 q) einen Satz von Interneuronverschaltungen umfasst, die alle die gleiche Netztopologie (T1 KNN) ergeben und sich gegenseitig durch beteiligte Neuronschaltungen unterscheiden, die zu dieser Netztopologie beitragen, und einer Ein/Ausgangsschnittstelle (50) zur Eingabe von Nutzeingangsdaten (54), an denen die Inferenz mittels der bestimmten Interneuronverschaltung durchzuführen ist, und Ausgabe von Inferenzergebnisdaten (56), die sich aus der Berechnung der Inferenz der Nutzeingangsdaten (54) ergeben.
  2. Elektronische Schaltung gemäß Anspruch 1, wobei die Vielzahl von Neuronschaltungen (12) hinsichtlich Interneurongewichten (w1 ... wN) konfigurierbar sind, mittels welcher die Inferenz durchzuführen ist.
  3. Elektronische Schaltung gemäß Anspruch 1 oder 2, mit einem nicht-flüchtigen Speicher (60), in welchem Informationen über die bestimmte Interneuronverschaltung speicherbar sind.
  4. Elektronische Schaltung gemäß Anspruch 3, wobei die Vielzahl von Neuronschaltungen (12) hinsichtlich Interneurongewichten konfigurierbar sind, mittels welcher die Inferenz durchzuführen ist, und wobei die elektronische Schaltung einen weiteren nicht-flüchtigen Speicher aufweist, in welchem Informationen über die Interneurongewichte speicherbar sind.
  5. Elektronische Schaltung gemäß einem der vorhergehenden Ansprüche, mit einer Überprüfungseinrichtung (70), die ausgebildet ist, um in inaktiven Phasen der elektronischen Schaltung, in denen keine Inferenz zu berechnen ist, Defekte in der Vielzahl von Neuronschaltungen (12) zu erkennen.
  6. Elektronische Schaltung gemäß Anspruch 5, bei der die Überprüfungseinrichtung, zur Erkennung der Defekte, dazu ausgebildet ist, die Konfigurationsschaltung sequenziell in eine von mehreren Interneuronverschaltungen (49i 1 ... 49i r) zu versetzen, die zueinander unterschiedliche Mengen von Neuronschaltungen (12) miteinander verschalten und zu einer gleichen Netztopologie (T1 KNN) führen, unter Verwendung der mehreren Interneuronverschaltungen und Sondeneingangsdaten (80), die für die mehreren Interneuronverschaltungen gleich sind, Inferenzen durchzuführen, und anhand eines Vergleiches (84) von Inferenzergebnissen, die durch die Inferenz unter Verwendung der mehreren Interneuronverschaltungen erhalten werden, defekte Neuronschaltungen zu erkennen, oder die Inferenzergebnisse, die durch die Inferenz unter Verwendung der mehreren Interneuronverschaltungen erhalten werden, oder daraus erhaltene Zwischenergebnisse zur Erkennung defekter Neuronschaltungen auszugeben.
  7. Elektronische Schaltung gemäß Anspruch 5, wobei die Überprüfungseinrichtung (70), zur Erkennung der Defekte, dazu ausgebildet ist, die Konfigurationsschaltung (30) sequenziell in eine von mehreren Interneuronver-schaltungen (49I 1 ... 49ir) zu versetzen, die zueinander unterschiedliche Mengen von Neuronschaltungen (12) miteinander verschalten und zu einer gleichen Netztopologie (T1 KNN) führen, unter Verwendung der mehreren Interneuronverschaltungen und Sondeneingangsdaten (80), die für die mehreren Interneuronverschaltungen gleich sind, und Interneurongewichten, die für gemäß der gleichen Netztopologie (T1 KNN) einander entsprechende Neuronschaltungen gleich sind, Inferenzen durchzuführen, und anhand eines Vergleiches von Inferenzergebnissen (821 ... 82r), die durch die Inferenz unter Verwendung der mehreren Interneuronverschaltungen erhalten werden, defekte Neuronschaltungen zu erkennen, oder die Inferenzergebnisse, die durch die Inferenz unter Verwendung der mehreren Interneuronverschaltungen erhalten werden, oder daraus erhaltene Zwischenergebnisse zur Erkennung defekter Neuronschaltungen auszugeben..
  8. Elektronische Schaltung gemäß einem der Ansprüche 5 bis 7, wobei die Überprüfungseinrichtung (70) ausgebildet ist, um sich in Inferenz-freien Phasen selbstständig zu aktivieren.
  9. Elektronische Schaltung gemäß einem der Ansprüche 5 bis 8, wobei die Überprüfungseinrichtung (70) ausgebildet ist, um die Erkennung zu unterbrechen oder abzubrechen, sobald eine Inferenz an den Nutzeingangsdaten angefordert wird.
  10. Elektronische Schaltung gemäß einem der Ansprüche 5 bis 9, bei der die Überprüfungseinrichtung (70) ausgebildet ist, um eine Information über erkannte defekte Neuronschaltungen für später abrufbar zu machen.
  11. Elektronische Schaltung gemäß einem der Ansprüche 5 bis 10, mit einem nicht-flüchtigen Speicher (60), in welchem Informationen über die bestimmte Interneuronverschaltung speicherbar sind, wobei die Überprüfungseinrichtung (70) ausgebildet ist, um auf Basis einer Erkennung defekter Neuronschaltungen eine Modifikation der bestimmten Interneuronverschaltung zu bestimmen, um eine modifizierte Interneuronverschaltung zu erhalten, die zu einer gleichen Netztopologie führt wie die bestimmte Interneuronverschaltung, und mit dieser die bestimmte Interneuronverschaltung zu überschreiben.
  12. Elektronische Schaltung gemäß einem der Ansprüche 5 bis 11, wobei die Überprüfungseinrichtung (70) ausgebildet ist, um die mehreren Interneuronverschaltungen mittels eines Zufallsgenerators (120) zu bestimmen.
  13. Elektronische Schaltung gemäß Anspruch 12, wobei der Zufallsgenerator (120) einen Pseudozahlenzufallsgenerator aufweist, dessen Anfangszustand zu Beginn und/oder dessen interner Zustand während einer Zufallsgenerierung durch den Pseudozufallszahlengenerator mittels einer PUF (physikalischen unklonbaren Funktion) beeinflusst wird.
  14. Elektronische Schaltung gemäß einem der Ansprüche 5 bis 13, wobei die Überprüfungseinrichtung (70) ausgebildet ist, um die Sondeneingangsdaten (80) mittels eines Zufallsgenerators zu bestimmen.
  15. Elektronische Schaltung gemäß einem der Ansprüche 5 bis 14, wobei die Erkennung defekter Neuronschaltungen mittels eines vorbestimmten neuronalen Netzes, eines Entscheidungsbaums oder mittels einer Support-Vector-Machine durchgeführt wird.
  16. Elektronische Schaltung gemäß einem der Ansprüche 1 bis 15, mit einem nicht-flüchtigen Speicher (60), in welchem Informationen über die bestimmte Interneuronverschaltung speicherbar sind, einer Äquivalentabbildungseinrichtung, die ausgebildet ist, um unter Verwendung einer PUF und/oder eines Zufallsgenerators die bestimmte Interneuronverschaltung aus Nutzer-eingegebenen Interneuronverschaltungsdaten, die über die Ein/Ausgabeschnittstelle empfangbar sind, so zu erzeugen, dass die bestimmte Interneuronverschaltung und die Nutzer-eingegebenen Interneuronverschaltungsdaten eine gleiche Netztopologie betreffen, und/oder die bestimmte Interneuronverschaltung aus den in dem nicht-flüchtigen Speicher gespeicherten Informationen über die bestimmte Interneuronverschaltung aus mehreren Interneuronverschaltungen zu bestimmen, die zu einer gleichen Netztopologie führen, die durch die in dem nicht-flüchtigen Speicher gespeicherten Informationen definiert ist.
  17. Elektronische Schaltung gemäß einem der vorhergehenden Ansprüche, mit einem nicht-flüchtigen Speicher (60), in welchem Informationen über die bestimmte Interneuronverschaltung und über eine verbesserte Interneuronverschaltung speicherbar sind, wobei die elektronische Schaltung ausgebildet ist, die Inferenz zunächst mittels der bestimmten Interneuronverschaltung durchzuführen, zu überprüfen, ob ein Ergebnis der Inferenz mittels der bestimmten Interneuronverschaltung eine ausreichende Klassifizierung ergibt, und, falls das Ergebnis der Inferenz mittels der bestimmten Interneuronverschaltung keine ausreichende Klassifizierung ergibt, die Inferenz erneut mittels der verbesserten Interneuronverschaltung durchzuführen.
DE102021201269.8A 2021-02-10 2021-02-10 Elektronische schaltung zur berechnung einer inferenz durch ein künstliches neuronales netz Active DE102021201269B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102021201269.8A DE102021201269B4 (de) 2021-02-10 2021-02-10 Elektronische schaltung zur berechnung einer inferenz durch ein künstliches neuronales netz

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021201269.8A DE102021201269B4 (de) 2021-02-10 2021-02-10 Elektronische schaltung zur berechnung einer inferenz durch ein künstliches neuronales netz

Publications (2)

Publication Number Publication Date
DE102021201269A1 DE102021201269A1 (de) 2022-08-11
DE102021201269B4 true DE102021201269B4 (de) 2022-11-03

Family

ID=82493220

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021201269.8A Active DE102021201269B4 (de) 2021-02-10 2021-02-10 Elektronische schaltung zur berechnung einer inferenz durch ein künstliches neuronales netz

Country Status (1)

Country Link
DE (1) DE102021201269B4 (de)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BILLAUDELLE, Sebastian, et al.: Structural plasticity on an accelerated analog neuromorphic hardware system. In: Neural Networks, 133, 2021 (online 12.10.2020), 11-20. https://doi.org/10.1016/j.neunet.2020.09.024 [abgerufen am 24.01.2022]
PAYVAND, Melika, et al.: On-Chip Error-triggered Learning of Multi-layer Memristive Spiking Neural Networks. In: IEEE Journal on Emerging and Selected Topics in Circuits and Systems, 10, 2020, 4, 522-535. https://doi.org/10.1109/JETCAS.2020.3040248 [abgerufen am 24.01.2022]
YAN, Yexin, et al.: Efficient reward-based structural plasticity on a SpiNNaker 2 prototype. In: IEEE transactions on biomedical circuits and systems, 13, 2019, 3, 579-591. https://doi.org/10.1109/TBCAS.2019.2906401 [abgerufen am 24.01.2022]

Also Published As

Publication number Publication date
DE102021201269A1 (de) 2022-08-11

Similar Documents

Publication Publication Date Title
DE102017108169B4 (de) Produktionssystem, das einen Bestimmungswert einer Variablen in Bezug auf eine Produktabweichung festlegt
DE112018004223T5 (de) Trainieren künstlicher neuronaler Netze
DE112019000226T5 (de) Neuromorpher chip zum aktualisieren präziser synaptischer gewichtswerte
DE112018003231T5 (de) Neuromorphe verarbeitungsvorrichtung
DE112017000855B4 (de) Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze
DE112016003245T5 (de) Resistive Verarbeitungseinheit
DE112011101370T5 (de) Neuronales Netz mit kanonischen gepulsten Neuronen für einen raumzeitlichen Assoziativspeicher
DE202016107436U1 (de) Neuronaler Netzwerkprozessor
DE102012009502A1 (de) Verfahren zum Trainieren eines künstlichen neuronalen Netzes
DE102012110710A1 (de) Verfahren zur Integration von Modellen eines Gesundheitsmanagementsystems für Verkehrsmittel
DE4436658A1 (de) Vorrichtung und Verfahren zur Störungsuntersuchung
DE102019124404A1 (de) Optimierungsvorrichtung für ein neuronales Netzwerk und Optimierungsverfahren für ein neuronales Netzwerk
DE102019217613A1 (de) Verfahren zur diagnose eines motorzustands und diagnostisches modellierungsverfahren dafür
DE112021002239T5 (de) Deep learning-beschleuniger und direktzugriffsspeicher mit einer kameraschnittstelle
DE112014001359T5 (de) Prädiktives System zum Bereitstellen von Unternehmensanwendungen
WO2019121206A1 (de) Verfahren zur realisierung eines neuronalen netzes
DE102021201269B4 (de) Elektronische schaltung zur berechnung einer inferenz durch ein künstliches neuronales netz
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
DE112019002061T5 (de) Zeit- und platzsparende sowie energieeffiziente neuronale inferenz durch parallelismus und on-chip-speicher
DE19623823A1 (de) Protokollanalysator
DE3607241C2 (de)
DE112017008202T5 (de) Parsen von regulären Ausdrücken mit gepulsten neuralen Netzwerken
DE102019214546B4 (de) Computerimplementiertes Verfahren und Vorrichtung zur Optimierung einer Architektur eines künstlichen neuronalen Netzwerks
DE10213582A1 (de) Datenberechnungsvorrichtung und Verfahren zur Anwendung der Datenberechnungsvorrichtung zur Einstellung einer elektronischen Steuereinrichtung
DE102019204136A1 (de) Verfahren und Vorrichtung für Training und Herstellung eines künstlichen neuronalen Netzes

Legal Events

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