DE112019003167T5 - Wahrscheinlichkeitsweitergabe über faktordiagramme - Google Patents

Wahrscheinlichkeitsweitergabe über faktordiagramme Download PDF

Info

Publication number
DE112019003167T5
DE112019003167T5 DE112019003167.8T DE112019003167T DE112019003167T5 DE 112019003167 T5 DE112019003167 T5 DE 112019003167T5 DE 112019003167 T DE112019003167 T DE 112019003167T DE 112019003167 T5 DE112019003167 T5 DE 112019003167T5
Authority
DE
Germany
Prior art keywords
occurrence
nodes
probability
spikes
spike
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
DE112019003167.8T
Other languages
English (en)
Inventor
Giovanni Cherubini
Timoleon Moraitis
Abu Sebastian
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 DE112019003167T5 publication Critical patent/DE112019003167T5/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/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • 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
    • G06N3/047Probabilistic or stochastic networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)

Abstract

Verfahren und eine Vorrichtung zum Implementieren der Weitergabe von Wahrscheinlichkeitsverteilungen von Zufallsvariablen über ein Faktordiagramm werden bereitgestellt. Dieses Verfahren umfasst ein Bereitstellen eines gepulsten neuronalen Netzwerks mit Variablenknoten, die mit Faktorknoten verbunden sind, die dem Faktordiagramm entsprechen. Jeder der Knoten weist einen Satz von Neuronen auf, die so konfiguriert sind, dass sie die Rechenfunktionalität dieses Knotens implementieren. Das Verfahren weist ferner für jeden Satz von Zufallsvariablen ein Erzeugen mindestens eines Spike-Signals, in dem die Wahrscheinlichkeit eines möglichen Wertes dieser Variablen auf Grundlage des Auftretens von Spikes in dem Spike-Signal codiert wird, und ein Zurverfügungstellen der Spike-Signale für den Satz von Zufallsvariablen als Eingänge für das neuronale Netzwerk an entsprechenden Variablenknoten auf. Die Wahrscheinlichkeitsverteilungen werden auf Grundlage des Auftretens von Spikes in Signalen weitergegeben, die durch das neuronale Netzwerk ausgebreitet werden.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich allgemein auf eine Wahrscheinlichkeitsweitergabe über Faktordiagramme. Es werden insbesondere Verfahren zum Implementieren der Weitergabe von Wahrscheinlichkeitsverteilungen von Zufallsvariablen über ein Faktordiagramm zusammen mit einer Vorrichtung und Computerprogrammprodukten zum Durchführen dieser Verfahren bereitgestellt.
  • Bei der Weitergabe von Wahrscheinlichkeitsverteilungen von Zufallsvariablen über ein Faktordiagramm handelt es sich um eine probabilistische Rechentechnik, die in zahlreichen Anwendungen in Wissenschaft und Technologie verwendet wird. Die Technik kann zum Beispiel für statistische Inferenz in Anwendungen wie dem Decodieren von Fehlerkorrekturcodes bei der Datenübertragung, der Datensatzanalyse zum Ableiten von Erkenntnissen aus großen Datenmengen, z.B. aus dem Internet, und der Entwicklung personalisierter Behandlungsprogramme zur optimalen Kombination konkurrierender Therapien mit genetischen Faktoren bei Patienten eingesetzt werden. Die Technik wird auf Wahrscheinlichkeitsverteilungen einer Gruppe von Zufallsvariablen angewendet, deren Werte mögliche Ergebnisse eines physischen Prozesses oder eines anderen im Wesentlichen zufälligen Phänomens entsprechend der jeweiligen Anwendung darstellen. Diese Wahrscheinlichkeitsverteilungen werden über Kanten eines Faktordiagramms weitergegeben, das über eine Mehrzahl von Variablenknoten verfügt, die über Kanten mit einer Mehrzahl von Faktorknoten verbunden sind. Die Struktur dieses Faktordiagramms und die besondere Rechenfunktionalität in Verbindung mit den Knoten des Diagramms werden durch die zugrunde liegende Anwendung festgelegt. Der Prozess der Wahrscheinlichkeitsweitergabe wird im Folgenden kurz anhand der 1 und 2 der beigefügten Zeichnungen erläutert.
  • 1 zeigt ein einfaches Beispiel eines Faktordiagramms. Dieses Faktordiagramm verfügt über Variablenknoten, die einer Gruppe von Variablen s, u, v, w, x, y und z entsprechen, sowie über Faktorknoten, die den Funktionen fA, fB, fC, fD und fE entsprechend, die die Faktorisierung beschreiben: P ( s , u , v , w , x , y , z ) = A ( s , u , v ) B ( v , w ) C ( u , x ) D ( u , y ) E ( y , z )
    Figure DE112019003167T5_0001
  • Kanten im Diagramm verbinden Variablenknoten mit Faktorknoten in Abhängigkeit von den Faktoren, in denen die Variablen auftreten. Angenommen, Folgendes soll berechnet werden: P ( s | s = z ' ) = P ( s , z = z ' ) / s P ( s , z = z ' )
    Figure DE112019003167T5_0002
    wobei P(s|z = z') die Wahrscheinlichkeitsverteilung der Variable s bei einem beobachteten Wert von z' für die Variable z bezeichnet. Es können zwei Ansätze verwendet werden. Die direkte Berechnung kann durch Summierung über die Terme nunvnwnxny durchgeführt werden (wobei np die Anzahl der möglichen Werte der Variable p bezeichnet): P ( s , z = z ' ) = u , v , w , x , y P ( s , u , v , w , x , y , z = z ' )
    Figure DE112019003167T5_0003
  • Alternativ können einzelne Summierungen über die Produkte in der Faktorisierung verteilt sein (Summe über die Terme nunv + nw + nx + ny): P ( s , z = z ' ) = u , v A ( s , u , v ) { w B ( v , w ) } { [ x C ( u , x ) ] [ y D ( u , y ) E ( y , z = z ' ) ] }
    Figure DE112019003167T5_0004
  • Der Prozess der Wahrscheinlichkeitsweitergabe führt die zweite Art der vorstehenden Berechnung durch, indem die Kanten eines Faktordiagramms als Kanäle zur Nachrichtenübermittlung behandelt werden. Nachrichten, die Wahrscheinlichkeitsverteilungen darstellen, werden an den Knoten berechnet und entlang von Kanten an die verbundenen Knoten übermittelt. Im Allgemeinen hängen die Ausrichtung eines Diagramms und die Art und Weise, in der Nachrichten weitergegeben werden, von der jeweiligen Berechnung ab, die durchgeführt werden soll, wobei die Nachrichten als Reaktion auf Beobachtungen erzeugt werden. Das Diagramm kann durch Auswählen eines oder mehrerer Knoten als Wurzel gesteuert werden, und jeder Nicht-Wurzelknoten, der nur mit einem anderen Knoten verbunden ist, wird als Blattknoten bezeichnet. Nachrichten können in einem ersten Schritt Ebene für Ebene vorwärts von den Blattknoten zu den Wurzelknoten und dann in einem zweiten Schritt Ebene für Ebene rückwärts von den Wurzelknoten zu den Blattknoten übermittelt werden. Bei jedem der Vorwärts- und Rückwärtsdurchläufe werden zwei Arten von Vektornachrichten übermittelt: Variablen-zu-Funktion-Nachrichten, die aus Produkten lokaler Randwerte bestehen, und Funktion-zu-Variablen-Nachrichten, die aus Summen von Verteilungen über nahe gelegene Variablen bestehen. Die Berechnung dieser beiden Arten von Nachrichten an einem Variablenknoten x und einem Funktionsknoten fA im Abschnitt eines in 2 dargestellten Faktordiagramms sieht wie folgt aus. Eine Variablen-zu-Funktion-Nachricht von x bis JA ist gegeben durch: μ x A ( x ) = μ B x ( x ) μ C x ( x )
    Figure DE112019003167T5_0005
    und eine Funktion-zu-Variablen-Nachricht von fA bis x ist gegeben durch: μ x A ( x ) = y z A ( s , u , v ) μ y A ( y ) μ z A ( z ) .
    Figure DE112019003167T5_0006
  • Während der beiden Durchläufe werden die beobachteten Variablen v, für die Werte bekannt sind, konstant auf diesen Werten gehalten. Sobald beide Durchläufe beendet sind, verknüpft jeder Knoten zi seine gespeicherten Nachrichten, um P(zi|v) zu erhalten. Für den Variablenknoten x in 2 gilt somit: P ( x | v ) = β μ A x ( x ) β μ B x ( x ) β μ C x ( x )
    Figure DE112019003167T5_0007
    wobei β ist, sodass ΣxP(x|v) = 1 gilt.
  • Es zeigt sich, dass die Operation der Wahrscheinlichkeitsweitergabe rechnerisch komplex ist und die Komplexität bei Anwendungen mit einer großen Anzahl von Zufallsvariablen drastisch zunimmt. Ein Implementieren einer Wahrscheinlichkeitsweitergabe mit herkömmlichen (Von-Neumann-)Computern erfordert umfangreiche Verarbeitungsressourcen und eine erhebliche Leistungsaufnahme, und die Effizienz nimmt mit zunehmender Anzahl von Variablen deutlich ab.
  • KURZDARSTELLUNG
  • Gemäß mindestens einer Ausführungsform der vorliegenden Erfindung wird ein Verfahren zum Implementieren der Weitergabe von Wahrscheinlichkeitsverteilungen von Zufallsvariablen über ein Faktordiagramm bereitgestellt. Das Verfahren umfasst ein Bereitstellen eines gepulsten neuronalen Netzwerks (spiking neural network) mit Variablenknoten, die mit Faktorknoten verbunden sind, die dem Faktordiagramm entsprechen. Jeder der Knoten weist einen Satz von Neuronen auf, die so konfiguriert sind, dass sie die Rechenfunktionalität dieses Knotens implementieren. Das Verfahren weist ferner für jeden Satz von Zufallsvariablen ein Erzeugen mindestens eines Spike-Signals, in dem die Wahrscheinlichkeit eines möglichen Wertes dieser Variable auf Grundlage des Auftretens von Spikes in dem Spike-Signal codiert wird, und ein Zurverfügungstellen der Spike-Signale für den Satz von Zufallsvariablen als Eingänge für das neuronale Netzwerk an entsprechenden Variablenknoten auf. Die Wahrscheinlichkeitsverteilungen werden auf Grundlage des Auftretens von Spikes in Signalen weitergegeben, die durch das neuronale Netzwerk ausgebreitet werden.
  • Ein Implementieren der Wahrscheinlichkeitsweitergabe auf diese Weise mit Hilfe eines gepulsten neuronalen Netzwerks bietet eine deutlich höhere Energieeffizienz und eine geringere Implementierungskomplexität als herkömmliche Von-Neumann-Rechenarchitekturen und ermöglicht die Skalierbarkeit auf eine große Anzahl von Zufallsvariablen.
  • Wahrscheinlichkeiten können in den Spike-Signalen auf Grundlage von der Häufigkeit des Auftretens und/oder des Zeitpunkts des Auftretens von Spikes in einem Spike-Signal codiert werden. In den sich ergebenden Signalen, die durch das neuronale Netzwerk über Netzwerkknoten ausgebreitet werden, können die Wahrscheinlichkeitsverteilungen in ähnlicher Weise durch die Spike-Häufigkeit und/oder den Zeitpunkt dargestellt werden, wobei in verschiedenen Stufen der Weitergabe unterschiedliche Darstellungen verwendet werden können. In besonders einfachen und effizienten Ausführungsformen wird jedes Spike-Signal so erzeugt, dass die Wahrscheinlichkeit auf Grundlage der Häufigkeit des Auftretens von Spikes im Spike-Signal codiert wird, und die Neuronen der Knoten werden so konfiguriert, dass die Wahrscheinlichkeitsverteilungen auf Grundlage der Häufigkeit des Auftretens von Spikes in den durch das neuronale Netzwerk ausgebreiteten Signalen weitergegeben werden.
  • Für binäre Zufallsvariablen (mit nur zwei möglichen Werten) kann ein einzelnes Spike-Signal für jede Variable des Satzes erzeugt werden. Dieses Signal codiert die Wahrscheinlichkeit eines zuvor festgelegten Binärwerts der Variablen. Zufallsvariablen mit mehreren Werten (mit drei oder mehr möglichen Werten) können jedoch leicht in die Architektur gepulster neuronaler Netzwerke aufgenommen werden. In diesem Fall kann für jeden möglichen Wert jeder Zufallsvariable des Satzes ein Spike-Signal erzeugt werden, das die Wahrscheinlichkeit dieses Wertes der Variable codiert.
  • Mindestens eine weitere Ausführungsform der Erfindung stellt ein Verfahren zum Erkennen von Fehlerkorrektur-Codewörtern in einem an einem Kanalausgang abgetasteten Signal bereit, indem Wahrscheinlichkeitsverteilungen von Codewortsymbolen, die den jeweiligen Signalabtastwerten entsprechen, über ein Faktordiagramm weitergegeben werden. Das Verfahren umfasst ein Bereitstellen eines gepulsten neuronalen Netzwerks mit Variablenknoten, die mit Faktorknoten verbunden sind, die einem zweiteiligen Faktordiagramm entsprechen, das durch einen Decodierungsalgorithmus des Fehlerkorrekturcodes definiert ist. Jeder der Knoten weist einen Satz von Neuronen auf, die so konfiguriert sind, dass sie die Rechenfunktionalität dieses Knotens implementieren. Das Verfahren weist ferner für jeden Signalabtastwert, der einem Symbol eines Codeworts entspricht, ein Erzeugen mindestens eines Spike-Signals auf, in dem die Wahrscheinlichkeit eines möglichen Symbolwertes für diesen Abtastwert auf Grundlage des Auftretens von Spikes in dem Spike-Signal codiert wird, sowie ein Zurverfügungstellen der Spike-Signale, die den Symbolen eines Codeworts entsprechen, als Eingänge für das neuronale Netzwerk an entsprechenden Variablenknoten. Die Wahrscheinlichkeitsverteilungen werden auf Grundlage des Auftretens von Spikes in den Signalen weitergegeben, die durch das neuronale Netzwerk ausgebreitet werden, und die Variablenknoten geben nach der Weitergabe geschätzte Symbolwerte für das Codewort aus.
  • Weitere Ausführungsformen der Erfindung stellen eine Vorrichtung zum Implementieren eines oben beschriebenen Verfahrens und Computerprogrammprodukte bereit, die eine Verarbeitungsvorrichtung veranlassen, die Weitergabe von Wahrscheinlichkeitsverteilungen nach einem vorstehend beschriebenen Verfahren durchzuführen.
  • Werden hierin im Allgemeinen Merkmale mit Bezug auf ein Verfahren beschrieben, das die Erfindung ausführt, so können entsprechende Merkmale in einer Vorrichtung/in Computerprogrammprodukten, die die Erfindung ausführt bzw. ausführen, bereitgestellt werden und umgekehrt.
  • Ausführungsformen der Erfindung werden nachstehend als veranschaulichendes und nicht einschränkendes Beispiel mit Bezug auf die Begleitzeichnungen beschrieben.
  • Figurenliste
    • 1 zeigt ein Beispiel eines Faktordiagramms;
    • 2 veranschaulicht eine Nachrichtenübermittlung in einem Abschnitt eines Faktordiagramms;
    • 3 zeigt Schritte eines Verfahrens, das die Erfindung ausführt und die Weitergabe von Wahrscheinlichkeitsverteilungen über ein Faktordiagramm implementiert;
    • 4 zeigt ein Faktordiagramm einer Fehlerkorrekturcode-Decodierungsanwendung;
    • 5 ist eine schematische Darstellung einer Vorrichtung zum Implementieren der Wahrscheinlichkeitsweitergabe in der Decodierungsanwendung;
    • 6 veranschaulicht eine Struktur eines gepulsten neuronalen Netzwerks in der Vorrichtung von 5;
    • 7 zeigt eine Konfiguration von Neuronen in einem Faktorknoten in einer Ausführungsform des Netzwerks von 6;
    • 8 veranschaulicht die Operation der Neuronenkonfiguration von 7;
    • 9 zeigt eine Neuronenkonfiguration in einem Variablenknoten des Netzwerks von 6;
    • 10 veranschaulicht die Operation der Neuronenkonfiguration von 9;
    • 11 veranschaulicht eine Wahrscheinlichkeitscodierung in Eingangs-Spike-Signalen in einer zweiten Ausführungsform der Vorrichtung von 5;
    • 12 veranschaulicht eine Wahrscheinlichkeitscodierung im Spike-Signaleingang zu Faktorknoten in der zweiten Ausführungsform;
    • 13 veranschaulicht eine Wahrscheinlichkeitscodierung in Spike-Signalen bei Variablenknoten nach einem ersten Durchlauf einer Wahrscheinlichkeitsweitergabe in der zweiten Ausführungsform;
    • 14 zeigt eine SNN-Struktur in der zweiten Ausführungsform; und
    • 15 zeigt eine Operationen von Neuronen in einem Faktorknoten in der zweiten Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene 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. einen Lichtwellenleiter 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/Verarbeitungs-Einheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit 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/Verarbeitungs-Einheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten 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 Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass 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, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Ausführungsformen der Erfindung implementieren probabilistisches Rechnen unter Verwendung eines gepulsten neuronalen Netzwerks (SNN). Bei einem SNN handelt es sich um eine neuromorphe Verarbeitungsarchitektur, die sich an biologische Architekturen des Nervensystems anlehnt, in dem Informationen von einem komplexen Netzwerk von Neuronen verarbeitet werden, die über Synapsen miteinander verbunden sind. Ein biologisches Neuron kann die von ihm empfangenen Eingangssignale integrieren. Das „Membranpotential“ von Neuronen, das den gespeicherten Neuronenzustand darstellt, wird durch das Auftreten von Neuronen-Eingangssignalen nach und nach verändert. Wenn das Membranpotential eine bestimmte Spannungsschwelle überschreitet, „feuert“ das Neuron und erzeugt ein Ausgangssignal, das als „Aktionspotential“ oder „Spike“ bezeichnet wird, und kehrt dann in seinen Ausgangszustand zurück. Diese Spikes werden an andere Neuronen über Synapsen weitergeleitet, die ihre Verbindungsstärke („Plastizität“ oder „synaptisches Gewicht“) als Folge der neuronalen Aktivität ändern.
  • Die Berechnung in SNNs findet auf der Grundlage einer auf Spikes beruhenden Alles-oder-Nichts-Datenübertragung zwischen einem Netzwerk von Spike-Neuronen statt. Die grundlegenden Komponenten eines SNN weisen funktionalitätsemulierende Neuronen und Synapsen auf, wobei die Neuronen über Synapsen miteinander verbunden sind, die Spikes zwischen Neuronen in Abhängigkeit von einem gespeicherten synaptischen Gewicht übertragen. Die Neuronen/Synapsen-Funktionalität kann in Hardware und/oder Software implementiert werden, wobei Neuronen die „lntegrieren-und-Feuern“-Funktionalität (integrate-and-fire functionality) biologischer Neuronen und Synapsen die Plastizität biologischer Synapsen nachahmen. In der Technik sind verschiedene Schaltungsimplementierungen für Neuronen und Synapsen bekannt, darunter Schaltungen, die memristive Eigenschaften von Nanoeinheiten, z.B. resistive Speicherzellen wie Phasenwechselspeicherzellen (phase-change memory, PCM), zum Speichern des Neuronenmembranpotentials oder des synaptischen Gewichts nutzen. Dichte Kreuzschienen-Anordnungen (cross-bar arrays) solcher memristiven Einheiten stellen stark parallele und sehr flächen- und energieeffiziente SNN-Implementierungen bereit.
  • Ein einfaches Neuronenmodell wird durch eine Differentialgleichung erster Ordnung definiert: d v d t = v v τ
    Figure DE112019003167T5_0008
    wobei v das Membranpotential, v das Ruhepotential und r die Zeitkonstante bezeichnet. Das Neuron feuert einen Spike ab, wenn das Membranpotential einen Schwellenwert Vth erreicht, und setzt das Membranpotential auf vreset zurück. Nach dem Abfeuern eines Spike reagiert das Neuron für eine Refraktärzeit, die Trefract entspricht, nicht auf Eingänge. Die Neuronen sind wie vorstehend beschrieben über Synapsen verbunden. Eine synaptische Verbindung zwischen zwei Neuronen bewirkt eine augenblickliche Änderung des Membranpotentials des postsynaptischen Neurons, die w entspricht, nachdem ein Spike von dem präsynaptischen Neuron abgefeuert wurde. Die Größe der Veränderung w spiegelt somit das synaptische Gewicht wider.
  • Verfahren, die die Erfindung ausführen, verwenden eine SNN-Architektur, um die Weitergabe von Wahrscheinlichkeitsverteilungen von Zufallsvariablen über ein Faktordiagramm zu implementieren. Die grundlegenden Schritte eines solchen Verfahrens sind im Ablaufplan von 3 dargestellt. Wie in Schritt 1 angegeben, wird ein SNN mit Variablenknoten bereitgestellt, die mit Faktorknoten (auch als Funktionsknoten bezeichnet) verbunden sind, die einem durch die betreffende Anwendung definierten Faktordiagramm entsprechen. Das SNN enthält eine Mehrzahl von Variablenknoten, die den jeweiligen Zufallsvariablen der Mehrzahl von Variablen entsprechen, für die die Berechnung durchgeführt werden soll. Die möglichen Werte dieser Variablen können mögliche Ergebnisse eines physischen Prozesses darstellen, z.B. mögliche Symbolwerte, die Abtastwerten einer codierten Datenübertragung entsprechen, oder mögliche Genexpressionsdaten, die sich aus der therapeutischen Behandlung einer genetischen Krankheit ergeben. Als weiteres Beispiel können Werte von Variablen die Bedeutung von Datensätzen in großen Datenspeichersystemen darstellen. (Hier sind zahlreiche andere Anwendungen denkbar, und der besondere Charakter der Zufallsvariablen ist orthogonal zu den hierin beschriebenen Funktionsprinzipien.) Die Variablenknoten sind entsprechend den Kanten des Faktordiagramms mit den Faktorknoten verbunden. Jeder der Variablen- und Faktorknoten im SNN weist einen Satz von (einem oder mehreren) Neuronen auf, die so konfiguriert sind, dass sie die Rechenfunktionalität dieses Knotens in der Operation der Wahrscheinlichkeitsweitergabe implementieren. Die Konfiguration von Neuronen, die Variablenknoten implementieren, hängt beispielsweise von der Anzahl der Kanten ab, die diesen Knoten mit benachbarten Faktorknoten im Diagramm verbinden. Die Konfiguration von Neuronen, die Faktorknoten implementieren, hängt beispielsweise von der Anzahl der Kanten zu benachbarten Variablenknoten und der Rechenfunktion ab, die wie durch die zugrunde liegende Anwendung bestimmt dem Faktorknoten zugehörig ist.
  • Um die Weitergabeoperation einzuleiten, wird für jede Zufallsvariable eines Satzes von (einer oder mehreren) der Zufallsvariablen, die den Variablenknoten des Diagramms entsprechen, mindestens ein Spike-Signal erzeugt. Dieser Satz von Variablen, für den Spike-Signale erzeugt werden, kann zum Beispiel beobachtete Variablen (d.h. Variablen, für die Werte beobachtet wurden) und/oder unbeobachtete Variablen umfassen, für die eine „A-priori“-Wahrscheinlichkeitsverteilung verfügbar ist. Das Erzeugen der Spike-Signale für Zufallsvariablen wird in Schritt 2 von 3 angegeben. In jedem Spike-Signal wird die Wahrscheinlichkeit eines möglichen Wertes der entsprechenden Variable auf Grundlage des Auftretens von Spikes im Spike-Signal codiert. Die Anzahl der für eine Variable erzeugten Spike-Signale hängt demnach von der Anzahl der möglichen Werte der Variable ab. (Im Allgemeinen kann jeder mögliche Wert hier einen Wert einer diskreten Zufallsvariable aus einem endlichen Alphabet (für diskrete Zufallsvariablen) oder einen Wertebereich, d.h. einen beliebigen Wert innerhalb eines definierten Bereichs, (für kontinuierliche Zufallsvariablen) darstellen). In Schritt 3 werden die Spike-Signale für die Zufallsvariablen an den jeweiligen Variablenknoten, die diesen Zufallsvariablen entsprechen, dem SNN als Eingänge bereitgestellt. In Schritt 4 werden die Wahrscheinlichkeitsverteilungen der Zufallsvariablen anschließend auf Grundlage des Auftretens von Spikes in den durch das SNN ausgebreiteten Signalen weitergegeben. Der Weitergabeprozess kann mehr als einen Weitergabeschritt umfassen und iterativ sein, d.h. wie vorstehend beschrieben eine Mehrzahl von Weitergabeoperationen enthalten, von denen jede eine Mehrzahl von Weitergabeschritten aufweisen kann, z.B. Vorwärts-Weitergabeschritte (Blatt-zu-Wurzel) und Rückwärts-Weitergabeschritte (Wurzel-zu-Blatt). Während der Weitergabeoperation berechnen die Variablenknoten die Variablen-zu-Funktion-Nachrichten (Produktterme) der Nachrichtenübermittlungsoperation, und die Faktorknoten berechnen die Funktion-zu-Variablen-Nachrichten (Summen von Produkten), wobei die Rechenergebnisse jeweils durch das Auftreten von Spikes in den Signalen codiert werden, die von den Neuronen ausgegeben werden, die jeden Knoten implementieren. Die Ergebnisse der Weitergabe werden durch die an SNN-Knoten durchgeführten Berechnungen bereitgestellt, und ein gewünschtes Rechenergebnis kann wie in Schritt 5 angegeben an einem oder mehreren Knoten nach der Weitergabe erhalten werden. Insbesondere kann ein gewünschtes Ergebnis der Weitergabeoperation von Signalen an einem oder mehreren Knoten, z.B. über Knotenausgänge, entsprechend dem besonderen, aus der Operation abzuleitenden Rechenergebnis erhalten werden. Beispielsweise können ein oder mehrere Variablenknoten so ausgelegt sein, dass sie Spike-Signale ausgeben, die die Weitergabeergebnisse an diesen Knoten codieren. Die Ergebnisse können in einer oder mehreren Stufen eines iterativen Prozesses erhalten werden, in dem die Rechenergebnisse durch aufeinanderfolgende Durchläufe einer Weitergabeoperation schrittweise verfeinert werden.
  • Die Wahrscheinlichkeitsverteilungen der Zufallsvariablen werden somit auf Grundlage des Auftretens von Spikes in Signalen weitergegeben, die durch das SNN ausgebreitet werden, um nach der Weitergabe ein Rechenergebnis an einem oder mehreren Knoten zu erhalten. Diese Verwendung eines SNN zum Bewerten der Wahrscheinlichkeitsweitergabe über Faktordiagramme ermöglicht es, die inhärent komplexe Operation in einer hocheffizienten Weise durchzuführen, die im Vergleich zu herkömmlichen Implementierungen, die auf Von-Neumann-Rechenarchitekturen beruhen, eine deutlich höhere Energieeffizienz und eine geringere Implementierungskomplexität bietet. SNN-Architekturen für die Wahrscheinlichkeitsweitergabe bieten somit Skalierbarkeit für eine große Anzahl von Zufallsvariablen.
  • Im Folgenden werden beispielhafte Ausführungsformen näher beschrieben, in denen eine SNN-Architektur zur Wahrscheinlichkeitsweitergabe beim Decodieren von Fehlerkorrekturcodes verwendet wird. In dieser Anwendung wird das vorstehende Verfahren zum Erkennen von Fehlerkorrektur-Codewörtern in einem an einem Kanalausgang abgetasteten Signal verwendet. Ein über einen Kanal übertragenes Signal wird mit Symbolen von Codewörtern moduliert, die durch Codieren von Daten unter Verwendung eines Fehlerkorrekturcodes (error-correction code, ECC) erzeugt werden. Das Signal wird am Kanalausgang abgetastet, um Signalabtastwerte zu erhalten, die den jeweiligen Symbolen der einzelnen ECC-Codewörter entsprechen. Die SNN-Architektur wird verwendet, um Wahrscheinlichkeitsverteilungen von Codewortsymbolen, die den jeweiligen Signalabtastwerten entsprechen, über ein zweiteiliges Faktordiagramm weiterzugeben, das durch einen Decodierungsalgorithmus des Fehlerkorrekturcodes definiert ist. In diesem Beispiel handelt es sich bei dem ECC-Code um einen (7, 4) Hamming-Code, und der Decodierungsalgorithmus ist durch die folgende Paritätsprüfungsmatrix H definiert: H = [ 1 1 10 1 00 1 1 01 0 10 1 0 11 0 01 ]
    Figure DE112019003167T5_0009
  • Die Paritätsprüfungsgleichung für ein Codewort b mit den Symbolen b1, b2, ..., b7 ist Hb = 0. Für binäre Antipoden-Signalisierung über einen AWGN-Kanal (additive white Gaussian noise = additives weißes Gaußsches Rauschen, AWGN) sind die Symbolwahrscheinlichkeiten am Kanalausgang: p n 0 = 1 1 + e 2 x n σ 2 und  p n 1 1 1 + e 2 x n σ 2
    Figure DE112019003167T5_0010
    wobei: xn ein Signalabtastwert ist, der einem Codewortsymbol bn entspricht (n = 1 bis 7); p n 0
    Figure DE112019003167T5_0011
    die Wahrscheinlichkeit ist, dass der Abtastwert xn bn = 0 entspricht; p n 1
    Figure DE112019003167T5_0012
    die Wahrscheinlichkeit ist, dass der Abtastwert xn bn = 1 entspricht; und σ die Standardabweichung des additiven Rauschens ist.
  • Das zweiteilige Faktordiagramm, das der Paritätsprüfungsmatrix H entspricht, ist in 4 dargestellt. In dieser Anwendung entsprechen die Zufallsvariablen Codewortsymbolen. Das Diagramm hat somit sieben Variablenknoten V1 bis V7, die den Symbolen bi bis b7 entsprechen. Da diese Variablen binär sind, wird die Wahrscheinlichkeitsverteilung jeder Variable entweder durch die Wahrscheinlichkeit p n 0
    Figure DE112019003167T5_0013
    oder p n 1
    Figure DE112019003167T5_0014
    vollständig definiert. In diesem Beispiel wird p n 1
    Figure DE112019003167T5_0015
    verwendet, wobei die ursprünglichen Symbolwahrscheinlichkeiten an den Variablenknoten V1 bis V7 die Wahrscheinlichkeiten p 1 1
    Figure DE112019003167T5_0016
    bis p 7 1
    Figure DE112019003167T5_0017
    darstellen, wobei es sich bei den Symbolen bi bis b7, die den Abtastwerten x1 bzw. x7 entsprechen, um Bits mit dem Wert 1 handelt. Das Faktordiagramm verfügt über drei Faktorknoten, hier die Prüfknoten C1, C2 und C3, die die Paritätsprüfungsoperationen des Decodierungsalgorithmus implementieren. Kanten im Diagramm verbinden Variablenknoten und Prüfknoten miteinander, wie durch die Paritätsprüfungsmatrix H definiert.
  • Die allgemeine Struktur der Vorrichtung zum Implementieren der Weitergabe von Wahrscheinlichkeitsverteilungen, hier p 1 1
    Figure DE112019003167T5_0018
    bis p 7 1
    Figure DE112019003167T5_0019
    ist in 5 dargestellt. Die Vorrichtung weist ein SNN 10 und einen Spike-Signalerzeuger 11 auf. In dieser Anwendung verfügt das SNN 10 über die Variablenknoten V1 bis V7, die gemäß dem Faktordiagramm von 4 mit den Prüfknoten C1 bis C3 verbunden sind. Jeder Knoten weist einen nachstehend beschriebenen Neuronensatz auf, der so konfiguriert ist, dass er die Rechenfunktionalität des Knotens implementiert. Der Spike-Signalerzeuger 11 empfängt die Signalabtastwerte x1 bis x7, die einem übermittelten Codewort entsprechen, und berechnet die Wahrscheinlichkeiten p 1 1
    Figure DE112019003167T5_0020
    bis p 7 1
    Figure DE112019003167T5_0021
    für diese Abtastwerte anhand der vorstehenden Gleichung. Der Spike-Signalerzeuger erzeugt anschließend Spike-Signale, in diesem Fall ein Signal für jedes Symbol b1 bis b7, das die Wahrscheinlichkeiten p 1 1
    Figure DE112019003167T5_0022
    bzw. p 7 1
    Figure DE112019003167T5_0023
    codiert. Diese Wahrscheinlichkeiten werden wie weiter unten beschrieben auf Grundlage der Häufigkeit und/oder des Zeitpunkts der Spikes in den Spike-Signalen codiert. Die Spike-Signale, die p 1 1
    Figure DE112019003167T5_0024
    bis p 7 1
    Figure DE112019003167T5_0025
    codieren, werden vom Signalerzeuger 11 bei den Variablenknoten V1 bzw. V7 dem SNN 10 als Eingänge bereitgestellt. Die Wahrscheinlichkeitsverteilungen werden anschließend auf Grundlage der Häufigkeit und/oder des Zeitpunkts von Spikes in Signalen weitergegeben, die durch das neuronale Netzwerk ausgebreitet werden. Die Weitergabeoperation wird hier iterativ durchgeführt, und die Variablenknoten sind so ausgelegt, dass sie geschätzte Symbolwerte, von b̂1 bis b̂7 bezeichnet, für das Codewort nach der Weitergabe in jedem Durchlauf der iterativen Operation ausgeben.
  • Die Funktionalität der verschiedenen Komponenten der Weitergabevorrichtung kann allgemein von einer Logik bereitgestellt werden, die in Hardware oder Software oder einer Kombination daraus implementiert wird. Diese Logik kann im allgemeinen Kontext von Anweisungen beschrieben werden, die von einem Computersystem ausgeführt werden können, z.B. Programmmodule, die von einer (Universal- oder Spezial-) Programmiervorrichtung ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren. Die Neuronenfunktionalität in dem SNN 10 kann zum Beispiel in einigen Ausführungsformen in Software implementiert sein. Hardware-Implementierungen werden jedoch bevorzugt, und das SNN 10 kann unter Verwendung allgemein bekannter Schaltungstechniken aufgebaut werden, um die beschriebene Funktionalität zu implementieren.
  • 6 veranschaulicht genauer die Struktur des SNN 10. Jeder Variablenknoten V1 bis V7 weist wie angegeben ein oder mehrere mit Π bezeichnete Neuronen auf. Die Anzahl der Π-Neuronen, die jeden Variablenknoten implementieren, hängt von der Anzahl der Kanten zwischen diesem Knoten und Prüfknoten ab. Jedes Π-Neuron ist so ausgelegt, dass es wie nachstehend erläutert eine Mehrheitsregelfunktion implementiert. Jeder Prüfknoten C1 bis C3 weist Neuronen auf, die so konfiguriert sind, dass sie eine XOR-Funktion implementieren, die in der Figur durch ⊕ bezeichnet wird. Jeder Prüfknoten weist insbesondere vier neuronale Netzwerke auf, die jeweils die XOR-Operation implementieren, eines für jede der vier Kanten zwischen dem Prüfknoten und den Variablenknoten. Die Verbindungen zwischen dem Prüfknoten C1 und den benachbarten Variablenknoten V1, V2, V3 und V5 werden durch durchgehende Linien in der Figur angezeigt. Die Verbindungen zwischen dem Prüfknoten C2 und den benachbarten Variablenknoten V1, V2, V4 und V6 werden durch gepunktete Linien angezeigt. Die Verbindungen zwischen dem Prüfknoten C3 und den benachbarten Variablenknoten V1, V3, V4 und V7 werden durch gestrichelte Linien angezeigt.
  • In Betrieb werden die Spike-Signale, die die Wahrscheinlichkeiten p 1 1
    Figure DE112019003167T5_0026
    bis p 7 1
    Figure DE112019003167T5_0027
    codieren, den Π-Neuronen der Knoten V1 bzw. V7 über in der Figur in fett dargestellte Eingänge bereitgestellt. In diesem ersten Durchlauf gibt es noch keine Ausgaben von den Prüfknoten zu den Variablenknoten. Die Spike-Signale, die p 1 1
    Figure DE112019003167T5_0028
    bis p 7 1
    Figure DE112019003167T5_0029
    codieren, werden daher von den Π-Neuronen übermittelt, die dem SNN die Eingänge an den Variablenknoten bereitstellen, die an die Prüfknoten übermittelt werden. Die Spike-Signale werden den XOR-Netzwerken der Prüfknoten über die in der Figur angezeigten Verbindungen bereitgestellt. Jedes XOR-Netzwerk wendet die XOR-Funktion auf seine Eingangs-Spike-Signale an und gibt das sich daraus ergebende Spike-Signal an einen Variablenknoten aus. Jedes XOR-Netzwerk eines Prüfknotens berechnet somit eine der vorstehend beschriebenen Funktion-zu-Variablen-Nachrichten µC→V(V), die von diesem Prüfknoten an einen seiner benachbarten Variablenknoten übermittelt werden. Die XOR-Ausgangssignale werden wie von den Verbindungen in der Figur angezeigt von Π-Neuronen an den Variablenknoten empfangen. Jedes Π-Neuron empfängt ferner die Eingangs-Spike-Signale, die die Wahrscheinlichkeiten p 1 1
    Figure DE112019003167T5_0030
    bis p 7 1
    Figure DE112019003167T5_0031
    codieren. (Diese Spike-Signale werden vom Spike-Erzeuger 11 nach der Verzögerung δt abgefeuert, die der Weitergabezeit der ersten Signale durch das Netzwerk zurück zu den Π-Neuronen entspricht). In jedem Variablenknoten berechnet ein Π-Neuron eine der Variablen-zu-Funktion-Nachrichten pV→C(V), die von diesem Variablenknoten zurück zu einem seiner verbunden Prüfknoten übermittelt wird. Diese n-Neuron-Ausgangssignale leiten den zweiten Durchlauf der Weitergabeoperation ein. Ein Π-Neuron in jedem Variablenknoten empfängt ferner alle Signale von den verbundenen Prüfknoten zusammen mit den ersten Eingangs-Spike-Signalen. (Für die Variablenknoten V5 bis V7, die nur mit einem Prüfknoten verbunden sind, reicht ein einzelnes Π-Neuron aus. Für die anderen Variablenknoten empfängt ein zusätzliches Π-Neuron alle Ausgangssignale des Prüfknotens zusammen mit dem ersten Eingangssignal). Das Ausgangssignal dieses Π-Neurons in jedem Variablenknoten stellt eine Symbolschätzung, d.h. b̂n = 0 oder b̂n = 1, für das Codewortsymbol bereit, das diesem Variablenknoten entspricht.
  • Der zweite Durchlauf der Weitergabeoperation verläuft wie vorstehend beschrieben auf Grundlage der n-Neuronen-Ausgangssignale nach dem ersten Durchlauf. Die Operation verläuft somit iterativ, wobei die ausgegebenen Symbolschätzungen b̂1 bis b̂7 in aufeinanderfolgenden Iterationen schrittweise verfeinert werden. Die Weitergabeoperation kann für eine zuvor festgelegte Anzahl von Iterationen ausgeführt werden oder so lange fortgesetzt werden, bis Symbolschätzungen einen gewünschten Grad an Sicherheit erreichen, z.B. bis die Schätzungen die Paritätsprüfungsgleichung erfüllen oder über eine definierte Anzahl von Iterationen unverändert bleiben.
  • In einer ersten Ausführungsform des SNN von 6 codiert der Spike-Signalerzeuger 11 die Wahrscheinlichkeiten p 1 1
    Figure DE112019003167T5_0032
    bis p 7 1
    Figure DE112019003167T5_0033
    auf Grundlage der Spike-Häufigkeit (Spike-Vorkommen) in den Spike-Signalen. Die Knotenneuronen sind darüber hinaus so konfiguriert, dass Wahrscheinlichkeiten auf Grundlage der Spike-Häufigkeit in den ausgebreiteten Signalen durch das SNN weitergegeben werden. 7 zeigt die Neuronenkonfiguration in den Faktorknoten C1 bis C3 in dieser Ausführungsform. Das Schaubild links zeigt die Struktur des neuronalen Netzwerks für jeden XOR-Block eines Faktorknotens, und die Tabelle rechts zeigt die Parameter für die einzelnen Neuronen auf Grundlage des vorstehend beschriebenen Neuronenmodells. (Diese und ähnliche nachstehende Parameter werden auf allgemein bekannte Art und Weise anhand einer Trainingsoperation für das neuronale Netzwerk festgelegt). Jeder XOR-Block mit 3 Eingängen eines Prüfknotens wird aus zwei identischen XOR-Netzwerken mit 2 Eingängen (von denen eines in der Figur vollständig dargestellt ist) aufgebaut, die wie gezeigt verbunden sind. Das erste XOR-Netzwerk mit 2 Eingängen weist zwei Eingangsneuronen N1 und N2 auf, die Signale von zwei der XOR-Eingängen (hier mit y1 und y2 bezeichnet) empfangen, wobei die beiden Eingangsneuronen N1 und N2 mit einem Ausgangsneuron N3 verbunden sind. Der Ausgang z1 des Neurons N3 stellt dem zweiten XOR-Netzwerk, an dessen zweitem Eingang das dritte der Eingangssignale des XOR-Netzwerks mit 3 Eingängen empfangen wird, das hier durch y3 bezeichnet wird, ein Eingangssignal bereit. Beim Ausgangssignal z2 handelt es sich um das Ausgangssignal des XOR-Netzwerks mit 3 Eingängen.
  • Die Funktionsweise des Netzwerks von 7 wird anhand von 8 verständlich. Diese veranschaulicht eine Spike-Häufigkeits-Codierung in den beiden Eingangssignalen yi=1,2 und dem Ausgangssignal z1 des in 7 dargestellten XOR-Netzwerks mit zwei Eingängen. Spikes werden durch senkrechte Linien in jedem Fall angezeigt, wobei die beiden Eingangssignale yi durch durchgehende bzw. gepunktete Linien dargestellt werden. Im oberen linken Schaubild haben beide Eingangssignale eine geringe Spike-Häufigkeit, die der niedrigen Wahrscheinlichkeit p n 1
    Figure DE112019003167T5_0034
    entspricht, was yi= 0 and y2= 0 bedeutet. Das Ausgangssignal z1 weist wie in dem nachstehenden Schaubild gezeigt somit eine geringe Spike-Häufigkeit auf, d.h. z1= 0. Im oberen rechten Schaubild hat ein Eingangssignal eine geringe Spike-Häufigkeit, während die andere hoch ist, z.B. y1= 0 and y2 = 1. Das Ausgangssignal z1 weist wie in dem nachstehenden Schaubild gezeigt somit eine hohe Spike-Häufigkeit auf, d.h. z1= 1. Die übrigen Eingangssignalkombinationen sind in den Schaubildern oben links und rechts dargestellt, die y1= 1, y2 = 0, z1= 1 links und y2= 1, y2= 1, z1= 0 rechts entsprechen. Die XOR-Operation mit 2 Eingangssignalen ist damit wie erforderlich implementiert. Die XOR-Operation mit drei Eingangssignalen erfolgt entsprechend.
  • 9 zeigt die Konfiguration jedes Π-Neurons in den Variablenknoten V1 bis V7 in dieser Ausführungsform. In 6 verfügt Jedes Π-Neuron über zwei bis vier Eingänge. In 9 werden die drei Eingangssignale y1 bis y3 gezeigt, die beschriebene Operation findet jedoch auf eine beliebige Anzahl von Eingangssignalen Anwendung. Das Π-Neuron N1 feuert einen Spike ab, wenn das Schwellenwertpotential Vth überschritten wird. Auf diese Weise wird eine Mehrheitsregelfunktion implementiert, wobei ein Ausgangssignal mit hoher Häufigkeit (d.h. eine hohe Wahrscheinlichkeit, dass ein Symbol gleich 1 ist) erzeugt wird, wenn mehr als die Hälfte der Eingangssignale Eingangssignale mit hoher Häufigkeit sind (d.h. eine hohe Wahrscheinlichkeit, dass ein Symbol gleich 1 ist). Wenn es sich bei genau der Hälfte der Eingangssignale um Eingangssignale mit hoher Häufigkeit handelt, wird mit der Wahrscheinlichkeit 0,5 ein Ausgangsignal mit hoher Häufigkeit erzeugt. 10 zeigt die Häufigkeitscodierung in den Eingangs- und Ausgangssignalen wie vorstehend dargestellt, wobei die Spikes in den drei Eingängen hier durch durchgezogene, gepunktete bzw. gestrichelte Linien dargestellt sind. Es ist zu erkennen, dass das Ausgangsignal z1 eine hohe Spike-Häufigkeit hat, was einer hohen Wahrscheinlichkeit entspricht, wenn zwei oder mehr der Eingangssignale eine hohe Spike-Häufigkeit haben.
  • Das Vorstehende stellt eine einfache und dennoch hocheffiziente Implementierung dar, bei der die Wahrscheinlichkeiten während der gesamten Weitergabeoperation in der Spike-Häufigkeit codiert werden. Das Π-Neuron, das alle Eingangssignale von den Prüfknoten empfängt, gibt die ausgegebenen Symbolschätzungen als b̂n = 1 an, wenn das Ausgangssignal z1 eine hohe Spike-Häufigkeit hat, und als b̂n = 0, wenn z1 eine geringe Spike-Häufigkeit hat.
  • In einer zweiten Ausführungsform der Vorrichtung von 5 codiert der Spike-Signalerzeuger 11 die Wahrscheinlichkeiten p 1 1
    Figure DE112019003167T5_0035
    bis p 7 1
    Figure DE112019003167T5_0036
    auf Grundlage der Häufigkeit und des Zeitpunkts der Spikes in den Spike-Signalen. Die Wahrscheinlichkeit p n 1 ,
    Figure DE112019003167T5_0037
    dass ein Kanalausgangssymbol gleich 1 ist, wird insbesondere durch eine Bernoulli-Folge als zufällige Folge von Spikes in einer Folge von N Intervallen der Dauer T codiert, wobei ein Spike im i-ten Intervall τi, i E {0, 1, ..., N-1} zum Zeitpunkt t =iT, mit einer Wahrscheinlichkeit p n 1
    Figure DE112019003167T5_0038
    abgefeuert wird. Dies wird in 11 für p n 1 = 0,25
    Figure DE112019003167T5_0039
    in einem Beispiel mit N = 8 veranschaulicht.
  • Die Neuronen der Variablenknoten werden wie in der vorstehenden Ausführungsform durch Π-Neuronen implementiert, wobei jedes Π-Neuron einen Spike abfeuert, wenn das Schwellenwertpotential überschritten wird. Die Neuronen der Prüfknoten werden durch XOR-Netzwerke mit drei Eingängen implementiert, diese Knoten arbeiten jedoch mit einer Codierung auf Grundlage des Spike-Zeitpunkts. Insbesondere in den Eingangssignalen des XOR-Netzwerks werden Binärinformationen im i-ten Intervall auf Grundlage des Zeitpunkts codiert, an dem ein Spike abgefeuert wird. Ein Bit 1 wird durch Abfeuern eines Spike zum Zeitpunkt t = (i + 1)T - Δ codiert, und ein Bit 0 wird durch Abfeuern eines Spike zum Zeitpunkt t = iT + Δ codiert. Dies wird in 12 für eine Eingangswahrscheinlichkeit p n 1 = 0,25
    Figure DE112019003167T5_0040
    veranschaulicht. Das Ausgangsneuron eines XOR-Netzwerks mit 3 Eingängen wird für ein Zeitintervall ts (Δ < ts< (T - Δ)) in jedem Intervall τ gesperrt, um Spikes zu unterdrücken, die Nullen in dem XOR-Ausgangssignal entsprechen. Mit diesem Unterdrücken von „0-Spikes“ wird die Spike-Codierung wieder zurück in die Codierung konvertiert, die an den Π-Neuronen der Variablenknoten verwendet wird, wo ein Spike abgefeuert wird (um eine 1 zu codieren) oder nicht abgefeuert wird (um eine 0 zu codieren). Diese konvertierten Signale werden wie vorstehend dargestellt mit den Eingangs-Spike-Signalen an den Variablenknoten kombiniert. 13 zeigt die sich ergebende Spike-Darstellung für das Ausgangssignal eines Variablenknotens, das die Wahrscheinlichkeit p n 1 = 0,375
    Figure DE112019003167T5_0041
    nach der ersten Iteration codiert.
  • Die unterschiedlichen Spike-Codierungsmechanismen, die bei Variablen- und Prüfknoten in dieser Ausführungsform verwendet werden, können wie in 14 dargestellt durch zusätzliche Logik im SNN berücksichtigt werden. Das SNN 20 entspricht im Allgemeinen demjenigen von 6. Die Spike-Konvertierungslogik 21 konvertiert die Spike-Darstellung in den Variablen-zu-Prüfknotensignalen jedoch wieder in diejenige, die wie vorstehend beschrieben von den Prüfknoten verwendet wird. Die Logik 21 kann hier auf jede geeignete Weise implementiert werden, und geeignete Implementierungen sind für Fachleute leicht erkennbar. Die Konvertierung der Prüfknotenausgangssignale zurück in die Spike-Darstellung des Variablenknotens kann wie bei 22 angegeben hier durch Spike-Unterdrückung erfolgen. Wie vorstehend beschrieben, kann diese Funktionalität einfach durch Sperren des Ausgangsneurons jedes XOR-Netzwerks für das Zeitintervall ts zur Unterdrückung der 0-Spikes in den Ausgangssignalen der Prüfknoten implementiert werden.
  • Ein XOR-Netzwerk mit 3 Eingängen für die Prüfknoten dieser Ausführungsform kann durch Kaskadierung von zwei XOR-Netzwerken mit 2 Eingängen des Typs implementiert werden, der in Abschnitt 3.3 von „Spiking Neural Networks‟, S. M. Bohte, Doktorarbeit, Universität Leiden (2003), ISBN 90-6734-167-3, beschrieben und im Folgenden erläutert wird. Das XOR-Netzwerk mit 2 Eingängen besteht aus einem Netzwerk verzögerter Spiking-Neuronen, wobei 16 verfügbare synaptischen Verzögerungen zwei Neuronen verbinden. Das Netzwerk besteht aus drei Eingangsneuronen (2 Codierungsneuronen und 1 Zeitreferenzneuron), 5 verborgenen (d.h. Zwischenschicht-)Neuronen, von denen ein Sperrneuron nur postsynaptische Potentiale mit negativem Vorzeichen erzeugt, und 1 Ausgangsneuron. Ein Spike von einem präsynaptischen Neuron erzeugt 16 verzögerte Spike-Antwortfunktionen. Aus der Summe aller Spike-Antwortfunktionen aus den präsynaptischen Neuronen wird das Membranpotenzial im postsynaptischen Neuron erzeugt. Dies ist in .1 der vorstehenden Referenz dargestellt. Da nur positive Gewichte erlaubt sind, werden 16 x 3 x 5 + 16 x 5 x 1 = 320 Einzelgewichte in einem Trainingsvorgang angepasst, um die XOR-Funktion unter Verwendung eines Fehler-Rückwärtspropagierungsalgorithmus zu lernen. Dieser Algorithmus wird in Abschnitt 3.2 der Referenz ausführlich beschrieben. Im sich ergebenden Netzwerk sind die Eingangsinformationen und das Ergebnis der XOR-Operation im Zeitpunkt der Eingangs- und Ausgangsneuronenimpulse codiert. Bei der vorstehenden Ausführungsform ist eine „0“ einem frühen Abfeuerungszeitpunkt und eine „1“ einem letzten Abfeuerungszeitpunkt zugeordnet. Die Tabelle in 15 zeigt die durch das XOR-Netzwerk erreichte Eingangs/Ausgangs-Beziehung in Form der Eingangs/Ausgangs-Spike-Zeiten in Millisekunden. In den Eingangs-Spike-Mustern ist eine „0“ einer Spike-Zeit von 0 ms und eine „1“ einer Zeit von 6 ms zugeordnet. In den Ausgangssignal-Spike-Mustern ist eine „0“ einer Spike-Zeit von 10 ms und eine „1“ einer Zeit von 16 ms zugeordnet.
  • Die Verwendung der Spike-Zeit-Codierung, wie sie in der vorstehenden Ausführungsform dargestellt ist, stellt eine leistungsfähige Codierungstechnik für die Wahrscheinlichkeitsweitergabe zulasten einer gewissen zusätzlichen Implementierungskomplexität bereit. Eine genaue Charakterisierung des Zeitpunkts des Auftretens eines Spike ist durchgehend erforderlich. Die Verzögerungen δt durch die Variablenknoten und Prüfknoten sind zum Beispiel genau charakterisiert, sodass das Abfeuern der Spike-Folgen, die die Symbolwahrscheinlichkeiten p 1 1
    Figure DE112019003167T5_0042
    bis p 7 1
    Figure DE112019003167T5_0043
    darstellen, bei jeder Iteration gleichzeitig mit dem Abfeuern der XOR-Ausgangsneuronen stattfindet. Eine korrekte Synchronisation kann durch die Einbeziehung von Zeitreferenzneuronen an den Variablen- und Prüfknoten erreicht werden, wodurch der Netzwerkbetrieb mit den von den Zeitreferenzneuronen abgefeuerten Spike-Zügen synchronisiert wird.
  • Die Funktionsweise wurde vorstehend zwar für binäre Zufallsvariablen beschrieben, doch kann die SNN-Architektur leicht erweitert werden, um Zufallsvariablen mit mehreren Werten aufzunehmen. In diesem Fall werden mehrere Spike-Signale benötigt, um die Wahrscheinlichkeitsverteilung jeder Variable zu codieren. Für jeden möglichen Wert jeder Zufallsvariable wird insbesondere ein Spike-Signal, das die Wahrscheinlichkeit dieses Wertes der Variablen codiert, vom Spike-Signalerzeuger 11 erzeugt. Zwischen Variablenknoten und Prüfknoten werden daraufhin mehrere Verbindungen bereitgestellt, um diese Signale im SNN weiterzugeben, und es werden mehrere neuronale Netzwerke an Knoten bereitgestellt, um die Berechnungen für mehrere Wahrscheinlichkeiten aufzunehmen. Die grundlegenden Funktionsprinzipien sind jedoch die gleichen, und die vorstehend beschriebene Funktionalität kann auf einfache Weise erweitert werden, um Variablen mit mehreren Werten in die SNN-Architektur aufzunehmen.
  • In einer beispielhaften Implementierung für Zufallsvariablen mit mehreren Werten kann ein stochastischer Ansatz für die Wahrscheinlichkeitscodierung angewendet werden. Variablen mit 2n möglichen Werten können durch binäre Vektoren mit n Elementen dargestellt werden. Jede Zufallsvariable kann 2n parallelen Signalleitungen zugeordnet werden, die den Signalerzeuger 11 mit dem SNN 10 verbinden. Jede dieser 2n Leitungen gibt die Wahrscheinlichkeit der Zufallsvariable unter Annahme des entsprechenden Wertes weiter, wobei die Wahrscheinlichkeit P in der Anzahl der über ein Intervall der Dauer L*T übertragenen Einsen (d.h. Spikes) codiert wird. Die Einsen sind wie folgt über das Intervall verteilt. Die Wahrscheinlichkeiten werden in den L Zeitschlitzen durch 2n binäre Zufallsfolgen codiert, wobei alle L Bits gleich 1 sind. In jedem Zeitschlitz ist nur ein Bit gleich 1 mit einer Wahrscheinlichkeit von 1/L. (Alternativ können die Einsen als Ereignisse übertragen werden, die im Rahmen eines Poisson-Prozesses mit einer mittleren Häufigkeit R erzeugt werden, die proportional zur Wahrscheinlichkeit P ist). Die Funktionalität des Prüfknotens kann durch eine Logik mit j, j ≥ 2, 2n-wertigen Eingangs-Zufallsvariablen und einer 2m-wertigen Ausgangs-Zufallsvariable implementiert werden. Die Funktionalität des Variablenknotens kann durch eine Mehrheitsentscheidung über die Anzahl der empfangenen Einsen für jeden Wert der k, k ≥ 2, 2m-wertigen Eingangsvariablen implementiert werden, mit zufälliger Auswahl, um Verbindungen zu unterbrechen. Eine solche Implementierung kann z. B. beim stochastischen Decodieren von LDPC-Codes (LDPC = Low Density Parity Check) mit mehreren Werten und mit Symbolen von einem Galois-Feld GF(q) mit q = 2n = 2m eingesetzt werden.
  • Selbstverständlich können an den beispielhaft beschriebenen Ausführungsformen zahlreiche Änderungen und Modifikationen vorgenommen werden. So sind z.B. andere Techniken zum Codieren von Wahrscheinlichkeiten in Spike-Folgen denkbar, und andere Kombinationen von Codierung, die auf der Spike-Häufigkeit und/oder dem Zeitpunkt beruhen, können in anderen Ausführungsformen an Variablen- und Prüfknoten eingesetzt werden. Vorstehend wurde zwar eine Decodierungsanwendung beschrieben, doch können Ausführungsformen der Erfindung in jeder Anwendung eingesetzt werden, in der die Wahrscheinlichkeitsweitergabe von Zufallsvariablen für statistische Inferenz durchgeführt wird. Zu Beispielen hierfür gehören Bilderkennung, maschinelles Lernen, Datensatzanalyse, Behandlungsanalyse für genetische Krankheiten, Spracherkennung und Anwendungen der Belief-Propagation im Allgemeinen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung vorgestellt, sollen jedoch nicht erschöpfend oder auf die Ausführungsformen beschränkt sein. Für Fachleute ist offensichtlich, dass viele Änderungen und Abwandlungen möglich sind, ohne vom Anwendungsbereich und Erfindungsgedanken 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 Technologien auf dem Markt bestmöglich zu erläutern oder es Fachleuten zu ermöglichen, die hierin beschriebenen Ausführungsformen zu verstehen.
  • 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 Nicht-Patentliteratur
    • „Spiking Neural Networks‟, S. M. Bohte, Doktorarbeit, Universität Leiden (2003) [0046]
    • ISBN 90-6734-167-3 [0046]

