DE112019005119T5 - Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen - Google Patents

Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen Download PDF

Info

Publication number
DE112019005119T5
DE112019005119T5 DE112019005119.9T DE112019005119T DE112019005119T5 DE 112019005119 T5 DE112019005119 T5 DE 112019005119T5 DE 112019005119 T DE112019005119 T DE 112019005119T DE 112019005119 T5 DE112019005119 T5 DE 112019005119T5
Authority
DE
Germany
Prior art keywords
matrix
weighting
point
units
wires
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
DE112019005119.9T
Other languages
English (en)
Inventor
Seyoung Kim
Hyungjun Kim
Tayfun Gokmen
Malte Rasch
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112019005119T5 publication Critical patent/DE112019005119T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • 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
    • 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
    • G06N3/065Analogue means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Semiconductor Memories (AREA)
  • Complex Calculations (AREA)
  • Electronic Switches (AREA)

Abstract

Es werden Nullpunkt-Verschiebungstechniken in analogen Kreuzungspunktanordnungen bereitgestellt. In einem Aspekt umfasst eine analoge anordnungsbasierte Vektor-Matrix-Multiplikation Folgendes: eine Gewichtungs-Matrix, die mit einer Referenzen-Matrix verbunden ist, die jeweils eine Kreuzschienenanordnung (802, 804) mit einem Satz von leitfähigen Zeilendrähten (806a, 806b) und einem Satz von leitfähigen Spaltendrähten (808a, 808b), die den Satz von leitfähigen Zeilendrähten (806a, 806b) kreuzen, sowie optimierbare Kreuzungspunkteinheiten (810a, 810b) an Kreuzungspunkten des Satzes von leitfähigen Spaltendrähten (808a, 808b) und des Satzes von leitfähigen Zeilendrähten (806a, 806b) umfassen. Es wird auch ein Verfahren für eine analoge anordnungsbasierte Vektor-Matrix-Datenverarbeitung bereitgestellt, das Folgendes umfasst: Anlegen von wiederholten Spannungsimpulsen an die Kreuzungspunkteinheiten (810a) in der Gewichtungs-Matrix, bis alle Kreuzungspunkteinheiten (810a) in der Gewichtungs-Matrix auf ihren eigenen Symmetriepunkt konvergieren; und Kopieren von Leitwerten für jede Kreuzungspunkteinheit (810a) von der Gewichtungs-Matrix in die Referenzen-Matrix.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf neuromorphe Datenverarbeitung und insbesondere auf Abgleichtechniken zum Angleichen des Symmetriepunkts als Null-Gewichtungspunkt (zero-weight point) in analogen Kreuzungspunktanordnungen (crosspoint arrays) zum Verbessern der Leistung von neuronalen Netzen.
  • Hintergrund der Erfindung
  • Ein neuronales Netz kann in einer analogen Kreuzungspunktanordnung aus resistiven Einheiten wie zum Beispiel den resistiven Verarbeitungseinheiten (RPUs, resistive processing units) ausgeführt sein, die in der US-Patentanmeldung mit der Veröffentlichungsnummer 2017/0109628 von Gokmen et al (,Gokmen') beschrieben sind. Wie darin beschrieben, umfasst jede RPU einen ersten Anschluss, einen zweiten Anschluss und einen aktiven Bereich. Ein Leitungszustand des aktiven Bereichs kennzeichnet einen Gewichtungswert der RPU, der durch Anlegen eines Signals an den ersten/zweiten Anschluss aktualisiert/angepasst werden kann.
  • Es hat sich jedoch gezeigt, dass derartige resistive Einheiten unausgeglichen sein können. Wenn nämlich Spannungsimpulse schrittweise angelegt werden, um die Gewichtung nach oben oder unten anzupassen, ist der Betrag der Gewichtungsaktualisierung (d.h. die Größe der Schritte) linear abhängig von dem aktuellen Gewichtungswert. Es besteht also eine Unausgeglichenheit zwischen Anpassungen nach oben und unten, die berücksichtigt werden muss.
  • Dementsprechend wären verbesserte Techniken zum Betreiben von analogen Kreuzungspunktanordnungen mit einem Verschieben aufgrund von Unausgeglichenheiten bei der Gewichtungsaktualisierung wünschenswert, um die Leistungsfähigkeit des neuronalen Netzes zu verbessern.
  • Kurzdarstellung der Erfindung
  • Die vorliegende Erfindung stellt Nullpunkt-Verschiebungstechniken in analogen Kreuzungspunktanordnungen zum Verbessern der Leistungsfähigkeit von neuronalen Netzen bereit. In einem Aspekt der Erfindung wird eine analoge anordnungsbasierte Vektor-Matrix-Multiplikation bereitgestellt. Die analoge anordnungsbasierte Vektor-Matrix-Multiplikation umfasst: eine Gewichtungs-Matrix (weight array), die mit einer Referenzen-Matrix (reference array) verbunden ist, die jeweils eine Kreuzschienenanordnung (crossbar array) mit einem Satz von leitfähigen Zeilendrähten (row wires) und einem Satz von leitfähigen Spaltendrähten (column wires), die den Satz von leitfähigen Zeilendrähten kreuzen, sowie optimierbare Kreuzungspunkteinheiten an Kreuzungspunkten des Satzes von leitfähigen Spaltendrähten und des Satzes von leitfähigen Zeilendrähten umfassen.
  • In einem anderen Aspekt der Erfindung wird ein Verfahren für eine analoge anordnungsbasierte Vektor-Matrix-Datenverarbeitung bereitgestellt. Das Verfahren umfasst: Bereitstellen einer Gewichtungs-Matrix, die mit einer Referenzen-Matrix verbunden ist, die jeweils eine Kreuzschienenanordnung mit einem Satz von leitfähigen Zeilendrähten und einem Satz von leitfähigen Spaltendrähten, die den Satz von leitfähigen Zeilendrähten kreuzen, sowie Kreuzungspunkteinheiten an Kreuzungspunkten des Satzes von leitfähigen Spaltendrähten und des Satzes von leitfähigen Zeilendrähten umfassen; Anlegen von wiederholten Spannungsimpulsen an die Kreuzungspunkteinheiten in der Gewichtungs-Matrix, bis alle Kreuzungspunkteinheiten in der Gewichtungs-Matrix auf ihren eigenen Symmetriepunkt konvergieren; und Kopieren von Leitwerten für jede Kreuzungspunkteinheit von der Gewichtungs-Matrix in die Referenzen-Matrix.
  • Man erhält ein vollständigeres Verständnis der vorliegenden Erfindung und erfährt weitere Merkmale und Vorteile der vorliegenden Erfindung unter Bezugnahme auf die folgende ausführliche Beschreibung und die Zeichnungen.
  • Figurenliste
    • 1 ist ein Schaubild, das eine Kreuzschienenanordnung mit einem Satz von leitfähigen Zeilendrähten und einem Satz von leitfähigen Spaltendrähten, die so ausgebildet sind, dass sie den Satz von leitfähigen Zeilendrähten kreuzen, und resistiven Einheiten an den Kreuzungspunkten zwischen den beiden Sätzen von Drähten gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
    • 2 ist ein Diagramm, das veranschaulicht, wie resistive Einheiten unausgeglichen sein können, gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 3 ist ein Diagramm, das eine Reaktion einer Einheit auf Aufwärts- und Abwärtsimpulse, die ausgeglichen, aber nicht symmetrisch ist, gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
    • 4 ist ein Diagramm, das einen einzelnen Symmetriepunkt veranschaulicht, wobei die Steigungen der Aufwärts- und Abwärtsimpulse genau gleich sind, gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 5 ist ein Diagramm, das einen Fall veranschaulicht, in dem der Symmetriepunkt zu einer Seite verschoben ist, anstatt in der Mitte des Leitwertbereichs zu liegen, gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 6 ist ein Diagramm, das veranschaulicht, dass eine Unausgeglichenheit durch Subtrahieren eines Referenzsnullgewichtungswertes von einer Referenzen-Matrix beseitigt wurde, um eine ausgeglichene Einheit gemäß einer Ausführungsform der vorliegenden Erfindung zu erhalten;
    • 7 ist ein Ablaufplan, der eine beispielhafte Methodik zum Anpassen des Symmetriepunkts als Nullgewichtungspunkt für analoge anordnungsbasierte Vektor-Matrix-Berechnungen wie zum Beispiel eine Berechnung eines neuronalen Netzes gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
    • 8 ist ein Schaubild, das eine beispielhafte analoge Anordnungsdarstellung einer Matrix veranschaulicht, die zwei Anordnungen (eine Gewichtungs-Matrix und eine Referenzen-Matrix) verwendet, um Gewichtungswerte auszudrücken, die positive, negative und Null-Werte sind, indem der Strom differenziell gelesen wird, und wiederholte Spannungsimpulse so lange an die Kreuzungspunkteinheiten in der Gewichtungs-Matrix angelegt wurden, bis sie alle auf ihren eigenen Symmetriepunkt konvergieren, gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 9 ist ein Schaubild, das die Leitwerte für jede Kreuzungspunkteinheit aus der Gewichtungs-Matrix veranschaulicht, die in die Referenzen-Matrix kopiert wurden, gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 10 ist ein Schaubild, das ein differenzielles Lesen durch Anlegen von identischen Impulsen an die entsprechenden Zeilen in zwei Anordnungen und Auslesen des Stroms gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht; und
    • 11 ist ein Blockschaubild, das eine beispielhafte Vorrichtung veranschaulicht, die beim Ausführen einer oder mehrerer der vorliegenden Techniken gemäß einer Ausführungsform der vorliegenden Erfindung eingesetzt werden kann.
  • Ausführliche Beschreibung von bevorzugten Ausführungsformen
  • Im Bereich von maschinellem Lernen und Kognitionswissenschaften handelt es sich bei künstlichen neuronalen Netzen (KNNs) (Artificial Neural Networks (ANNs)) um eine Familie von statistischen Lernmodellen, die von den biologischen neuronalen Netzen von Tieren, und insbesondere des Gehirns, inspiriert sind. KNNs können verwendet werden, um Systeme und kognitive Funktionen, die von einer großen Anzahl von Eingaben und Gewichtungen der Verbindungen abhängen und im Allgemeinen unbekannt sind, zu schätzen oder sich diesen anzunähern.
  • KNNs werden oftmals als sogenannte „neuromorphe“ Systeme aus miteinander verbundenen Prozessorelementen ausgeführt, die als simulierte „Neuronen“ agieren und „Nachrichten“ in Form von elektronischen Signalen untereinander austauschen. Ähnlich der so genannten „Plastizität“ von synaptischen Neurotransmitterverbindungen, die Nachrichten zwischen biologischen Neuronen übertragen, werden die Verbindungen in KNNs, die elektronische Nachrichten zwischen simulierten Neuronen übertragen, mit numerischen Gewichtungen (numeric weights) versehen, die der Stärke oder Schwäche einer bestimmten Verbindung entsprechen. Die Gewichtungen können auf der Grundlage von Erfahrungen angepasst und abgestimmt werden, wodurch KNNs anpassungsfähig gegenüber Eingaben werden und in der Lage sind, zu lernen. Zum Beispiel wird ein KNN zum Erkennen von Handschriften durch einen Satz von Eingabeneuronen definiert, die durch die Pixel eines Eingabebildes aktiviert werden können. Nach dem Gewichten und Transformieren durch eine von dem Entwickler des Netzes festgelegte Funktion werden die Aktivierungen dieser Eingabeneuronen dann an andere nachgeschaltete Neuronen weitergegeben, die oftmals als „verborgene“ Neuronen bezeichnet werden. Dieser Prozess wird solange wiederholt, bis ein Ausgabeneuron aktiviert wird. Das aktivierte Ausgabeneuron bestimmt, welches Zeichen gelesen wurde.
  • Anstatt das herkömmliche digitale Modell des Bearbeitens von Nullen und Einsen zu verwenden, erstellen KNNs Verbindungen zwischen Verarbeitungselementen, die im Wesentlichen das funktionsmäßige Gegenstück zur Kernsystemfunktionalität darstellen, die geschätzt oder näherungsweise berechnet wird. Zum Beispiel ist der SyNapse Computerchip von IBM die zentrale Komponente einer elektronischen neuromorphen Maschine, die versucht, eine ähnliche Form, Funktion und Architektur wie das Gehirn eines Säugetiers bereitzustellen. Obwohl der IBM SyNapse Computerchip die gleichen grundlegenden Transistorkomponenten wie herkömmliche Computerchips verwendet, sind seine Transistoren so konfiguriert, dass sie das Verhalten von Neuronen und deren Synapsenverbindungen nachahmen. Der IBM SyNapse Computerchip verarbeitet Informationen unter Verwendung eines Netzes von etwas mehr als einer Million simulierter „Neuronen“, die unter Verwendung von elektrischen Impulsspitzen (electrical spikes) miteinander kommunizieren, ähnlich der synaptischen Kommunikation zwischen biologischen Neuronen. Die Architektur von IBM SyNapse umfasst eine Konfiguration von Prozessoren (d.h. simulierte „Neuronen“), die einen Hauptspeicher (d.h. eine simulierte „Synapse“) lesen und einfache Arbeitsschritte durchführen. Die Kommunikation zwischen diesen Prozessoren, die sich üblicherweise in verschiedenen Kernen befinden, wird von chipintegrierten Netzwerk-Leitwegrechnern durchgeführt.
  • Wie in 1 gezeigt ist, kann das neuronale Netz in einer Kreuzschienenanordnung 102 ausgeführt sein, die einen Satz von leitfähigen Zeilendrähten 104 (Zeile) und einen Satz von leitfähigen Spaltendrähten 106 (Spalte) umfasst, die so ausgebildet sind, dass sie den Satz von leitfähigen Zeilendrähten kreuzen. Die Kreuzungspunkte zwischen den beiden Sätzen von Drähten sind durch resistive Einheiten 108 (hierin auch als Kreuzungspunkteinheiten bezeichnet) getrennt, wie zum Beispiel die in Gokmen beschriebenen resistiven Verarbeitungseinheiten (RPUs). Wie in Gokmen beschrieben, kann jede RPU einen ersten Anschluss, einen zweiten Anschluss und einen aktiven Bereich umfassen. Ein Leitungszustand des aktiven Bereichs kennzeichnet einen Gewichtungswert der RPU, der durch Anlegen eines Signals an den ersten/zweiten Anschluss aktualisiert/angepasst werden kann. Darüber hinaus können Einheiten mit drei (oder sogar mehr) Anschlüssen in ihrer Wirkung als resistive Hauptspeichereinheiten mit zwei Anschlüssen dienen, indem die zusätzlichen Anschlüsse gesteuert werden. Für eine Beschreibung von dreipoligen RPU-Einheiten siehe z.B. Kim et al., „Analog CMOS-based Resistive Processing Unit for Deep Neural Network Training", 2017 IEEE 60. International Midwest Symposium on Circuits and Systems (MWACAS), (August 2017) (4 Seiten).
  • Die Kreuzungspunkteinheiten fungieren praktisch als gewichtete Verbindungen des KNN zwischen Neuronen. Nanoskalige Einheiten mit zwei Anschlüssen wie zum Beispiel Memristoren mit „idealen“ Leitungszustands-Schalteigenschaften, werden oftmals als die Kreuzungspunkteinheiten verwendet, um eine synaptische Plastizität mit hoher Energieeffizienz nachzubilden. Der Leitungszustand (z.B. Widerstand) des idealen Memristormaterials kann durch Steuern der zwischen einzelnen Drähten der Zeilen- und Spaltendrähte angelegten Spannungen verändert werden. Digitale Daten werden durch Ändern des Leitungszustands des Memristormaterials an dem Kreuzungspunkt gespeichert, um einen hohen Leitungszustand (HIGH) oder einen niedrigen Leitungszustand (LOW) zu erreichen. Das Memristormaterial kann auch programmiert werden, um zwei oder mehr verschiedene Leitungszustände aufrechtzuerhalten, indem der Leitungszustand des Materials selektiv eingestellt wird. Der Leitungszustand des Memristormaterials wird durch Anlegen einer Spannung an das Material und Messen des durch die Zielkreuzungspunkteinheit fließenden Stroms gelesen.
  • Wie in 1 gezeigt ist, erzeugt ein Spannungsimpulsgenerator 110 Spannungsimpulse für jede Zeile, um die Gewichtungswerte der einzelnen Kreuzungspunkteinheiten zu lesen, indem er entsprechende Stromstärken (I1, I2, I3, I4) in die Spalten induziert. Bei der Spannung kann es sich um ein Amplitudenmodulationssignal oder ein Pulsbreitenmodulationssignal handeln. So entsteht eine so genannte „Gewichtungsmatrix“ der Kreuzungspunkteinheiten mit unterschiedlichem Leitwert. Der Ausgangsvektor dieser Gewichtungsmatrix ist das Stromsignal (I1, I2 usw.), das von jeder Spalte ausgegeben wird und über einen Stromintegrator 112 und einen Analog-Digital-Wandler (ADC) 114 gelesen werden kann. Die Ausgangsströme aus der Gewichtungsmatrix ergeben eine Vektor-Matrix-Multiplikation. Wie weiter unten im Detail beschrieben wird, können, sobald alle Gewichtungselemente auf ihren eigenen Symmetriepunkt programmiert sind, die Strommesswerte mit Strommesswerten der Referenzen-Matrix verglichen werden, um die Gewichtungen zu kopieren. Nach einer beispielhaften Ausführungsform wird diese Matrix in einem Netz verwendet, das in Bausteine unterteilt ist, die durch Wiederholelemente verbunden sind, wie zum Beispiel in Gokmen beschrieben ist. In einer anderen beispielhaften Ausführungsform wird der Spannungsimpulsgenerator 110 direkt von einer computergestützten Vorrichtung wie zum Beispiel derjenigen, die gemäß der Beschreibung von 11 nachfolgend beschrieben ist, gesteuert, die auch das Ausgangssignal I1, I2 usw. von der Gewichtungs-Matrix verarbeiten kann. Diese Kreuzungspunktanordnung von resistiven Speichereinheiten kann einen Rückwärtspropagierungsalgorithmus mit großer Beschleunigung im Vergleich zu der zentralen Verarbeitungseinheit (CPU)/grafischen Verarbeitungseinheit (GPU) parallel durchführen.
  • Wie oben dargelegt, wurde festgestellt, dass praktische resistive Speichereinheiten, die als Kreuzungspunktelemente in der RPU-Architektur in Frage kommen, wie zum Beispiel resistive Direktzugriffsspeicher (RRAM) und Memristoren, nichtlinear sein können, wenn der Widerstandszustand und somit der Gewichtungswert aktualisiert/programmiert wird. Siehe zum Beispiel 2, in der die Gewichtung (w) als eine Funktion der Anzahl (n) von Aufwärts- (Up) und Abwärts- (Dn) Spannungsimpulsen veranschaulicht ist. Wenn, wie in 2 gezeigt ist, die Spannungsimpulse schrittweise angelegt werden, um die Gewichtung (den Widerstand) nach oben oder unten anzupassen, ist der Betrag der Gewichtungsaktualisierung (d.h. die Größe der Schritte) linear abhängig von dem aktuellen Gewichtungswert. Bezogen auf die Aufwärts- (Up) Impulse bedeutet dies konkret, dass, wenn diese Impulse schrittweise angelegt werden, der Wert der Gewichtung (w) ansteigt, aber schließlich an dem oberen Rand des Diagramms gesättigt wird. Das gleiche Sättigungsverhalten tritt bei den Abwärts- (Dn) Impulsen in der Nähe des unteren Bereichs des Diagramms auf. Somit ist die Größe der Anpassungsschritte (nach oben oder unten) je nach aktuellem Gewichtungswert unterschiedlich. Die entsprechenden Steigungen dieser schrittweisen Aufwärts/Abwärts-Impulse sind in 3 gezeigt. Wie in 3 gezeigt ist, ist die Reaktion der Einheit auf die Aufwärts- und Abwärtsimpulse ausgeglichen, aber nicht symmetrisch.
  • Bei Einheiten wie zum Beispiel RRAM wurde hierin festgestellt, dass es immer einen einzigen Symmetriepunkt 402 gibt, bei dem die Steigungen der Aufwärts- und Abwärtsimpulse für jede Kreuzungspunkteinheit genau gleich sind. Siehe 4. Für jede Kreuzungspunkteinheit ist die Größe der Aufwärts/Abwärts-Schritte nämlich unausgeglichen (siehe 2 und 3), aber es gibt nur einen Symmetriepunkt (siehe 4), an dem die Steigungen gleich sind. Siehe auch 5, die einen unausgeglichenen Fall zeigt, bei dem die Absolutwerte(Steigung) der Fälle Up und Dn unterschiedlich sind. Daher ist der Symmetriepunkt zu einer Seite hin verschoben, anstatt in der Mitte zu liegen.
  • Der Punkt, an dem der Wert der Gewichtung (w) Null ist, d.h. w = 0, wird für eine gegebene resistive Speichereinheit durch den Referenzwiderstandswert bestimmt, und dieser ist künstlich. Wenn zum Beispiel eine gegebene resistive Speichereinheit ihren Leitwert G von 0 Ohm-1 bis 1 Ohm-1 ändern kann, wird üblicherweise eine resistive Referenzspeichereinheit bei 0,5 Ohm-1 eingerichtet, da dies der Mittelpunkt des Leitwertbereichs der gegebenen resistiven Speichereinheit ist. Wenn der gegebene resistive Hauptspeicher ausgeglichen ist, dann wird dadurch 0,5 Ohm-1 zu einem Punkt w = 0 (da 0,5 Ohm-1 an der Gewichtungs-Matrixseinheit -0,5 Ohm-1 an der Referenzeinheit = 0 ist), und da der Symmetriepunkt bei G = 0,5 Ohm-1 liegt, ist somit w = 0. In praktischen Einheiten und auch aufgrund der Variation von Einheit zu Einheit ist ein Einrichten sämtlicher Referenzeinheiten an dem Mittelpunkt allerdings nicht effektiv. Daher kompensieren die vorliegenden Techniken vorteilhafterweise automatisch alle Einheiten in der Anordnung.
  • Es ist bemerkenswert, dass sogar der Symmetriepunkt in ausgeglichenen Einheiten bei einem Gewichtungswert liegen kann, der ungleich Null ist, da er durch die Art und Weise bestimmt wird, wie die Referenzeinheit eingerichtet ist. Wenn zum Beispiel die Einheit bei (1,1) in dem Gewichtungselement und die entsprechende Einheit bei (1,1) in dem Referenzelement immer zusammen gelesen werden und wenn sie den gleichen Leitwert aufweisen, dann ist die Gewichtung Null.
  • Die Unausgeglichenheit zwischen der Aufwärts- und Abwärtssteigung für eine Kreuzungspunkteinheit kann unter Verwendung des folgenden Aktualisierungsausgleichfaktors (BF, balance factor) quantifiziert werden: B F = | Δ w 0 + w max | | Δ w 0 w min | | Δ w 0 + w max | | Δ w 0 w min | normalisierte Differenz vom absoluten Steigungen ( Δ w + 0 w max / min )
    Figure DE112019005119T5_0001
  • Wenn der Ausgleichsfaktor (BF) nicht gleich Null ist, dann ist die Strategie, den Leitwert der Referenzen-Matrix am Mittelpunkt des Leitwertbereichs einzurichten, nicht mehr die beste Lösung, und der Symmetriepunkt wird an dem Punkt w != 0 liegen. Die Einheiten mit einem Symmetriepunkt ungleich Null beeinträchtigen die Netzleistung. Dies kann problematisch sein, da der BF bei Kreuzungspunkteinheiten in der Praxis selten in der Mitte des Leitwertbereichs liegt.
  • Vorteilhafterweise werden gemäß den vorliegenden Techniken, sobald die Symmetriepunkte gefunden sind, diese als eine Metrik verwendet, an welche die Nullgewichtung für jede Kreuzungspunkteinheit angepasst wird, um die Genauigkeit der Leistung des neuronalen Netzes erheblich zu verbessern. Siehe zum Beispiel 6. Wie in 6 gezeigt ist, liegt der Symmetriepunkt bei der links gezeigten, unausgeglichenen Einheit aufgrund von (Aufwärts-/Abwärts-) Steigungsunterschieden nicht bei null. Die Unausgeglichenheit, BF ungleich Null, bewirkt, dass der Symmetriepunkt nicht mehr in der Mitte des Leitwertbereichs liegt. Die vorliegenden Techniken ermitteln den Leitwert an dem Symmetriepunkt der Einheit und kopieren ihn auf die entsprechende Einheit in der Referenzen-Matrix.
  • Eine beispielhafte Ausführungsform der vorliegenden Techniken wird nun mittels Bezugnahme auf eine Methodik 700 aus 7 zum Anpassen des Symmetriepunkts als Nullgewichtungspunkt für analoge anordnungsbasierte Vektor-Matrix-Berechnungen wie zum Beispiel eine Berechnung eines neuronalen Netzes beschrieben. Wie im Folgenden näher beschrieben wird, wird die Methodik 700 unter Verwendung von zwei miteinander verbundenen Anordnungen durchgeführt, wobei eine Anordnung die Gewichtungs-Matrix und die andere eine Referenzen-Matrix ist. Jede (Gewichtungs-/Referenz-) Anordnung umfasst eine Kreuzschienenanordnung, die einen Satz von leitfähigen Zeilendrähten (Zeile) und einen Satz von leitfähigen Spaltendrähten (Spalte) umfasst, die so ausgebildet sind, dass sie den Satz von leitfähigen Zeilendrähten kreuzen. Die Kreuzungspunkte zwischen den beiden Sätzen von Drähten sind durch resistive Kreuzungspunkteinheiten (z.B. RPUs) getrennt. Insbesondere können die Gewichtungen der Einheiten in jeder (Gewichtungs-/Referenz-) Anordnung optimiert werden, wodurch die aus der Gewichtungs-Matrix erhaltenen Gewichtungswerte in die Referenzen-Matrix eingefügt werden können, wie nachfolgend beschrieben. Darüber hinaus besteht eine eins-zu-eins-Korrelation zwischen den Einheiten in der Gewichtungs-Matrix und der Referenzen-Matrix, so dass in jeder Einheit in der Referenzen-Matrix ein eindeutiger Null-Gewichtungswert für eine entsprechende Einheit in der Gewichtungs-Matrix ermittelt werden kann.
  • In Schritt 702 werden wiederholte (erste, zweite, dritte usw.) Aufwärts- und Abwärtsspannungsimpulse an die Kreuzungspunkteinheiten in der Gewichtungs-Matrix angelegt, bis alle Kreuzungspunkteinheiten in der Gewichtungs-Matrix auf ihren eigenen Symmetriepunkt konvergieren. Wenn zum Beispiel der Leitwertbereich von Gmin bis Gmax reicht und das durchschnittliche Delta G bei einem Aktualisierungsereignis dGavg ist, dann ist die effektive Anzahl von Zuständen in dem Leitwertbereich (Gmax - Gmin) / dGavg. Wenn sich eine Einheit an den äußersten Punkten befindet und abwechselnd Up/Dn-Impulse gegeben werden, dann dauert es # an Aktualisierungen, um den Mittelpunkt = (Gmax - Gmin) / dGavg zu erreichen. Um die Konvergenz sicherzustellen, kann man zusätzliche Zyklen von abwechselnden Up/Dn-Impulsen geben, z.B. n x (Gmax - Gmin) / dGavg, wobei n = 1 oder größer ist.
  • Wie oben dargelegt, erhöhen/verringern diese Aufwärts/AbwärtsSpannungsimpulse (d. h. von einem Impulsgenerator) den Widerstand der Kreuzungspunkteinheiten und werden durch Erzeugen von Spannungsimpulsen auf jede Zeile angewendet, um die Gewichtungswerte der einzelnen Kreuzungspunkteinheiten zu aktualisieren/einzustellen. In einer beispielhaften Ausführungsform werden die Aufwärts- und Abwärtsspannungsimpulse wiederholt an jede der Kreuzungspunkteinheiten in der Gewichtungs-Matrix in zufälliger Weise angelegt. Zum Beispiel ist der erste Spannungsimpuls, der an eine bestimmte Kreuzungspunkteinheit in der Gewichtungs-Matrix angelegt wird, zufällig entweder ein Aufwärtsimpuls oder ein Abwärtsimpuls, der zweite Spannungsimpuls, der an dieselbe Kreuzungspunkteinheit in der Gewichtungs-Matrix angelegt wird, ist ebenfalls zufällig entweder ein Aufwärtsimpuls oder ein Abwärtsimpuls, und so weiter. In einer anderen beispielhaften Ausführungsform werden die Aufwärts- und Abwärtsspannungsimpulse wiederholt an jede der Kreuzungspunkteinheiten in der Gewichtungs-Matrix abwechselnd angelegt. Wenn zum Beispiel der erste Spannungsimpuls, der an eine bestimmte Kreuzungspunkteinheit in der Gewichtungs-Matrix angelegt wird, ein Aufwärtsimpuls ist, ist der zweite Spannungsimpuls, der an dieselbe Kreuzungspunkteinheit in der Gewichtungs-Matrix angelegt wird, ein Abwärtsimpuls. Der dritte Spannungsimpuls, der an dieselbe Kreuzungspunkteinheit angelegt wird, wäre ein Aufwärtsimpuls und so weiter. Das gleiche Muster würde gelten, wenn der erste Spannungsimpuls ein Abwärtsimpuls wäre, d.h. abwärts/aufwärts/abwärts usw.
  • Sobald alle Kreuzungspunkteinheiten in der Gewichtungs-Matrix auf ihren eigenen Symmetriepunkt konvergiert sind, werden in Schritt 704 die Leitwerte für jede Kreuzungspunkteinheit aus der Gewichtungs-Matrix (an dem Symmetriepunkt) in die Referenzen-Matrix kopiert. Diese in die Referenzen-Matrix kopierten Leitwerte legen für jede entsprechende Einheit in der Gewichtungs-Matrix einen Null-Gewichtungspunkt in der Referenzen-Matrix (Iref) fest, der die einzigartigen Unausgeglichenheitseigenschaften in jeder Einheit in der Gewichtungs-Matrix kompensiert (wie vorstehend beschrieben). Es ist zu beachten, dass die Referenzen-Matrix während der Anwendung nicht programmiert wird. Die Referenzen-Matrix wird durch Kopieren der Symmetriepunktwerte aus der Gewichtungs-Matrix initialisiert, aber nach dem Abschluss des Kopierens wird die Programm-Referenzen-Matrix nicht programmiert. Beim Training des neuronalen Netzwerks wird nur die Gewichtungs-Matrix programmiert.
  • Während des Betriebs werden in Schritt 706 die Ausgaben der Kreuzungspunkteinheiten in der Gewichtungs-Matrix um den Null-Gewichtungswert aus den entsprechenden in der Referenzen-Matrix gespeicherten Einheiten verschoben. Während des Betriebs kann nämlich dasselbe Signal sowohl der Gewichtungs-Matrix als auch der Referenzen-Matrix bereitgestellt werden. Die Ausgabe aus den Kreuzungspunkteinheiten in der Gewichtungs-Matrix (z.B. I1, I2, I3 usw.) kann dann durch Subtraktion dieser Werte von der Ausgabe der entsprechenden Kreuzungspunkteinheiten in der Referenzen-Matrix (die auf einen Null-Gewichtungswert eingestellt ist) nullpunktverschoben werden, um nullpunktverschobene Ergebnisse zu erzielen.
  • Die Schritte der Methodik 700 werden darüber hinaus mittels Bezugnahme auf das in den 8 bis 10 veranschaulichte Beispiel beschrieben. Wie in 8 gezeigt ist, wird der Prozess unter Verwendung einer analogen anordnungsbasierten Vektor-Matrix mit zwei Anordnungen (einer Gewichtungs-Matrix und einer Referenzen-Matrix) durchgeführt, um Gewichtungswerte auszudrücken, die positive, negative und Null-Werte sind, indem der Strom differenziell gelesen wird. Jede (Gewichtungs-/Referenz-) Anordnung umfasst eine Kreuzschienenanordnung 802/804, die einen Satz von leitfähigen Zeilendrähten 806a,b (Zeile) und einen Satz von leitfähigen Spaltendrähten 808a,b (Spalte) umfasst, die so ausgebildet sind, dass sie den Satz von leitfähigen Zeilendrähten kreuzen. Die Kreuzungspunkte zwischen den beiden Sätzen von Drähten sind durch resistive Kreuzungspunkteinheiten 810 a,b (z.B. RPUs) getrennt. So können, wie oben vorgesehen, die Gewichtungen der Einheiten 810a,b in jeder (Gewichtungs-/Referenz-) Anordnung optimiert werden. Wie in 8 gezeigt ist, besteht eine eins-zu-eins-Korrelation zwischen den Einheiten 810a,b in der Gewichtungs-Matrix und der Referenzen-Matrix, so dass in jeder Einheit 810b in der Referenzen-Matrix ein eindeutiger Null-Gewichtungswert für eine entsprechende Einheit 810a in der Gewichtungs-Matrix ermittelt werden kann.
  • Es werden wiederholte (erste, zweite, dritte usw.) Aufwärts- und Abwärtsspannungsimpulse an die Kreuzungspunkteinheiten in der Gewichtungs-Matrix angelegt (z.B. über Mehrkanal-Impulsgeneratoren 812 und 814), bis alle Kreuzungspunkteinheiten in der Gewichtungs-Matrix auf ihren eigenen Symmetriepunkt konvergieren. Wie oben vorgesehen, können diese Aufwärts/Abwärts-Spannungsimpulse in zufälliger Weise und/oder in abwechselnder Weise angelegt werden.
  • Wie in 9 gezeigt ist, werden, sobald alle Kreuzungspunkteinheiten in der Gewichtungs-Matrix auf ihren eigenen Symmetriepunkt konvergiert sind, die Leitwerte für jede Kreuzungspunkteinheit 810a aus der Gewichtungs-Matrix (an dem Symmetriepunkt) in die Referenzen-Matrix kopiert. Wie vorstehend beschrieben, legen diese in die Referenzen-Matrix kopierten Leitwerte für jede entsprechende Einheit in der Gewichtungs-Matrix einen Null-Gewichtungspunkt fest, wenn Strom unter Verwendung des Paares von Anordnungen ausgelesen wird, der die einzigartigen Unausgeglichenheitseigenschaften in jeder Einheit 810a in der Gewichtungs-Matrix kompensiert. Wie in 10 gezeigt ist, wird während des Betriebs ein differenzielles Lesen durchgeführt, indem identische Impulse an die entsprechenden Zeilen in zwei Anordnungen angelegt werden und der Strom ausgelesen wird, d. h. durch Subtraktion von I1 - Iref.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Wenden wir uns nun 11 zu, in der ein Blockdiagramm einer Vorrichtung 1100 zum Umsetzen einer oder mehrerer der hierin vorgestellten Methodiken gezeigt wird. Lediglich beispielhaft kann die Vorrichtung 1100 so konfiguriert sein, dass sie die mittels der Spannungsimpulsgeneratoren 110, 812, 814 usw.an die Anordnungen angelegten Spannungsimpulse steuert und/oder das Ausgangssignal 11, I2 usw. von den Anordnungen verarbeitet.
  • Die Vorrichtung 1100 umfasst ein Computersystem 1110 und austauschbare Medien 1150. Das Computersystem 1110 umfasst eine Prozessoreinheit 1120, eine Netzwerkschnittstelle 1125, einen Speicher 1130, eine Medienschnittstelle 1135 und eine optionale Anzeige 1140. Die Netzwerkschnittstelle 1125 ermöglicht es dem Datenverarbeitungssystem 1110, eine Verbindung zu einem Netzwerk herzustellen, während die Medienschnittstelle 1135 es dem Datenverarbeitungssystem 1110 erlaubt, mit Medien wie zum Beispiel einem Festplattenlaufwerk oder den austauschbaren Medien 1150 Daten auszutauschen.
  • Die Prozessoreinheit 1120 kann so konfiguriert sein, dass sie die hierin beschriebenen Verfahren, Schritte und Funktionen umsetzt. Der Speicher 1130 könnte verteilt oder lokal sein, und die Prozessoreinheit 1120 könnte verteilt oder einzeln sein. Der Speicher 1130 könnte als elektrischer, magnetischer oder optischer Speicher oder jede beliebige Kombination dieser und anderer Arten von Speichereinheiten umgesetzt sein. Außerdem sollte der Begriff „Speicher“ weit genug aufgefasst werden, dass er jede beliebige Information umfasst, die von einer Adresse in dem adressierbaren Bereich, auf den von der Prozessoreinheit 1120 zugegriffen wird, gelesen bzw. in eine Adresse geschrieben werden kann. Gemäß dieser Definition befinden sich Daten in einem Netzwerk, auf die durch die Netzwerkschnittstelle 1125 zugegriffen werden kann, noch immer in dem Speicher 1130, da die Prozessoreinheit 1120 die Daten von dem Netzwerk abrufen kann. Es sei angemerkt, dass jeder verteilte Prozessor, aus dem die Prozessoreinheit 1120 besteht, allgemein seinen eigenen adressierbaren Speicherbereich enthält. Es sei auch angemerkt, dass das Datenverarbeitungssystem 1110 teilweise oder vollständig in eine anwendungsspezifische oder universelle integrierte Schaltung integriert sein kann.
  • Bei der optionalen Anzeige 1140 handelt es sich um einen beliebigen Typ von Anzeige, die dazu geeignet ist, mit einem menschlichen Benutzer der Vorrichtung 1100 zu interagieren. Allgemein handelt es sich bei der Anzeige 1140 um einen Computermonitor oder eine andere gleichartige Anzeige.
  • Obwohl hierin veranschaulichende Ausführungsformen der vorliegenden Erfindung beschrieben wurden, sollte klar sein, dass die Erfindung nicht auf exakt diese Ausführungsformen beschränkt ist und ein Fachmann diverse andere Änderungen und Abwandlungen vornehmen kann, ohne von dem Umfang der Erfindung abzuweichen.
  • 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 2017/0109628 [0002]
  • Zitierte Nicht-Patentliteratur
    • Kim et al., „Analog CMOS-based Resistive Processing Unit for Deep Neural Network Training“, 2017 IEEE 60 [0011]

Claims (14)

  1. Analoge anordnungsbasierte Vektor-Matrix, aufweisend: eine Gewichtungs-Matrix, die mit einer Referenzen-Matrix verbunden ist, die jeweils eine Kreuzschienenanordnung mit einem Satz von leitfähigen Zeilendrähten und einem Satz von leitfähigen Spaltendrähten, die den Satz von leitfähigen Zeilendrähten kreuzen, sowie optimierbare Kreuzungspunkteinheiten an Kreuzungspunkten des Satzes von leitfähigen Spaltendrähten und des Satzes von leitfähigen Zeilendrähten aufweisen.
  2. Vektor-Matrix nach Anspruch 1, wobei sich alle Kreuzungspunkteinheiten in der Gewichtungs-Matrix an ihrem eigenen Symmetriepunkt befinden.
  3. Vektor-Matrix nach Anspruch 2, wobei Leitwerte für jede Kreuzungspunkteinheit aus der Gewichtungs-Matrix in die Referenzen-Matrix kopiert werden.
  4. Vektor-Matrix nach Anspruch 1, wobei die Kreuzungspunkteinheiten resistive Verarbeitungseinheiten (RPUs) aufweisen.
  5. Vektor-Matrix nach Anspruch 1, darüber hinaus aufweisend: einen ersten Spannungsimpulsgenerator, der mit dem Satz von leitfähigen Zeilendrähten in der Gewichtungs-Matrix verbunden ist; und einen zweiten Spannungsimpulsgenerator, der mit dem Satz von leitfähigen Spaltendrähten in der Gewichtungs-Matrix verbunden ist.
  6. Vektor-Matrix nach Anspruch 1, darüber hinaus aufweisend: einen Analog-Digital-Wandler (ADC), der mittels eines Stromintegrators mit dem Satz von leitfähigen Spaltendrähten in der Gewichtungs-Matrix verbunden ist.
  7. Verfahren für eine analoge anordnungsbasierte Vektor-Matrix-Datenverarbeitung, wobei das Verfahren die folgenden Schritte aufweist: Bereitstellen einer Gewichtungs-Matrix, die mit einer Referenzen-Matrix verbunden ist, die jeweils eine Kreuzschienenanordnung mit einem Satz von leitfähigen Zeilendrähten und einem Satz von leitfähigen Spaltendrähten, die den Satz von leitfähigen Zeilendrähten kreuzen, sowie Kreuzungspunkteinheiten an Kreuzungspunkten des Satzes von leitfähigen Spaltendrähten und des Satzes von leitfähigen Zeilendrähten aufweisen; Anlegen von wiederholten Spannungsimpulsen an die Kreuzungspunkteinheiten in der Gewichtungs-Matrix, bis alle Kreuzungspunkteinheiten in der Gewichtungs-Matrix auf ihren eigenen Symmetriepunkt konvergieren; und Kopieren von Leitwerten für jede Kreuzungspunkteinheit aus der Gewichtungs-Matrix in die Referenzen-Matrix.
  8. Verfahren nach Anspruch 7, wobei die an die Kreuzungspunkteinheiten in der Gewichtungs-Matrix angelegten Spannungsimpulse Aufwärts- und Abwärtsspannungsimpulse aufweisen.
  9. Verfahren nach Anspruch 8, wobei die Aufwärts- und Abwärtsspannungsimpulse in zufälliger Weise an die Kreuzungspunkteinheiten in der Gewichtungs-Matrix angelegt werden.
  10. Verfahren nach Anspruch 8, wobei die Aufwärts- und Abwärtsspannungsimpulse abwechselnd an die Kreuzungspunkteinheiten in der Gewichtungs-Matrix angelegt werden.
  11. Verfahren nach Anspruch 7, wobei die in die Referenzen-Matrix kopierten Leitwerte Null-Gewichtungswerte aufweisen.
  12. Verfahren nach Anspruch 7, darüber hinaus aufweisend den Schritt des: Verschiebens des Nullpunkts von Ausgaben der Gewichtungs-Matrix um die Null-Gewichtungswerte aus der Referenzen-Matrix.
  13. Verfahren nach Anspruch 12, darüber hinaus aufweisend die folgenden Schritte: Anlegen desselben Signals sowohl an die Gewichtungs-Matrix als auch die Referenzen-Matrix; und Subtrahieren der Ausgabe der Gewichtungs-Matrix von der Ausgabe der Referenzen-Matrix.
  14. Verfahren nach Anspruch 7, wobei die Kreuzungspunkteinheiten RPUs aufweisen.
DE112019005119.9T 2018-10-11 2019-09-30 Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen Pending DE112019005119T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/158,056 US10831860B2 (en) 2018-10-11 2018-10-11 Alignment techniques to match symmetry point as zero-weight point in analog crosspoint arrays
US16/158,056 2018-10-11
PCT/IB2019/058282 WO2020074996A1 (en) 2018-10-11 2019-09-30 Alignment techniques to match symmetry point as zero-weight point in analog crosspoint arrays

Publications (1)

Publication Number Publication Date
DE112019005119T5 true DE112019005119T5 (de) 2021-07-22

Family

ID=70159520

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019005119.9T Pending DE112019005119T5 (de) 2018-10-11 2019-09-30 Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen

Country Status (6)

Country Link
US (1) US10831860B2 (de)
JP (1) JP7288047B2 (de)
CN (1) CN112823327B (de)
DE (1) DE112019005119T5 (de)
GB (1) GB2592813B (de)
WO (1) WO2020074996A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109146070B (zh) * 2017-06-16 2021-10-22 华为技术有限公司 一种支撑基于rram的神经网络训练的外围电路及系统
US11443176B2 (en) * 2018-05-17 2022-09-13 International Business Machines Corporation Acceleration of convolutional neural networks on analog arrays
US11562249B2 (en) * 2019-05-01 2023-01-24 International Business Machines Corporation DNN training with asymmetric RPU devices
US11501023B2 (en) * 2020-04-30 2022-11-15 International Business Machines Corporation Secure chip identification using resistive processing unit as a physically unclonable function
TWI727814B (zh) * 2020-05-28 2021-05-11 旺宏電子股份有限公司 記憶體裝置及其運算結果補償方法
US11133063B1 (en) * 2020-06-22 2021-09-28 International Business Machines Corporation Suppressing undesired programming at half-selected devices in a crosspoint array of 3-terminal resistive memory
KR20220148558A (ko) 2021-04-29 2022-11-07 삼성전자주식회사 뉴로모픽 컴퓨팅 장치 및 그 설계 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170109628A1 (en) 2015-10-20 2017-04-20 International Business Machines Corporation Resistive processing unit

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502083B1 (en) 1998-12-29 2002-12-31 International Business Machines Corporation Neuron architecture having a dual structure and neural networks incorporating the same
JP3863484B2 (ja) 2002-11-22 2006-12-27 株式会社東芝 磁気抵抗効果素子および磁気メモリ
US8712940B2 (en) 2011-05-31 2014-04-29 International Business Machines Corporation Structural plasticity in spiking neural networks with symmetric dual of an electronic neuron
US9715655B2 (en) * 2013-12-18 2017-07-25 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for performing close-loop programming of resistive memory devices in crossbar array based hardware circuits and systems
EP3221864B1 (de) * 2014-11-18 2019-09-18 Hewlett-Packard Enterprise Development LP Memristive skalarproduktmaschine mit aufhebungsverstärker
US10410716B2 (en) * 2015-09-25 2019-09-10 Hewlett Packard Enterprise Development Lp Crossbar arrays for calculating matrix multiplication
US10387778B2 (en) * 2015-09-29 2019-08-20 International Business Machines Corporation Scalable architecture for implementing maximization algorithms with resistive devices
WO2017155544A1 (en) * 2016-03-11 2017-09-14 Hewlett Packard Enterprise Development Lp Hardware accelerators for calculating node values of neural networks
US10839292B2 (en) 2016-06-29 2020-11-17 International Business Machines Corporation Accelerated neural network training using a pipelined resistive processing unit architecture
US9715656B1 (en) * 2016-09-12 2017-07-25 International Business Machines Corporation Killing asymmetric resistive processing units for neural network training
US9779355B1 (en) 2016-09-15 2017-10-03 International Business Machines Corporation Back propagation gates and storage capacitor for neural networks
US9852790B1 (en) 2016-10-26 2017-12-26 International Business Machines Corporation Circuit methodology for highly linear and symmetric resistive processing unit
WO2018106969A1 (en) 2016-12-09 2018-06-14 Hsu Fu Chang Three-dimensional neural network array
US10755170B2 (en) 2017-03-01 2020-08-25 International Business Machines Corporation Resistive processing unit with hysteretic updates for neural network training
US11315009B2 (en) * 2017-03-03 2022-04-26 Hewlett Packard Enterprise Development Lp Analog multiplier-accumulators
JP6794891B2 (ja) 2017-03-22 2020-12-02 株式会社デンソー ニューラルネットワーク回路

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170109628A1 (en) 2015-10-20 2017-04-20 International Business Machines Corporation Resistive processing unit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Kim et al., „Analog CMOS-based Resistive Processing Unit for Deep Neural Network Training", 2017 IEEE 60

Also Published As

Publication number Publication date
JP2022502760A (ja) 2022-01-11
CN112823327A (zh) 2021-05-18
US20200117699A1 (en) 2020-04-16
GB2592813B (en) 2022-05-11
WO2020074996A1 (en) 2020-04-16
CN112823327B (zh) 2022-12-13
US10831860B2 (en) 2020-11-10
JP7288047B2 (ja) 2023-06-06
GB202106235D0 (en) 2021-06-16
GB2592813A (en) 2021-09-08

Similar Documents

Publication Publication Date Title
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
DE112018005726B4 (de) Resistive verarbeitungseinheit auf zählerbasis für programmierbare und rekonfigurierbare künstliche neuronale netzwerke
DE112018000272T5 (de) Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze
DE112018004223T5 (de) Trainieren künstlicher neuronaler Netze
DE102019116305A1 (de) Pipelining zur verbesserung der inferenzgenauigkeit neuronaler netze
DE112016003245T5 (de) Resistive Verarbeitungseinheit
DE112015003992B4 (de) Neuromorphe Synapsen
DE4042139C2 (de) Neuron-Einheit
DE112019000226T5 (de) Neuromorpher chip zum aktualisieren präziser synaptischer gewichtswerte
DE112018004992B4 (de) Übertragung synaptischer gewichte zwischen leitfähigkeitspaaren mitpolaritätsumkehr zum verringern fester einheitenasymmetrien
DE112017000855B4 (de) Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE112018002950T5 (de) System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit
DE112019000437B4 (de) Architektur einer resistiven verarbeitungseinheit mit voneinander getrennter gewichtungsaktualisierungs- und inferenzschaltung
DE112011101370T5 (de) Neuronales Netz mit kanonischen gepulsten Neuronen für einen raumzeitlichen Assoziativspeicher
DE112016000148T5 (de) Neuromorpher Speicherschaltkreis
DE4143073A1 (de) Mehrschichtiges neuronales netzwerk
DE112020000929T5 (de) Programmieren eines phasenwechselspeichersin einer geschlossenen schleife
DE112018000723T5 (de) Aktualisierungsverwaltung für eine RPU-Anordnung
DE112012005565T5 (de) Elektronische Synapsen aus stochastischen binären Speichereinheiten
DE112019003326T5 (de) Speichererweiterte neuronale netzwerkarchitekturen eines codierers-decodierers
DE19503147C2 (de) Chaos-Neuronen-Schaltung und diese verwendendes Neuronales Chaos-Netzwerk
DE102016221516B4 (de) Zeitverzögerungselement aus Phasenwechselmaterial für neuromorphe Netzwerke
EP3502974A1 (de) Verfahren zur realisierung eines neuronalen netzes
DE102021123580A1 (de) Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R016 Response to examination communication