DE112018002950T5 - System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit - Google Patents

System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit Download PDF

Info

Publication number
DE112018002950T5
DE112018002950T5 DE112018002950.6T DE112018002950T DE112018002950T5 DE 112018002950 T5 DE112018002950 T5 DE 112018002950T5 DE 112018002950 T DE112018002950 T DE 112018002950T DE 112018002950 T5 DE112018002950 T5 DE 112018002950T5
Authority
DE
Germany
Prior art keywords
conductance
knn
neurons
synaptic
pairs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112018002950.6T
Other languages
English (en)
Other versions
DE112018002950B4 (de
Inventor
Geoffrey Burr
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112018002950T5 publication Critical patent/DE112018002950T5/de
Application granted granted Critical
Publication of DE112018002950B4 publication Critical patent/DE112018002950B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Semiconductor Memories (AREA)
  • Image Analysis (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

Bei künstlichen neuronalen Netzen (KNN) handelt es sich um ein verteiltes Datenverarbeitungsmodell, bei dem die Berechnung mit zahlreichen einfachen Verarbeitungseinheiten, sogenannten Neuronen, mit Daten, die durch die Verbindungen zwischen Neuronen dargestellt werden, sogenannten Synapsen, und durch die Stärke dieser Verbindungen, den synaptischen Gewichten, durchgeführt wird. Bei einer interessanten Implementierung von KNN wird der Leitwert von nichtflüchtigen Speicherelementen (NVM-Elementen) verwendet, um das synaptische Gewicht aufzuzeichnen, wobei der wichtige Schritt der Multiplikation und Akkumulation an Ort und Stelle an den Daten durchgeführt wird. In dieser Anwendung führen die nichtidealen Zustände im Hinblick auf die Reaktion des NVM wie Nichtlinearität, Sättigung, Stochastik und Asymmetrie als Reaktion auf Programmierimpulse zu einer verminderten Netzleistung im Vergleich zu einer idealen Netzimplementierung. Es wird ein Verfahren gezeigt, das die Leistung verbessert, indem es das synaptische Gewicht auf mehrere Leitwerte von unterschiedlicher Wertigkeit verteilt und Übertragschritte zwischen niedrigerwertigen, mit einem Vorzeichen versehenen, analogen Leitwertpaaren und höherwertigen analogen Leitwertpaaren implementiert.

Description

  • 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
    • US 8811060 [0024]
  • 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]

Claims (9)

  1. Verfahren, 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: 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 Wiederholen der Trainingsbeispiele, bis sich der Netzausgang dem gewünschten Ausgang innerhalb einer zuvor festgelegten Genauigkeit annähert.
  2. Verfahren nach Anspruch 1, wobei jedes der mehreren Leitwertpaare einen gemeinsamen Beitrag darstellt, 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 erhalten wird.
  3. Verfahren nach Anspruch 2, wobei einige der synaptischen Gewichte in einem KNN mithilfe eines Kondensators 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.
  4. Verfahren nach einem der vorherigen Ansprüche, wobei die Neuronen mit CMOS-Schaltungen implementiert werden.
  5. Verfahren nach einem der vorherigen Ansprüche, wobei die synaptischen Gewichte in dem KNN mithilfe eines nichtflüchtigen Speichers (NVM) implementiert werden.
  6. Verfahren nach einem der vorherigen Ansprüche, wobei der NVM aus der Gruppe ausgewählt wird, die besteht aus: Phasenwechselspeicher, resistiver Direktzugriffsspeicher und Conductive-Bridging-Direktzugriffsspeicher.
  7. Verfahren nach Anspruch 1 oder 2, wobei das KNN als Teil einer Anwendung verwendet wird, die aus der Gruppe ausgewählt wird, die besteht aus: Mustererkennungsanwendungen, Bilderkennungsanwendungen, Spracherkennungsanwendungen und Sprachverarbeitungsanwendungen.
  8. Verfahren nach Anspruch 1, wobei die synaptischen Gewichte in dem KNN mithilfe eines analogen Speicherelements implementiert werden.
  9. Verfahren nach Anspruch 1, wobei einige der synaptischen Gewichte in einem KNN mithilfe eines Kondensators implementiert werden, der mit dem Gate eines Lesetransistors verbunden ist, wobei das Gate des Lesetransistors ebenfalls mit einem ersten Satz von Programmierungstransistoren verbunden ist, um Ladung zum Kondensator zu addieren, und einem zweiten Satz von Transistoren, um Ladung vom Kondensator zu subtrahieren, wobei das Addieren und Subtrahieren gemäß Signalen erfolgt, die nachgelagerten und vorgelagerten Neuronen zugehörig sind.
DE112018002950.6T 2017-07-26 2018-06-27 System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit Active DE112018002950B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/660,945 2017-07-26
US15/660,945 US11270194B2 (en) 2017-07-26 2017-07-26 System and method for constructing synaptic weights for artificial neural networks from signed analog conductance-pairs of varying significance
PCT/IB2018/054758 WO2019021081A1 (en) 2017-07-26 2018-06-27 SYSTEM AND METHOD FOR CONSTRUCTING SYNAPTIC WEIGHTS FOR ARTIFICIAL NEURAL NETWORKS FROM PAIRS OF SIGNED ANALOGUE CONDUCTANCES OF VARIABLE SIGNIFICANCE

Publications (2)

Publication Number Publication Date
DE112018002950T5 true DE112018002950T5 (de) 2020-04-02
DE112018002950B4 DE112018002950B4 (de) 2024-06-20

Family

ID=65038048

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018002950.6T Active DE112018002950B4 (de) 2017-07-26 2018-06-27 System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit

Country Status (6)

Country Link
US (1) US11270194B2 (de)
JP (1) JP7095069B2 (de)
CN (1) CN110945535B (de)
DE (1) DE112018002950B4 (de)
GB (1) GB2579494B (de)
WO (1) WO2019021081A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11074499B2 (en) * 2017-11-20 2021-07-27 International Business Machines Corporation Synaptic weight transfer between conductance pairs with polarity inversion for reducing fixed device asymmetries
US11651231B2 (en) 2019-03-01 2023-05-16 Government Of The United States Of America, As Represented By The Secretary Of Commerce Quasi-systolic processor and quasi-systolic array
US11054997B2 (en) * 2019-08-12 2021-07-06 Micron Technology, Inc. Artificial neural networks in memory
KR102427975B1 (ko) * 2020-01-09 2022-08-01 포항공과대학교 산학협력단 트랜지스터로 가중치를 조절할 수 있는 컨덕턴스 기반 순차 행렬 곱셈 뉴럴 네트워크
US11200948B1 (en) * 2020-08-27 2021-12-14 Hewlett Packard Enterprise Development Lp System for a flexible conductance crossbar
KR102612011B1 (ko) * 2021-03-24 2023-12-07 광운대학교 산학협력단 인공 신경망 소자 및 이의 동작 방법
CN117581234A (zh) * 2021-05-07 2024-02-20 Hrl实验室有限责任公司 神经形态存储器电路和人工神经网络的神经发生的方法
US11557343B2 (en) 2021-06-22 2023-01-17 International Business Machines Corporation Pulsing synaptic devices based on phase-change memory to increase the linearity in weight update
KR102574156B1 (ko) * 2021-07-06 2023-09-01 고려대학교 산학협력단 역전파와 음수 가중치 설정이 가능한 뉴로모픽 회로
WO2023059265A1 (en) * 2021-10-08 2023-04-13 Agency For Science, Technology And Research Neural processing core, method of programming a synaptic memory array thereof and method of performing neural network inference thereon
US20240192921A1 (en) * 2022-12-09 2024-06-13 International Business Machines Corporation Fixed asymmetry compensation for multiply and accumulate operations

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5083044A (en) * 1989-03-10 1992-01-21 Synaptics, Incorporated Synaptic element and array
DE69518326T2 (de) 1995-10-13 2001-01-18 St Microelectronics Srl Niederspannungsneuronalnetzwerk mit sehr niedrigem Leistungsverbrauch
JP3305267B2 (ja) 1998-08-07 2002-07-22 株式会社モノリス シナプス素子、しきい値回路およびニューロン装置
WO2010133925A1 (en) 2009-05-20 2010-11-25 Universite Paris Sud (Paris 11) Teaching method for a neuronal nano- block
US9665822B2 (en) 2010-06-30 2017-05-30 International Business Machines Corporation Canonical spiking neuron network for spatiotemporal associative memory
FR2977351B1 (fr) 2011-06-30 2013-07-19 Commissariat Energie Atomique Methode d'apprentissage non supervise dans un reseau de neurones artificiel a base de nano-dispositifs memristifs et reseau de neurones artificiel mettant en oeuvre la methode.
WO2013167780A1 (es) 2012-05-10 2013-11-14 Consejo Superior De Investigaciones Científicas (Csic) Método y sistema conversor de red neuronal de procesado por impulsos con sinapsis de integración instantánea en integración con sinapsis dinámica
GB201209174D0 (en) 2012-05-25 2012-07-04 Univ Bath Neural network
US8811060B2 (en) 2012-05-31 2014-08-19 International Business Machines Corporation Non-volatile memory crosspoint repair
CN103078054B (zh) 2013-01-04 2015-06-03 华中科技大学 一种模拟生物神经元和神经突触的单元、装置及方法
CN103078055B (zh) 2013-01-04 2015-06-03 华中科技大学 一种模拟生物神经突触的单元、装置及方法
US20150019468A1 (en) 2013-07-09 2015-01-15 Knowmtech, Llc Thermodynamic computing
US10055434B2 (en) 2013-10-16 2018-08-21 University Of Tennessee Research Foundation Method and apparatus for providing random selection and long-term potentiation and depression in an artificial network
US10460237B2 (en) 2015-11-30 2019-10-29 International Business Machines Corporation Neuron-centric local learning rate for artificial neural networks to increase performance, learning rate margin, and reduce power consumption
CN106815636B (zh) * 2016-12-30 2019-03-05 华中科技大学 一种基于忆阻器的神经元电路
CN106909924B (zh) * 2017-02-18 2020-08-28 北京工业大学 一种基于深度显著性的遥感影像快速检索方法

Also Published As

Publication number Publication date
US11270194B2 (en) 2022-03-08
JP2020528611A (ja) 2020-09-24
WO2019021081A1 (en) 2019-01-31
US20190034788A1 (en) 2019-01-31
DE112018002950B4 (de) 2024-06-20
GB2579494A (en) 2020-06-24
GB2579494B (en) 2022-03-30
CN110945535A (zh) 2020-03-31
JP7095069B2 (ja) 2022-07-04
CN110945535B (zh) 2024-01-26
GB202001857D0 (en) 2020-03-25

Similar Documents

Publication Publication Date Title
DE112018002950B4 (de) System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit
DE112018004992B4 (de) Übertragung synaptischer gewichte zwischen leitfähigkeitspaaren mitpolaritätsumkehr zum verringern fester einheitenasymmetrien
DE112018000272T5 (de) Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze
DE112019000437B4 (de) Architektur einer resistiven verarbeitungseinheit mit voneinander getrennter gewichtungsaktualisierungs- und inferenzschaltung
DE102019116305A1 (de) Pipelining zur verbesserung der inferenzgenauigkeit neuronaler netze
DE69028941T2 (de) Elektronische Schaltung zur analogen Multiplikation, differentiellen Verstärkung oder Ladungsakkumulation
DE112011101370T5 (de) Neuronales Netz mit kanonischen gepulsten Neuronen für einen raumzeitlichen Assoziativspeicher
DE68925156T2 (de) Integrierte Halbleiterschaltung für neurales Netzwerk
DE2300320C2 (de) Elektronische Anordnung zum Verstärken von Analogsignalen mit einem Signalverstärker
DE112018004693T5 (de) Verbessern der effizienz eines neuronalen netzes
DE112019000226T5 (de) Neuromorpher chip zum aktualisieren präziser synaptischer gewichtswerte
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE112018000723T5 (de) Aktualisierungsverwaltung für eine RPU-Anordnung
DE112019003326T5 (de) Speichererweiterte neuronale netzwerkarchitekturen eines codierers-decodierers
DE112017004156T5 (de) Speicherzellenstruktur
DE112012005565T5 (de) Elektronische Synapsen aus stochastischen binären Speichereinheiten
DE102020101275A1 (de) Rechenvorrichtung zum Trainieren eines künstlichen neuronalen Netzwerkmodells, Verfahren zum Trainieren des künstlichen neuronalen Netzwerkmodells und Speichersystem zum Speichern desselben
DE19635758C1 (de) Verfahren und Vorrichtung zur rechnergestützten Generierung mindestens eines künstlichen Trainingsdatenvektors für ein neuronales Netz
DE102021123580A1 (de) Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements
DE112021001968T5 (de) Driftregularisierung zum entgegenwirken einer variation in driftkoeffizienten für analoge beschleuniger
DE112021003881T5 (de) Online-training von neuronalen netzen
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
EP3740911B1 (de) Verfahren zur modellierung eines systems mittels eines quantencomputers
DE112020002547T5 (de) Rausch- und signalverwaltung für rpu-array

Legal Events

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