Claims (25)

  1. Verfahren zum Implementieren der Weitergabe von Wahrscheinlichkeitsverteilungen von Zufallsvariablen über ein Faktordiagramm, wobei das Verfahren aufweist: Bereitstellen eines gepulsten neuronalen Netzwerks, bei dem Variablenknoten mit Faktorknoten verbunden sind, die dem Faktordiagramm entsprechen, wobei jeder der Knoten einen Satz von Neuronen aufweist, die so konfiguriert sind, dass sie die Rechenfunktionalität dieses Knotens implementieren; für jeden Satz der Zufallsvariablen Erzeugen mindestens eines Spike-Signals, in dem die Wahrscheinlichkeit eines möglichen Wertes dieser Variable auf Grundlage des Auftretens von Spikes in dem Spike-Signal codiert wird; und Zurverfügungstellen der Spike-Signale für den Satz von Zufallsvariablen als Eingangssignale für das neuronale Netzwerk an entsprechenden Variablenknoten; wobei die Wahrscheinlichkeitsverteilungen auf Grundlage des Auftretens von Spikes in Signalen weitergegeben werden, die durch das neuronale Netzwerk ausgebreitet werden.
  2. Verfahren nach Anspruch 1, das ein Erzeugen jedes Spike-Signals derart umfasst, dass die Wahrscheinlichkeit auf Grundlage der Häufigkeit des Auftretens und/oder des Zeitpunkts des Auftretens von Spikes in dem Spike-Signal codiert wird.
  3. Verfahren nach Anspruch 2, wobei die Neuronen des Knotens so konfiguriert sind, dass sie die Wahrscheinlichkeitsverteilungen auf Grundlage der Häufigkeit des Auftretens und/oder des Zeitpunkts des Auftretens von Spikes in Signalen weitergeben, die durch das neuronale Netzwerk ausgebreitet werden.
  4. Verfahren nach Anspruch 3, das ein Erzeugen jedes Spike-Signals derart umfasst, dass die Wahrscheinlichkeit auf Grundlage der Häufigkeit des Auftretens von Spikes in dem Spike-Signal codiert wird, wobei die Neuronen der Knoten so konfiguriert sind, dass sie die Wahrscheinlichkeitsverteilungen auf Grundlage der Häufigkeit des Auftretens von Spikes in Signalen weitergeben, die durch das neuronale Netzwerk ausgebreitet werden.
  5. Verfahren nach Anspruch 1, wobei es sich bei den Zufallsvariablen um binäre Variablen handelt, wobei das Verfahren für jede Zufallsvariable des Satzes ein Erzeugen eines einzelnen Spike-Signals umfasst, das die Wahrscheinlichkeit eines zuvor festgelegten binären Wertes der binären Werte der Variable codiert.
  6. Verfahren nach Anspruch 1, wobei es sich bei den Zufallsvariablen um Variablen mit mehreren Werten handelt, wobei das Verfahren für jeden möglichen Wert jeder Zufallsvariable des Satzes ein Erzeugen eines Spike-Signals umfasst, das die Wahrscheinlichkeit dieses Wertes der Variable codiert.
  7. Verfahren zum Erkennen von Fehlerkorrektur-Codewörtern in einem Signal, das an einem Kanalausgang abgetastet wird, indem Wahrscheinlichkeitsverteilungen von Codewortsymbolen, die jeweiligen Signalabtastwerten entsprechen, über ein Faktordiagramm weitergegeben werden, wobei das Verfahren aufweist: Bereitstellen eines gepulsten neuronalen Netzwerks, bei dem Variablenknoten mit Faktorknoten verbunden sind, die einem zweiteiligen Faktordiagramm entsprechen, das durch einen Decodierungsalgorithmus des Fehlerkorrekturcodes definiert wird, wobei jeder der Knoten einen Satz von Neuronen aufweist, die so konfiguriert sind, dass sie die Rechenfunktionalität dieses Knotens implementieren; für jeden Signalabtastwert, der einem Symbol eines Codewortes entspricht, ein Erzeugen mindestens eines Spike-Signals, in dem die Wahrscheinlichkeit eines möglichen Wertes dieses Abtastwertes auf Grundlage des Auftretens von Spikes in dem Spike-Signal codiert wird; und Zurverfügungstellen der Spike-Signale, die den Symbolen eines Codewortes entsprechen, als Eingangssignale für das neuronale Netzwerk an entsprechenden Variablenknoten; wobei die Wahrscheinlichkeitsverteilungen auf Grundlage des Auftretens von Spikes in den Signalen weitergegeben werden, die durch das neuronale Netzwerk ausgebreitet werden, und die Variablenknoten nach der Weitergabe geschätzte Symbolwerte für das Codewort ausgeben.
  8. Verfahren nach Anspruch 7, das ein Erzeugen jedes Spike-Signals derart umfasst, dass die Wahrscheinlichkeit auf Grundlage der Häufigkeit des Auftretens und/oder des Zeitpunkts des Auftretens von Spikes in dem Spike-Signal codiert wird.
  9. Verfahren nach Anspruch 8, wobei die Neuronen der Knoten so konfiguriert sind, dass sie die Wahrscheinlichkeitsverteilungen auf Grundlage der Häufigkeit des Auftretens und/oder des Zeitpunkts des Auftretens von Spikes in Signalen weitergeben, die durch das neuronale Netzwerk ausgebreitet werden.
  10. Verfahren nach Anspruch 9, das ein Erzeugen jedes Spike-Signals derart umfasst, dass die Wahrscheinlichkeit auf Grundlage der Häufigkeit des Auftretens von Spikes in dem Spike-Signal codiert wird, wobei die Neuronen der Knoten so konfiguriert sind, dass sie die Wahrscheinlichkeitsverteilungen auf Grundlage der Häufigkeit des Auftretens von Spikes in Signalen weitergeben, die durch das neuronale Netzwerk ausgebreitet werden.
  11. Verfahren nach Anspruch 7, wobei es sich bei den Codewortsymbolen um binäre Symbole handelt, wobei das Verfahren für jeden Signalabtastwert ein Erzeugen eines einzelnen Spike-Signals umfasst, das die Wahrscheinlichkeit eines zuvor festgelegten binären Symbolwertes der Symbolwerte codiert.
  12. Verfahren nach Anspruch 7, wobei es sich bei den Codewortsymbolen um Symbole mit mehreren Werten handelt, wobei das Verfahren für jeden möglichen Symbolwert jedes Signalabtastwertes ein Erzeugen eines Spike-Signals umfasst, das die Wahrscheinlichkeit dieses Symbolwertes für den Abtastwert codiert.
  13. Vorrichtung zum Implementieren der Weitergabe von Wahrscheinlichkeitsverteilungen von Zufallsvariablen über ein Faktordiagramm, wobei die Vorrichtung aufweist: ein gepulstes neuronales Netzwerk, bei dem Variablenknoten mit Faktorknoten verbunden sind, die dem Faktordiagramm entsprechen, wobei jeder der Knoten einen Satz von Neuronen aufweist, die so konfiguriert sind, dass sie die Rechenfunktionalität dieses Knotens implementieren; und einen Spike-Signalerzeuger, der so ausgelegt ist, dass er für jeden Satz der Zufallsvariablen mindestens ein Spike-Signal erzeugt, in dem die Wahrscheinlichkeit eines möglichen Wertes dieser Variable auf Grundlage des Auftretens von Spikes in dem Spike-Signal codiert wird, und die Spike-Signale für den Satz von Zufallsvariablen als Eingangssignale für das neuronale Netzwerk an entsprechenden Variablenknoten zur Verfügung stellt; wobei die Wahrscheinlichkeitsverteilungen auf Grundlage des Auftretens von Spikes in Signalen weitergegeben werden, die durch das neuronale Netzwerk ausgebreitet werden.
  14. Vorrichtung nach Anspruch 13, wobei der Spike-Signalerzeuger so ausgelegt ist, dass er jedes Spike-Signal so erzeugt, dass die Wahrscheinlichkeit auf Grundlage der Häufigkeit des Auftretens und/oder des Zeitpunkts des Auftretens von Spikes in dem Spike-Signal codiert wird.
  15. Vorrichtung nach Anspruch 14, wobei die Neuronen der Knoten so konfiguriert sind, dass sie die Wahrscheinlichkeitsverteilungen auf Grundlage der Häufigkeit des Auftretens und/oder des Zeitpunkts des Auftretens von Spikes in Signalen weitergeben, die durch das neuronale Netzwerk ausgebreitet werden.
  16. Vorrichtung nach Anspruch 15, wobei der Spike-Signalerzeuger so ausgelegt ist, dass er jedes Spike-Signal so erzeugt, dass die Wahrscheinlichkeit auf Grundlage der Häufigkeit des Auftretens von Spikes in dem Spike-Signal codiert wird, und wobei die Neuronen der Knoten so konfiguriert sind, dass sie die Wahrscheinlichkeitsverteilungen auf Grundlage der Häufigkeit des Auftretens von Spikes in Signalen weitergeben, die durch das neuronale Netzwerk ausgebreitet werden.
  17. Vorrichtung nach Anspruch 13, wobei es sich bei den Zufallsvariablen um binäre Variablen handelt und wobei der Spike-Signalerzeuger so ausgelegt ist, dass er für jede Zufallsvariable des Satzes ein einzelnes Spike-Signal erzeugt, das die Wahrscheinlichkeit eines zuvor festgelegten binären Wertes der binären Werte der Variable codiert.
  18. Vorrichtung nach Anspruch 13, wobei es sich bei den Zufallsvariablen um Variablen mit mehreren Werten handelt und wobei der Spike-Signalerzeuger so ausgelegt ist, dass er für jeden möglichen Wert jeder Zufallsvariable des Satzes ein Spike-Signal erzeugt, das die Wahrscheinlichkeit dieses Wertes der Variable codiert.
  19. Vorrichtung zum Erkennen von Fehlerkorrektur-Codewörtern in einem Signal, das an einem Kanalausgang abgetastet wird, indem Wahrscheinlichkeitsverteilungen von Codewortsymbolen, die jeweiligen Signalabtastwerten entsprechen, über ein Faktordiagramm weitergegeben werden, wobei die Vorrichtung aufweist: ein gepulstes neuronales Netzwerk, bei dem Variablenknoten mit Faktorknoten verbunden sind, die einem zweiteiligen Faktordiagramm entsprechen, das durch einen Decodierungsalgorithmus des Fehlerkorrekturcodes definiert wird, wobei jeder der Knoten einen Satz von Neuronen aufweist, die so konfiguriert sind, dass sie die Rechenfunktionalität dieses Knotens implementieren; und ein Spike-Signalerzeuger, der so ausgelegt ist, dass er für jeden Signalabtastwert, der einem Symbol eines Codewortes entspricht, mindestens ein Spike-Signal erzeugt, in dem die Wahrscheinlichkeit eines möglichen Wertes dieses Abtastwertes auf Grundlage des Auftretens von Spikes in dem Spike-Signal codiert wird; wobei die Wahrscheinlichkeitsverteilungen auf Grundlage des Auftretens von Spikes in den Signalen weitergegeben werden, die durch das neuronale Netzwerk ausgebreitet werden, und die Variablenknoten so ausgelegt sind, dass sie nach der Weitergabe geschätzte Symbolwerte für das Codewort ausgeben.
  20. Vorrichtung nach Anspruch 19, wobei jedes Neuron eines Variablenknotens so ausgelegt ist, dass es eine Mehrheitsregelfunktion implementiert.
  21. Vorrichtung nach Anspruch 19, wobei jeder Faktorknoten Neuronen aufweist, die so konfiguriert sind, dass sie eine XOR-Funktion implementieren.
  22. Vorrichtung nach Anspruch 19, wobei der Spike-Signalerzeuger so ausgelegt ist, dass er jedes Spike-Signal so erzeugt, dass die Wahrscheinlichkeit auf Grundlage der Häufigkeit des Auftretens und/oder des Zeitpunkts des Auftretens von Spikes im Spike-Signal codiert wird.
  23. Vorrichtung nach Anspruch 22, wobei die Neuronen der Knoten so konfiguriert sind, dass sie die Wahrscheinlichkeitsverteilungen auf Grundlage der Häufigkeit des Auftretens und/oder des Zeitpunkts des Auftretens von Spikes in Signalen weitergeben, die durch das neuronale Netzwerk ausgebreitet werden.
  24. Vorrichtung nach Anspruch 23, bei der: der Spike-Signalerzeuger so ausgelegt ist, dass er jedes Spike-Signal so erzeugt, dass die Wahrscheinlichkeit auf Grundlage der Häufigkeit des Auftretens von Spikes in dem Spike-Signal codiert wird; und die Neuronen der Knoten so konfiguriert sind, dass sie die Wahrscheinlichkeitsverteilungen auf Grundlage der Häufigkeit des Auftretens von Spikes in Signalen weitergeben, die durch das neuronale Netzwerk ausgebreitet werden.
  25. Computerprogrammprodukt, das ein durch einen Computer lesbares Speichermedium mit darin enthaltenen Programmanweisungen aufweist, wobei die Programmanweisungen von einer Verarbeitungsvorrichtung ausführbar sind, um die Verarbeitungsvorrichtung zu veranlassen, eine Weitergabe von Wahrscheinlichkeitsverteilungen von Zufallsvariablen über ein Faktordiagramm durchzuführen durch: Implementieren eines gepulsten neuronalen Netzwerks, bei dem Variablenknoten mit Faktorknoten verbunden sind, die dem Faktordiagramm entsprechen, wobei jeder der Knoten einen Satz von Neuronen aufweist, die so konfiguriert sind, dass sie die Rechenfunktionalität dieses Knotens implementieren; für jeden Satz der Zufallsvariablen Erzeugen mindestens eines Spike-Signals, in dem die Wahrscheinlichkeit eines möglichen Wertes dieser Variable auf Grundlage des Auftretens von Spikes in dem Spike-Signal codiert wird; und Zurverfügungstellen der Spike-Signale für den Satz von Zufallsvariablen als Eingänge für das neuronale Netzwerk an entsprechenden Variablenknoten; wobei die Wahrscheinlichkeitsverteilungen auf Grundlage des Auftretens von Spikes in Signalen weitergegeben werden, die durch das neuronale Netzwerk ausgebreitet werden.
