-
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:
-
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
-
-
Zitierte Nicht-Patentliteratur
-
- Kim et al., „Analog CMOS-based Resistive Processing Unit for Deep Neural Network Training“, 2017 IEEE 60 [0011]