-
HINTERGRUND
-
Technisches Gebiet
-
Die vorliegende Erfindung bezieht sich im Allgemeinen auf resistive Verarbeitungseinheiten (Resistive Processing Units, RPUs) und im Besonderen auf eine Aktualisierungsverwaltung für eine RPU-Anordnung.
-
Beschreibung der verwandten Technik
-
Eine resistive Verarbeitungseinheit (RPU) ist eine Anordnung von resistiven Einheiten, die für das Trainieren eines tiefen neuronalen Netzwerks verwendet werden kann. Eine RPU besteht aus vollständig verbundenen Schichten, Faltungsschichten, rekurrenten Schichten und so weiter. Allerdings kann das Aktualisieren einer RPU zeit- und ressourcenaufwändig sein. Aus diesem Grund besteht eine Notwendigkeit für Verbesserungen beim Aktualisieren einer RPU.
-
ZUSAMMENFASSUNG
-
Gemäß einem Aspekt der vorliegenden Erfindung wird ein durch einen Computer realisiertes Verfahren für eine Aktualisierungsverwaltung für ein neuronales Netzwerk bereitgestellt. Das Verfahren beinhaltet ein Durchführen eines isotropen Aktualisierungsprozesses für das neuronale Netzwerk unter Verwendung einer resistiven Verarbeitungseinheit. Der isotrope Aktualisierungsprozess verwendet einen Multiplikanden und einen Multiplikator aus einer Multiplikationsoperation. Der Durchführungsschritt beinhaltet ein Skalieren des Multiplikanden und des Multiplikators, so dass sie eine gleiche Größenordnung aufweisen.
-
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Computerprogrammprodukt für eine Aktualisierungsverwaltung für ein neuronales Netzwerk bereitgestellt. Das Computerprogrammprodukt beinhaltet ein nicht flüchtiges durch einen Computer lesbares Speichermedium mit darin enthaltenen Programmbefehlen. Die Programmbefehle sind durch einen Computer ausführbar, um den Computer zum Durchführen eines Verfahrens zu veranlassen. Das Verfahren beinhaltet ein Durchführen eines isotropen Aktualisierungsprozesses für das neuronale Netzwerk unter Verwendung einer resistiven Verarbeitungseinheit. Der isotrope Aktualisierungsprozess verwendet einen Multiplikanden und einen Multiplikator aus einer Multiplikationsoperation. Der Durchführungsschritt beinhaltet ein Skalieren des Multiplikanden und des Multiplikators, so dass sie eine gleiche Größenordnung aufweisen.
-
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Computerverarbeitungssystem für eine Aktualisierungsverwaltung für ein neuronales Netzwerk bereitgestellt. Das Computerverarbeitungssystem beinhaltet eine resistive Verarbeitungseinheit (RPU), die konfiguriert ist, um einen isotropen Aktualisierungsprozess für das neuronale Netzwerk durchzuführen. Der isotrope Aktualisierungsprozess verwendet einen Multiplikanden und einen Multiplikator aus einer Multiplikationsoperation. Die RPU ist konfiguriert, um den isotropen Aktualisierungsprozess durchzuführen, indem sie den Multiplikanden und den Multiplikator so skaliert, dass sie eine gleiche Größenordnung aufweisen.
-
Diese und andere Merkmale und Vorzüge werden aus der folgenden ausführlichen Beschreibung veranschaulichender Ausführungsformen hiervon offensichtlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
-
Figurenliste
-
Die folgende Beschreibung stellt Einzelheiten bevorzugter Ausführungsformen mit Bezug auf die folgenden Figuren bereit, wobei:
- 1 ein beispielhaftes Verarbeitungssystem gemäß einer Ausführungsform der vorliegenden Erfindung zeigt, auf das die Erfindungsgrundsätze angewendet werden können;
- 2 eine beispielhafte analoge Vektor-Matrix-Multiplikation für eine RPU-Anordnung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 3 eine weitere beispielhafte analoge Vektor-Matrix-Multiplikation für eine RPU-Anordnung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 4 eine beispielhafte Aktualisierungsoperation gemäß einer Ausführungsform der vorliegenden Erfindung zeigt, auf welche die vorliegende Erfindung angewendet werden kann;
- 5 einen stochastischen Aktualisierungsregel-Schaltkreis für eine RPU-Anordnung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt, auf den die vorliegende Erfindung angewendet werden kann;
- 6 einen Aktualisierungszyklus gemäß einer Ausführungsform der vorliegenden Erfindung zeigt, der dem stochastischen Aktualisierungsregel-Schaltkreis aus 5 entspricht; und
- 7 ein beispielhaftes Verfahren für eine Aktualisierungsverwaltung für eine RPU-Anordnung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die vorliegende Erfindung ist auf eine Aktualisierungsverwaltung für eine RPU-Anordnung gerichtet.
-
Bei einer Ausführungsform wird ein isotropes Aktualisierungsschema für eine RPU vorgeschlagen, um den Aktualisierungszyklus der RPU vollständig zu nutzen, indem die Gesamtleistung erhöht wird, während zugleich eine geringstmögliche Anzahl von Zyklen verwendet wird, die für das Training benötigt werden.
-
Die vorliegende Erfindung kann auf stochastische ebenso wie auf deterministische Bitströme Anwendung finden.
-
Bei einer Ausführungsform beinhaltet ein für eine RPU vorgeschlagenes Aktualisierungsschema ein Füllen von stochastischen Bitströmen und ein Verwenden von koinzidierenden stochastischen Bitströmen, um die Aktualisierung durchzuführen.
-
Bei einer Ausführungsform konditioniert die vorliegende Erfindung die Eingaben, bevor sie einen stochastischen Aktualisierungszyklus durchführt, um eine falsche räumliche Korrelation zu entfernen, die daraus herrührt, dass zwei Zahlen multipliziert werden müssen, die sich um mehrere Größenordnungen voneinander unterscheiden. Daher weisen bei einer Ausführungsform Multiplikanden in einem stochastischen Aktualisierungsschema die gleiche Größenordnung auf. Anhand dieses Verfahrens verbessert sich die RPU-Testgenauigkeit für ein Trainieren von neuronalen Faltungsnetzwerken (Convolutional Neural Networks, CNNs) und tiefen neuronalen Netzwerken (Deep Neural Networks, DNNs) erheblich, indem eine einzige Iteration verwendet wird, um die Aktualisierung der RPU-Anordnung abzuschließen, wodurch sich der Aktualisierungszyklus beschleunigt.
-
Die Verwendung des kürzesten Bitstroms macht den Aktualisierungszyklus so schnell wie möglich. Dieser Fall entspricht einer Bitlänge (BL) von 1, wobei der Aktualisierungszyklus einen einzigen Impuls verwendet (wodurch er maximal und minimal mögliche Aktualisierungen identisch macht und dennoch mit Blick auf die Werte von xiδj probabilistisch bleibt).
-
Um dieses Einzel-Impuls-Fenster so wirksam wie möglich zu nutzen, schlagen wir ein Verfahren vor, mit dem die Aktualisierung auf eine stärker isotrope Weise durchgeführt wird.
-
Bei einer Ausführungsform kann die vorliegende Erfindung ein Problem lösen, dass durch einen Hardware-Mangel verursacht wird. Bei einer Ausführungsform verringert die vorliegende Erfindung die Auswirkung von resistiven Elementen (in einer RPU) mit einem asymmetrischen Verhalten, indem sie die Korrelation zwischen den Knoten verringert. Die vorliegende Erfindung kann ein Skalieren von Werten beinhalten, um die Stochastizität zu erhöhen und die Auswirkungen des Mangels einer Einheit auf die Testergebnisse zu verringern.
-
Obwohl sich eine oder mehrere hier beschriebene Ausführungsformen auf die Verwendung von stochastischen Aktualisierungsimpulsen beziehen, lässt sich die vorliegende Erfindung in Anbetracht der hier bereitgestellten Lehren der vorliegenden Erfindung ohne Weiteres auf deterministische Aktualisierungsimpulse anwenden, wie für den Fachmann offensichtlich sein dürfte, ohne dadurch vom gedanklichen Wesensgehalt der vorliegenden Erfindung abzuweichen.
-
1 zeigt ein beispielhaftes Verarbeitungssystem 100 gemäß einer Ausführungsform der vorliegenden Erfindung, auf das die Erfindungsgrundsätze angewendet werden können.
-
Das Verarbeitungssystem 100 beinhaltet einen Bus 102 zum Zusammenschalten eines oder mehrerer nicht linearer Filter (Non-Linear Filters, NLFs) (kollektiv und individuell durch das Bezugszeichen 110 der Figur bezeichnet), einer oder mehrerer resistiver Verarbeitungseinheiten (RPUs) (kollektiv und individuell durch das Bezugszeichen 120 der Figur bezeichnet), eines oder mehrerer Arbeitsspeicher (kollektiv und individuell durch das Bezugszeichen 130 der Figur bezeichnet) und eines oder mehrerer Eingabe/Ausgabe-Schaltkreise (E/A-Schaltkreise) (kollektiv und individuell durch das Bezugszeichen 140 der Figur bezeichnet).
-
Im Falle einer Realisierung des Verarbeitungssystems 100 mit einer integrierten Schaltung (Integrated Circuit, IC) kann die Datenübertragung innerhalb des Chips durch den Bus 102 bereitgestellt werden, während die Datenübertragung außerhalb des Chips durch die E/A-Schaltkreise 140 bereitgestellt werden kann.
-
Wie dem Fachmann klar sein dürfte, kann das Verarbeitungssystem 100 selbstverständlich auch andere (nicht gezeigte) Elemente beinhalten und bestimmte Elemente weglassen. So können in das Verarbeitungssystem 100 beispielsweise je nach dessen Realisierung verschiedene andere Eingabeeinheiten und/oder Ausgabeeinheiten aufgenommen werden, wie der Fachmann ohne Weiteres erkennen dürfte. Beispielsweise können verschiedene Arten von drahtlosen und/oder drahtgebundenen Eingabe- und/oder Ausgabeeinheiten verwendet werden. Darüber hinaus können auch zusätzliche RPUs, Prozessoren, Controller, Arbeitsspeicher usw. in verschiedenen Konfigurationen verwendet werden, wie für den Fachmann offensichtlich sein dürfte. Diese und andere Abwandlungen des Verarbeitungssystems 100 sind für den Fachmann im Lichte der hier bereitgestellten Lehren der vorliegenden Erfindung ohne Weiteres ersichtlich.
-
2 zeigt eine beispielhafte analoge Vektor-Matrix-Multiplikation 200 für eine RPU-Anordnung gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Die analoge Vektor-Matrix-Multiplikation 200 beinhaltet einen Satz von digitalen Eingabewerten (δ) 210, wobei jeder der digitalen Eingabewerte (δ) 210 durch eine entsprechende analoge Signalimpulsbreite 220 dargestellt wird. Die analogen Signalimpulsbreiten 220 werden einem Operationsverstärker-Integrator 230 bereitgestellt, der einen Operationsverstärker (Operational Amplifier, OpAmp) 231 mit einem Kondensator (Cint ) 232 aufweist, welcher mit dem (bzw. über den) invertierenden Eingang des OpAmps 231 und dem (bzw. den) Ausgang des OpAmps 231 verbunden ist. Der nicht invertierende Eingang des OpAmps 231 ist mit Masse verbunden. Der Ausgang des OpAmps 231 ist außerdem mit einem Eingang eines Analog-Digital-Wandlers (ADC) 240 verbunden. Der ADC 240 gibt ein Signal y1 aus, das für ein (digitalisiertes) Ergebnis der analogen Vektor-Matrix-Multiplikation 200 für die RPU-Anordnung steht.
-
3 zeigt eine weitere beispielhafte analoge Vektor-Matrix-Multiplikation 300 für eine RPU-Anordnung gemäß einer Ausführungsform der vorliegenden Erfindung. Die Multiplikation ist im Wesentlichen die in 2 gezeigte, wobei ein anderes Format (Darstellung) verwendet wird.
-
Die analoge Vektor-Matrix-Multiplikation
300 beinhaltet einen Satz von Eingabewerten
320, die an einen invertierenden Eingang eines OpAmp-Integrators
330 angelegt werden. Der OpAmp-Integrator
330 beinhaltet einen OpAmp
331 mit einem Kondensator (
Cint )
332. Die Eingabewerte
320 entsprechen einer Eingangsspannung
Vin und entsprechenden Transkonduktanzen
Der nicht invertierende Eingang des OpAmps
331 ist mit Masse verbunden. Der Kondensator
332 ist mit dem (bzw. über den) invertierenden Eingang des OpAmps
331 und dem (bzw. den) Ausgang des OpAmps
331 verbunden. Der Ausgang des OpAmps ist außerdem mit einem Eingang eines Analog-Digital-Wandlers (Analog-to-Digital Converter,
ADC)
340 verbunden. Der OpAmp
331 gibt ein Signal
Vout aus, das für ein Ergebnis der analogen Vektor-Matrix-Multiplikation
300 für die RPU-Anordnung steht. Der
ADC 340 wandelt die analoge Ausgabe Vout des OpAmps
331 in ein digitales Signal um.
-
4 zeigt eine beispielhafte Aktualisierungsoperation 400 gemäß einer Ausführungsform der vorliegenden Erfindung, auf welche die vorliegende Erfindung angewendet werden kann.
-
Die Aktualisierungsoperation
400 beinhaltet, einer resistiven Verarbeitungseinheit (RPU)
420 eine ursprüngliche Vektoreingabe
δ 411 und eine ursprüngliche Vektoreingabe x
412 bereitzustellen. Eine Ausgabe der
RPU 420 wird wie folgt bereitgestellt:
wobei
wij für eine Gewichtung einer Verbindung zwischen einer i-ten Zeile und einer j-ten Spalte steht,
η für eine Lernrate (einen skalaren Wert) steht,
xi für die Aktivität des Eingabeneurons steht und
δj für den Fehler steht, der durch das Ausgabeneuron berechnet wird.
-
Bei einer Ausführungsform wird eine RPU unter Verwendung eines Fehlerrückführungsverfahrens trainiert, das drei Zyklen umfasst: einen Vorwärtszyklus, einen Rückwärtszyklus und einen Gewichtungsaktualisierungszyklus (hier kurz „Gewichtungsaktualisierung“). Die Vorwärts- und Rückwärtszyklen beinhalten im Wesentlichen eine Berechnung einer Vektor-Matrix-Multiplikation in der Vorwärts- und Rückwärtsrichtung. Die vorliegende Erfindung ist im Wesentlichen auf den Gewichtungsaktualisierungszyklus gerichtet.
-
5 zeigt einen stochastischen Aktualisierungsregel-Schaltkreis 500 für eine RPU-Anordnung gemäß einer Ausführungsform der vorliegenden Erfindung, auf den die vorliegende Erfindung angewendet werden kann. 6 zeigt einen Aktualisierungszyklus 600 gemäß einer Ausführungsform der vorliegenden Erfindung, der dem Aktualisierungsregel-Schaltkreis 500 aus 5 entspricht.
-
Der stochastische Aktualisierungsregel-Schaltkreis 500 beinhaltet einen Übersetzer (Translator, TR) 510, einen TR 520, ein UND(&)-Gatter 530 und einen Addierer 540. Die TRs können stochastische Übersetzer (Stochastic Translators, STRs) oder deterministische Übersetzer (Deterministic Translators, DTRs) sein. Zum Zwecke der Veranschaulichung werden die Übersetzer (TRs) 510 und 520 im Folgenden als stochastische Übersetzer (Stochastic Translators, STRs) bezeichnet und unter Einbeziehung stochastischer Ströme beschrieben. Allerdings können die STRs ohne Weiteres durch DTRs ersetzt und unter Einbeziehung deterministischer Ströme verwendet werden, wie für den Fachmann in Anbetracht der hier bereitgestellten Lehren der vorliegenden Erfindung offensichtlich sein dürfte, ohne dadurch vom gedanklichen Wesensgehalt der vorliegenden Erfindung abzuweichen.
-
Der STR
510 empfängt eine Eingabe
xi und eine Ausgabe
Die Eingabe
xi steht für die Aktivität an dem Eingabeneuron.
bezeichnet eine Zufallsvariable, die durch einen Bernoulli-Prozess gekennzeichnet ist, und der Exponent n bezeichnet eine Bitposition in der Versuchssequenz.
-
Der STR
520 empfängt eine Eingabe
δj und eine Ausgabe
Die Eingabe
δj steht für den Fehler, der durch das Ausgabeneuron berechnet wird.
bezeichnet eine Zufallsvariable, die durch einen Bernoulli-Prozess gekennzeichnet ist, und der Exponent n bezeichnet eine Bitposition in der Versuchssequenz.
-
Jeder der
STRs 510 und
520 beinhaltet einen Parameter
C, bei dem es sich um einen STR-Verstärkungsfaktor handelt. Im Besonderen beinhaltet der
STR 510 einen Verstärkungsfaktor
Cx für den x-Vektor, und der
STR 520 beinhaltet einen Verstärkungsfaktor
Cδ für den δ-Vektor. Somit sind die Wahrscheinlichkeiten von
durch
Cxxi bzw.
Cδδj gegeben. Bei einer Ausführungsform werden die Verstärkungsfaktoren
Cx und
Cδ durch einen nicht linearen Filter (z.B. den NLF
110 aus
1 usw.) gesteuert.
-
Der Addierer 540 empfängt Eingaben Δwmin und wij und gibt (einen aktualisierten) Wert wij aus. Der Parameter Δwmin entspricht einer inkrementellen Leitfähigkeitsänderung für eine RPU-Einheit aufgrund eines einzelnen Koinzidenzereignisses, das in eine inkrementelle Gewichtungsänderung übersetzt wird. Der in einer RPU-Einheit gespeicherte Leitfähigkeitswert wird entsprechend in einen Gewichtungswert übersetzt.
-
Eine durch den stochastischen Aktualisierungsregel-Schaltkreis
500 umgesetzte stochastische Aktualisierungsregel lautet wie folgt:
wobei
wij eine Gewichtung einer Verbindung zwischen einer i-ten Zeile und einer j-ten Spalte bezeichnet,
Δwmin eine inkrementelle Leitfähigkeitsänderung (d.h. eine Änderung des Gewichtungswerts) aufgrund eines einzelnen Koinzidenzereignisses bezeichnet (und als ein spannungsgesteuerter Einheitenparameter betrachtet wird), BL die Länge des stochastischen Bitstroms (an dem während des Aktualisierungszyklus verwendeten Ausgang der STRs) bezeichnet,
Zufallsvariablen bezeichnen, die durch einen Bernoulli-Prozess gekennzeichnet sind, und der Exponent n die Bitposition in der Versuchssequenz bezeichnet.
-
In dem stochastischen Aktualisierungsregel-Schaltkreis 500 werden Zahlen, die von den Neuronen (xi und δj ) codiert werden, durch die STRs 510 und 520 in stochastische Bitströme übersetzt.
-
Die Erhöhung der stochastischen Bitstromlänge
BL würde zwar den Fehler verringern, zugleich jedoch die Aktualisierungszeit verlängern. Bei einer Ausführungsform wird ein zulässiger Bereich von BL-Werten, mit dem sich Klassifizierungsfehler vergleichbar einem Baseline-Modell erhalten lassen, wie folgt bestimmt: Das Training findet anhand verschiedener BL-Werte statt, während
und C = 1 so definiert werden, dass sie auf die Lernraten abgestimmt sind, die für das Baseline-Modell verwendet werden. Wie sich gezeigt hat, ist für
BL ein Wert von zehn ausreichend, um das stochastische Modell von dem Baseline-Modell unterscheidbar zu machen.
-
Zusätzlich hierzu wird für die stochastische Aktualisierungsregel die Änderung des Gewichtungswerts für einen einzigen Aktualisierungszyklus durch BL Δwmin begrenzt, und dieser Zustand kann eintreten, wenn die Wahrscheinlichkeiten eines Erzeugens von Impulsen von den STRs 510 und 520 (Cxi ) und (Cδj ) bei einem Wert von Eins liegen oder größer sind. Die Auswirkung dieser Begrenzung der Gewichtungsaktualisierung wird ebenfalls berücksichtigt und führt auch dann nicht zu einer Minderung der Leistung, wenn BL einen so kleinen Wert wie zum Beispiel zehn aufweist.
-
Darüber hinaus ist die (globale) Lernrate η ein wichtiger Hyperparameter, der gesteuert werden muss.
-
Die Steuerung der Lernrate wird wie folgt realisiert:
-
In der allgemeinsten Form lässt sich die durchschnittliche Änderung des Gewichtungswerts für das stochastische Modell folgendermaßen darstellen:
-
Somit wird die Lernrate für das stochastische Modell durch drei Parameter gesteuert: BL, Δwmin und C. Diese drei Parameter können auf die Lernraten abgestimmt werden, die in dem Baseline-Modell verwendet werden.
-
Während des Trainings werden die δ-Werte kleiner, da das Netz besser wird (und deshalb weniger Aktualisierungen benötigt). Andererseits werden die x-Werte (Δw = ηxδ) aufgrund der verwendeten tanh-Aktivierungsfunktionen 1 oder -1 (bei einer Sigmoidfunktion wären sie 0 oder 1).
-
Die stochastische Aktualisierungsregel (Koinzidenzerkennung) funktioniert schlechter, wenn die Multiplikatoren verschiedene Größenordnungen aufweisen (z.B. 1 und 10-6 ), was bedeutet, dass eine Wahrscheinlichkeit für das Auftreten eines „hohen“ Impulses in einzelnen Populationen sehr verschieden ausfällt (d.h. eine Wahrscheinlichkeit ist einmal mehr oder weniger sicher und das andere Mal quasi unmöglich).
-
Wenn eine δ-Spalte aktiv ist, werden alle Knoten in der Spalte aktualisiert, da x Zeilen mit Sicherheit aktiv sind (d.h. Werte von 1 oder -1 haben). Dies verursacht eine nicht der Wirklichkeit entsprechende räumliche Korrelation und schadet dem Prozess.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung können Werte skaliert werden, während ihr Produkt gleich bleibt, so dass sie vergleichbar (gleich) sind. Ein Beispiel lautet
wobei in der obigen Gleichung für η
für
Cx steht und „(Cγ)“ für
Cδ steht.
-
Bei einer Ausführungsform wird die Bitlänge BL auf Eins verringert, damit der Aktualisierungszyklus so kurz wie möglich sein kann.
-
Das isotrope Aktualisierungsschema gemäß der vorliegenden Erfindung erhöht die Testgenauigkeit sowohl in einem neuronalen Faltungsnetzwerk (CNN) als auch in einem tiefen neuronalen Netzwerk (DNN), indem es eine falsche räumliche Korrelation entfernt, die durch einen sehr großen Unterschied zwischen den Größenordnungen der x- und δ-Werte verursacht wird.
-
Indem Ströme verwendet werden, die mit einer ähnlichen Wahrscheinlichkeit „hohe“ Impulse enthalten, wird die Entropie des Aktualisierungsmechanismus erhöht und ein besseres Ergebnis erzielt.
-
Bei einer Ausführungsform finden alle Operationen in Zusammenhang mit der vorliegenden Erfindung in der digitalen Domäne statt, ohne dass dadurch die Schaltkreiskomplexität erhöht würde.
-
Mit Blick auf
6 gelten die folgenden Gleichungen:
-
In 6 werden Aktualisierungsimpulse (z.B. stochastische Aktualisierungsimpulse) 611 auf eine RPU-Anordnung 612 angewendet. Die Wahrscheinlichkeit einer Erzeugung eines Impulses in einer bestimmten Zeile j ist durch den Wert Pj gegeben, der durch einen STR für diese Zeile gesteuert wird. Entsprechend ist die Wahrscheinlichkeit einer Erzeugung eines Impulses in einer bestimmten Spalte i durch den Wert Pi gegeben, der durch einen STR für diese Spalte gesteuert wird. Einige dieser erzeugten Impulse aus der i-ten Spalte und der j-ten Zeile können sich für eine RPU-Einheit überlappen (zusammenfallen) und dabei eine inkrementelle Leitfähigkeitsänderung hervorrufen. Diese inkrementelle Leitfähigkeitsänderung entspricht einer inkrementellen Gewichtungsänderung (Δwmin ).
-
Bei deterministischen Aktualisierungsimpulsen können die stochastischen Übersetzer (STRs) durch deterministische Übersetzer (DTRs) ersetzt werden, wie für den Fachmann in Anbetracht der hier bereitgestellten Lehren der vorliegenden Erfindung offensichtlich sein dürfte, ohne dadurch vom gedanklichen Wesensgehalt der vorliegenden Erfindung abzuweichen.
-
7 zeigt ein beispielhaftes Verfahren 700 für eine Aktualisierungsverwaltung für eine RPU-Anordnung gemäß einer Ausführungsform der vorliegenden Erfindung.
-
In Schritt 710 werden Zahlen von Neuronen empfangen (z.B. xi und δj ).
-
In Schritt 720 wird ermittelt, ob eine Aktualisierungsverwaltung verwendet werden muss. Wenn ja, fährt das Verfahren mit Schritt 730 fort. Andernfalls fährt das Verfahren mit Schritt 790 fort.
-
In Schritt
730 wird ein Skalierungsfaktor γ bestimmt, so dass:
-
In Schritt 740 werden die Zahlen (xi und δj ) anhand des Skalierungsfaktors γ so skaliert, dass die Größenordnungen der skalierten Zahlen Cxxi und Cδδj gleich sind.
-
In Schritt 750 werden die skalierten Zahlen durch einen Satz von TRs in Bitströme (z.B. stochastische oder deterministische Bitströme) übersetzt, die jeweils eine entsprechende Bitlänge (BL) aufweisen.
-
In Schritt 760 wird eine Aktualisierung eines neuronalen Netzwerks angewendet.
-
In Schritt 770 wird ein neuronales Netzwerk, das durch den Aktualisierungszyklus für ein neuronales Netzwerk aktualisiert wurde, auf ein Eingabesignal angewendet, das einem bestimmten Objekt entspricht.
-
In Schritt 780 wird auf Grundlage einer Ausgabe des neuronalen Netzwerks eine Aktion durchgeführt, die sich auf das bestimmte Objekt bezieht, oder ein Zustand des bestimmten Objekts (in einen weiteren Zustand) geändert.
-
In Schritt
790 werden die Zahlen (
xi und
δj ) unter Verwendung von
Cx und
Cδ skaliert, so dass:
-
Es sollte klar sein, dass die vorliegende Erfindung auf eine Fülle von Anwendungen unter Einbeziehung neuronaler Netzwerke anwendbar ist, wie beispielsweise Spracherkennung, Sprechererkennung, Gestenerkennung, Tonerkennung, Verarbeitung natürlicher Sprache, Computer Vision, Bioinformatik und dergleichen, ohne jedoch darauf beschränkt zu sein. Entsprechend können die Schritte 770 und 780 jede der voranstehenden Anwendungen beinhalten. Zum Beispiel kann in Zusammenhang mit Spracherkennung eine Lautäußerung in eine Textdarstellung der Äußerung umgewandelt werden. Ebenfalls in Zusammenhang mit Spracherkennung kann darüber hinaus eine Hardware- oder sonstige Verriegelung entriegelt werden, indem nach Belieben ein geäußertes Kennwort, ein bereitgestellter biometrischer Identifikator (z.B. ein Fingerabdruck), ein Sprecher, ein Objekt und dergleichen erkannt wird.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt mit einem beliebigen möglichen Grad an technischer Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert sind, 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 Befehle zur Verwendung durch eine Befehlsausführungseinheit 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 Compact-Disc-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. durch ein Lichtwellenleiterkabel geleitete 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 Java, 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, im Feld 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 durch 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 durch einen Computer umgesetzten 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.
-
Wenn in dieser Beschreibung „eine bestimmte Ausführungsform“ oder „eine Ausführungsform“ der vorliegenden Erfindung sowie andere Abwandlungen hiervon erwähnt werden, bedeutet dies, dass ein bestimmtes Merkmal, eine Struktur, ein Kennzeichen und dergleichen, das/die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Daher bezieht sich nicht jedes Auftreten der Formulierungen „bei einer bestimmten Ausführungsform“, „bei einer Ausführungsform“ sowie aller anderen Abwandlungen hiervon, die an verschiedenen Stellen der Beschreibung auftreten, notwendigerweise auf ein und dieselbe Ausführungsform.
-
Es ist klarzustellen, dass die Verwendung einer beliebigen der folgenden Formulierungen „/“, „und/oder“ und „mindestens ... oder ...“, wie zum Beispiel im Falle von „A/B“, „A und B“ und „mindestens A oder B“, die alleinige Auswahl der als erstes genannten Option (A) oder die alleinige Auswahl der als zweites genannten Option (B) oder die Auswahl der beiden Optionen (A und B) umfassen soll. Im Falle von „A, B und/oder C“ und „mindestens A, B oder C“ soll eine derartige Formulierung als weiteres Beispiel die alleinige Auswahl der als erstes genannten Option (A), die alleinige Auswahl der als zweites genannten Option (B), die alleinige Auswahl der als drittes genannten Option (C) oder die alleinige Auswahl der als erstes und als zweites genannten Optionen (A und B) oder die alleinige Auswahl der als erstes und als drittes genannten Optionen (A und C) oder die alleinige Auswahl der als zweites und als drittes genannten Optionen (B und C) oder die Auswahl aller drei Optionen (A und B und C) umfassen. Wie dem Fachmann für dieses und verwandte technische Gebiete offensichtlich sein sollte, lässt sich dies auf so viele Elemente ausdehnen, wie genannt werden.
-
Nachdem bevorzugte Ausführungsformen eines (zur Veranschaulichung gedachten und nicht als Beschränkung zu verstehenden) Systems und Verfahrens beschrieben wurden, wird darauf verwiesen, dass Fachleute in Zusammenhang mit der obigen Lehre Änderungen und Abwandlungen vornehmen können. Daher sollte klar sein, dass an den einzelnen offenbarten Ausführungsformen Änderungen vorgenommen werden können, die vom inhaltlichen Umfang der Erfindung abgedeckt sind, wie er durch die beigefügten Ansprüche dargelegt ist. Nachdem somit Aspekte der Erfindung mit den patentrechtlich vorgeschriebenen Einzelheiten und Besonderheiten beschrieben wurden, wird der Anspruchs- und Schutzgegenstand des Patents in den beigefügten Ansprüchen dargelegt.