DE112019003167.8T 2018-09-06 2019-09-05 Wahrscheinlichkeitsweitergabe über faktordiagramme Pending DE112019003167T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/123,940 2018-09-06
US16/123,940 US11200484B2 (en) 2018-09-06 2018-09-06 Probability propagation over factor graphs
PCT/IB2019/057472 WO2020049492A1 (en) 2018-09-06 2019-09-05 Probability propagation over factor graphs

Publications (1)

Publication Number Publication Date
DE112019003167T5 true DE112019003167T5 (de) 2021-04-01

Family

ID=69719914

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019003167.8T Pending DE112019003167T5 (de) 2018-09-06 2019-09-05 Wahrscheinlichkeitsweitergabe über faktordiagramme

Country Status (6)

Country Link
US (1) US11200484B2 (de)
JP (1) JP7332193B2 (de)
CN (1) CN112384934A (de)
DE (1) DE112019003167T5 (de)
GB (1) GB2589046A (de)
WO (1) WO2020049492A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102606829B1 (ko) * 2019-01-09 2023-11-27 에스케이하이닉스 주식회사 Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6857097B2 (en) * 2001-05-16 2005-02-15 Mitsubishi Electric Research Laboratories, Inc. Evaluating and optimizing error-correcting codes using a renormalization group transformation
US7036720B2 (en) * 2003-06-25 2006-05-02 Centre National De La Recherche Scientifique (Cnrs) Method and apparatus for resolution of problems using constrained discrete variables
US20050193320A1 (en) * 2004-02-09 2005-09-01 President And Fellows Of Harvard College Methods and apparatus for improving performance of information coding schemes
EP1881610B1 (de) * 2005-05-13 2015-06-03 NEC Corporation Gewichtete LDPC Decodierung unter Verwendung der MaxLog approximation
EP2457354B1 (de) * 2009-06-26 2020-09-09 PlusN, LLC System und verfahren zur steuerung kombinierter funksignale
US8990132B2 (en) 2010-01-19 2015-03-24 James Ting-Ho Lo Artificial neural networks based on a low-order model of biological neural networks
US8825572B2 (en) * 2011-02-01 2014-09-02 Microsoft Corporation Program synthesis with existentially and universally quantified belief propagation using probabilistic inference
US9146546B2 (en) 2012-06-04 2015-09-29 Brain Corporation Systems and apparatus for implementing task-specific learning using spiking neurons
US9111222B2 (en) 2011-11-09 2015-08-18 Qualcomm Incorporated Method and apparatus for switching the binary state of a location in memory in a probabilistic manner to store synaptic weights of a neural network
US9111225B2 (en) 2012-02-08 2015-08-18 Qualcomm Incorporated Methods and apparatus for spiking neural computation
US9367798B2 (en) * 2012-09-20 2016-06-14 Brain Corporation Spiking neuron network adaptive control apparatus and methods
US9189730B1 (en) 2012-09-20 2015-11-17 Brain Corporation Modulated stochasticity spiking neuron network controller apparatus and methods
US8589164B1 (en) * 2012-10-18 2013-11-19 Google Inc. Methods and systems for speech recognition processing using search query information
US9477464B2 (en) * 2012-11-20 2016-10-25 Genesys Telecommunications Laboratories, Inc. Distributed aggregation for contact center agent-groups on sliding interval
US9542643B2 (en) 2013-05-21 2017-01-10 Qualcomm Incorporated Efficient hardware implementation of spiking networks
US20150213356A1 (en) * 2014-01-24 2015-07-30 Qualcomm Incorporated Method for converting values into spikes
US20150269481A1 (en) 2014-03-24 2015-09-24 Qualcomm Incorporated Differential encoding in neural networks
US20150269485A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated Cold neuron spike timing back-propagation
US20150278680A1 (en) 2014-03-26 2015-10-01 Qualcomm Incorporated Training, recognition, and generation in a spiking deep belief network (dbn)
US20150278685A1 (en) 2014-03-31 2015-10-01 Qualcomm Incorporated Probabilistic representation of large sequences using spiking neural network
US10311375B2 (en) 2014-10-16 2019-06-04 Nanyang Technological University Systems and methods for classifying electrical signals
CN105095966B (zh) 2015-07-16 2018-08-21 北京灵汐科技有限公司 人工神经网络和脉冲神经网络的混合计算系统
KR102565273B1 (ko) 2016-01-26 2023-08-09 삼성전자주식회사 뉴럴 네트워크에 기초한 인식 장치 및 뉴럴 네트워크의 학습 방법

