-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich allgemein auf das Gebiet der künstlichen neuronalen Netze (KNN). Die vorliegende Erfindung bezieht sich insbesondere auf ein System und ein Verfahren zum Aufbauen synaptischer Gewichte für künstliche neuronale Netze aus mit Vorzeichen versehenen, analogen Leitwertpaaren unterschiedlicher Wertigkeit.
-
Beschreibung des Standes der Technik
-
Bei künstlichen neuronalen Netzen (KNN) handelt es sich um verteilte Datenverarbeitungssysteme, die aus einer Reihe von Neuronen bestehen, die über als Synapsen bezeichnete Verbindungspunkte miteinander verbunden sind. Jede Synapse codiert die Stärke der Verbindung zwischen dem Ausgang eines Neurons und dem Eingang eines anderen. Der Ausgang jedes Neurons wird durch den Gesamteingang bestimmt, der von anderen Neuronen empfangen wird, die mit ihm verbunden sind, und damit durch die Ausgänge dieser „vorgelagert“ verbundenen Neuronen und die Stärke der Verbindungen, die durch die synaptischen Gewichte bestimmt wird. Das KNN wird trainiert, um ein bestimmtes Problem (z.B. Mustererkennung) zu lösen, indem die Gewichte der Synapsen so angepasst werden, dass eine bestimmte Klasse von Eingängen einen gewünschten Ausgang erzeugt. Das Verfahren zur Gewichtsanpassung wird als „Lernen“ bezeichnet. Es gibt viele Algorithmen in der KNN-Literatur zum Durchführen von Lernen, die für verschiedene Aufgaben wie Bilderkennung, Spracherkennung, Sprachverarbeitung usw. geeignet sind. Im Idealfall führen diese Algorithmen zu einem Muster von synaptischen Gewichten, die sich während des Lernprozesses einer optimalen Lösung des bestimmten Problems annähern.
-
Bei einer interessanten Implementierung von KNN werden einige Schaltungen (z.B. CMOS) verwendet, um das Neuron darzustellen, wobei deren Funktion darin besteht, den Gesamteingang von vorgelagerten Neuronen, mit denen ein bestimmtes Neuron verbunden ist, zu integrieren oder zu addieren und eine nichtlineare Funktion des Eingangs anzuwenden, um den Ausgang dieses Neurons abzuleiten. Da jedes Neuron im Allgemeinen mit einem großen Teil der anderen Neuronen verbunden ist, ist die Anzahl der Synapsen (Verbindungen) viel größer als die Anzahl der Neuronen; es ist daher von Vorteil, eine Implementierung von Synapsen zu verwenden, die eine sehr hohe Dichte auf einem neuromorphen Computerchip erreichen kann. Eine interessante Wahl ist die NVM-Technologie (NVM = Non-Volatile Memory, nichtflüchtiger Speicher) wie beispielsweise ein resistiver Direktzugriffsspeicher (RRAM) oder ein Phasenwechselspeicher (Phase-Change Memory, PCM). Da sowohl positive als auch negative (d.h. erregende und hemmende) Gewichte erwünscht sind, verwendet ein System ein NVM-Paar, um das Gewicht als Unterschied des Leitwerts zwischen den beiden darzustellen (siehe M. Suri et al., „Phase Change Memory as Synapse for Ultra-Density Neuromorphic Systems: Application to Complex Visual Pattern Extraction“, IEDM Technical Digest, 4.4, 2011). Dieses System ist in 1 dargestellt. Die Ausgänge der vorgelagerten Ni Neuronen werden parallel durch NVM-Leitwertpaare zu den positiven und negativen Eingängen der nachgelagerten Mi Neuronen addiert. Diese Parallelität ist für eine leistungsfähige Berechnung äußerst vorteilhaft.
-
Während des Lernens werden die Leitwerte der NVM-Elemente programmiert, indem ihnen Impulse gesendet werden, die die Leitwerte gemäß einer Lernregel entweder erhöhen oder verringern können. Eine verbreitete Lernregel, die wir untersucht haben, ist die Rückpropagierung (siehe Rumelhart et.al., „Learning Internal Representations by Error Propagation", Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Bd. 1, 1986), die in Netzen für tiefes Lernen in hohem Maße verwendet wird, wobei diese Netze derzeit in grafischen Verarbeitungseinheiten (GPU) zur Bilderkennung, zum Lernen von Videospielen usw. implementiert werden. Für den Rückpropagierungsalgorithmus ist eine Gewichtungsaktualisierung Δwij = η · χi · δj notwendig, die proportional zum Produkt des Ausgangs des vorgelagerten Neurons χi und zum Fehlerbeitrag des nachgelagerten Neurons δj mit der als Lernrate bezeichneten Proportionalitätskonstanten η ist. Wir haben zuvor dargelegt (siehe Burr et al., „Experimental demonstration and tolerancing of a large scale neural network (165,000 synapses), using phase-change memory as the synaptic weight element", IEDM Technical Digest, 2014), dass diese „Kreuzschienen-kompatible“ (crossbar-compatible) Lernregel genauso leistungsfähig ist wie die herkömmliche Rückpropagierungsregel.
-
Echte NVM-Elemente weisen eine nichtideale Reaktion auf. Sie sind nichtlinear, und der maximale Leitwert, der erreicht werden kann, ist begrenzt. Die Änderung des Leitwerts bei einem Impuls, der den Leitwert erhöhen soll, unterscheidet sich von der eines Impulses, der den Leitwert verringern soll, d.h., die Reaktion ist asymmetrisch. Es gibt Unterschiede zwischen Einheiten, einige Einheiten sind nicht funktionsfähig und befinden sich entweder in einem Zustand mit hohem Leitwert oder in einem Zustand mit niedrigem Leitwert. Unsere Arbeit hat gezeigt, dass viele dieser Fehler die Leistung eines KNN nur in geringem Umfang beeinträchtigen. Nichtlinearität, begrenzter Leitwert und asymmetrische Reaktion führen jedoch dazu, dass die Genauigkeit beim Problem der MNIST-Ziffernerkennung verringert wird, von einer Genauigkeit von 99+ % während des Trainings auf eine Genauigkeit zwischen 80 % und 85 %.
-
Während des Trainings erhält das Netzwerk viele verschiedene Eingaben, und die Rückpropagierungs-Lernregel wird verwendet, um die NVM-Leitwerte nach jedem Eingang (oder nach einer kleinen Anzahl von Minibatch genannten Eingängen) zu aktualisieren. Einige Gewichte im Netz entwickeln sich tendenziell stetig in Richtung eines stabilen Wertes, während andere tendenziell Schwankungen nach oben und nach unten aufweisen, d.h. manchmal erhöht, manchmal verringert werden. Wenn die NVM-Reaktion nichtlinear oder asymmetrisch ist, ist die Reaktion auf einen Impuls, der den Gewichtswert verringern soll, normalerweise stärker als auf einen Impuls, der die Gewichte erhöhen soll. Dies führt dazu, dass viele dieser Gewichte gegen null tendieren, was die Rückpropagierungs-Lernregel wirkungslos macht und die Netzleistung verringert.
-
Der Stand der Technik befasst sich mit der Einführung von mit Vorzeichen versehenen synaptischen Gewichten, die auf zwei Leitwerten beruhen. Bei einigen NVM-Einheiten wie einem Phasenwechselspeicher (PCM), einem drahtgestützten RRAM (z.B. mit HfOx oder TaOx) oder einem Conductive-Bridging-RAM auf Grundlage von Metalldrähten können kleine Leitwertänderungen jedoch nur in einer Richtung implementiert werden. Die direkte Folge davon ist, dass ein synaptisches Gewicht, das hoch ist, tendenziell äußerst fragil ist und gut auf Schritte innerhalb der kleineren Leitwerte (die die Höhe des Gewichts verringern), aber schlecht auf Schritte innerhalb der höheren Leitwerte (die die Höhe des Gewichts vergrößern) reagiert. Auf diese Weise verschlechtert sich die Netzleistung, weil es für die Gewichte, die das Netz erhöhen will, problematisch ist, erhöht zu bleiben.
-
Ausführungsformen der vorliegenden Erfindung sind eine Verbesserung gegenüber Systemen und Verfahren nach dem Stand der Technik.
-
KURZDARSTELLUNG DER ERFINDUNG
-
In einer Ausführungsform stellt die vorliegende Erfindung ein Verfahren bereit, das in einem künstlichen neuronalen Netz (KNN) implementiert wird, wobei das KNN eine Mehrzahl von Neuronen aufweist, die in Schichten angeordnet sind, wobei die Ausgänge einer Schicht mit den Eingängen einer Mehrzahl der Neuronen einer nachfolgenden Schicht verbunden sind, wobei die Neuronen über eine Mehrzahl von Synapsen miteinander verbunden sind, wobei jede der Synapsen ein synaptisches Gewicht aufweist, das eine Verbindungsstärke zwischen zwei verbundenen Neuronen codiert, wobei die Höhe des synaptischen Gewichts jeder Synapse durch einen gewichteten Stromfluss von mehreren Leitwertpaaren dargestellt wird, wobei eine Mehrzahl von Trainingsbeispielen seriell in das KNN eingegeben wird, während der Ausgang überwacht wird, wobei ein Rückpropagierungsalgorithmus das synaptische Gewicht als Reaktion auf den Unterschied zwischen dem Ausgang einer bestimmten Schicht und einem gewünschten Ausgang von dieser Schicht aktualisiert, wobei das Verfahren aufweist: (a) regelmäßiges Übertragen eines Teils des synaptischen Gewichts von einem niedrigerwertigen Leitwertpaar zu einem höherwertigen Leitwertpaar, sodass das synaptische Gesamtgewicht im Wesentlichen unverändert bleibt; und (b) Wiederholen der Trainingsbeispiele, bis sich der Netzausgang dem gewünschten Ausgang innerhalb einer zuvor festgelegten Genauigkeit annähert.
-
In einer anderen Ausführungsform stellt die vorliegende Erfindung ein Verfahren bereit, das in einem künstlichen neuronalen Netz (KNN) implementiert wird, wobei das KNN eine Mehrzahl von Neuronen aufweist, die in Schichten angeordnet sind, wobei die Ausgänge einer Schicht mit den Eingängen einer Mehrzahl der Neuronen einer nachfolgenden Schicht verbunden sind, wobei die Neuronen über eine Mehrzahl von Synapsen miteinander verbunden sind, wobei jede der Synapsen ein synaptisches Gewicht aufweist, das eine Verbindungsstärke zwischen zwei verbundenen Neuronen codiert, wobei die Höhe des Gewichts jeder der Synapsen durch einen gewichteten Stromfluss von mehreren Leitwertpaaren dargestellt wird, wobei jedes der mehreren Leitwertpaare einen gemeinsamen Beitrag darstellt und ein höherwertiges Leitwertpaar und ein niedrigerwertiges Leitwertpaar aufweist, wobei eine Mehrzahl von Trainingsbeispielen seriell in das KNN eingegeben wird, während der Ausgang überwacht wird, wobei ein Rückpropagierungsalgorithmus das synaptische Gewicht als Reaktion auf einen Unterschied zwischen dem Ausgang einer bestimmten Schicht und einem gewünschten Ausgang von dieser Schicht aktualisiert, wobei das Verfahren aufweist: (a) Unterbrechen des Netztrainings und Messen der Leitwerte in analogen Speicherelementen im KNN; (b) Ermitteln eines tatsächlichen synaptischen Gewichtswerts in einem oder mehreren gemessenen Leitwerten in den Leitwertpaaren, dessen absoluter Wert um einen zuvor festgelegten Wert höher als der paarige Leitwert ist; und (c) Umkonfigurieren der niedrigerwertigen Leitwertpaare als gleichwertig, was einem gemeinsamen Beitrag zu einem synaptischen Gesamtgewicht von null entspricht, und Umkonfigurieren eines der höherwertigen Leitwertpaare, bis der ermittelte tatsächliche synaptische Gewichtswert erreicht ist.
-
In einer anderen Ausführungsform stellt die vorliegende Erfindung ein Verfahren bereit, das in einem künstlichen neuronalen Netz (KNN) implementiert wird, wobei das KNN eine Mehrzahl von Neuronen aufweist, die in Schichten angeordnet sind, wobei die Ausgänge einer Schicht mit den Eingängen einer Mehrzahl der Neuronen einer nachfolgenden Schicht verbunden sind, wobei die Neuronen über eine Mehrzahl von Synapsen miteinander verbunden sind, wobei jede der Synapsen ein synaptisches Gewicht aufweist, das eine Verbindungsstärke zwischen zwei verbundenen Neuronen codiert, wobei die Höhe des Gewichts jeder der Synapsen durch einen gewichteten Stromfluss von mehreren Leitwertpaaren dargestellt wird, wobei jedes der mehreren Leitwertpaare einen gemeinsamen Beitrag darstellt und ein höherwertiges Leitwertpaar und ein niedrigerwertiges Leitwertpaar aufweist, wobei eine Mehrzahl von Trainingsbeispielen seriell in das KNN eingegeben wird, während der Ausgang überwacht wird, wobei ein Rückpropagierungsalgorithmus das synaptische Gewicht als Reaktion auf einen Unterschied zwischen dem Ausgang einer bestimmten Schicht und einem gewünschten Ausgang von dieser Schicht aktualisiert, wobei das Verfahren aufweist: (a) Unterbrechen des Netztrainings und Messen der Leitwerte in analogen Speicherelementen im KNN; (b) Ermitteln eines tatsächlichen synaptischen Gewichtswerts in einem oder mehreren gemessenen Leitwerten in den Leitwertpaaren, dessen absoluter Wert um einen zuvor festgelegten Wert höher als der paarige Leitwert ist; und (c) Umkonfigurieren der niedrigerwertigen Leitwertpaare als gleichwertig, was einem gemeinsamen Beitrag zu einem synaptischen Gesamtgewicht von null entspricht, und Umkonfigurieren eines der höherwertigen Leitwertpaare, bis der ermittelte tatsächliche synaptische Gewichtswert erreicht ist, und wobei einige der synaptischen Gewichte in dem KNN mithilfe eines Kondensators implementiert werden, der mit dem Gate eines Lesetransistors verbunden ist, wobei das Gate des Lesetransistors auch mit einem ersten Satz von Programmierungstransistoren zum Addieren von Ladung zur Kapazität und einem zweiten Satz von Transistoren zum Subtrahieren von Ladung vom Kondensator verbunden ist, wobei das Addieren oder Subtrahieren gemäß Signalen erfolgt, die mit den nachgelagerten und vorgelagerten Neuronen verbunden sind.
-
Figurenliste
-
Im Folgenden werden bevorzugte Ausführungsformen der vorliegenden Erfindung lediglich als Beispiel mit Bezug auf die beigefügten Zeichnungen beschrieben, in denen:
- 1 eine Anordnung nach dem Stand der Technik mit einem Leitwertpaar pro Synapse veranschaulicht;
- 2 eine Anordnung zeigt, die mehr als ein Leitwertpaar pro Synapse aufweist, mit einem Satz von Paaren, bei denen der Lesestrom in Bezug auf einen anderen um einen Faktor F verstärkt ist;
- 3 Simulationsergebnisse zeigt, die Vorteile einer Technik mit mehreren Leitwertpaaren darstellen;
- 4 das Konzept von Leitwerten mit unterschiedlicher Wertigkeit veranschaulicht;
- 5 synaptische Gewichte in einem KNN zeigt, die mithilfe eines analogen Speicherelements wie einem Kondensator implementiert werden, der mit dem Gate eines Lesetransistors zusammen mit Programmierungstransistoren (zum Addieren von Ladung zum und Subtrahieren von Ladung vom Kondensator) gemäß Signalen verbunden ist, die nachgelagerten und vorgelagerten Neuronen zugehörig sind;
- 6 höherwertige und niedrigerwertige Leitwertwertpaare zeigt, die mit einem gemeinsamen Vorspannungsleitwert verwendet werden; und
- 7 die Genauigkeit eines Leitwertpaars veranschaulicht, das die vorliegende Erfindung im Vergleich zu Systemen nach dem Stand der Technik darstellt.
-
BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
-
Diese Erfindung wird zwar in Bezug auf bevorzugte Ausführungsformen dargestellt und beschrieben, die Erfindung kann jedoch in vielen verschiedenen Konfigurationen umgesetzt werden. In den Zeichnungen sind bevorzugte Ausführungsformen der Erfindung dargestellt, die hierin ausführlich beschrieben werden, wobei sich versteht, dass die Beschreibung als Beispiel für die Grundgedanken der Erfindung und der zugehörigen funktionalen Spezifikationen für ihren Aufbau zu betrachten ist und die Erfindung nicht auf die beschriebenen Ausführungsformen beschränken soll. Für Fachleute ist offensichtlich, dass im Anwendungsbereich der Erfindung viele Änderungen möglich sind.
-
Ausführungsformen der hierin beschriebenen Erfindung tragen dazu bei, die Auswirkungen von Nichtlinearität und Asymmetrie in der Leitwertreaktion zu mildern, indem sie das synaptische Gewicht auf mehrere Leitwertpaare verteilen, die jeweils eine unterschiedliche Wertigkeit aufweisen. Jedes Paar trägt auf die übliche Weise zum synaptischen Gewicht durch den Unterschied zwischen einem erregenden Leitwert (G+) und einem hemmenden Leitwert (G-) bei. Der Beitrag jedes Paares variiert jedoch beim Verstärkungsfaktor, der am Ende der Bitleitungen implementiert ist, wo diese Paare addiert werden. Die beispielhafte Programmierung kann auf vielfältige Weise implementiert werden - in einer bestimmten Umsetzung wird das niedrigstwertige Leitwertpaar während des Netztrainings aktualisiert. Da ein Großteil des Gewichtswerts in der Regel im höherwertigen Leitwertpaar enthalten ist, könnte eines oder mehrere der niedrigerwertigen Leitwertpaare aus flüchtigen analogen Speicherelementen wie beispielsweise einem Kondensator bestehen, der mit dem Gate eines Lesetransistors verbunden ist. In diesem Fall ändert das Addieren oder Subtrahieren von Ladung zum bzw. vom Kondensator die Gatespannung des Lesetransistors und damit dessen tatsächlichen Leitwert. Im Falle von Leitwerten, die vollständig bidirektional sind und somit in Bezug auf den Leitwert sowohl erhöht als auch verringert programmiert werden können, könnte einer der Leitwerte in jedem Leitwertpaar von vielen verschiedenen Synapsen gemeinsam genutzt werden, wobei die gesamte individuelle synaptische Programmierung durch Anpassen des nicht gemeinsam genutzten Leitwerts erfolgt.
-
2 zeigt eine Anordnung, die mehr als ein Leitwertpaar pro Synapse aufweist, mit einem Satz von Paaren, bei denen der Lesestrom in Bezug auf den anderen um einen Faktor F verstärkt ist. In dieser Figur besteht jedes synaptische Gewicht aus zwei Leitwertpaaren. Das erste Paar trägt zum addierten Strom seines nachgelagerten Neurons am unteren Ende der Anordnung mit einem Verstärkungsfaktor F im Vergleich zum zweiten Paar bei. Dies bedeutet, dass ein großer Leitwertunterschied im zweiten Paar den gleichen Beitrag zum synaptischen Gesamtgewicht leistet wie ein kleiner Leitwertunterschied im ersten Paar.
-
Somit wird mit dieser Technik der gesamte Dynamikbereich der gesamten Synapse erhöht und die Verwendung eines schnellen, jedoch flüchtigen analogen Speicherelements mit einer lineareren und symmetrischeren Leitwertänderung als zweites oder niedrigerwertiges Leitwertpaar für die beispielhafte KNN-Programmierung ermöglicht, wobei die akkumulierte synaptische Gewichtsänderung von Zeit zu Zeit sorgfältig zu dem ersten Leitwertpaar übertragen wird. Es ist zu beachten, dass dies KEINE direkte Übereinstimmung mit höher- oder niedrigerwertigen Bits eines digitalen Wortes ist, da es hier mehrere analoge Konfigurationen der mehreren Leitwerte gibt, die genau das gleiche synaptische Gesamtgewicht darstellen. Ebenso ist der Übertragungsvorgang von einem niedriger- zu einem höherwertigen Leitwertpaar nicht dasselbe wie ein digitaler „Übertragvorgang“ (carry) in einem digitalen Addierer und kann bei Bedarf aufgrund der Redundanz bei der Abbildung von analogen Konfigurationen auf das synaptische Gesamtgewicht verzögert werden. In der Figur sind zwar nur zwei Leitwertpaare dargestellt, doch wäre eine Erweiterung auf drei oder mehr Paare ohne Weiteres möglich.
-
Wenn ein hohes synaptisches Gewicht erzeugt wird, wird diese Information von dem großen Leitwertunterschied im niedrigerwertigen Leitwertpaar zu einem kleineren (und damit leichter aufrechtzuerhaltenden) Leitwertunterschied im nächsthöherwertigen Leitwertpaar übertragen. Da die höherwertigen Leitwertpaare seltener aktualisiert werden, ist dieses hohe synaptische Gewicht nun besser vor dem Verlust durch die Nichtlinearitäten und Asymmetrien der Leitwerte geschützt, dennoch kann das Netz dieses Gewicht bei Bedarf noch verringern. Bis zu einem gewissen Grad hat das Netz dieses Gewicht in die höherwertigen Leitwertpaare „eingebracht“. 3 zeigt, dass dies die Leistung unter den gleichen Simulationsbedingungen (Annahmen über PCM-Fehler) nachweislich verbessert verglichen mit der experimentell nachgewiesenen Ausgangsleistung [siehe Arbeit zu Burr et al., vorstehend].
-
Wenn - wie in unseren bisherigen experimentellen Demonstrationen [siehe Arbeit zu Burr et al., vorstehend] - das Training bereits regelmäßig (z.B. nach 100 bis 1000 Beispielen) für ein „gelegentliches ZURÜCKSETZEN“ unterbrochen wird, stellt dies eine einsatzbereite Möglichkeit bereit, die Gewichtsübertragung zu integrieren. Da alle Leitwerte gemessen werden müssen, um diejenigen zu ermitteln, die ein ZURÜCKSETZEN benötigen (was sie von der „rechten Seite“ auf die „linke Seite“ der G-Raute verschiebt [siehe Arbeit zu Burr et al., vorstehend]), können wir mit der gleichen Messung auch die Gewichte ermitteln, die hoch sind, und eine Übertragung von Gewichtsinformationen vom niedrigerwertigen Leitwertpaar zum nächsthöherwertigen Leitwertpaar planen.
-
Alternativ könnte es sich bei dem niedrigerwertigen Leitwertpaar um ein flüchtiges analoges Speicherelement wie beispielsweise einen Kondensator handeln, der mit dem Gate eines Transistors verbunden ist, sofern mindestens eines der höherwertigen Leitwertpaare eine ausreichende Nichtflüchtigkeit aufweist, um die Gewichtsstabilität während des Trainings und des anschließenden Auslesens der trainierten Gewichte zu unterstützen.
-
4 veranschaulicht das Konzept von Leitwerten mit unterschiedlicher Wertigkeit. Zwei G-Rauten sind dargestellt, die mit dem Verstärkungsfaktor F vergrößert werden. Die vertikale Position auf diesen G-Rauten stellt somit den Beitrag zum synaptischen Gesamtgewicht dar. Während des Trainingsprozesses werden alle Leitwerte zusammen mit den zugehörigen Verstärkungsfaktoren für die Vorwärtsevaluierung und die Rückpropagierung verwendet, um durch einfaches Integrieren von Leseströmen das gewünschte synaptische Gewicht zu erhalten. Während der Programmierung können Gewichtsaktualisierungen in verschiedenen Systemen durchgeführt werden; in dem hier gezeigten Beispiel werden Gewichtsaktualisierungen nur für das niedrigerwertige Leitwertpaar durchgeführt. Der Übertragungsprozess kann in regelmäßigen Abständen eingeleitet werden.
-
Der Übertragungsprozess beinhaltet ein Messen beider Leitwerte des niedrigerwertigen Paares. In einem in 4 gezeigten Beispiel werden nur Leitwertpaare übertragen, bei denen der Unterschied zwischen den beiden Leitwerten groß ist. In anderen Beispielen wird der Leitwertunterschied zwischen den niedrigerwertigen Leitwertpaaren immer zum höherwertigen Paar übertragen. Beide niedrigerwertigen Leitwerte werden auf gleiche Leitwerte umprogrammiert, wodurch ihr gemeinsamer Beitrag zum synaptischen Gesamtgewicht auf null gebracht wird. Gleichzeitig werden eine oder mehrere der höherwertigen Leitwerte so umkonfiguriert, dass der synaptische Gesamtbeitrag von beiden Paaren im Wesentlichen unverändert bleibt. Aufgrund des Verstärkungsfaktors in Bezug auf den Beitrag des höherwertigen Paares ist die Leitwertänderung, die für eine ähnliche Auswirkung auf das Gesamtgewicht benötigt wird, F-mal kleiner als beim niedrigerwertigen Leitwertpaar.
-
In dem in 4 gezeigten Beispiel wird das normale Training von Zeit zu Zeit unterbrochen, um alle Leitwerte zu messen. Anschließend werden Leitwerte ermittelt, die der Ober- oder Unterseite der niedrigerwertigen („1x“) G-Raute entsprechen, wobei beide niedrigerwertigen Leitwerte ZURÜCKGESETZT werden, und wobei einer der höherwertigen Leitwerte iterativ EINGESTELLT wird, bis das gleiche tatsächliche Gewicht erreicht ist. Das Gewicht sei beispielsweise F w2 + w1, und es wird davon ausgegangen, dass sich w1 nach dem Training erhöht hat (wie im Leitwertschaubild G+, G- gezeigt), w1 auf 0 heruntergesetzt wird und w2 durch Δw2=w1/F erhöht wird (wie im Leitwertschaubild G2 +, G2 - gezeigt). Solche Umkonfigurationen der Leitwerte ermöglichen es, das Gewicht besser vor NVM-Fehlern zu schützen.
-
Auch in alternativen Beispielen, in denen eine bidirektionale Leitwertänderung eines beliebigen Leitwerts möglich ist, kann ein Teil jedes Leitwertpaares von mehreren Synapsen gemeinsam genutzt werden, wobei die gesamte Programmierung (Gewichtsaktualisierung und Gewichtsübertragung) bei dem eindeutigen oder nicht gemeinsamen genutzten Leitwert stattfindet.
-
Da diese Technik jedes zufällige Leserauschen auf dem höherwertigen Leitwertpaar verstärkt, ist zu beachten, dass es wahrscheinlich eine Grenze für den größten Verstärkungsfaktor gibt, der verwendet werden sollte. Darüber hinaus führen diese Verstärkungsfaktoren dazu, dass geschädigte Leitwerte, die in einem hohen Leitwertzustand „feststecken“, für die Leistung des neuronalen Netzes noch problematischer sind als in der Konfiguration nach dem Stand der Technik. Es ist jedoch zu beachten, dass Leitwerte zum Schutz vor ausgefallenen Zugriffseinheiten absichtlich in einen niedrigen Leitwertzustand versetzt werden können (siehe z.B. die
US-Patentschrift 8 811 060 zu Burr et al.) und daher leicht angepasst werden können, um die Anzahl solcher „feststeckenden“ Leitwerte stark zu verringern.
-
In einer Ausführungsform stellt die vorliegende Erfindung ein Verfahren bereit, das in einem künstlichen neuronalen Netz (KNN) implementiert wird, wobei das KNN eine Mehrzahl von Neuronen aufweist, die in Schichten angeordnet sind, wobei die Ausgänge einer Schicht mit den Eingängen einer Mehrzahl der Neuronen einer nachfolgenden Schicht verbunden sind, wobei die Neuronen über eine Mehrzahl von Synapsen miteinander verbunden sind, wobei jede der Synapsen ein synaptisches Gewicht aufweist, das eine Verbindungsstärke zwischen zwei verbundenen Neuronen codiert, wobei die Höhe des synaptischen Gewichts jeder Synapse durch einen gewichteten Stromfluss von mehreren Leitwertpaaren dargestellt wird, wobei eine Mehrzahl von Trainingsbeispielen seriell in das KNN eingegeben wird, während der Ausgang überwacht wird, wobei ein Rückpropagierungsalgorithmus das synaptische Gewicht als Reaktion auf den Unterschied zwischen dem Ausgang einer bestimmten Schicht und einem gewünschten Ausgang von dieser Schicht aktualisiert, wobei das Verfahren aufweist: (a) regelmäßiges Übertragen eines Teils des synaptischen Gewichts von einem niedrigerwertigen Leitwertpaar zu einem höherwertigen Leitwertpaar, sodass das synaptische Gesamtgewicht im Wesentlichen unverändert bleibt; und (b) Wiederholen der Trainingsbeispiele, bis sich der Netzausgang dem gewünschten Ausgang innerhalb einer zuvor festgelegten Genauigkeit annähert.
-
In einer anderen Ausführungsform stellt die vorliegende Erfindung ein Verfahren bereit, das in einem künstlichen neuronalen Netz (KNN) implementiert wird, wobei das KNN eine Mehrzahl von Neuronen aufweist, die in Schichten angeordnet sind, wobei die Ausgänge einer Schicht mit den Eingängen einer Mehrzahl der Neuronen einer nachfolgenden Schicht verbunden sind, wobei die Neuronen über eine Mehrzahl von Synapsen miteinander verbunden sind, wobei jede der Synapsen ein synaptisches Gewicht aufweist, das eine Verbindungsstärke zwischen zwei verbundenen Neuronen codiert, wobei die Höhe des Gewichts jeder der Synapsen durch einen gewichteten Stromfluss von mehreren Leitwertpaaren dargestellt wird, wobei jedes der mehreren Leitwertpaare einen gemeinsamen Beitrag darstellt und ein höherwertiges Leitwertpaar und ein niedrigerwertiges Leitwertpaar aufweist, wobei eine Mehrzahl von Trainingsbeispielen seriell in das KNN eingegeben wird, während der Ausgang von der Schicht überwacht wird, wobei das Verfahren aufweist: (a) Unterbrechen des Trainings und Messen der Leitwerte in analogen Speicherelementen im KNN; (b) Ermitteln mindestens eines gemessenen Leitwerts in einem bestimmten Leitwertpaar, dessen absoluter Wert um einen zuvor festgelegten Wert höher als der paarige Leitwert ist; und (c) Umkonfigurieren der niedrigerwertigen Leitwertpaare als im Wesentlichen gleichwertig, was einem gemeinsamen Beitrag zu einem synaptischen Gesamtwert von null entspricht, und Umkonfigurieren eines der höherwertigen Leitwertpaare, bis ein ähnlicher tatsächlicher synaptischer Gewichtswert erreicht ist.
-
In einem in 5 gezeigten Beispiel werden synaptische Gewichte in einem KNN mithilfe eines analogen Speicherelements wie beispielsweise einem Kondensator (Cg) implementiert, der mit dem Gate eines Lesetransistors (mLesen) zusammen mit der Programmierungsschaltung wie beispielsweise einem Block Ladung addieren und einem Block Ladung subtrahieren, die einen oder mehrere Transistoren aufweisen, verbunden ist, um Ladung zum bzw. Ladung vom Kondensator (Cg) gemäß Signalen zu addieren bzw. zu subtrahieren, die nachgelagerten und vorgelagerten Neuronen zugehörig sind: Vorgelagert-ADDIEREN, Vorgelagert-SUBTRAHIEREN, Nachgelagert-ADDIEREN bzw. Nachgelagert-SUBTRAHIEREN. In einem solchen Szenario wird ein Element jedes Paares (von Leitwertpaaren) in vielen Synapsen gemeinsam verwendet, und das niedrigerwertige Leitwertpaar kann aus einem flüchtigen analogen Speicher (anstelle eines nichtflüchtigen Speichers) bestehen, der einen Kondensator (Cg) aufweist, der mit dem Gate eines Lesetransistors (mLesen) verbunden ist (z.B. Modulieren seines tatsächlichen Leitwerts). Ein Block LADEN (der eine Kombination von Widerständen und/oder Transistoren aufweist) kann in Reihe mit dem Lesetransistor (mLesen) geschaltet werden, um den maximalen Lesestrom zu begrenzen.
-
Beispiele können beides beinhalten, wie in 6 gezeigt, d.h. zwei PCM als höherwertig, ein 3T+1C-Leitwert in jeder Synapse, z.B. „g+“, und anschließend verwenden alle 8 oder 16 Synapsen eine zusätzliche 3T+1C-Einheitszelle gemeinsam, z.B. „g-“. In solchen Beispielen ist ein Transistor der Lesetransistor, dessen Leitwert durch die Spannung des analogen Kondensators moduliert wird, und ein Transistor dient zum Isolieren des Kondensators, außer wenn er seine Spannung anhebt (Ladung addieren), und ein anderer Transistor wird zum Isolieren verwendet, außer wenn er seine Spannung herunterzieht (Ladung entfernen).
-
7 veranschaulicht Simulationen, die die Leistungsfähigkeit eines Ansatzes mit mehreren Leitwertpaaren zeigen, der die vorliegende Erfindung im Vergleich zum Stand der Technik realisiert. Dargestellt sind die Trainingsgenauigkeit in Abhängigkeit von der Trainingsepoche (wie oft das Netz dieselben 5000 Trainingsbeispiele erhalten hat) sowie die endgültige Testgenauigkeit (Sternsymbole am rechten Rand des Schaubilds). Die blaue Kurve und die Symbole zeigen unsere übereinstimmende Simulation aus unserer Publikation nach dem Stand der Technik (ein Paar PCM-Einheiten mit nichtlinearer Leitwertreaktion, IEDM 2014), während die rote Kurve den simulierten Effekt der Verwendung von zwei Paaren ähnlich nichtlinearer PCM-Einheiten zeigt, wobei das Gewicht periodisch vom niedrigerwertigen Leitwertpaar zum höherwertigen Leitwertpaar übertragen wird. Die Leistung ist besser, weil der tatsächliche Dynamikbereich größer ist und weil große, vom Netz erzeugte Gewichtswerte besser vor unbeabsichtigtem Gewichtsverlust geschützt sind, der sonst durch die Fehler der PCM-Einheiten verursacht werden könnte. Die unteren Kurven stellen einfach die gleichen Daten aus der oberen Darstellung dar, jedoch auf einer logarithmischen Skala, die die vertikale Achse für hohe Genauigkeitswerte ausdehnt.
-
Die Ausführungsformen der vorliegenden Erfindung, die hierin beschrieben werden, stellen eine wirksame Implementierung eines Systems und eines Verfahrens zum Aufbauen synaptischer Gewichte für künstliche neuronale Netze aus mit Vorzeichen versehenen, analogen Leitwertpaaren unterschiedlicher Wertigkeit bereit. Zwar wurden verschiedene bevorzugte Ausführungsformen der vorliegenden Erfindung gezeigt und beschrieben, es versteht sich jedoch, dass die Erfindung nicht auf solche Ausführungsformen beschränkt werden soll, sondern dass sie vielmehr alle Änderungen abdecken soll, die in den Anwendungsbereich der Erfindung fallen, wie in den beigefügten Ansprüchen definiert.
-
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
-
- Rumelhart et.al., „Learning Internal Representations by Error Propagation“, Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Bd. 1, 1986 [0004]
- Burr et al., „Experimental demonstration and tolerancing of a large scale neural network (165,000 synapses), using phase-change memory as the synaptic weight element“, IEDM Technical Digest, 2014 [0004]