DE112021001968T5 - Driftregularisierung zum entgegenwirken einer variation in driftkoeffizienten für analoge beschleuniger - Google Patents

Driftregularisierung zum entgegenwirken einer variation in driftkoeffizienten für analoge beschleuniger Download PDF

Info

Publication number
DE112021001968T5
DE112021001968T5 DE112021001968.6T DE112021001968T DE112021001968T5 DE 112021001968 T5 DE112021001968 T5 DE 112021001968T5 DE 112021001968 T DE112021001968 T DE 112021001968T DE 112021001968 T5 DE112021001968 T5 DE 112021001968T5
Authority
DE
Germany
Prior art keywords
loss
weights
neural network
artificial neural
series
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021001968.6T
Other languages
English (en)
Inventor
Hsin Yu Tsai
Sanjay Kariyappa
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 DE112021001968T5 publication Critical patent/DE112021001968T5/de
Pending legal-status Critical Current

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/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Complex Calculations (AREA)
  • Particle Accelerators (AREA)
  • Control Of Throttle Valves Provided In The Intake System Or In The Exhaust System (AREA)
  • Feedback Control In General (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Semiconductor Memories (AREA)

Abstract

Es wird eine Driftregularisierung zum Entgegenwirken einer Variation in Driftkoeffizienten in analogen neuronalen Netzen bereitgestellt. Es wird ein Verfahren zum Trainieren eines künstlichen neuronalen Netzes veranschaulicht. Eine Mehrzahl von Gewichten wird nach dem Zufallsprinzip initialisiert. Jedes aus der Mehrzahl von Gewichten entspricht einer Synapse eines künstlichen neuronalen Netzes. Mindestens eine Reihe von Eingangssignalen wird in das künstliche neuronale Netz eingegeben. Mindestens eine Reihe von Ausgangssignalen wird durch das künstliche neuronale Netz auf der Grundlage der mindestens einen Reihe von Eingangssignalen und der Mehrzahl von Gewichten bestimmt. Die mindestens eine Reihe von Ausgangssignalen wird mit Ground-Truth-Daten verglichen, um einen ersten Verlust zu bestimmen. Ein zweiter Verlust wird durch Hinzufügen einer Driftregularisierung zu dem ersten Verlust bestimmt. Die Driftregularisierung ist positiv korreliert mit einer Varianz der mindestens einen Reihe von Ausgangssignalen. Die Mehrzahl von Gewichten wird auf der Grundlage des zweiten Verlustes durch Rückwärtspropagierung aktualisiert.

Description

  • HINTERGRUND
  • Ausführungsformen der vorliegenden Offenbarung betreffen analoge künstliche neuronale Netze und insbesondere eine Driftregularisierung zum Entgegenwirken einer Variation in Driftkoeffizienten.
  • KURZDARSTELLUNG
  • Gemäß Ausführungsformen der vorliegenden Offenbarung werden Verfahren und Computerprogrammprodukte zum Trainieren von künstlichen neuronalen Netzen bereitgestellt. In verschiedenen Ausführungsformen wird ein Verfahren zum Trainieren eines künstlichen neuronalen Netzes veranschaulicht. Eine Mehrzahl von Gewichten wird nach dem Zufallsprinzip initialisiert. Jedes aus der Mehrzahl von Gewichten entspricht einer Synapse eines künstlichen neuronalen Netzes. Mindestens eine Reihe von Eingangssignalen wird in das künstliche neuronale Netz eingegeben. Mindestens eine Reihe von Ausgangssignalen wird durch das künstliche neuronale Netz auf der Grundlage der mindestens einen Reihe von Eingangssignalen und der Mehrzahl von Gewichten bestimmt. Die mindestens eine Reihe von Ausgangssignalen wird mit Ground-Truth-Daten verglichen, um einen ersten Verlust zu bestimmen. Ein zweiter Verlust wird durch Hinzufügen einer Driftregularisierung zu dem ersten Verlust bestimmt. Die Driftregularisierung ist positiv korreliert mit einer Varianz der mindestens einen Reihe von Ausgangssignalen. Die Mehrzahl von Gewichten wird auf der Grundlage des zweiten Verlustes durch Rückwärtspropagierung aktualisiert.
  • Figurenliste
  • Ausführungsformen der Erfindung werden nun lediglich beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
    • 1 einen beispielhaften Berechnungsgraph für ein DNN gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 2 veranschaulicht eine beispielhafte Hardware-Umsetzung eines DNN gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 3A bis 3B veranschaulichen ein beispielhaftes Crossbar-Array gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 4 ist ein beispielhaftes Histogramm eines Driftkoeffizienten gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 5A bis 5B veranschaulichen eine Verteilung des abnehmenden Leitwertes als Funktion der Zeit gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 6 veranschaulicht ein beispielhaftes zweischichtiges künstliches neuronales Netz gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 7A bis 7D veranschaulichen eine Genauigkeit von beispielhaften Netzen im Zeitverlauf gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 8A bis 8D stellen Heatmaps bereit, die eine Klassifizierungsgenauigkeit/Perplexität mit verschiedenen Driftregularisierungsparametern gemäß Ausführungsformen der vorliegenden Offenbarung zeigen.
    • 9A bis 9D stellen Diagramme einer kumulativen Verteilung der Standardabweichung der Wahrscheinlichkeit einer richtigen Antwort gemäß Ausführungsformen der vorliegenden Offenbarung bereit.
    • 10A bis 10C stellen zusätzliche Heatmaps bereit, die eine Klassifizierungsgenauigkeit/Perplexität mit verschiedenen Driftregularisierungsparametern gemäß Ausführungsformen der vorliegenden Offenbarung zeigen.
    • 11A bis 11C stellen Kurven einer Genauigkeit im Zeitverlauf gemäß Ausführungsformen der vorliegenden Offenbarung bereit.
    • 12 veranschaulicht ein Verfahren zum Trainieren eines künstlichen neuronalen Netzes gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 13 zeigt einen Datenverarbeitungsknoten gemäß einer Ausführungsform der vorliegenden Offenbarung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Verschiedene Anwendungen von tiefen neuronalen Netzen (DNNs, Deep Neural Networks) erfordern, dass diese Modelle auf ressourcenbeschränkten Plattformen wie zum Beispiel Mobiltelefonen und Edge-Einheiten mit geringem Energiebudget laufen. Dies kann eine Herausforderung darstellen, da DNN-Modelle mit Klassifizierungsgenauigkeiten nach dem neuesten Stand der Technik hohe Rechen- und Speicheranforderungen stellen, wobei jeder Schlussfolgerungsdurchgang üblicherweise Millionen von multiplikativ-akkumulativen Arbeitsschritten erfordert. Um dieses Problem anzugehen, können digitale Beschleuniger eingesetzt werden, die im Vergleich zu CPUs und GPUs erhebliche Verbesserungen bei Geschwindigkeit und Energieeffizienz bieten. Digitale Beschleuniger können auf von Neumann-Architekturen beruhen, bei denen Daten in einem gesonderten Speicher außerhalb des Chips (normalerweise DRAM) gespeichert und auf den Chip übertragen werden, um Berechnungen durchzuführen. Ein Nachteil derartiger Ausgestaltungen besteht darin, dass die der Datenverschiebung zugehörige Energie letztlich häufig ein bestimmender Faktor ist, wodurch die erreichbare Energieeffizienz eingeschränkt wird.
  • Die analoge Berechnung mit speicherinterner Berechnung bietet eine Alternative zur Hardware-Beschleunigung von DNNs. Analoge Beschleuniger nutzen Crossbar-Array-Strukturen zum Speichern von Daten und zum Durchführen von Berechnungen im analogen Bereich unter Verwendung von resistiven Speichereinheiten. Beschleuniger können auf Phasenwechselspeicher (PCM, Phase Change Memory), Memristoren oder Widerstands-RAM (RRAM, Resistance RAM) beruhen. Die Möglichkeit, Berechnungen innerhalb des Speichers durchzuführen, führt zu einer erheblichen Verringerung der Datenverschiebungen und ermöglicht es analogen Beschleunigern, im Vergleich zu digitalen Ausgestaltungen eine um eine Größenordnung bessere Energieeffizienz zu erreichen.
  • PCM-Einheiten bieten mehrere Vorteile, wie zum Beispiel eine ausgereifte Prozesstechnologie, eine hohe Lebensdauer und einen großen Widerstandskontrast, der zu einer größeren Anzahl von Leitwert-Zwischenzuständen führt. Beim Codieren von DNN-Gewichten als Leitwerte können ein oder mehrere Paare von PCM-Einheiten verwendet werden, um jedes Gewicht darzustellen. Dies stellt eine Abdeckung sowohl positiver als auch negativer Gewichte bereit, verbessert den dynamischen Leitwertbereich und verringert die Auswirkungen von Rauschen der Einheit. Leitwert-Zwischenzustände in PCM-Einheiten werden durch Veränderung des Volumenverhältnisses zwischen der amorphen und der kristallinen Phase eines Chalkogenid-Materials erreicht. Die Schlussfolgerung des DNN kann mit Gewichten durchgeführt werden, die aus analogen Leitwerten berechnet werden, die von Arrays von PCM-Einheiten programmiert und gemessen werden. In einigen Umsetzungen werden sämtliche Berechnungen bei der Schlussfolgerung von DNNs innerhalb oder am Rande des Crossbar-Arrays im analogen Bereich durchgeführt, ohne dass Gewichte in eine gesonderte Recheneinheit verschoben oder Aktivierungen in eine digitale Bit-Darstellung umgewandelt werden müssen.
  • Wie bereits erwähnt, sind analoge KI-Beschleuniger, die auf Phasenwechselspeichern (PCM) beruhen, aufgrund der durch speicherinterne Berechnungen gebotenen Energieeffizienz nützlich für Schlussfolgerungen in Edge-Anwendungen. Leider können Rauschquellen, die PCM-Einheiten eigen sind, Ungenauigkeiten in den Gewichtswerten des tiefen neuronalen Netzes (DNN) verursachen, was zu einer Verschlechterung der Klassifizierungsgenauigkeit des Modells führt. PCM-Einheiten weisen insbesondere ein Phänomen auf, das als Leitwertdrift bezeichnet wird und bei dem die Leitwerte von PCM-Einheiten über einen bestimmten Zeitraum hinweg allmählich abnehmen und dabei einem Potenzgesetz folgen. Dieses Phänomen geht mit einer kontinuierlichen Entspannung der amorphen Phase des PCM-Materials einher. Die vorliegende Offenbarung stellt Verfahren bereit, mit denen der Trainingsalgorithmus rauschempfindlich gemacht werden kann, so dass Netze trainiert werden können, die trotz der Verfälschung von Gewichtswerten aufgrund von Leitwertdrifts eine hohe Klassifizierungsgenauigkeit beibehalten können.
  • Unter Bezugnahme auf 1 wird nun ein beispielhaftes Berechnungsschaubild für ein tiefes künstliches neuronales Netz (DNN) bereitgestellt.
  • Bei künstlichen neuronalen Netzen (KNN) handelt es sich um verteilte Datenverarbeitungssysteme, die aus einer Anzahl von Neuronen bestehen, die über Verbindungspunkte, so genannte Synapsen, miteinander verbunden sind. Jede Synapse codiert die Stärke der Verbindung zwischen dem Ausgangssignal eines Neurons und dem Eingangssignal eines anderen. Das Ausgangssignal jedes Neurons wird durch die Summe der Eingangssignale bestimmt, die von anderen Neuronen empfangen werden, die mit ihm verbunden sind. Somit beruht das Ausgangssignal eines bestimmten Neurons auf den Ausgangssignalen von mit ihm verbundenen Neuronen aus vorangegangenen Schichten und der Stärke der Verbindungen, die durch die synaptischen Gewichte bestimmt wird. Ein KNN wird darauf trainiert, ein bestimmtes Problem (z.B. Mustererkennung) zu lösen, indem die Gewichte der Synapsen so angepasst werden, dass eine bestimmte Klasse von Eingangssignalen ein gewünschtes Ausgangssignal erzeugt.
  • Für diesen Lernprozess können verschiedene Algorithmen verwendet werden. Bestimmte Algorithmen eignen sich möglicherweise für bestimmte Aufgaben wie zum Beispiel Bilderkennung, Spracherkennung oder Sprachverarbeitung. Trainingsalgorithmen führen zu einem Muster von synaptischen Gewichten, das sich während des Lernprozesses einer optimalen Lösung des gegebenen Problems annähert. Die Rückwärtspropagierung ist ein geeigneter Algorithmus für überwachtes Lernen, bei dem während des Lernprozesses ein bekanntes ordnungsgemäßes Ausgangssignal zur Verfügung steht. Das Ziel eines derartigen Lernprozesses ist es, ein System zu erhalten, das auf Daten verallgemeinert, die während des Trainierens nicht verfügbar waren.
  • Im Allgemeinen wird bei der Rückwärtspropagierung das Ausgangssignal des Netzes mit dem bekannten ordnungsgemäßen Ausgangssignal verglichen. Für jedes der Neuronen in der Ausgangsschicht wird ein Fehlerwert berechnet. Die Fehlerwerte werden, ausgehend von der Ausgangsschicht, rückwärts propagiert, um einen jedem Neuron zugehörigen Fehlerwert zu ermitteln. Die Fehlerwerte entsprechen dem Beitrag der einzelnen Neuronen zum Ausgangssignal des Netzes. Die Fehlerwerte werden dann zum Aktualisieren der Gewichte verwendet. Durch eine schrittweise Korrektur auf diese Weise wird das Ausgangssignal des Netzes so angepasst, dass es mit den Trainingsdaten übereinstimmt.
  • Man wird verstehen, dass eine Vielfalt von Fehlerkennzahlen in der Technik bekannt sind, zum Beispiel der Kreuz-Entropie-Verlust oder das Quadrat des euklidischen Abstands. Man wird ebenfalls verstehen, dass eine Vielfalt von Regularisierungsverfahren auf dem Fachgebiet bekannt sind, darunter L1 (Lasso-Regression) oder L2 (Ridge-Regression).
  • Beim Anwenden der Rückwärtspropagierung erreicht ein KNN schnell eine hohe Genauigkeit bei den meisten Beispielen in einem Trainingssatz. Der größte Teil der Zeit für das Trainieren wird dafür verwendet, zu versuchen, diese Testgenauigkeit weiter zu erhöhen. Während dieser Zeit führt eine große Anzahl der Trainingsdatenbeispiele zu einer geringen Korrektur, da das System bereits gelernt hat, diese Beispiele zu erkennen. Im Allgemeinen nimmt die Leistung von KNN mit der Größe des Datensatzes zwar zu, aber das lässt sich dadurch erklären, dass größere Datensätze mehr Grenzbeispiele zwischen den verschiedenen Klassen enthalten, anhand derer die das KNN trainiert wird.
  • Unter Bezugnahme auf 2 wird eine beispielhafte Hardware-Umsetzung eines DNN bereitgestellt. In diesem Beispiel verursacht Leitwertrauschen Fehler in den Gewichtswerten, wenn sie als Leitwerte (G) auf PCM-basierten analogen Beschleunigern codiert werden.
  • Abänderungen der Gewichtswerte aufgrund von Leitwertrauschen können zu einer schwerwiegenden Verschlechterung der Klassifizierungsgenauigkeit des Modells führen. So sinkt zum Beispiel die Genauigkeit eines dreischichtigen neuronalen Faltungsnetzes, das anhand des CIFAR-10-Datensatzes trainiert wurde, bei Vorhandensein von Leitwertrauschen innerhalb eines Monats um 15,6 %. Die Verschlechterung der Genauigkeit nimmt aufgrund der Auswirkungen des Driftrauschens weiter zu, was dazu führt, dass der Fehler bei den Gewichtswerten mit der Zeit zunimmt. Diese Verschlechterung der Klassifizierungsgenauigkeit stellt ein großes Hindernis für die Einführung von PCM-basierten analogen Beschleunigern als Ersatz für digitale Beschleuniger dar, wenn sie nicht angegangen wird.
  • Der Grund für diese Verschlechterung der Genauigkeit kann auf die Annahmen zurückgeführt werden, die während des Trainierens des DNN getroffen wurden. Beim herkömmlichen DNN-Training wird davon ausgegangen, dass die während einer Schlussfolgerung verwendeten DNN-Gewichte deterministische und identische Kopien der Gewichte in dem ursprünglich trainierten Modell sind. Abgesehen von Quantisierungsrauschen ist diese Annahme für Schlussfolgerungen unter Verwendung von digitaler Hardware allgemein gültig. Wird das trainierte Modell dagegen auf analoger Hardware für Schlussfolgerungen eingesetzt, verhalten sich Gewichte aufgrund von Leitwertrauschen wie Zufallsvariablen. Da es sich bei den Gewichten nicht mehr um echte Kopien der ursprünglichen Gewichte handelt, kann man nicht sicher sein, dass das abgeänderte Netz die hohe Klassifizierungsgenauigkeit des ursprünglichen Modells, die durch den Trainingsalgorithmus erhalten wurde, beibehält.
  • Der Genauigkeitsverlust aufgrund von Rauschen kann auf die Veränderung der relativen Stärken der Ausgangsneuronen in Gegenwart von Rauschen zurückgeführt werden. Die vorliegende Offenbarung zeigt, dass durch Verringern der Varianz dieser Neuronenwerte während des Trainierens die relative Stärke von Neuronen aufrechterhalten werden kann, wodurch die Verschlechterung der Klassifizierungsgenauigkeit verringert wird. Zu diesem Zweck wird eine Funktion zur Driftregularisierung bereitgestellt, um die Varianz von Neuronenwerten zu verringern und die Unempfindlichkeit gegen Rauschen des DNN zu verbessern.
  • Unter Bezugnahme auf 3 ist ein beispielhaftes Crossbar-Array gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Gewichte wij des DNN sind als Leitwerte G+ - G- codiert, und Eingangssignale x sind als Spannungen oder Spannungsimpulse codiert. In 3A wird eine Multiplikation xiwij unter Verwendung des Ohmschen Gesetzes I = GV durchgeführt, wodurch ein Strom I erzeugt wird, der das Produkt darstellt. In 3B erfolgt die Summierung der Produktterme Σnxiwij durch Addieren der Ströme entlang einer Spalte unter Anwendung des Kirchhoffschen Stromgesetzes.
  • DNNs bestehen aus einer Folge von Schichten, die jeweils einen Satz von Neuronen enthalten. Das Bewerten des Wertes jedes Neurons in einer Schicht geht damit einher, das innere Produkt zwischen einem Satz von Eingangsneuronen {xi} und den der Schicht zugehörigen Gewichten (wij) zu bilden und eine nichtlineare Funktion f anzuwenden, um die Ausgangsneuronen {yj} zu berechnen, wie nachstehend gezeigt ist. Man wird verstehen, dass eine Vielfalt von Funktionen f in verschiedenen Netzkonfigurationen eingesetzt wird, darunter eine ReLU. y j = ƒ ( n x i w i j )
    Figure DE112021001968T5_0001
  • Analoge Beschleuniger für DNN-Schlussfolgerungen werden unter Verwendung einer Crossbar-Struktur aus Widerstandselementen aufgebaut, wie in 3A gezeigt ist. Die aus dem trainierten DNN-Modell erhaltenen Gewichtswerte (w) können als Leitwerte (G) von analogen nichtflüchtigen Speichereinheiten, auch memristive Einheiten genannt, codiert werden. Zum Umrechnen von Gewichtswerten in Leitwerte wird ein Umrechnungsfaktor definiert, indem das Verhältnis zwischen der Größe des größten Gewichts in einer Schicht (wmax) und dem größten Leitwert Gmax gebildet wird, und dieser dann zum Umrechnen von Gewichtswerten in Leitwerte verwendet wird, wie nachstehend gezeigt ist. G i = G m a x w m a x w i
    Figure DE112021001968T5_0002
  • Da Gewichte sowohl positive als auch negative Werte annehmen können, werden Gewichte als Differenz zwischen den Leitwerten eines Paares von Einheiten (G+ und G-) codiert. Die Eingangsneuronen xi sind als Spannungen codiert und werden entlang der Reihen der Crossbar angelegt. Nach dem Prinzip des Ohmschen Gesetzes erzeugen die Einheiten in der i-ten Reihe Ströme, die proportional zu dem Produkt der Terme xi und wij sind, wie in 3A gezeigt ist. Die Summierung der Produktterme wird unter Verwendung des Kirchhoffschen Stromgesetzes durchgeführt, um die Ströme entlang der Spalte zu addieren. Die Ergebnisse werden am unteren Ende des Arrays gespeichert und können für die nachgeschaltete Verarbeitung der nächsten Schicht in dem DNN verwendet werden.
  • Im Gegensatz zu auf CMOS beruhenden digitalen Beschleunigern, die über getrennte Einheiten für Berechnungen und Speicher verfügen, verringern analoge Beschleuniger den Umfang von Datenverschiebungen, indem sie Berechnungen in dem Speicher durchführen. Dies führt zu einer deutlich höheren Energieeffizienz (G-Ops/Watt) im Vergleich zu digitalen Beschleunigern. Zusätzlich können mehrere Crossbar-Strukturen zusammengeschaltet werden, um alle Schichten des DNN pipelineartig zu verarbeiten, was einen Geschwindigkeits- und Durchsatzvorteil bereitstellt. Verschiedene memristive Einheiten wie ReRAM, MRAM und Flash können zum Aufbauen der Crossbar-Struktur verwendet werden.
  • Eine Einheit mit Phasenwechselspeicher (PCM) besteht in erster Linie aus einem Chalkogenid-Glasmaterial mit einem Heizelement. Durch die Zufuhr von Wärme, die durch elektrische Impulse erzeugt wird, kann die Phase des Materials zwischen kristallinen und amorphen Zuständen verändert werden. Je nach Phase des Materials ändert sich der Leitwert des Materials erheblich, und dies kann verwendet werden, um die Gewichtswerte des DNN zu codieren.
  • Wie bereits erwähnt, leiden PCM-Einheiten unter dem Phänomen von Leitwertdrift, wobei die Leitwerte der Einheiten mit der Zeit einem Potenzgesetz folgend abnehmen. Die Abnahme des Leitwertes wird nachstehend beschrieben. G ' ( t ) = G 0 ( t t 0 ) ν
    Figure DE112021001968T5_0003
    wobei ν ~ N ( μ , σ 2 )
    Figure DE112021001968T5_0004
  • Hier steht G0 für die anfängliche Messung des Leitwertes zum Zeitpunkt t0, und Gt(t) steht für den Leitwert zum Zeitpunkt t. Die Zeit wird ab dem Zeitpunkt gemessen, an dem das Programmieren der Einheit abgeschlossen ist. v ist ein einheitenspezifischer Parameter, der so genannte Driftkoeffizient, der die exponentielle Rate beschreibt, mit welcher der Leitwert mit der Zeit abnimmt.
  • Unter Bezugnahme auf 4 wird ein beispielhaftes Histogramm eines Driftkoeffizienten bereitgestellt. Die Verteilung des Driftkoeffizienten v wird durch Messen der Abnahmerate des Leitwertes der Einheit im Laufe der Zeit nach Anwendung mehrerer Programmierimpulse auf einen Satz von 20.000 PCM-Einheiten bestimmt. Die experimentell gemessenen Verteilungen werden über mehrere Versuche, mehrere Einheiten und verschiedene programmierte Leitwerte hinweg gemittelt. Zur Vereinfachung der Erklärung wird angenommen, dass für PCM-Einheiten in allen Leitfähigkeitszuständen die gleiche Normalverteilung mit einem Mittelwert von 0,031 und einer Standardabweichung von 0,007 gilt. Da v normalverteilt ist und wie oben gezeigt in dem Exponenten erscheint, folgt Gt(t) einer Log-Normalverteilung. Man wird verstehen, dass der obige Mittelwert und die obige Standardabweichung beispielhaft sind und die hierin beschriebenen Techniken nicht einschränken.
  • Unter Bezugnahme auf 5A wird ein Diagramm der Verteilung des abnehmenden Leitwertes als eine Funktion der Zeit bereitgestellt. Die gestrichelte Linie stellt den Mittelwert von Gt(t) dar. Der Leitwert (G) nimmt aufgrund von Drift mit der Zeit (t) ab und folgt einer vorstehend beschriebenen Log-Normalverteilung. 5B zeigt den Mittelwert der Verteilung, korrigiert durch Multiplizieren mit einem geeigneten Skalierungsfaktor.
  • Der Mittelwert dieser Verteilung kann korrigiert und auf den ursprünglichen Leitwert G0 zentriert werden, indem die dem Gewicht zugehörigen Produktterme mit einem geeigneten Skalierungsfaktor verstärkt werden. Dieser Skalierungsfaktor ändert sich zwar im Laufe der Zeit zusammen mit der mittleren Drift, aber für jeden Arbeitsschritt einer Schlussfolgerung zu einem bestimmten Zeitpunkt ist er eine skalare Konstante. Dies verändert die Log-Normalverteilung von Gt(t) so, dass sie einen Mittelwert von G0 aufweist, wie in 5B gezeigt ist. Da den Leit- (Gewichts-) Werten allerdings noch eine Verteilung zugehört, kann mit einer Verschlechterung der Genauigkeit aufgrund der Abweichung des Leitwertes von dem ursprünglichen Wert G0 gerechnet werden.
  • Durch Verringern der Varianz der Neuronenwerte bleiben die relativen Stärken der Neuronen erhalten. Zu diesem Zweck wird ein Driftregularisierungsterm in die Verlustfunktion einbezogen, um die Varianz der Neuronenwerte zu verringern und auf diese Weise die Unempfindlichkeit gegen Rauschen des DNN zu verbessern.
  • Wie vorstehend gezeigt, führt die Drift dazu, dass die Gewichtswerte/Leitwerte mit der Zeit abnehmen. Während der Mittelwert dieser Abnahme durch Multiplikation mit dem entsprechenden Korrekturfaktor korrigiert werden kann, führt die mit der Zeit zunehmende Varianz der Gewichtswerte dazu, dass die Genauigkeit schlechter wird. Die Verschlechterung der Klassifizierungsgenauigkeit des DNN aufgrund von Driftrauschen kann auf die Veränderung der relativen Stärke der Ausgangsneuronen zurückgeführt werden, was zu einer fehlerhaften Vorhersage führt. Betrachten wir zum Beispiel ein DNN, das für eine binäre Klassifizierungsaufgabe trainiert wird. Nehmen wir an, x sei ein Eingangssignal, das bei Abwesenheit von Rauschen ordnungsgemäß als Klasse A klassifiziert wird. Das bedeutet, dass das Ausgangsneuron, das der Klasse A (yA) zugehörig ist, einen höheren Wert als das Ausgangsneuron aufweist, das der Klasse B (yB) zugehörig ist, d.h. yA > yB. Bei Leitwertrauschen kann das Ausgangssignal allerdings in die Klasse B wechseln, wenn die Auswertung des Eingangssignals mit verrauschten Gewichtswerten zu yA < yB führt, was das DNN dazu veranlasst, das Eingangssignal fälschlicherweise als Klasse B zu klassifizieren. Auf diese Weise kann Rauschen in den Werten der Gewichte die relativen Stärken der Ausgangsneuronen verändern, was zu einer Verschlechterung der Klassifizierungsgenauigkeit des DNN führt. Die Wahrscheinlichkeit einer derartigen Neuanordnung lässt sich verringern, indem man die Varianz der Werte von Neuronen in Gegenwart von Leitwertrauschen verringert. In verschiedenen Ausführungsformen wird dies durch Abändern der Verlustfunktion erreicht, die während des Trainierens der DNNs verwendet wird, indem ein neuer Regularisierungsterm hinzugefügt wird.
  • Unter Bezugnahme auf 6 wird ein beispielhaftes zweischichtiges neuronales Netz mit sowohl ursprünglichen als auch durch Drift abgeänderten Werten von Neuronen und Gewichten veranschaulicht. Der Wert der Ausgangsneuronen ohne Rauschen ist nachstehend angegeben. y j = ƒ ( n x i w i )
    Figure DE112021001968T5_0005
  • Unter dem Einfluss von Driftrauschen werden die ursprünglichen Gewichte des Netzes wi auf wt abgeändert, wie nachstehend gezeigt ist. w i ' = w i d i
    Figure DE112021001968T5_0006
    wobei d i = ( t t 0 ) ν , ν ~ N ( 1 , σ d 2 )
    Figure DE112021001968T5_0007
  • Der Ausdruck für den Wert der Neuronen bei Vorhandensein von Driftrauschen ist nachstehend angegeben.   y ' j = ƒ ( n x i w i ' )   y ' j = ƒ ( n x i w i d i )   y ' j = ƒ ( n p i d i ) w o b e i   p i = x i w i
    Figure DE112021001968T5_0008
  • Bei der vorstehenden Gleichung handelt es sich um einen vereinfachten Ausdruck für die durch Drift abgeänderten Werte der Neuronen im Sinne der ursprünglichen Produktterme pi. Ein Ausdruck für die Standardabweichung der durch Drift abgeänderten Neuronenwerte kann wie folgt abgeleitet werden. S t d D e v ( y ' j ) = S t d D e v ( ƒ ( n p i d i ) ) σ y ' S t d D e v ( n p i d i )
    Figure DE112021001968T5_0009
  • Der Ausdruck für σy' kann vereinfacht werden, indem die Nichtlinearität f unter Verwendung einer Näherung erster Ordnung beseitigt wird, wie vorstehend gezeigt ist. Man beachte, dass diese Vereinfachung aus einer gewichteten Kombination von Termen di besteht. Da es sich bei sämtlichen Termen di um identisch verteilte Zufallsvariablen handelt, kann dieser Ausdruck wie folgt vereinfacht werden. σ y ' S t d D e v ( p 1 d 1 + p 2 d 2 + + p n d n ) σ y ' p 1 2 σ d 2 + p 2 2 σ d 2 + + p n 2 σ d 2 σ y ' n p i 2 σ d 2 σ y ' σ d n p i 2 σ y ' σ d p i 2
    Figure DE112021001968T5_0010
    wobei σ d = StdDev des Driftrauschens  d i
    Figure DE112021001968T5_0011
  • Der Ausdruck für die StdDev von y' hat zwei Terme: σd und ||pi||2 wie vorstehend beschrieben. Somit kann die StdDev von y' durch Verringern eines der beiden Terme oder beider Terme verringert werden. Man beachte, dass der erste Term σd durch die Eigenschaften der PCM-Einheiten bestimmt wird, und dass ein Verbessern dieses Terms mit einer Abänderung der PCM-Einheiten einhergehen würde. Im Gegensatz dazu ist der zweite Term ||pi||2 eine Funktion der Netzparameter und ist völlig unabhängig von den Eigenschaften der Einheit. Somit kann ||pi||2 durch Beeinflussen der Netzparameter verringert werden, wodurch der Wert der StdDev der Neuronen σy' entsprechend verringert wird. Zu diesem Zweck wird eine Regularisierungsfunktion bereitgestellt. Für jedes Neuron yj in dem DNN ist der Regularisierungsterm Rj wie folgt definiert. R j = p i 2
    Figure DE112021001968T5_0012
  • Um also zu fördern, dass die Neuronen in den DNNs bei Leitwertrauschen eine geringere Varianz aufweisen, kann die Verlustfunktion durch Verwendung eines zusätzlichen Driftregularisierungsterms abgeändert werden, wie nachstehend gezeigt ist. Ein Minimieren dieses Regularisierungsterms führt zu einer Verbesserung der Unempfindlichkeit gegen Rauschen durch Beibehaltung der relativen Stärken von Neuronen in Gegenwart von Leitwertrauschen. V e r l u s t = C e V e r l u s t + λ j R j 2
    Figure DE112021001968T5_0013
  • A steuert das Ausmaß der Bedeutung, die der vorstehenden Regularisierungsfunktion beigemessen wird. A wird als Hyperparameter behandelt, und es wird ein Durchlauf durchgeführt, um den Wert zu ermitteln, der die geringste Verschlechterung der Genauigkeit bei Leitwertrauschen bereitstellt. Die detaillierten Ergebnisse dieses Hyperparameter-Durchlaufs werden nachstehend vorgestellt.
  • Man wird verstehen, dass, obwohl verschiedene Beispiele hierin in Bezug auf ein zweischichtiges Netz erörtert werden, die vorliegende Offenbarung auf mehrschichtige Netze jeder beliebigen Größe anwendbar ist. In einigen Ausführungsformen mit einem mehrschichtigen Netz werden die Ausgangssignale (y) der Ausgabeschicht gemäß der vorstehenden Erörterung berücksichtigt. In anderen Ausführungsformen wird das Ausgangssignal auf jeder Schicht als y behandelt, und in diesem Fall werden die Terme R2 aus allen Schichten addiert, bevor sie mit dem Hyperparameter λ multipliziert werden.
  • Unter Bezugnahme auf die 7A bis 7E werden Diagramme für die Genauigkeit im Zeitverlauf in verschiedenen beispielhaften Ausführungsformen bereitgestellt. In diesen Diagrammen bedeutet die durchgezogene Linie kein Rauschen - ein hypothetisches Netz ohne Leitwertrauschen. Die gestrichelte Linie mit längeren Strichen stellt ein Referenznetz dar, das einer Leitwertdrift unterliegt. Die gestrichelte Linie mit kürzeren Strichen stellt ein Netz dar, das (mit dem besten Wert von λ) mit einer Driftregularisierung trainiert wurde. Die Driftregularisierung führt zu einer geringeren Verschlechterung der Klassifizierungsgenauigkeit/Perplexität im Vergleich zum Referenzsystem des Netzes.
  • Wie gezeigt, verschlechtert sich die Klassifizierungsgenauigkeit des auf CIFAR-10 trainierten Conv3-Netzes in einem Monat um 11,3 %, wenn es mit einer Driftregularisierung trainiert wird, im Vergleich zu einer Verschlechterung von 15,6 % für den Referenzfall. Diese Ergebnisse veranschaulichen, dass ein Verringern der Varianz von Neuronen durch Driftregularisierung dazu beitragen kann, die durch Leitwertrauschen verursachte Verschlechterung der Klassifizierungsgenauigkeit von DNNs zu verringern.
  • Unter Bezugnahme auf die 8A bis 8E werden Heatmaps bereitgestellt, welche die Klassifizierungsgenauigkeit/Perplexität im Vergleich zur Zeit für Netze zeigen, die mit verschiedenen Werten für den Driftregularisierungsparameter λ trainiert wurden. Ein Erhöhen des Wertes von λ verbessert die Leistung zum Zeitpunkt t = 1 Monat. Allerdings wird die Leistung beeinträchtigt, wenn λ zu groß ist.
  • Die Driftregularisierung verbessert die Unempfindlichkeit gegen Rauschen, indem sie die Varianz der Neuronenwerte bei Leitwertdrift durch die Verwendung eines Regularisierungsterms verringert. λ ist ein Hyperparameter, der die relative Bedeutung des Regularisierungsterms während des Trainierens steuert. In diesem Beispiel werden Modelle mit verschiedenen Werten des Driftregularisierungsparameters λ trainiert. Die Heatmaps in 8 zeigen die Genauigkeit/Perplexität des Netzes bei Leitwertrauschen als eine Funktion der Zeit auf der x-Achse. Die untere Reihe stellt einen Referenzfall mit λ = 0 dar. Das Diagramm zeigt die Genauigkeit von mit steigenden Werten von λ trainierten Netzen auf der y-Achse. Netze, die mit höheren Werten von A trainiert wurden, zeigen eine bessere Genauigkeit/Perplexität zum Zeitpunkt t = 1 Monat im Vergleich zu dem Referenzfall, was zeigt, dass die Driftregularisierung die Unempfindlichkeit des Netzes gegen Leitwertrauschen verbessert. Wenn der Wert von A zu hoch ist, verschlechtert sich die Leistung des DNN, wie in der obersten Reihe in den Heatmaps zu sehen ist.
  • Die 9A bis 9D zeigen Diagramme einer kumulativen Verteilung der Standardabweichung der Wahrscheinlichkeit einer richtigen Antwort. Die Driftregularisierung verringert die Standardabweichung (σ) der Neuronen und verbessert die Unempfindlichkeit des DNN gegen Rauschen.
  • Die Driftregularisierung verringert die Standardabweichung der Neuronenwerte bei Leitwertrauschen. Um die Auswirkung der Driftregularisierung auf die Standardabweichung von Neuronen zu bewerten, werden zwei Versionen des DNN betrachtet, eine mit und die andere ohne Driftregularisierung trainiert. Die Standardabweichung der Ausgabewahrscheinlichkeit der richtigen Klasse wird zwischen den beiden Netzen verglichen, gemessen unter Verwendung von mehreren Rauschproben für jedes Test-Eingangssignal. Betrachten wir zum Beispiel ein Test-Eingangssignal x, das als Klasse A gekennzeichnet ist. Eine Verteilung der Ausgabewahrscheinlichkeit der Klasse A mit dem Eingangssignal x wird über mehrere Versionen des Netzes hinweg erstellt, die durch Rauschproben erhalten werden. Die Standardabweichung des Ausgangssignals kann unter Verwendung dieser Verteilung ermittelt werden.
  • Die Standardabweichung der Ausgabewahrscheinlichkeit kann für alle Test-Eingangssignale in dem Datensatz berechnet werden, um eine kumulative Verteilung der Standardabweichungen für die beiden betrachteten Netze zu erstellen. Die Ergebnisse des Vergleichens der CDFs der richtigen Ausgabewahrscheinlichkeit für die Netze mit und ohne Driftregularisierung sind in den 9A bis 9D gezeigt. Wie gezeigt, neigen die Netze mit regularisierten Drifts dazu, im Vergleich zu dem Referenznetz über alle 3 betrachteten Netze hinweg eine geringere Standardabweichung der Ausgabewahrscheinlichkeiten aufzuweisen. Dementsprechend senkt die Driftregularisierung die Standardabweichung der Neuronen und sorgt auf diese Weise für eine bessere Rauschresistenz.
  • Unter Bezugnahme auf die 10A bis 10C werden zusätzliche Heatmaps bereitgestellt, welche die Klassifizierungsgenauigkeit/Perplexität im Zeitverlauf für Netze zeigen, die mit verschiedenen Werten für den Driftregularisierungsparameter λ trainiert wurden. In den 11A bis 11C sind für dieselben drei Netze entsprechende Graphen einer Genauigkeit im Zeitverlauf bereitgestellt.
  • Unter Bezugnahme auf 12 wird ein Verfahren zum Trainieren eines künstlichen neuronalen Netzes veranschaulicht. Bei 1201 wird eine Mehrzahl von Gewichten nach dem Zufallsprinzip initialisiert. Jedes aus der Mehrzahl von Gewichten entspricht einer Synapse eines künstlichen neuronalen Netzes. Bei 1202 wird mindestens eine Reihe von Eingangssignalen in das künstliche neuronale Netz eingegeben. Bei 1203 wird mindestens eine Reihe von Ausgangssignalen durch das künstliche neuronale Netz auf der Grundlage der mindestens einen Reihe von Eingangssignalen und der Mehrzahl von Gewichten bestimmt. Bei 1204 wird die mindestens eine Reihe von Ausgangssignalen mit Ground-Truth-Daten verglichen, um einen ersten Verlust zu bestimmen. Bei 1205 wird ein zweiter Verlust durch Hinzufügen einer Driftregularisierung zu dem ersten Verlust bestimmt. Die Driftregularisierung ist positiv korreliert mit einer Varianz der mindestens einen Reihe von Ausgangssignalen. Bei 1206 wird die Mehrzahl von Gewichten auf der Grundlage des zweiten Verlustes durch Rückwärtspropagierung aktualisiert.
  • Unter Bezugnahme auf 13 ist eine schematische Abbildung eines Beispiels eines Datenverarbeitungsknotens gezeigt. Der Datenverarbeitungsknoten 10 ist lediglich ein Beispiel eines geeigneten Datenverarbeitungsknotens und soll keinerlei Einschränkungen hinsichtlich des Anwendungsbereichs oder der Funktionalität von hierin beschriebenen Ausführungsformen andeuten. Trotzdem kann eine beliebige vorstehend dargelegte Funktionalität in dem Datenverarbeitungsknoten 10 umgesetzt und/oder von diesem durchgeführt werden.
  • In dem Datenverarbeitungsknoten 10 gibt es ein Computersystem/einen Server 12, das/der mit zahlreichen anderen Universal- oder Spezial-Datenverarbeitungssystem-Umgebungen bzw. -Konfigurationen betriebsfähig ist. Zu Beispielen für allgemein bekannte Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung mit dem Computersystem/Server 12 geeignet sein können, gehören unter anderem Personal Computer-Systeme, Server-Computersysteme, Thin-Clients, Thick-Clients, Handheld- oder Laptop-Geräte, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netz-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die irgendeine(s) der oben genannten Systeme bzw. Einheiten enthalten, und dergleichen, aber nicht darauf beschränkt.
  • Das Computersystem/der Server 12 kann in dem allgemeinen Kontext von durch Computersysteme ausführbaren Anweisungen wie zum Beispiel Programmmodulen beschrieben werden, die von einem Computersystem ausgeführt werden. Allgemein können zu Programmmodulen Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter gehören, die bestimmte Aufgaben durchführen bzw. bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen ausgeführt werden, wo Aufgaben durch entfernt angeordnete Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien befinden, darunter Speichereinheiten.
  • Wie in 13 gezeigt ist, ist das Computersystem/der Server 12 in dem Datenverarbeitungsknoten 10 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/Servers 12 können eine(n) oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemspeicher 28 und einen Bus 18 aufweisen, der verschiedene Systemkomponenten, darunter den Systemspeicher 28, mit dem Prozessor 16 verbindet, sind aber nicht darauf beschränkt.
  • Der Bus 18 stellt eine oder mehrere einer beliebigen von mehreren Arten von Busstrukturen dar, darunter ein Speicherbus oder eine Speichersteuereinheit, ein Peripheriebus, ein beschleunigter Grafikanschluss und ein Prozessor- oder lokaler Bus, die eine beliebige aus einer Vielfalt von Busarchitekturen verwenden. Zu derartigen Architekturen gehören als Beispiel und nicht als Einschränkung ein ISA-Bus (Industry Standard Architecture), ein MCA-Bus (Micro Channel Architecture), ein EISA-Bus (Enhanced ISA), ein VESA-Lokalbus (Video Electronics Standards Association), ein PCI-Bus (Peripheral Component Interconnect), Peripheral Component Interconnect Express (PCIe) und Advanced Microcontroller Bus Architecture (AMBA).
  • Das Computersystem/der Server 12 umfasst üblicherweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Bei derartigen Medien kann es sich um jedes beliebige verfügbare Medium handeln, auf welches das Computersystem/der Server 12 zugreifen kann, und es umfasst sowohl flüchtige als auch nichtflüchtige Medien, austauschbare und nicht austauschbare Medien.
  • Der Systemspeicher 28 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie zum Beispiel einen Direktzugriffsspeicher (RAM) 30 und/oder Cache 32 umfassen. Das Computersystem/der Server 12 kann darüber hinaus andere austauschbare/nicht austauschbare, flüchtige/nichtflüchtige Computersystem-Speichermedien umfassen. Lediglich als Beispiel kann ein Speichersystem 34 zum Lesen von und zum Schreiben auf ein nicht austauschbares, nichtflüchtiges magnetisches Medium bereitgestellt werden (das nicht gezeigt ist und üblicherweise „Festplattenlaufwerk“ genannt wird). Es können auch ein Magnetplattenlaufwerk zum Lesen von und zum Schreiben auf eine austauschbare, nichtflüchtige Magnetplatte (z.B. eine „Floppy-Diskette“) und ein optisches Plattenlaufwerk zum Lesen von oder zum Schreiben auf eine austauschbare, nichtflüchtige optische Platte wie zum Beispiel eine CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden, auch wenn diese nicht gezeigt sind. In derartigen Fällen können sie jeweils über eine oder mehrere Datenmedienschnittstellen mit dem Bus 18 verbunden sein. Wie nachfolgend weiter abgebildet und beschrieben wird, kann der Systemspeicher 28 mindestens ein Programmprodukt enthalten, das einen Satz von Programmmodulen (z.B. mindestens einen) aufweist, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Offenbarung ausführen.
  • Als Beispiel und nicht als Einschränkung können ein Programm/Dienstprogramm 40 mit (mindestens) einem Satz von Programmmodulen 42 sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten in dem Systemspeicher 28 gespeichert sein. Das Betriebssystem, das eine oder die mehreren Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine beliebige Kombination daraus können jeweils eine Umsetzung einer Netzumgebung aufweisen. Die Programmmodule 42 führen allgemein die Funktionen und/oder Methodiken von hierin beschriebenen Ausführungsformen aus.
  • Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 wie zum Beispiel einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw., einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 12 zu interagieren, und/oder beliebigen Einheiten (z.B. Netzkarten, Modems usw.) Daten austauschen, die es dem Computersystem/Server 12 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über Eingabe/Ausgabe- (E/A-) Schnittstellen 22 erfolgen. Außerdem kann das Computersystem/der Server 12 über einen Netzadapter 20 mit einem oder mehreren Netzen Daten austauschen, wie zum Beispiel einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netz (z.B. dem Internet). Wie dargestellt ist, tauscht der Netzadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 Daten aus. Es sollte klar sein, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten, auch wenn diese nicht gezeigt sind. Zu Beispielen gehören folgende, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Festplattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
  • Die vorliegende Offenbarung kann als ein System, ein Verfahren und/oder ein Computerprogrammprodukt ausgeführt sein. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Offenbarung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine auswechselbare 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 auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server umfassen. 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 Offenbarung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Offenbarung durchzuführen.
  • Aspekte der vorliegenden Offenbarung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt umfasst, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. 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 festgelegten logischen Funktion(en) umfassen. 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.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung wurden zum Zwecke der Veranschaulichung aufgeführt, sollen jedoch nicht gesamthaft stehen für bzw. begrenzt sein auf die offenbarten Ausführungsformen. Für den Fachmann werden viele Abänderungen und Abwandlungen ersichtlich sein, ohne von dem Umfang und dem Sinngehalt der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt vorgefundenen Technologien bestmöglich zu erläutern oder um es anderen Fachleuten zu ermöglichen, die hierin dargelegten Ausführungsformen zu verstehen.

Claims (19)

  1. Verfahren zum Trainieren eines künstlichen neuronalen Netzes, aufweisend: zufälliges Initialisieren einer Mehrzahl von Gewichten, wobei jedes der Mehrzahl von Gewichten einer Synapse eines künstlichen neuronalen Netzes entspricht; Eingeben mindestens einer Reihe von Eingangssignalen in das künstliche neuronale Netz; Bestimmen mindestens einer Reihe von Ausgangssignalen durch das künstliche neuronale Netz auf der Grundlage der mindestens einen Reihe von Eingangssignalen und der Mehrzahl von Gewichten; Vergleichen der mindestens einen Reihe von Ausgangssignalen mit Ground-Truth-Daten, um einen ersten Verlust zu bestimmen; Bestimmen eines zweiten Verlustes durch Hinzufügen einer Driftregularisierung zu dem ersten Verlust, wobei die Driftregularisierung positiv mit einer Varianz der mindestens einen Reihe von Ausgangssignalen korreliert ist; und Aktualisieren der Mehrzahl von Gewichten auf der Grundlage des zweiten Verlustes durch Rückwärtspropagierung.
  2. Verfahren nach Anspruch 1, wobei das künstliche neuronale Netz ein Crossbar-Array von Phasenwechsel-Speicherelementen aufweist.
  3. Verfahren nach Anspruch 1, wobei das künstliche neuronale Netz eine Mehrzahl von Schichten aufweist.
  4. Verfahren nach Anspruch 1, wobei der erste Verlust ein Kreuzentropieverlust ist.
  5. Verfahren nach Anspruch 1, wobei das Bestimmen des ersten Verlustes eine Regularisierung aufweist.
  6. Verfahren nach Anspruch 1, aufweisend: weiteres Aktualisieren der Mehrzahl von Gewichten durch Rückwärtspropagierung, bis eine Zielgenauigkeit erhalten wird.
  7. System, aufweisend: ein künstliches neuronales Netz, das ein Crossbar-Array von Phasenwechsel-Speicherelementen aufweist; einen Datenverarbeitungsknoten, der ein durch einen Computer lesbares Speichermedium aufweist, auf dem Programmanweisungen enthalten sind, wobei die Programmanweisungen durch einen Prozessor des Datenverarbeitungsknotens ausführbar sind, um den Prozessor dazu zu veranlassen, ein Verfahren durchzuführen, das Folgendes aufweist: zufälliges Initialisieren einer Mehrzahl von Gewichten, wobei jedes der Mehrzahl von Gewichten einer Synapse des künstlichen neuronalen Netzes entspricht; Eingeben mindestens einer Reihe von Eingangssignalen in das künstliche neuronale Netz; Erhalten mindestens einer Reihe von Ausgangssignalen von dem künstlichen neuronalen Netz auf der Grundlage der mindestens einen Reihe von Eingangssignalen und der Mehrzahl von Gewichten; Vergleichen der mindestens einen Reihe von Ausgangssignalen mit Ground-Truth-Daten, um einen ersten Verlust zu bestimmen; Bestimmen eines zweiten Verlustes durch Hinzufügen einer Driftregularisierung zu dem ersten Verlust, wobei die Driftregularisierung positiv mit einer Varianz der mindestens einen Reihe von Ausgangssignalen korreliert ist; und Aktualisieren der Mehrzahl von Gewichten auf der Grundlage des zweiten Verlustes durch Rückwärtspropagierung.
  8. System nach Anspruch 7, wobei das künstliche neuronale Netz ein Crossbar-Array von Phasenwechsel-Speicherelementen aufweist.
  9. System nach Anspruch 7, wobei das künstliche neuronale Netz eine Mehrzahl von Schichten aufweist.
  10. System nach Anspruch 7, wobei der erste Verlust ein Kreuzentropieverlust ist.
  11. System nach Anspruch 7, wobei das Bestimmen des ersten Verlustes eine Regularisierung aufweist.
  12. System nach Anspruch 7, wobei das Verfahren darüber hinaus Folgendes aufweist: weiteres Aktualisieren der Mehrzahl von Gewichten durch Rückwärtspropagierung, bis eine Zielgenauigkeit erhalten wird.
  13. Computerprogrammprodukt zum Trainieren eines künstlichen neuronalen Netzes, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf enthaltenen Programmanweisungen aufweist, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren durchzuführen, das Folgendes aufweist: zufälliges Initialisieren einer Mehrzahl von Gewichten, wobei jedes der Mehrzahl von Gewichten einer Synapse des künstlichen neuronalen Netzes entspricht; Eingeben mindestens einer Reihe von Eingangssignalen in das künstliche neuronale Netz; Erhalten mindestens einer Reihe von Ausgangssignalen von dem künstlichen neuronalen Netz auf der Grundlage der mindestens einen Reihe von Eingangssignalen und der Mehrzahl von Gewichten; Vergleichen der mindestens einen Reihe von Ausgangssignalen mit Ground-Truth-Daten, um einen ersten Verlust zu bestimmen; Bestimmen eines zweiten Verlustes durch Hinzufügen einer Driftregularisierung zu dem ersten Verlust, wobei die Driftregularisierung positiv mit einer Varianz der mindestens einen Reihe von Ausgangssignalen korreliert ist; und Aktualisieren der Mehrzahl von Gewichten auf der Grundlage des zweiten Verlustes durch Rückwärtspropagierung.
  14. Computerprogrammprodukt nach Anspruch 13, wobei das künstliche neuronale Netz ein Crossbar-Array von Phasenwechsel-Speicherelementen aufweist.
  15. Computerprogrammprodukt nach Anspruch 13, wobei das künstliche neuronale Netz eine Mehrzahl von Schichten aufweist.
  16. Computerprogrammprodukt nach Anspruch 13, wobei der erste Verlust ein Kreuzentropieverlust ist.
  17. Computerprogrammprodukt nach Anspruch 13, wobei das Bestimmen des ersten Verlustes eine Regularisierung aufweist.
  18. Computerprogrammprodukt nach Anspruch 13, wobei das Verfahren darüber hinaus Folgendes aufweist: ein weiteres Aktualisieren der Mehrzahl von Gewichten durch Rückwärtspropagierung, bis eine Zielgenauigkeit erhalten wird.
  19. Verfahren zur Verwendung mit einem tiefen neuronalen Netz (DNN), das verschiedene Schichten aufweist, wobei jede der Schichten eine Mehrzahl von Synapsen und Neuronen aufweist, wobei die Synapsen jeweiligen Gewichten zugehörig sind, die jeweiligen Paaren von verbundenen Neuronen zugehörig sind, wobei das Verfahren Folgendes aufweist: (a) zufälliges Initialisieren der Gewichte; (b) Eingeben mindestens einer Reihe von Eingangssignalen in eine erste der Schichten, wobei die Signale den zu analysierenden Daten entsprechen, wobei die Gewichte verwendet werden, um eine Vorwärtspropagierung der Signale durch das DNN zu berechnen; (c) nachdem die Reihe von Signalen das DNN durchlaufen hat, Vergleichen eines Ausgangssignals des DNN mit Ground-Truth-Kennzeichnungen, um einen Anfangsverlust zu berechnen; (d) Hinzufügen eines zusätzlichen Verlustterms zu dem Anfangsverlust, wodurch ein Gesamtverlust gebildet wird, so dass die Schwankung der Ausgangssignalverteilung für verschiedene eingegebene Signalreihen zu einer Erhöhung des Gesamtverlustes führt; (e) Berechnen des Ausgangssignalfehlers im Hinblick auf den Gesamtverlust; (f) Rückwärtspropagieren durch das DNN, um für jede Schicht ein entsprechendes Fehlersignal zu erhalten, wobei die Gewichte verwendet werden, um die Fehlersignale zu berechnen; (g) Berechnen des äußeren Produkts zwischen den Fehlersignalen und der Reihe von Eingangssignalen, um eine Gewichtsaktualisierungsmatrix zu erzeugen, die dann zu den Gewichten hinzugefügt wird, um aktualisierte Gewichte zu bilden; und (h) Wiederholen der Schritte (b) bis (g) unter Verwendung der in (g) berechneten aktualisierten Gewichte, bis ein zufriedenstellender Genauigkeitsgrad erhalten wird.
DE112021001968.6T 2020-06-18 2021-06-04 Driftregularisierung zum entgegenwirken einer variation in driftkoeffizienten für analoge beschleuniger Pending DE112021001968T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/905,241 US11514326B2 (en) 2020-06-18 2020-06-18 Drift regularization to counteract variation in drift coefficients for analog accelerators
US16/905,241 2020-06-18
PCT/IB2021/054901 WO2021255569A1 (en) 2020-06-18 2021-06-04 Drift regularization to counteract variation in drift coefficients for analog accelerators

Publications (1)

Publication Number Publication Date
DE112021001968T5 true DE112021001968T5 (de) 2023-01-19

Family

ID=79023694

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021001968.6T Pending DE112021001968T5 (de) 2020-06-18 2021-06-04 Driftregularisierung zum entgegenwirken einer variation in driftkoeffizienten für analoge beschleuniger

Country Status (10)

Country Link
US (1) US11514326B2 (de)
JP (1) JP2023530816A (de)
KR (1) KR20230019094A (de)
CN (1) CN115699031A (de)
AU (1) AU2021291671B2 (de)
CA (1) CA3176177A1 (de)
DE (1) DE112021001968T5 (de)
GB (1) GB2611681A (de)
IL (1) IL297848A (de)
WO (1) WO2021255569A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220044102A1 (en) * 2020-08-06 2022-02-10 Micron Technology, Inc. Fault tolerant artificial neural network computation in deep learning accelerator having integrated random access memory
US11782642B2 (en) * 2021-06-14 2023-10-10 Western Digital Technologies, Inc. Systems and methods of determining degradation in analog compute-in-memory (ACIM) modules

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9299674B2 (en) * 2012-04-18 2016-03-29 Taiwan Semiconductor Manufacturing Company, Ltd. Bump-on-trace interconnect
DE102012009502A1 (de) * 2012-05-14 2013-11-14 Kisters Ag Verfahren zum Trainieren eines künstlichen neuronalen Netzes
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
US9619749B2 (en) * 2014-03-06 2017-04-11 Progress, Inc. Neural network and method of neural network training
US20160358075A1 (en) * 2015-06-08 2016-12-08 The Regents Of The University Of Michigan System for implementing a sparse coding algorithm
US10372968B2 (en) 2016-01-22 2019-08-06 Qualcomm Incorporated Object-focused active three-dimensional reconstruction
RU2740698C2 (ru) * 2016-03-09 2021-01-19 Эконаус, Инк. Системы и способы распознавания ультразвуковых изображений, осуществляемого с использованием сети с искусственным интеллектом
US10831444B2 (en) * 2016-04-04 2020-11-10 Technion Research & Development Foundation Limited Quantized neural network training and inference
JP6890615B2 (ja) 2016-05-26 2021-06-18 タータン エーアイ リミテッド ディープニューラルネットワークについての加速器
US11556794B2 (en) * 2017-08-31 2023-01-17 International Business Machines Corporation Facilitating neural networks
US10366322B2 (en) * 2017-10-06 2019-07-30 DeepCube LTD. System and method for compact and efficient sparse neural networks
CN111373419A (zh) * 2017-10-26 2020-07-03 奇跃公司 用于深度多任务网络中自适应损失平衡的梯度归一化系统和方法
CN108053029B (zh) * 2017-12-27 2021-08-27 上海闪易半导体有限公司 一种基于存储阵列的神经网络的训练方法
CN108763360A (zh) * 2018-05-16 2018-11-06 北京旋极信息技术股份有限公司 一种分类方法及装置、计算机可读存储介质
US20190354865A1 (en) * 2018-05-18 2019-11-21 Qualcomm Incorporated Variance propagation for quantization
CN109902798A (zh) * 2018-05-31 2019-06-18 华为技术有限公司 深度神经网络的训练方法和装置
EP3591584B1 (de) * 2018-07-03 2024-02-07 Robert Bosch GmbH Probabilistisches training für binäre neuronale netze
CN109460817B (zh) * 2018-09-11 2021-08-03 华中科技大学 一种基于非易失存储器的卷积神经网络片上学习系统
KR20200036352A (ko) * 2018-09-28 2020-04-07 삼성전자주식회사 신경망의 동작 방법과 학습 방법 및 그 신경망
US11061646B2 (en) * 2018-09-28 2021-07-13 Intel Corporation Compute in memory circuits with multi-Vdd arrays and/or analog multipliers
US11373092B2 (en) * 2019-04-10 2022-06-28 International Business Machines Corporation Training of artificial neural networks
CN111191769B (zh) * 2019-12-25 2024-03-05 中国科学院苏州纳米技术与纳米仿生研究所 自适应的神经网络训练与推理装置
US11636322B2 (en) * 2020-01-03 2023-04-25 Silicon Storage Technology, Inc. Precise data tuning method and apparatus for analog neural memory in an artificial neural network
US20210406661A1 (en) * 2020-06-25 2021-12-30 PolyN Technology Limited Analog Hardware Realization of Neural Networks
EP4002219A1 (de) * 2020-11-12 2022-05-25 Commissariat à l'Energie Atomique et aux Energies Alternatives Schaltung und verfahren zur spitzenzeitabhängigen plastizität

Also Published As

Publication number Publication date
AU2021291671B2 (en) 2023-04-27
IL297848A (en) 2023-01-01
CA3176177A1 (en) 2021-12-23
WO2021255569A1 (en) 2021-12-23
US20210397967A1 (en) 2021-12-23
CN115699031A (zh) 2023-02-03
GB2611681A (en) 2023-04-12
JP2023530816A (ja) 2023-07-20
US11514326B2 (en) 2022-11-29
AU2021291671A1 (en) 2022-11-17
KR20230019094A (ko) 2023-02-07

Similar Documents

Publication Publication Date Title
DE112018000272T5 (de) Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze
DE102019116305A1 (de) Pipelining zur verbesserung der inferenzgenauigkeit neuronaler netze
DE102018128080A1 (de) Verfahren und Vorrichtung zur Quantisierung eines künstlichen neuronalen Netzwerkes
DE112018002950B4 (de) System und Verfahren zum Aufbauen von synaptischen Gewichten für künstliche neuronale Netze aus mit Vorzeichen versehenen analogen Leitwertpaaren unterschiedlicher Wertigkeit
DE102018111905A1 (de) Domänenspezifische Sprache zur Erzeugung rekurrenter neuronaler Netzarchitekturen
DE102018121905A1 (de) Verfahren und Vorrichtung zum Quantisieren von künstlichen neuronalen Netzen
Miner et al. Plasticity-driven self-organization under topological constraints accounts for non-random features of cortical synaptic wiring
DE112018005227T5 (de) Merkmalsextraktion mithilfe von multi-task-lernen
DE112016003245T5 (de) Resistive Verarbeitungseinheit
DE112018004992B4 (de) Übertragung synaptischer gewichte zwischen leitfähigkeitspaaren mitpolaritätsumkehr zum verringern fester einheitenasymmetrien
CN110428042B (zh) 往复地缩放神经元的连接权重和输入值来挫败硬件限制
DE112021001968T5 (de) Driftregularisierung zum entgegenwirken einer variation in driftkoeffizienten für analoge beschleuniger
DE102012009502A1 (de) Verfahren zum Trainieren eines künstlichen neuronalen Netzes
DE112018000723T5 (de) Aktualisierungsverwaltung für eine RPU-Anordnung
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE112019003326T5 (de) Speichererweiterte neuronale netzwerkarchitekturen eines codierers-decodierers
DE112021002866T5 (de) Modelltreueüberwachung und -neuerstellung zur entscheidungsunterstützung eines fertigungsverfahrens
DE112021005637T5 (de) Worst-case-rausch- und grenzmanagement bei rpu-kreuzschienenanordnungen
DE112021003881T5 (de) Online-training von neuronalen netzen
DE102021123580A1 (de) Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements
DE112020002547T5 (de) Rausch- und signalverwaltung für rpu-array
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
DE112021002742T5 (de) Training oszillatorischer neuronaler netze
DE112021006640T5 (de) Automatisiertes maschinelles mehrebenen- und mehrziel-lernen

Legal Events

Date Code Title Description
R012 Request for examination validly filed