Also Published As

Publication number Publication date
WO2020049492A1 (en) 2020-03-12
GB202103947D0 (en) 2021-05-05
US20200082251A1 (en) 2020-03-12
JP2022502727A (ja) 2022-01-11
CN112384934A (zh) 2021-02-19
US11200484B2 (en) 2021-12-14
JP7332193B2 (ja) 2023-08-23
GB2589046A (en) 2021-05-19

Similar Documents

Publication Publication Date Title
DE112016003245T5 (de) Resistive Verarbeitungseinheit
DE4042139C2 (de) Neuron-Einheit
DE112018000723T5 (de) Aktualisierungsverwaltung für eine RPU-Anordnung
DE102017125256A1 (de) Suche nach einer neuronalen Architektur
DE60219238T2 (de) Bewertung und Optimisierung von fehlerkorrigierenden Kodes unter Anwendung einer Renormalisierungsgruppentransformation
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE112020005610T5 (de) Identifizieren von optimalen gewichtungen zum verbessern einervorhersagegenauigkeit bei methoden für maschinelles lernen
DE112019005119T5 (de) Abgleichtechniken zum angleichen des symmetriepunktes als null-gewichtungspunkt in analogen kreuzungspunktanordnungen
DE112018005205T5 (de) Komprimierung von vollständig verbundenen / wiederkehrenden Schichten von einem oder mehreren tiefen Netzen durch Durchsetzen von räumlicher Lokalität für Gewichtsmatrizen und erwirken von Frequenzkomprimierung
DE112019004944B4 (de) Demodulieren modulierter signale mit künstlichen neuronalen netzwerken
DE112012005565T5 (de) Elektronische Synapsen aus stochastischen binären Speichereinheiten
DE112020000929T5 (de) Programmieren eines phasenwechselspeichersin einer geschlossenen schleife
DE112020001369T5 (de) Gepulste synaptische elemente für gepulste neuronale netze
DE112019003167T5 (de) Wahrscheinlichkeitsweitergabe über faktordiagramme
Rojas et al. Nonlinear blind source separation using genetic algorithms
DE112021001968T5 (de) Driftregularisierung zum entgegenwirken einer variation in driftkoeffizienten für analoge beschleuniger
DE102021123580A1 (de) Verfahren zum entwickeln einer initialisierungsfunktion zum programmieren eines speicherelements
DE112020002547T5 (de) Rausch- und signalverwaltung für rpu-array
DE112021003881T5 (de) Online-training von neuronalen netzen
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
DE102019104571A1 (de) Künstliches neuronales netz
DE10154200C9 (de) Verfahren zum Erzeugen wenigstens einer Folge von an Zahlenfolgen eines 1/f-Rauschens angenäherten Zufallszahlen
DE10154200C1 (de) Verfahren zum Erzeugen wenigstens einer Folge von an Zahlenfolgen eines 1/f-Rauschens angenäherten Zufallszahlen
DE112021004670T5 (de) Neuronale vorrichtung für ein neuronales-netz-system
WO1992004687A1 (de) Verfahren und anordnung zur boole&#39;schen realisierung neuronaler netze vom adaline-typ

Legal Events

Date Code Title Description
R012 Request for examination validly filed