DE102018127383A1 - Datenverarbeitungsvorrichtung mit einem künstlichen neuronalen Netzwerk und Verfahren zur Datenverarbeitung - Google Patents

Datenverarbeitungsvorrichtung mit einem künstlichen neuronalen Netzwerk und Verfahren zur Datenverarbeitung Download PDF

Info

Publication number
DE102018127383A1
DE102018127383A1 DE102018127383.5A DE102018127383A DE102018127383A1 DE 102018127383 A1 DE102018127383 A1 DE 102018127383A1 DE 102018127383 A DE102018127383 A DE 102018127383A DE 102018127383 A1 DE102018127383 A1 DE 102018127383A1
Authority
DE
Germany
Prior art keywords
input
feature
data
module
learning
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
DE102018127383.5A
Other languages
English (en)
Inventor
Klaus Pawelzik
David Rotermund
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.)
Universitaet Bremen
Original Assignee
Universitaet Bremen
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 Universitaet Bremen filed Critical Universitaet Bremen
Priority to DE102018127383.5A priority Critical patent/DE102018127383A1/de
Priority to PCT/EP2019/079645 priority patent/WO2020089287A1/de
Publication of DE102018127383A1 publication Critical patent/DE102018127383A1/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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/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/044Recurrent networks, e.g. Hopfield 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/088Non-supervised learning, e.g. competitive learning

Landscapes

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

Abstract

Eine Datenverarbeitungsvorrichtung 100 zur Abbildung von Eingabedaten auf Ausgabedaten umfasst eine Eingabe-Einrichtung 10 zur Aufnahme der Eingabedaten r(s), Erzeugung einer Eingabe-Wahrscheinlichkeitsverteilung p*(s) der Eingabedaten und Erzeugung einer stochastischen Repräsentation der Eingabedaten als Sequenz von Eingabe-Indizes, die jeweils eine stochastisch ermittelte Position innerhalb der Eingabe-Wahrscheinlichkeitsverteilung repräsentieren; mindestens ein Netzwerk 20 aus mindestens zwei Merkmalsmodulen 21, die über Datenverbindungen 22 miteinander gekoppelt sind, wobei eines der Merkmalsmodule mit der Eingabe-Einrichtung gekoppelt ist, wobei jedes Merkmalsmodul Zustandsvariablen-Speicherplätze jeweils mit Gewichte-Speicherplätzen, Index-Speicherplätze und eine Recheneinheit umfasst, die Zustandsvariablen-Speicherplätze zur Speicherung von normierten Zustandsvariablen hund die Gewichte-Speicherplätze zur Speicherung von Gewichten p(s | i), die den Zustandsvariablen hzugeordnet sind, eingerichtet sind, die Eingabe-Einrichtung zum Senden der Eingabe-Indizes an das mit der Eingabe-Einrichtung gekoppelte Merkmalsmodul eingerichtet ist, jedes Merkmalsmodul zum Senden einer Sequenz von Modul-Indizes an die mit diesem Merkmalsmodul gekoppelten Merkmalsmodule eingerichtet ist, wobei jeder Modul-Index basierend auf einer Merkmalsmodul-Wahrscheinlichkeitsverteilung hdes jeweils sendenden Merkmalsmoduls eine stochastisch ermittelte Position eines Zustandsvariablen-Speicherplatzes ist, die Index-Speicherplätze jedes Merkmalsmoduls zur Speicherung von empfangenen Eingabe-, Ausgabe- oder Modul-Indizes eingerichtet sind, und die Recheneinheit jedes Merkmalsmoduls eingerichtet ist, die Zustandsvariablen hund die zugeordneten Gewichte p(s | i), die in dem Merkmalsmodul gespeichert sind, durch Anwendung einer numerischen Optimierung basierend auf den Werten in den Index-Speicherplätzen schrittweise so zu ändern, dass für alle miteinander gekoppelten Merkmalsmodule wechselweise die Merkmalsmodul-Wahrscheinlichkeitsverteilung ∑p(s|i)hdes einen Merkmalsmoduls an die Zustandsvariablen hdes jeweils anderen Merkmalsmoduls angepasst ist und die Merkmalsmodul-Wahrscheinlichkeitsverteilung Σp(s|i)hdes mindestens einen, mit der Eingabe-Einrichtung gekoppelten Merkmalsmoduls an die Eingabe-Wahrscheinlichkeitsverteilung p*(s) angepasst ist; und eine Ausgabe-Einrichtung 30. Es wird auch ein Datenverarbeitungsverfahren zur Abbildung von Eingabedaten auf Ausgabedaten beschrieben.

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft eine Datenverarbeitungsvorrichtung, die zur Abbildung von Eingabedaten auf Ausgabedaten konfiguriert ist, insbesondere eine Datenverarbeitungsvorrichtung mit einem künstlichen neuronalen Netzwerk. Des Weiteren betrifft die Erfindung ein Datenverarbeitungsverfahren, bei dem Eingabedaten auf Ausgabedaten abgebildet werden, insbesondere ein Datenverarbeitungsverfahren unter Verwendung eines künstlichen neuronalen Netzwerks. Anwendungen der Erfindung sind in allen Gebieten der Datenverarbeitung, insbesondere basierend auf maschinellem Lernen und/oder künstlicher Intelligenz, z. B. bei der Auswertung von Daten und/oder der datenbasierten Steuerung von Vorrichtungen oder Verfahren gegeben.
  • Technischer Hintergrund
  • In der vorliegenden Beschreibung wird auf den folgenden Stand der Technik Bezug genommen, der den technischen Hintergrund der Erfindung illustriert:
    1. [1] Schmidhuber, J. (2015). Deep learning in neural networks: An overview. Neural networks, 61, 85-117;
    2. [2] Rosenblatt, F. (1958). The perceptron: a probabilistic model for information storage and organization in the brain. Psychological review, 65(6), 386;
    3. [3] Guo, Yanming, et al. „Deep learning for visual understanding: A review." Neurocomputing 187 (2016): 27-48;
    4. [4] Azkarate Saiz, A. (2015). Deep learning review and its applications;
    5. [5] Längkvist, M., Karlsson, L., & Loutfi, A. (2014). A review of unsupervised feature learning and deep learning for time-series modeling. Pattern Recognition Letters, 42, 11-24;
    6. [6] Silver, D., Huang, A., Maddison, C. J., Guez, A., Sifre, L., Van Den Driessche, G., ... & Dieleman, S. (2016). Mastering the game of Go with deep neural networks and tree search. Nature, 529(7587), 484-489;
    7. [7] Mnih, V., Kavukcuoglu, K., Silver, D., Rusu, A. A., Veness, J., Bellemare, M. G., ... & Petersen, S. (2015). Human-level control through deep reinforcement learning. Nature, 518(7540), 529;
    8. [8] Gatys, L. A., Ecker, A. S., & Bethge, M. (2016, June). Image style transfer using convolutional neural networks. In Computer Vision and Pattern Recognition (CVPR), 2016 IEEE Conference on (pp. 2414-2423). IEEE;
    9. [9] WO 2017/021322A1 ;
    10. [10] Lacey, G., Taylor, G. W., & Areibi, S. (2016). Deep learning on FPGAs: Past, present, and future. arXiv preprint arXiv:1602.04283;
    11. [11] Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by backpropagating errors. Nature, 323(6088), 533;
    12. [12] US 2007/192267A1 ;
    13. [13] US8219507B2 ;
    14. [14] Hinton, G. E. (2012). A practical guide to training restricted Boltzmann machines. In Neural networks: Tricks of the trade (pp. 599-619). Springer, Berlin, Heidelberg;
    15. [15] Salakhutdinov, R. and Hinton G. E. (2012) An efficient learning procedure for deep Boltzmann machines. Neural Comput. Aug; 24(8):1967-2006. doi: 10.1162/NECO_a_00311
    16. [16] Salakhutdinov, R. (2015). Learning deep generative models. Annual Review of Statistics and Its Application, 2, 361-385;
    17. [17] Ernst, U., Rotermund, D., & Pawelzik, K. (2007). Efficient computation based on stochastic spikes. Neural computation, 19(5), 1313-1343;
    18. [18] Spanne, A., & Jörntell, H. (2015). Questioning the role of sparse coding in the brain. Trends in neurosciences, 38(7), 417-427;
    19. [19] Bruckstein, A. M., Elad, M., & Zibulevsky, M. (2008). On the uniqueness of nonnegative sparse solutions to underdetermined systems of equations. IEEE Transactions on Information Theory, 54(11), 4813-4820;
    20. [20] Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980;
    21. [21] Rolinek, M., & Martius, G. (2018). L4: Practical loss-based stepsize adaptation for deep learning. arXiv preprint arXiv:1802.05074; und
    22. [22] Angeline, P. J., Saunders, G. M., & Pollack, J. B. (1994). An evolutionary algorithm that constructs recurrent neural networks. IEEE Transactions on Neural Networks, 5(1), 54-65).
  • Es ist allgemein bekannt, dass tiefe neuronale Netzwerke [1] eine wichtige Basis vieler Systeme mit Anwendungen künstlicher Intelligenz bilden. Tiefe neuronale Netzwerke bestehen aus einer Eingabeschicht, einer Vielzahl von verborgenen Zwischenschichten und einer Ausgabeschicht. Die Schichten sind typischerweise miteinander über gewichtete Verbindungen gekoppelt. Meistens erfolgt die Verarbeitung von Daten gerichtet, indem Signale von der Eingabeschicht sukzessive über die Zwischenschichten bis zur Ausgangschicht propagiert werden (Vorwärtsrichtung). Während diese Netzwerke theoretisch beliebige Funktionen erfüllen können, ist die Anpassung von Verbindungsgewichten der Verbindungen zwischen den Schichten („Lernen“) aufgrund der erforderlichen Rechenleistung und/oder Hardware-Anforderungen eine der zentralen Herausforderungen herkömmlicher neuronaler Netzwerke.
  • Zum Lernen werden für tiefe neuronale Netzwerke bisher Algorithmen verwendet, die in der Ausgangsschicht auftretende Fehler in Rückwärtsrichtung über die Schichten propagieren (z. B. der so genannte „Backpropagation-Algorithmus“) und so den Beitrag der Verbindungsgewichte auch in vorangehenden Schichten zum Fehler minimieren können (Lösung des „credit assignment problem“). Diese Algorithmen zeichnen sich dadurch aus, dass Fehlersignale modifiziert überall im Netzwerk zur Verfügung stehen müssen. Die Verbindungsgewichte müssen gemeinsam für das gesamte Netzwerk gelernt werden (nichtlokales Lernen). Dies wirkt sich nachteilig auf den Rechenaufwand und die Geschwindigkeit des Lernens aus und beschränkt die Zahl der in der Praxis realisierbaren verborgenen Schichten und die Geschwindigkeit der Anwendung des Netzwerks.
  • Ein weiterer Nachteil von herkömmlichen tiefen neuronalen Netzwerken besteht darin, dass meist nur dann nützliche Lösungen erreicht werden, wenn die Anzahl der freien Parameter im System stark beschränkt werden kann. Dies ist z. B. bei den „Deep Convolutional Networks“ (DCN) der Fall, die sich in vielen Anwendungen bewährt haben ([2] bis [5]). Sie reichen von dem Spielen von Brett- und Computer-Spielen ([6], [7]) bis in die Kunst ([8], [9]). Weitere Anwendungen sind z. B. beim Betrieb autonom fahrender Fahrzeuge, bei der Bildverarbeitung, insbesondere Gesichtserkennung, oder Bildverarbeitung für medizinische Anwendungen (z. B. Tumor-Erkennung auf MRT/CT Aufnahmen), beim Erkennen von betrügerischen Bank-Transaktionen, bei der Analyse des Verhalten von Wählern und deren Manipulation (siehe z.B. https://www.nvidia.de/deep-learning-ai/) gegeben. Bisher wird versucht, das aufwendige Lernen herkömmlicher Netzwerke zu beschleunigen, indem sie als Hardware-Lösung implementiert werden (siehe z.B. [10]).
  • Neben den tiefen neuronalen Netzwerken gibt es weitere Typen von neuronalen Netzwerken, die allerdings weniger erfolgreich sind. Ein Beispiel sind rekurrente Netzwerke, bei denen die verborgene Schicht aus einer Ansammlung von Neuronen besteht, die im Gegensatz zu den typischen vorwärts gerichteten Netzwerken auch untereinander verbunden sind. Das Lernen dieses Netzwerk-Typs ist notorisch schwierig [11]. Weitere Beispiele sind durch die so genannten Hierarchical Temporal Memory (HTM) Systeme [12, 13] gegeben.
  • Weitere Netzwerktypen sind rückgekoppelte Netzwerke vom Typ der so genannten Boltzmann Maschinen ([14], [15]) oder Netzwerke, die auf generativen Modellen [16] basieren. Zu Letzteren zählt das in [17] beschriebene vorwärts gerichtete Netzwerk, bei dem die Information vollständig mit stochastisch erzeugten Impulsen (oder: elektrische Aktionspotentiale, Indizes oder „Spikes“ genannt) übertragen werden und alle Gewichte und Aktivitäten nur positive Werte annehmen dürfen.
  • Es erwies sich als vorteilhaft, dass das Netzwerk gemäß [17] rauschrobust ist und fehlende Eingabedaten ergänzen kann. Die Anwendbarkeit des Netzwerks blieb jedoch auf eine einzige verborgene Schicht oder die Kombination mit einem herkömmlichen hierarchischen neuronalen Netzwerk beschränkt, obwohl ein großes Interesse an einer Erweiterung auf mehrere verborgene Schichten bestand. Es war jedoch noch kein Verfahren bekannt, wie die für die Erweiterung auf mehrere verborgene Schichten notwendigen Gewichte gelernt werden können. Des Weiteren war das Netzwerk ein rein vorwärts gerichtetes Netzwerk. Im Ergebnis war das Netzwerk gemäß [17] insbesondere aufgrund seiner spärlichen Aktivität vorrangig von theoretischem Interesse, da sich Beziehungen zur so genannten Sparseness bei der Informationsverarbeitung im Gehirn [18] und zu „Compressed Sensing“-Verfahren ergaben [19]. Für praktische Anwendungen war das Netzwerk jedoch nur beschränkt geeignet.
  • Aufgabe der Erfindung
  • Die Aufgabe der Erfindung ist es, eine verbesserte Datenverarbeitungsvorrichtung und/oder ein verbessertes Datenverarbeitungsverfahren bereitzustellen, mit denen Nachteile herkömmlicher Techniken vermieden werden. Die Datenverarbeitung soll unter Verwendung eines Netzwerks erfolgen, dessen Eigenschaften für eine Abbildung von Eingabedaten auf Ausgabedaten trainierbar sind. Die Datenverarbeitungsvorrichtung und/oder das Datenverarbeitungsverfahren sollen insbesondere die Probleme herkömmlicher Netzwerke verringern, die beim Lernen und dem Rückwärtsfluss von Information auftreten. Das Netzwerk soll geeignet sein, eine Datenverarbeitung mit einer erhöhten Anzahl von Netzwerkknoten, insbesondere mit einer erhöhten Anzahl von Schichten, und/oder einer erhöhten Geschwindigkeit zu realisieren, insbesondere wenn Anwendungen mit erhöhter Komplexität gegeben sind. Des Weiteren soll das Netzwerk geeignet sein, insbesondere für Anwendungen mit geringer Komplexität, eine Datenverarbeitung mit einer verringerten Anzahl von Netzwerkknoten, insbesondere mit einer verringerten Anzahl von Schichten, und/oder einer erhöhten Geschwindigkeit ohne Beeinträchtigung der Funktion des Netzwerks zu realisieren. Das Netzwerk soll ferner schaltungstechnisch vereinfacht, insbesondere mit einem verringerten Aufwand an Hardware-Komponenten realisierbar sein.
  • Zusammenfassung der Erfindung
  • Diese Aufgaben werden durch eine Datenverarbeitungsvorrichtung und/oder ein Datenverarbeitungsverfahren mit den Merkmalen der unabhängigen Ansprüche gelöst. Vorteilhafte Ausführungsformen und Anwendungen der Erfindung ergeben sich aus den abhängigen Ansprüchen.
  • Gemäß einem ersten allgemeinen Gesichtspunkt der Erfindung wird die o. g. Aufgabe durch eine Datenverarbeitungsvorrichtung (oder: Neuronales Netzwerk zur Informationsverarbeitung) gelöst, die zur Abbildung von Eingabedaten auf Ausgabedaten konfiguriert ist. Mit Eingabedaten r(s) werden allgemein vorgegebene Daten bezeichnet, die Informationen repräsentieren und mit der Datenverarbeitungsvorrichtung verarbeitet werden sollen. Die Eingabedaten sind die Daten, aus denen die Ausgabedaten ermittelt werden sollen. Die Eingabedaten liegen z. B. als Ergebnis von Messungen, Beobachtungen, Informationssammlungen oder numerischen Verfahren vor. Typischerweise umfassen die Eingabedaten numerische Werte r, die als ein- oder mehrdimensionale Anordnung (Positionen s) an einem Eingang der Datenverarbeitungsvorrichtung aufgenommen werden. Die Informationen sind in den Eingabedaten als Muster enthalten, die z. B. quantitative Werte der Eingabedaten und/oder eine Eigenschaft der Anordnung der Eingabedaten umfassen. Mit Ausgabedaten werden allgemein Daten bezeichnet, die Informationen repräsentieren und mit der Datenverarbeitungsvorrichtung aus den Eingabedaten erzeugt werden sollen. Mit Datenverarbeitung wird die maschinengestützte (computergestützte) Erzeugung der Ausgabedaten aus den Eingabedaten bezeichnet. Die Datenverarbeitung schließt in Abhängigkeit von der konkreten Anwendung der Erfindung insbesondere eine Analyse der Eingabedaten, eine Mustererkennung in den Eingabedaten, eine Merkmalserkennung in den Eingabedaten, eine Quantifizierung von Merkmalen, welche durch die Eingabedaten repräsentiert werden, und/oder eine Prognose der zukünftigen Veränderung des Systems, welches die Eingabedaten erzeugt, ein. Allgemein werden die Ausgabedaten durch eine vielparametrige Funktion, welche durch die Datenverarbeitungsvorrichtung, insbesondere ein in dieser enthaltenes Netzwerk, repräsentiert wird, den vorgegebenen Eingabedaten zugeordnet (Abbildung von Eingabedaten auf Ausgabedaten). Die vielparametrige Funktion wird in einem Lernmodus der Datenverarbeitungsvorrichtung mit bekannten Eingabedaten-Ausgabedaten-Paaren ermittelt und in einem Anwendungsmodus der Datenverarbeitungsvorrichtung auf vorgegebene Eingabedaten angewendet, um zugehörige Ausgabedaten zu ermitteln.
  • Die Datenverarbeitungsvorrichtung umfasst eine Eingabe-Einrichtung, die zur Aufnahme der Eingabedaten r(s), Erzeugung einer Eingabe-Wahrscheinlichkeitsverteilung p*(s) der Eingabedaten und Erzeugung einer stochastischen Repräsentation der Eingabedaten in Gestalt einer Sequenz von Eingabe-Indizes eingerichtet ist. Jeder Eingabe-Index (oder: Spike) repräsentiert eine stochastisch ermittelte Position innerhalb der Eingabe-Wahrscheinlichkeitsverteilung p*(s). Die Eingabe-Indizes sind beispielsweise die stochastisch ermittelten Positionen an sich oder davon abgeleitete Zahlen.
  • Die Eingabe-Wahrscheinlichkeitsverteilung p*(s) der Eingabedaten umfasst eine Folge von Wahrscheinlichkeiten der einzelnen Eingabedaten (z. B. berechnet als die Werte der Eingabedaten, jeweils dividiert durch die Summe der Eingabedaten). Die Sequenz von Eingabe-Indizes wird durch stochastische Auswahl von Werten aus der Eingabe-Wahrscheinlichkeitsverteilung, z. B. die Vorgabe einer Sequenz von Zufallszahlen zwischen 0 und 1, z. B. durch einen Zufallsgenerator, und die Ermittlung der Positionen in der Eingabe-Wahrscheinlichkeitsverteilung, deren summierte Wahrscheinlichkeiten aller vorherigen Positionen an die jeweilige Zufallszahl angepasst ist, gebildet. Die stochastische Auswahl wird im Folgenden auch als „ziehen“ der Indizes bezeichnet.
  • Im Ergebnis erzeugt die Eingabe-Einrichtung die Sequenz der Eingabe-Indizes als Folge von Zahlen, welche eine stochastische Repräsentation der in den Eingabedaten enthaltenen Informationen darstellt. Die Eingabe-Einrichtung umfasst z. B. eine Schaltung (Eingabe-Schaltung oder Eingabe-Schaltkreis) mit Speichern und einer Recheneinheit, die für die Erzeugung der Sequenz von Eingabe-Indizes eingerichtet ist. Des Weiteren kann die Recheneinheit Komponenten enthalten, die für die Steuerung von Speichervorgängen in der Eingabe-Einrichtung und/oder des Sendens der Eingabe-Indizes eingerichtet sind.
  • Die Datenverarbeitungsvorrichtung umfasst des Weiteren mindestens ein Netzwerk aus mindestens zwei Merkmalsmodulen, die über Datenverbindungen miteinander gekoppelt sind, wobei mindestens eines der Merkmalsmodule über eine Datenverbindung mit der Eingabe-Einrichtung gekoppelt ist. Die Eingabe-Einrichtung ist zum Senden der Sequenz von Eingabe-Indizes an das mindestens eine mit der Eingabe-Einrichtung gekoppelte Merkmalsmodul eingerichtet. Jedes Merkmalsmodul (auch als Normalisierungseinheit bezeichnet) ist zum Senden einer Sequenz von Modul-Indizes an die mit diesem Merkmalsmodul gekoppelten Merkmalsmodule eingerichtet. Das Senden der Sequenz von Eingabe- oder Modul-Indizes umfasst eine Übertragung der Indizes über die Datenverbindung. Welche Merkmalsmodule miteinander gekoppelt sind, d. h. welche Datenverbindungen bestehen, wird durch die Konfiguration des Netzwerks bestimmt. Die Datenverbindungen werden, insbesondere in Abhängigkeit von der konkreten Anwendung der Datenverarbeitungsvorrichtung, z. B. basierend auf Erfahrungswerten vorgegeben, und sie können bei Betrieb der Datenverarbeitungsvorrichtung modifiziert werden. Jedes Merkmalsmodul umfasst, wie im Folgenden erläutert wird, eine Schaltung (Merkmalsmodul-Schaltung oder Merkmalsmodul-Schaltkreis) mit Speichern und einer Recheneinheit. Die Zahl der erfindungsgemäß verwendeten Merkmalsmodule beträgt zusätzlich zu den Eingabe- und Ausgabe-Einrichtungen mindestens zwei, kann aber für praktische Anwendungen erheblich größer sein.
  • Die Datenverbindungen von Merkmalsmodulen mit anderen Merkmalsmodulen und/oder der Eingabe-Einrichtung umfassen vorzugsweise Verbindungen über einen Datenbus oder einen drahtlosen Übertragungskanal. Die Verbindungen werden z. B. Listen-basiert implementiert. Im Rahmen einer Netzwerkkonfiguration werden Listen gebildet, die festlegen, von welchen Merkmalsmodulen und/oder der Eingabe-Einrichtung an welche anderen Merkmalsmodule Eingabe- oder Modul-Indizes übertragen werden. Die zwischen den Merkmalsmodulen übertragenen Informationen zur erfindungsgemäßen Datenverarbeitungsvorrichtung umfassen vorzugsweise ausschließlich die Eingabe- und Modul-Indizes. Die Merkmalsmodule bilden Knoten des Netzwerks, an denen die durch die Eingabe- und Modul-Indizes repräsentierten Informationen verarbeitet werden. Obwohl das Netzwerk keine einzelnen Elemente enthält, die Neuronen mit einer Konfiguration wie bei einem herkömmlichen neuronalen Netzwerk sind, wird das Netzwerk aufgrund seiner Funktion hier auch als neuronales Netzwerk bezeichnet.
  • Das Netzwerk wird allgemein aus den Merkmalsmodulen gebildet, deren Anzahl mindestens 2 beträgt, bei praktischen Anwendungen jedoch vorzugsweise im Bereich von 10 bis 10000 gewählt ist, aber auch darüber liegen kann. Anders als bei herkömmlichen geschichteten Netzwerken sind die Merkmalsmodule im Netzwerk unabhängig vom Abstand von den Eingabe- und Ausgabe-Einrichtungen und der Reihenfolge in Vorwärts- oder Rückwärtsrichtung frei kombinierbar, d. h. das Netzwerk hat nicht notwendigerweise eine Schichtstruktur. Es besteht jedoch die Möglichkeit, Merkmalsmodule zu Schichten zusammenzufassen, um die Architektur eines geschichteten Netzwerks nachzubilden. Wenn die erfindungsgemäße Datenverarbeitungsvorrichtung ein geschichtetes Netzwerk mit mehreren Merkmalsmodulen pro Schicht aufweist, unterscheidet sich dieses jedoch von den herkömmlichen Netzwerken, die jeweils eine durchgängige Schicht aus einer Vielzahl von Neuronen haben.
  • Jedes Merkmalsmodul enthält eine Vielzahl von Speicherplätzen, von denen eine Gruppe von Speicherplätzen als Zustandsvariablen-Speicherplätze und eine weitere Gruppe von Speicherplätzen als Index-Speicherplätze bezeichnet werden. Die Zustandsvariablen-Speicherplätze speichern normierte latente Zustandsvariablen hi . Jedem Zustandsvariablen-Speicherplatz ist eine Vielzahl von Gewichte-Speicherplätzen zugeordnet. Die Gewichte-Speicherplätze speichern Gewichte p(s|i), die den latenten Zustandsvariablen hi zugeordnet sind. Die Index-Speicherplätze jedes Merkmalsmoduls speichern empfangene Eingabe- oder Modul-Indizes oder von einer Ausgabe-Einrichtung empfangene Ausgabe-Indizes.
  • Die Merkmalsmodule sind jeweils zum Senden (Übertragen) einer zugehörigen Sequenz von Modul-Indizes an die mit dem jeweiligen Merkmalsmodul gekoppelten anderen Merkmalsmodule eingerichtet. Jeder Modul-Index repräsentiert, basierend auf einer Merkmalsmodul-Wahrscheinlichkeitsverteilung hi des jeweils sendenden Merkmalsmoduls, eine stochastisch ermittelte Position eines Zustandsvariablen-Speicherplatzes. Die Modul-Indizes werden vorzugsweise erzeugt, wie oben für die Eingabe-Indizes und mit weiteren Einzelheiten unten unter Bezug auf die Figuren erläutert ist. Vorzugsweise umfassen die Modul-Indizes die stochastisch ermittelte Folge von Position der Zustandsvariablen-Speicherplätze.
  • Jedes Merkmalsmodul enthält des Weiteren die Recheneinheit, die zur Optimierung von den Zustandsvariablen hi und optional von deren Gewichten p(s | i) in Abhängigkeit von Eingabe- oder Modul-Indizes konfiguriert ist. Des Weiteren umfasst die Recheneinheit Komponenten, die für die Steuerung der Speichervorgänge an den Speicherplätzen des jeweiligen Merkmalsmoduls, die Berechnung der Modul-Indizes, und/oder die Steuerung des Sendens und Empfanges von Eingabe- und/oder Modul-Indizes eingerichtet sind.
  • Im Einzelnen ist die Recheneinheit jedes Merkmalsmoduls dazu eingerichtet, die latenten Zustandsvariablen hi und die zugeordneten Gewichte p(s|i), die in dem Merkmalsmodul gespeichert sind, durch Anwendung einer numerischen Optimierung basierend auf den Werten in den Index-Speicherplätzen schrittweise so zu verändern, dass für alle direkt miteinander gekoppelten Merkmalsmodule wechselweise die Merkmalsmodul-Wahrscheinlichkeitsverteilung Σi p(s|i)hi des einen Merkmalsmoduls an die latenten Zustandsvariablen hs des jeweils anderen Merkmalsmoduls angepasst ist und die Merkmalsmodul-Wahrscheinlichkeitsverteilung Σip(s|i)hi des mindestens einen mit der Eingabe-Einrichtung gekoppelten Merkmalsmoduls an die Eingabe-Wahrscheinlichkeitsverteilung p*(s) angepasst ist.
  • Die Datenverarbeitungsvorrichtung umfasst des Weiteren eine Ausgabe-Einrichtung, die mit mindestens einem Merkmalsmodul des Netzwerks über eine Datenverbindung gekoppelt und zur Bereitstellung der Ausgabedaten eingerichtet ist. Die Ausgabe-Einrichtung umfasst wiederum z. B. eine Schaltung (Ausgabe-Schaltung oder Ausgabe-Schaltkreis) mit Speichern und einer Recheneinheit, die für die Erzeugung der Ausgabedaten basierend auf der Sequenz von empfangenen Modul-Indizes eingerichtet ist. Des Weiteren kann die Recheneinheit Komponenten enthalten, die für die Steuerung von Speichervorgängen in der Ausgabe-Einrichtung und/oder der Verarbeitung der Modul-Indizes und optional für die Erzeugung und rückwärts gerichtete Übertragung von Modul-Indizes (so genannte Ausgabe-Indizes) an die mit der Ausgabe-Einrichtung gekoppelten Merkmalsmodule eingerichtet sind.
  • Die Architektur des Netzwerkes ist dadurch bestimmt, welche der Eingabe-Einrichtung, der Ausgabe-Einrichtung und der Merkmalsmodule als Quellen für Indizes für das empfangende Merkmalsmodul bzw. die Ausgabe-Einrichtung dienen, wo dann die empfangenen Indizes für die Aktualisierung der latenten Zustandsvariablen und optional für das Lernen der Gewichte verwendet werden. Die Gewichte eines Moduls beschreiben in lokaler Weise, wie das empfangende Modul seine latenten Zustandsvariablen, gegeben einen empfangenen Index und den unten beschriebenen Gleichungen (insbesondere Regeln zur Aktualisierung der latenten Zustandsvariablen), zu aktualisieren hat. Die Gewichte in einem Modul entsprechen einer zweidimensionalen Matrix an Speicherplätzen mit positiven Werten, wo diese Werte im reellen Wertebereich zwischen 0 und 1 aufweisen.
  • Jedem Zustandsvariablen-Speicherplatz für die latenten Zustandsvariablen sind auf den zugehörigen Gewichte-Speicherplätzen die Gewichte zugeordnet, die als ein Vektor an Gewichten betrachtet werden können. Die Länge des Vektors entspricht der Summe über die Anzahl der Speicherplätze für latente Zustandsvariablen über alle sendenden Komponenten, umfassend die Eingabe-Einrichtung, die Ausgabe-Einrichtung und die Merkmalsmodule, auf die, entsprechend der Architektur des Netzwerks, dieses empfangende Modul reagieren soll. In einer optionalen Ausführungsform ist die Summe über die Speicherwerte des gesamten Vektors auf einen festen Wert normiert (z.B. den Wert 1). Alternativ kann es vorteilhaft sein, dass die Summe über die Speicherwerte von Abschnitten dieses Gewichtsvektors, insbesondere diejenigen, welche gemeinsam zu einem sendenden Eingangs-, Ausgangs-, und Merkmalsmodul gehören, auf einen festen Wert normiert (z.B. den Wert 1) sind.
  • Die Gewichte stellen ein Maß für die Relevanz der Indizes zu den dazugehörigen Speicherplätzen der sendenden Module bzw. die Relevanz des kombinierten Auftretens dieser Indizes dar. Werte von 0 in dem Gewichtsvektor entsprechen einem Ignorieren des entsprechenden Speicherplatzes des Index-sendenden Moduls. Die Gewichte enthalten die, beim Lernen aus dem präsentierten Ensemble an Mustern aus den Übungsdaten (oder aus anderen Quellen wie z.B. bekannte mathematische oder biologische Zusammenhänge), extrahierten funktionalen Zusammenhänge, welche zum Lösen der Datenverarbeitungsaufgabe verwendet werden.
  • Vorteilhafterweise kann die Gewichtsmatrix Templates (Schablonen) und/oder eine Sammlung an Mischungen von Kombinationen an Merkmalen, die für die Lösung der Datenverarbeitung relevant sind, umfassen. Ein Beispiel für das Entstehen von Templates ist es, wenn besonders informative Muster aus den Übungsdaten direkt in die Gewichte abgebildet werden. Im Fall eines Netzwerkes zur Erkennung von handgeschriebenen Ziffern könnten dies beispielsweise verschiedene prägnante Ausführungen einer Ziffer, z. B. der Ziffer 2, sein. Die dazugehörige latente Zustandsvariable würde dann, im Laufe der Verarbeitung der eingehenden Indizes, besonders hohe Werte erhalten, wenn im Anwendungsmodus diese spezielle Ausführung der Ziffer 2 (oder mit einer leichten Variation) gezeigt werden würde. Im Beispiel einer Berechnung einer Booleschen Funktion könnte dies der Übernahme der Funktionstabelle in die Gewichte entsprechen.
  • Gemäß einem zweiten allgemeinen Gesichtspunkt der Erfindung wird die o. g. Aufgabe durch ein Datenverarbeitungsverfahren gelöst, das zur Abbildung von Eingabedaten auf Ausgabedaten konfiguriert ist. Vorzugsweise wird das Datenverarbeitungsverfahren mit der Datenverarbeitungsvorrichtung gemäß dem obigen ersten allgemeinen Gesichtspunkt der Erfindung ausgeführt.
  • Das erfindungsgemäße Datenverarbeitungsverfahren umfasst die folgenden Verfahrensschritte. Zunächst erfolgen die Aufnahme der Eingabedaten r(s), die Erzeugung einer Eingabe-Wahrscheinlichkeitsverteilung p*(s) der Eingabedaten und die Erzeugung einer stochastischen Repräsentation der Eingabedaten in Gestalt einer Sequenz von Eingabe-Indizes mit einer Eingabe-Einrichtung. Jeder Eingabe-Index ist eine Zahl, mit der eine stochastisch ermittelte Position innerhalb der Eingabe-Wahrscheinlichkeitsverteilung p*(s) bezeichnet wird.
  • Des Weiteren wird mindestens ein Netzwerk aus mindestens zwei Merkmalsmodulen betrieben, die über Datenverbindungen miteinander gekoppelt sind, wobei mindestens eines der Merkmalsmodule über eine Datenverbindung mit der Eingabe-Einrichtung gekoppelt ist und jedes Merkmalsmodul eine Vielzahl von Zustandsvariablen-Speicherplätzen, denen jeweils eine Vielzahl von Gewichte-Speicherplätzen zugeordnet ist, eine Vielzahl von Index-Speicherplätzen und eine Recheneinheit umfasst, wobei die Zustandsvariablen-Speicherplätze normierte latente Zustandsvariablen hi und die Gewichte-Speicherplätze Gewichte p(s | i) speichern, die den latenten Zustandsvariablen hi zugeordnet sind. Die Eingabe-Einrichtung sendet die Sequenz von Eingabe-Indizes an das mindestens eine mit der Eingabe-Einrichtung gekoppelte Merkmalsmodul. Jedes Merkmalsmodul sendet eine Sequenz von Modul-Indizes an die mit diesem Merkmalsmodul gekoppelten Merkmalsmodule, wobei jeder Modul-Index basierend auf einer Merkmalsmodul-Wahrscheinlichkeitsverteilung hi des jeweils sendenden Merkmalsmoduls eine stochastisch ermittelte Position eines Zustandsvariablen-Speicherplatzes ist. Die Index-Speicherplätze jedes Merkmalsmoduls speichern empfangene Eingabe- oder Modul-Indizes. Die Recheneinheit jedes Merkmalsmoduls verändert schrittweise die latenten Zustandsvariablen hi und die zugeordneten Gewichte p(s | i), die in dem Merkmalsmodul gespeichert sind, durch Anwendung einer numerischen Optimierung basierend auf den Werten in den Index-Speicherplätzen, so dass für alle direkt miteinander gekoppelten Merkmalsmodule wechselweise die Merkmalsmodul-Wahrscheinlichkeitsverteilung ip(s|i)hi des einen Merkmalsmoduls an die latenten Zustandsvariablen hs des jeweils anderen Merkmalsmoduls angepasst ist und die Merkmalsmodul-Wahrscheinlichkeitsverteilung Σi p(s|i)hi des mindestens einen, mit der Eingabe-Einrichtung gekoppelten Merkmalsmoduls an die Eingabe-Wahrscheinlichkeitsverteilung p*(s) angepasst ist.
  • Schließlich werden die Ausgabedaten mit einer Ausgabe-Einrichtung ausgegeben, die mit mindestens einem Merkmalsmodul des Netzwerks über eine Datenverbindung gekoppelt ist.
  • Weitere unabhängige Gegenstände der Erfindung sind ein Computerprogrammprodukt, das auf einem Computer-lesbaren Speichermedium gespeichert und zur Ausführung des Verfahrens gemäß dem zweiten allgemeinen Gesichtspunkt der Erfindung eingerichtet ist, und ein Computer-lesbares Speichermedium, auf dem das Computerprogrammprodukt zur Ausführung des Verfahrens gemäß dem zweiten allgemeinen Gesichtspunkt der Erfindung gespeichert ist.
  • Ein Hauptvorteil der Erfindung besteht in der Bereitstellung einer universell anwendbaren Netzwerkarchitektur, die eine Ermittlung der Ausgabedaten aus den jeweils gegebenen Eingabedaten auf der Grundlage der lokal in den Merkmalsmodulen optimierten Gewichte und latenten Zustandsvariablen und der gegenseitigen Anpassung der Merkmalsmodul-Wahrscheinlichkeitsverteilung Σi p(s|i)hi des einen Merkmalsmoduls an die latenten Zustandsvariablen hs des jeweils anderen Merkmalsmoduls von unmittelbar miteinander verbundenen Merkmalsmodulen ermöglicht. Die Verwendung der Merkmalsmodule für die Konstruktion von Netzwerken mit frei wählbarer Architektur schließt insbesondere Netzwerke vom Typ eines DCNs ein, deren Anwendung von großem technologischem Interesse ist.
  • Die vorzugsweise ausschließlich lokale Ermittlung der Gewichte und latenten Zustandsvariablen jeweils in den Merkmalsmodulen erlaubt eine parallele Arbeit aller Recheneinheiten, wodurch sowohl der Lernmodus als auch der Anwendungsmodus beschleunigt werden. Die gegenseitige Anpassung unmittelbar miteinander gekoppelter Merkmalsmodule und die Transitivität der Anpassung miteinander gekoppelter Merkmalsmodule erlaubt es, ein rekurrentes Netzwerk mit einer Vielzahl von Merkmalsmodulen, insbesondere ein geschichtetes rekurrentes Netzwerk mit vielen verborgenen Schichten, aufzubauen, in dem Information sowohl vorwärts als auch rückwärts fließen kann.
  • Vorteilhafterweise werden Informationen zwischen den Merkmalsmodulen ausschließlich in Gestalt der Eingabe- oder Modulindizes (und optional Ausgabe-Indizes), d. h. in Gestalt von stochastischen Zahlenfolgen, ausgetauscht, wodurch die Netzwerk-Architektur erheblich vereinfacht wird. Ein weiterer Vorteil der Erfindung ergibt sich aus der intrinsischen Stochastik, die erlaubt, dass das Netzwerk mit Zahlenwerten arbeiten kann, welche eine geringe Auflösung (e.g. Fixpunktzahlen mit wenigen Bits) aufweisen. Dies ermöglicht es, Merkmalsmodule zu verwenden, die jeweils für sich nur einfache Berechnungen ausführen. So kann jedes Merkmalsmodul mit seiner eigenen Recheneinheit versehen sein. Mit anderen Worten, man kann einfache Recheneinheiten verwenden (insbesondere mit Zustandsvariablen, die eine geringe Auflösung haben), die eine massive Parallelisierung der Datenverarbeitung ermöglichen.
  • Praktische Tests der Erfindung wurden bereits bei der Bildbearbeitung, insbesondere Ziffernerkennung erfolgreich realisiert. Beispielsweise umfasst ein Ziffererkennungsnetzwerk über 800 Merkmalsmodule, die in fünf verborgenen Schichten angeordnet sind. Da die Merkmalsmodule gleichzeitig und unabhängig voneinander berechnet werden können und zwischen den Merkmalsmodulen relativ wenige Daten ausgetauscht werden (nur die Indizes), wird das Skalierungsproblem herkömmlicher Netzwerke überwunden.
  • Die erfindungsgemäße Datenverarbeitungsvorrichtung kann lokal an einem System, z. B. Gerät, betrieben werden, an dem die zu verarbeitenden Eingabedaten vorliegen oder erzeugt, z. B. gemessen, erfasst, beobachtet, numerisch generiert oder gesammelt, werden. Alternativ oder zusätzlich kann die erfindungsgemäße Datenverarbeitungsvorrichtung in einem Netzwerk betrieben werden, in dem die zu verarbeitenden Eingabedaten von einem lokal betriebenen System an einen Server, z. B. einen zentralen Netzwerk-Server übertragen werden, in dem das Datenverarbeitungsverfahren ausgeführt wird.
  • Gemäß einer bevorzugten Ausführungsform der Erfindung umfasst die Eingabe-Einrichtung mindestens ein Eingabe-Merkmalsmodul, das wie die übrigen Merkmalsmodule mit einer Vielzahl von Zustandsvariablen-Speicherplätzen und einer Recheneinheit, vorzugsweise jedoch ohne Index-Speicherplätze aufgebaut ist. Die Eingabe-Wahrscheinlichkeitsverteilung p*(s) der Eingabedaten wird mit der Recheneinheit berechnet und auf den Zustandsvariablen-Speicherplätzen gespeichert. Die Verwendung des Eingabe-Merkmalsmoduls als Eingabe-Einrichtung hat den Vorteil, dass bei der Gestaltung der Datenverarbeitungsvorrichtung eines der Merkmalsmodule frei für die Eingabe von Daten ausgewählt werden kann. Die Eingabe-Einrichtung kann als Teil des Netzwerks aus Merkmalsmodulen betrachtet werden. Im Unterschied zu den übrigen Merkmalsmodulen ist im Eingabe-Merkmalsmodul das Rechenwerk zur Aktualisierung der latenten Zustandsvariablen und Gewichte entfernt oder deaktiviert. Im Eingabe-Merkmalsmodul werden keine Gewichte berechnet und die Wahrscheinlichkeit in dem Eingabe-Merkmalsmodul, aus der die Indizes generiert werden, wird von außen vorgegeben und ändert sich nicht, weil ein Eingabe-Merkmalsmodul nicht auf eingehende Indizes reagiert.
  • Vorzugsweise ist die erfindungsgemäße Datenverarbeitungsvorrichtung zum Betrieb in einem Lernmodus oder in einem Anwendungsmodus eingerichtet. Vorteilhafterweise erfordert der Wechsel zwischen den Modi keine schaltungstechnischen Vorkehrungen. Im Lernmodus (Training des Netzwerks) ist die Eingabe-Einrichtung zur Aufnahme vorbekannter Lern-Eingabedaten, die Ausgabe-Einrichtung zur Aufnahme vorbekannter Lern-Ausgabedaten, die den Lern-Eingabedaten zugeordnet sind, und das Netzwerk aus Merkmalsmodulen für das Aktualisieren der latenten Zustandsvariablen hi und das Lernen der zugeordneten Gewichte p(s|i), mit denen die Lern-Eingabedaten auf die Lern-Ausgabedaten abgebildet werden, eingerichtet. Im Lernmodus werden die Eingabe-Indizes und die Modul-Indizes gleichzeitig oder in einer vorbestimmten Reihenfolge gesendet, um die vielparametrige Funktion zu ermitteln, welche durch das Netzwerk repräsentiert wird und die Eingabedaten auf die Ausgabedaten abbildet. Das Netzwerk lernt durch Beispiele (Input - Output - Paare) seine Funktion, so dass es im Anwendungsmodus bei der Präsentation von neuen Eingabedaten die korrekten (bisher unbekannten) Ausgabedaten berechnet. Im Lernmodus ist die Recheneinheit zur Aktualisierung der latenten Zustandsvariablen deaktiviert, weil die Wahrscheinlichkeitsverteilung zum Generieren der (Ausgabe-)Modul-Indizes von außen (Trainings-Ausgabedaten) vorgegeben wird und sich nicht durch eingehende Modul-Indizes ändern soll.
  • Im Anwendungsmodus ist die Eingabe-Einrichtung zur Aufnahme von Anwendungs-Eingabedaten und die Ausgabe-Einrichtung zur Ausgabe von Anwendungs-Ausgabedaten eingerichtet, die den Anwendungs-Eingabedaten zugeordnet und durch die Merkmalsmodule des Netzwerks mit den im Lernmodus aktualisierten latenten Zustandsvariablen hi und zugeordneten gelernten Gewichten p(s|i) ermittelt sind.
  • Der Anwendungsmodus kann mit dem Lernmodus kombiniert werden, indem während der Anwendung der Datenverarbeitung das Netzwerk auf aktuelle Umgebungsbedingungen eingestellt wird (Nachlernen). Beim Nachlernen werden zusätzlich Paare von Eingabedaten und Ausgabedaten in das Netzwerk eingegeben und in die Optimierung der latenten Zustandsvariablen und Gewichte einbezogen.
  • Gemäß einer weiteren Variante der Erfindung kann die Eingabe-Einrichtung optional zusätzlich mindestens ein Lerneingabe-Merkmalsmodul umfassen, das im Lernmodus mit dem mindestens Netzwerk aus mindestens zwei Merkmalsmodulen gekoppelt und im Anwendungsmodus von dem mindestens Netzwerk getrennt ist. Vorteilhafterweise können damit im Lernmodus zusätzliche Lern-Eingabedaten bereitgestellt werden, die das Lernen beschleunigen und/oder das Lernergebnis verbessern (erhöhte Zuverlässigkeit des Netzwerks im Anwendungsmodus).
  • Ein weiterer wichtiger Vorteil der Erfindung besteht darin, dass die verarbeiteten Daten Informationen verschiedener Kategorien tragen können. Die Eingabedaten und/oder Ausgabedaten können z. B. Informationen von Bildmerkmalen, Audiomerkmalen, Sprachmerkmalen, Sensormerkmalen, Signalmerkmalen, ökonomische Zeitreihen, Verhaltensdaten, Zustandsmerkmalen eines biologischen Organismus, Zustandsmerkmalen eines natürlichen Systems, wie z. B. Wetterdaten, physikalischen Größen, chemischen Parametern und/oder Zustandsmerkmale einer technischen Einrichtung umfassen. Die Kategorien der Eingabedaten und der Ausgabedaten können gleich oder verschieden sein. Beispielsweise können eingabeseitige Sprachmerkmalen ausgabeseitig Bildmerkmalen oder eingabeseitige Bildmerkmale ausgabeseitig diagnostischen Informationen zugeordnet werden. Vorteilhafterweise können die latenten Zustandsvariablen hi Merkmale der Eingabedaten repräsentieren. Die Zuordnung zu Merkmalen der Eingabedaten erfolgt automatisch im Lernmodus. Alternativ kann es sein, dass latente Zustandsvariablen hi nicht bestimmten, benennbaren Merkmalen der Eingabedaten zuordenbar sind. Des Weiteren können die latenten Zustandsvariablen hi verschiedener Merkmalsmodule verschiedene Klassen von Merkmalen der Eingabedaten repräsentieren. Beispielsweise können die latenten Zustandsvariablen hi verschiedener Merkmalsmodule bei der Verarbeitung von Bilddaten verschiedene Bildmerkmale, wie z. B. bestimmte geometrische Muster, Farben oder auch Bildbestandteile oder bei der Verarbeitung von Wetterdaten verschiedene Wettermerkmale repräsentieren.
  • Gemäß einer weiteren bevorzugten Ausführungsform der Erfindung kann die Datenverarbeitungsvorrichtung mit einer Konfigurationseinrichtung ausgestattet sein, mit der eine Netzwerkkonfiguration einstellbar ist. Die Konfigurationseinrichtung kann z. B. Teil einer Steuereinrichtung der Datenverarbeitungsvorrichtung und über eine Eingabeschnittstelle durch einen Nutzer, z. B. auf der Basis von Erfahrungswerten, bedienbar und/oder für eine automatische Konfiguration ausgelegt sein. Die Netzwerkkonfiguration umfasst die Anzahl der Merkmalsmodule, die Anzahl von Zustandsvariablen-Speicherplätzen jedes Merkmalsmoduls, die Anzahl von Gewichte-Speicherplätzen, die jeweils einem Zustandsvariablen-Speicherplatz in einem Merkmalsmodul zugeordnet sind, die Anzahl von Index-Speicherplätzen jedes Merkmalsmoduls und/oder die Datenverbindungen zwischen Merkmalsmodulen.
  • Die Konfigurationseinrichtung kann vorteilhafterweise für eine iterative Einstellung der Netzwerkkonfiguration eingerichtet sein, bei der die Anzahl der Merkmalsmodule und die Anzahl der Zustandsvariablen-Speicherplätze jedes Merkmalsmoduls manuell oder programmgesteuert schrittweise erhöht werden, bis die Leistung der Abbildung der Eingabedaten auf die Ausgabedaten einem vorbestimmten Betriebskriterium entspricht, wobei beispielsweise evolutionäre Algorithmen (siehe [22]) angewendet werden.
  • Alternativ oder zusätzlich kann die Datenverarbeitungsvorrichtung mindestens ein Reserve-Merkmalsmodul enthalten, das zu Beginn des Betriebs der Datenverarbeitungsvorrichtung oder auch nach Durchlaufen des Lernmodus keine Datenverbindung mit dem Netzwerk aus Merkmalsmodulen aufweist. Die Konfigurationseinrichtung der Datenverarbeitungsvorrichtung ist in diesem Fall zur bedarfsweisen Herstellung mindestens einer Datenverbindung des mindestens einen Reserve-Merkmalsmoduls mit dem Netzwerk aus Merkmalsmodulen eingerichtet. Vorteilhafterweise liefert das mindestens eine Reserve-Merkmalsmodul eine hohe Flexibilität der Datenverarbeitungsvorrichtung in Bezug auf die Anpassung an geänderte Anwendungsbedingungen. Außerdem erlaubt dies auch, Ausfälle durch Fertigungsdefekte auf integrierten Schaltungen auszugleichen und dadurch die Ausbeute zu erhöhen.
  • Gemäß einer weiteren bevorzugten Ausführungsform der Erfindung kann das Netzwerk aus Merkmalsmodulen ein geschichtetes Netzwerk, insbesondere Deep Convolutional Network (DCN), mit mehreren Schichten aus Merkmalsmodulen umfassen, bei dem Merkmalsmodule innerhalb einer Schicht gemeinsame Gewichte haben, die den latenten Zustandsvariablen hi zugeordnet sind. Der besondere Vorteil dieser Ausführungsform besteht darin, dass an sich bekannte Architekturen geschichteter Netzwerke nachgebildet werden können, wobei jedoch die Anwendung des Netzwerks erheblich beschleunigt ist. DCNe haben den Vorteil, dass sich viele Merkmalsmodule dieselben Gewichte teilen, was das Lernen vereinfacht und oft die Leistungsfähigkeit des Netzwerkes verbessert.
  • Das geschichtete Netzwerk kann insbesondere für einen schichtbasierten Lernmodus eingerichtet sein, wobei die Schichten von der Eingabe-Einrichtung beginnend für ein Aktualisieren der latenten Zustandsvariablen hi und ein Lernen der zugeordneten Gewichte p(s | i) derart eingerichtet ist, dass die Lern-Eingabedaten schichtweise auf die Lern-Ausgabedaten abgebildet werden.
  • Alternativ kann das geschichtete Netzwerk für einen unüberwachten, schichtbasierten Lernmodus eingerichtet sein, wobei die Schichten von der Eingabe-Einrichtung beginnend bis zu einer vorletzten Schicht vor der Ausgabe-Einrichtung aufeinanderfolgend für eine Ermittlung der latenten Zustandsvariablen hi und der zugeordneten Gewichte p(s|i) ohne Berücksichtigung der Lern-Ausgabedaten eingerichtet sind (unüberwachtes Vorlernen) und erst eine letzte Schicht vor der Ausgabe-Einrichtung für eine Ermittlung der latenten Zustandsvariablen hi und der zugeordneten Gewichte p(s|i) mit einer Berücksichtigung der Lern-Ausgabedaten eingerichtet ist.
  • Beim unüberwachten Vorlernen werden die Eingabedaten an der Eingabe-Einrichtung eingegeben, aber nur die erste verborgene Schicht des Netzwerkes ist zunächst mit der Eingabe-Einrichtung gekoppelt. In diesem Zustand wird der erste Gewichtssatz gelernt, welcher der ersten verborgenen Schicht zugeordnet ist. Nach einer ausreichenden Menge an Lernschritten werden die Gewichte dieser Schicht festgehalten. Anschließend werden die Gewichte der nächsten verborgenen Schicht gelernt. Erst bei der letzten verborgenen Schicht werden die Ausgabedaten beim Lernen berücksichtigt.
  • Alternativ kann beim Lernen zunächst das Netzwerk für eine Vorlaufzeit arbeiten, ohne dass die Lern-Eingabedaten und Lern-Ausgabedaten eingegeben werden. Des Weiteren kann es von Vorteil sein, die Gewichte, die ein Merkmalsmodul mit einem anderen verbinden, mit denen in der Gegenrichtung in ihrer Struktur gleichzusetzen. Wegen der notwenigen Normierung unterscheiden sich die Werte von der reinen Transposition der entsprechenden Matrizen.
  • Alternativ kann das geschichtete Netzwerk für einen überwachten, schichtbasierten Lernmodus eingerichtet sein, bei dem basierend auf dem aktuellen Lernfehler die Gewichte p(s | i) ausgewählter Module reinitialisiert werden.
  • Ein weiterer Vorteil der Erfindung ist es, dass verschiedene numerische Maße für die numerische Optimierung in den Merkmalsmodulen verfügbar sind. Gemäß bevorzugten Varianten der Erfindung kann die Recheneinheit jedes Merkmalsmodul dazu eingerichtet sein, die numerische Optimierung basierend auf einem probabilistischen Ziel-Maß, insbesondere der Log-Likelihood, der Kullbach-Leibler-Divergenz oder Kombinationen von Vektornormen, auszuführen. Das numerische Maß kann in Abhängigkeit von der Anwendung der Erfindung für eine schnelle Optimierung beim Lernen gewählt werden. Die parallele und asynchrone Aktualisierung sowohl der latenten Zustandsvariablen als auch der Gewichte beim Lernen stellt einen wichtigen Vorteil der Erfindung dar. Sie folgt aus der Optimierung einer Zielfunktion, die bisher nicht für das Lernen von Netzwerken aus Merkmalsmodulen verwendet wurde (z. B. Log-Likelihood-Maß). Die Anwendung von Ziel-Maßen hat ferner den Vorteil, dass diese Abbruchkriterien für das Lernen ergeben. Außerdem wird dabei die Anzahl der nötigen Iterationen bei der Aktualisierung der latenten Variablen festgestellt.
  • Gemäß einer weiteren bevorzugten Ausführungsform der Erfindung kann die Ausgabe-Einrichtung der Datenverarbeitungsvorrichtung mindestens ein Ausgabe-Merkmalsmodul umfassen, das wie die übrigen Merkmalsmodule mit einer Vielzahl von Zustandsvariablen-Speicherplätzen, einer Vielzahl von Index-Speicherplätzen und einer Recheneinheit aufgebaut ist, wobei die latenten Zustandsvariablen des mindestens einen Ausgabe-Merkmalsmoduls oder davon abgeleitete Größen als Ausgabedaten ausgegeben werden. Zusätzlich enthält das Ausgabe-Merkmalsmodul einen Schaltungsteil zur Extraktion eines Ergebnisses (Ausgabe-Daten) aus den latenten Zustandsvariablen. Hierzu ist z. B. eine Schaltung vorgesehen, die auf den Speicherplätzen der latenten Zustandsvariablen eine Ermittlung der Position des Speicherplatzes, welcher den maximalen hiWert beinhaltet, ausführt (argmax-Schaltung). Das Ausgabe-Merkmalsmodul kann wie die übrigen Merkmalsmodule Modul-Indizes in Rückwärtsrichtung an die mit dem Ausgabe-Merkmalsmodul gekoppelten Merkmalsmodule senden (Übertragung von Ausgabe-Indizes). Die Ausgabe-Indizes werden vorzugsweise so erzeugt, wie oben für die Eingabe-Indizes und mit weiteren Einzelheiten unten unter Bezug auf die Figuren erläutert ist. Die Verwendung des Ausgabe-Merkmalsmoduls als Ausgabe-Einrichtung hat den Vorteil, dass bei der Gestaltung der Datenverarbeitungsvorrichtung eines der Merkmalsmodule frei für die Ausgabe von Daten ausgewählt werden kann. Die Ausgabe-Einrichtung kann als Teil des Netzwerks aus Merkmalsmodulen betrachtet werden.
  • Alternativ oder zusätzlich kann die Ausgabe-Einrichtung einen Klassifikator, insbesondere basierend auf Perzeptrons, oder einer Support-Vektor-Maschine, umfassen, der auf der Basis der latenten Zustandsvariablen von Merkmalsmodulen operiert, mit denen die Ausgabe-Einrichtung gekoppelt ist.
  • Die Datenverarbeitungsvorrichtung kann durch eine integrierte Schaltung, optional gekoppelt mit einer Steuereinrichtung, z. B. einem Steuercomputer, realisiert werden. Es kann z. B. ein herkömmlicher Universal-Prozessor mit z. B. 8 Kernen verwendet werden um 8 Merkmalsmodule gleichzeitig bereitzustellen. Wegen der hohen Zahl der erfindungsgemäß verwendeten Merkmalsmodule (z. B. 100 bis 1000) hat die integrierte Schaltung jedoch vorzugsweise eine Prozessorarchitektur, welche die Verfahren zur Verarbeitung der Daten optimal (d.h. insbesondere mit minimaler Anzahl von Speicherzugriffen) umsetzt. Dies wird durch die Einfachheit der auszuführenden mathematischen Einzelschritte des Datenverarbeitungsverfahrens ermöglicht, die lediglich Addition, Multiplikation und Division von positiven Zahlen umfassen. Vorteilhafterweise können dann hunderte Merkmalsmodule von einem einzigen speziell angepassten Prozessor verarbeitet werden. Eine Vielzahl von Merkmalsmodulen kann in einer einzigen integrierten Schaltung, insbesondere auf einem Chip, realisiert werden.
  • Die Datenverarbeitungsvorrichtung kann ein einziges Netzwerk aus Merkmalsmodulen beinhalten. Gemäß einer vorteilhaften Ausführungsform der Erfindung umfasst die Datenverarbeitungsvorrichtung ein modulares System mit mindestens zwei miteinander verbundenen, integrierten Schaltungen, die jeweils ein Netzwerk aus Merkmalsmodulen aufweisen. Die mindesten zwei Netzwerke können mit einer einzigen Eingabe-Einrichtung oder mit mehreren Eingabe-Einrichtungen und/oder mit einer einzigen Ausgabe-Einrichtung oder mit mehreren Ausgabe-Einrichtungen verbunden sein. In diesem Fall können die Flexibilität bei der Anpassung der Datenverarbeitungsvorrichtung an eine konkrete Aufgabe verbessert, die Komplexität der Anwendung erhöht und/oder die Ausfallsicherheit verbessert werden.
  • Zusammengefasst bietet die Erfindung insbesondere die folgenden Vorteile. Das Netzwerk ist im Vergleich mit herkömmlichen Netzwerken mit einer erhöhten Anzahl von Merkmalsmodulen, insbesondere Schichten aus Merkmalsmodulen realisierbar. Die erfindungsgemäße Datenverarbeitung ist hochgradig parallelisierbar und in größeren Netzwerken bei Real-Time Anwendungen einsetzbar. Das Skalierungsproblem herkömmlicher Netzwerke wird durch die Lokalität, die damit verbundene Parallelisierung sowie den reduzierten Datenaustausch zwischen Modulen überwunden. Das Lernen und die Anwendung der Datenverarbeitung sind, insbesondere mit angepasster Hardware (z. B. FPGA) , 1000 bis 10000 mal schneller realisierbar, so dass insbesondere bei closed-loop-Anwendungen (z.B. in der Robotik) die jeweilige spezielle Aufgabe effizient schnell erlernt werden kann oder eine vorgelernte Gewichtsstruktur individuell und möglichst schnell angepasst werden kann.
  • Figurenliste
  • Weitere Einzelheiten und Vorteile der Erfindung werden im Folgenden mit Bezug auf die beigefügten Zeichnungen beschrieben. Es zeigen
    • 1: eine Übersichtsdarstellung einer Datenverarbeitungsvorrichtung mit Merkmalen bevorzugter Ausführungsformen der Erfindung;
    • 2: Einzelheiten eines Merkmalsmoduls einer Datenverarbeitungsvorrichtung gemäß der Erfindung;
    • 3: eine Darstellung des Informationsaustauschs innerhalb einer Datenverarbeitungsvorrichtung gemäß der Erfindung;
    • 4: eine Darstellung des Anwendungs- und des Lernmodus der Datenverarbeitungsvorrichtung gemäß der Erfindung;
    • 5: eine Abwandlung des Lernmodus gemäß 4;
    • 6: eine beispielhafte Illustration einer Anwendung der Datenverarbeitungsvorrichtung gemäß der Erfindung;
    • 7: eine beispielhafte Illustration einer Anwendung der Datenverarbeitungsvorrichtung gemäß der Erfindung bei der Bildung eines DCN; und
    • 8 bis 26: Einzelheiten einer Hardware-Konfiguration einer Datenverarbeitungsvorrichtung gemäß der Erfindung.
  • Bevorzugte Ausführungsformen der Erfindung
  • Einzelheiten bevorzugter Ausführungsformen der Erfindung werden im Folgenden beispielhaft in Bezug auf die Konfiguration der Datenverarbeitungsvorrichtung, Beispiele von Anwendungen, die schaltungstechnische Ausführung der Datenverarbeitungsvorrichtung und die mathematischen Grundlagen der Datenverarbeitung beschrieben. Es wird betont, dass die Umsetzung der Erfindung in der Praxis nicht auf die beschriebenen Ausführungsformen, insbesondere die Anwendungsbeispiele und die schaltungstechnischen Details beschränkt ist. Vielmehr können alle Anwendungen, die von herkömmlichen neuronalen Netzwerken bekannt sind, und darüber hinaus komplexere Datenverarbeitungsaufgaben abgearbeitet werden, und Abwandlungen der Konfiguration und Schaltungstechnik vorgesehen sein.
  • Das Verfahren der Bildung eines einzelnen Merkmalsmoduls mit internen latenten Zustandsvariablen sowie die Erzeugung von Modul-Indizes mit einem einzigen Merkmalsmodul sind an sich bereits aus [17] bekannt. Die Veröffentlichung [17] wird durch Bezugnahme ausdrücklich in die vorliegende Offenbarung aufgenommen, so dass der Fachmann bei der Konfiguration des Netzwerks der erfindungsgemäßen Datenverarbeitungseinrichtung ergänzende Informationen aus [17] erhält, welche insbesondere die mathematischen Grundlagen der Bildung der latenten Zustandsvariablen und der Erzeugung der Modul-Indizes (in [17] als „Spikes“ bezeichnet) betreffen.
  • Konfiguration der Datenverarbeitungsvorrichtung
  • 1 zeigt eine Übersichtsdarstellung der Datenverarbeitungsvorrichtung 100 mit einer Eingabe-Einrichtung 10 zur Aufnahme von Eingabedaten r(s), einem Netzwerk 20 mit Merkmalsmodulen 21, die über Datenverbindungen 22 miteinander und/oder mit der Eingabe-Einrichtung 10 gekoppelt sind, einer Ausgabe-Einrichtung 30 zur Ausgabe der Ausgabedaten Out und einer Steuereinrichtung 40. Die Eingabe-Einrichtung 10 und die Ausgabe-Einrichtung 30 können jeweils mindestens ein Modul 11, 31 umfassen, das wie die Merkmalsmodule 21 aufgebaut ist. Wenn mehrere Module 11 oder 31 vorgesehen sind, können diese jeweils untereinander und mit Merkmalsmodulen 21 oder jeweils ausschließlich mit Merkmalsmodulen 21 verbunden sein. Des Weiteren sind die Eingabe- und Ausgabe-Einrichtungen 10, 30 mit Daten-Schnittstellen (Ein- und Auslesemechanismen) versehen (nicht dargestellt).
  • Die Datenverbindungen 22 bezeichnen die software- oder hardware-basierte Kopplung von Merkmalsmodulen zur Weitergabe von Eingabe- oder Modul-Indizes. Die Steuereinrichtung 40 kann z. B. einen Computer umfassen, der die Komponenten 10 bis 30 steuert und insbesondere eine Konfigurationseinrichtung 41, mit der eine Netzwerkkonfiguration und insbesondere die Datenverbindungen 22 einstellbar sind, eine Bedieneinrichtung 42 und/oder eine Anzeigeeinrichtung 43 enthalten. Einzelheiten der Komponenten 10 bis 30 werden unten unter Bezug auf die 8 bis 26 beschrieben. Die Funktion der Komponenten 10 bis 30 wird unten im Abschnitt „Mathematische Grundlagen der Datenverarbeitung“ beschrieben.
  • Die Datenverarbeitungsvorrichtung 100 kann durch einen Computer, auf dem eine Software zur Ausführung des erfindungsgemäßen Verfahrens läuft, oder mindestens eine mit den genannten Komponenten konfigurierte Schaltung, insbesondere mindestens eine integrierte Schaltung (Netzwerk-Chip, z. B. ASIC-Chip) oder eine Kombination aus beiden realisiert werden. Es kann ferner ein modulares Hardware-System mit mindestens zwei integrierten Schaltungen vorgesehen sein, die jeweils ein oder mehrere Netzwerk(e) 20 aus Merkmalsmodulen 21 umfassen.
  • Der Aufbau eines Merkmalsmoduls 21 ist schematisch in 2 gezeigt, während die konkrete schaltungstechnische Umsetzung von Merkmalsmodulen und deren Verbindung in den 8 bis 26 beispielhaft gezeigt ist. Jedes Merkmalsmodul 21 umfasst eine Vielzahl von Speicherplätzen 23 bis 25 und eine Recheneinheit 26. Die Speicherplätze 23 bis 25 umfassen Zustandsvariablen-Speicherplätze 23, denen jeweils eine Gruppe von Gewichte-Speicherplätze 24 zugeordnet sind, und Index-Speicherplätzen 25, deren Funktionen unten erläutert werden. Es sind NH Zustandsvariablen-Speicherplätze 23 für latente Zustandsvariablen vorgesehen. Bei typischen Anwendungen ist NH im Bereich von 4 bis 1024 Aus den Zustandsvariablen-Speicherplätze 23 wird in jedem Verarbeitungsschritt ein Modul-Index it stochastisch erzeugt und an alle mit diesem Merkmalsmodul 21 verbundenen anderen Merkmalsmodule gesendet. Diese anderen Merkmalsmodule (ggf. einschließlich die Eingabe-Einrichtung 10) schicken die in diesen stochastisch erzeugten Eingabe- oder Modul-Indizes s t k
    Figure DE102018127383A1_0001
    an dieses Merkmalsmodul 21. Die eingehenden Indizes (hier s t 1 , s t 2 , s t 3 ,
    Figure DE102018127383A1_0002
    ) werden in den Index-Speicherplätzen 25 im empfangenden Merkmalsmodul 21 gespeichert. Wenn genügend Indizes gesammelt wurden, werden die latenten Zustandsvariablen dieses Merkmalsmoduls auf der Basis ihrer vorigen Werte, dieser gespeicherten Indizes s t k
    Figure DE102018127383A1_0003
    und optional den dazugehörigen Gewichten p(s|i) aktualisiert. Die aktualisierten Werte in den latenten Zustandsvariablen werden dann wieder verwendet um neue Indizes zu generieren, die an die verbundenen Merkmalsmodule gesendet werden. Die eingehenden Indizes könnten im Rahmen eines Online-Lern-Verfahrens auch dazu verwendet werden, die Gewichte selber zu aktualisieren.
  • 3 zeigt weitere Einzelheiten des Flusses der Indizes am Beispiel eines einfachen Netzwerks 20, das in diesem Fall ein Eingabe-Modul 11 der Eingabe-Einrichtung (EE), zwei Merkmalsmodule 21 (MM1, MM2) und einem Ausgabe-Modul 31 der Ausgabe-Einrichtung (AE) umfasst. In dem Eingabe-Modul 11 wird im Laufe des Betriebes des Netzwerks 20 aus p*(s) eine Sequenz von Eingabe-Indizes s1 , s2 , s3 , s4 , ... stochastisch erzeugt („gezogen“). Auf Grund der in diesem Beispiel gewählten Architektur werden diese Eingabe-Indizes dem ersten Merkmalsmodul MM1 mitgeteilt. Das Merkmalsmodul MM1 wiederum erzeugt aus dem jeweiligen Zustand seiner latenten Zustandsvariablen hMM1(i) Modul-Indizes i1 , i2 , i3 , i4 , ... und sendet diese entsprechend der hier gewählten Architektur an das Merkmalsmodul MM2. Merkmalsmodul MM2 generiert die Indizes j1 ,j2 ,j3 ,j4 , ... aus hMM2(j) und sendet die Indizes sowohl in Rückwärtsrichtung an Merkmalsmodul MM1 als auch an das Ausgabe-Modul 31 der Ausgabe-Einrichtung AE. Das Ausgabe-Modul 31 wiederum sendet k1 , k2 , k3 , k4 ,... an das Merkmalsmodul MM2. Diese Folge an Indizes wird aus dem jeweils aktuellen Stand von hAE(k) erzeugt. Jeder eingehende Index führt zu einer Aktualisierung der latenten Zustandsvariablen des empfangenden Merkmalsmoduls, was die Änderung der Wahrscheinlichkeitsverteilung für die Erzeugung der Indizes in jedem Merkmalsmodul zur Folge hat. Dies gilt nicht für p*(s), da diese Wahrscheinlichkeitsverteilung nur von den angelegten Eingabedaten abhängt und von der Eingabe-Einrichtung keine Indizes verarbeitet werden. Die Aktualisierung basiert auf den unten beispielhaft beschriebenen mathematischen Operationen.
  • 4 zeigt den Fluss der Eingabe- und/oder Modul-Indizes in einem Anwendungsmodus und einem Lernmodus des Netzwerks 20. Typischerweise wird sowohl im Anwendungsmodus wie auch im Lernmodus ein Muster von Eingabedaten r(s) an die Eingabe-Einrichtung 10 (EE) angelegt. Diese rechnet die Eingabedaten in die Wahrscheinlichkeitsverteilung p * ( s ) = r ( s ) k r ( s )
    Figure DE102018127383A1_0004
    um, aus der dann Indizes gezogen werden. Diese Wahrscheinlichkeitsverteilung wird über die Verarbeitung dieser vorgegeben Eingabedaten festgehalten. Im Anwendungsmodus führt dieser Satz an Eingabedaten, über die gegenseitige Aktualisierung der latenten Zustandsvariablen durch die ausgetauschten Indizes, zu einer Wahrscheinlichkeitsverteilung in der Ausgabe-Einrichtung 30 (AE). Diese Wahrscheinlichkeitsverteilung wird dann entsprechend ausgewertet und in ein Ergebnis der Verarbeitung übersetzt (Ausgabedaten OUT). Im Lernmodus wird typischerweise ein zum jeweils angelegten Eingabe-Muster von Eingabedaten gehöriges vorbekanntes Ausgabe-Muster von Ausgabedaten an die Ausgabe-Einrichtung 30 angelegt. Dies führt zu einer (für das jeweilige Muster festen) Wahrscheinlichkeitsverteilung, die dazu führt, dass die Ausgabe-Einrichtung 30 Indizes an andere Merkmalsmodule 21 sendet. Die Merkmalsmodule 21, die diese Indizes von der Ausgabe-Einrichtung 30 empfangen, lernen in ihren Gewichten den Zusammenhang (oder Teile davon) zwischen den Eingabe- und Ausgabedaten. Im Anwendungsmodus, in dem neue Eingabedaten zugeführt werden, ergänzt das Netzwerk die nun nicht mehr anliegenden Ausgabedaten.
  • Im Lernmodus kann, wie in 5 dargestellt ist, die Eingabe-Einrichtung 10 zusätzlich mindestens ein Lerneingabe-Merkmalsmodul 12 aufweisen, das mit dem Netzwerk 20 aus Merkmalsmodulen 21 gekoppelt ist (Lernmodus mit Seiteneinkopplung). Im Anwendungsmodus ist das Lerneingabe-Merkmalsmodul 12 von dem mindestens Netzwerk 20 getrennt. An dem zusätzlichen Lerneingabe-Merkmalsmodul 12 werden die zu lernenden Ausgabedaten zugeführt und beim Aktualisieren der Zustandsvariablen und Lernen der Gewichte in den Merkmalsmodulen 21 berücksichtigt. Dadurch wird die Wahrscheinlichkeitsverteilung in der Ausgabe-Einrichtung 30 nicht mit der gewünschten Wahrscheinlichkeitsverteilung festgehalten, sondern sie verhält sich so wie im Anwendungsmodus. Vorteilhafterweise entspricht die Dynamik der latenten Zustandsvariablen in der Ausgabe-Einrichtung 30 und dem Merkmalsmodulen MM2 so mehr dem gewünschten Zielzustand, da die latenten Zustandsvariablen, im Vergleich zu der Variante, bei der die Ausgabedaten an der Ausgabe-Einrichtung 30 beim Lernen festgehalten werden, freier variieren können.
  • Die 6a bis 6c zeigen die Struktur von Netzwerken, welche die Boolesche Paritäts-Funktion berechnen (6a und 6b für 4 bit und 6c für 8 bit). Wiederum sind beispielhaft die Eingabe-Einrichtung 10, mehrere Merkmalsmodule 21, die gruppenweise zu Schichten 50, 51, 52 zusammengefasst sind, und die Ausgabe-Einrichtung 30 gezeigt.
  • 6a zeigt das Boolesches Parität-Netzwerk für 4 Bit. Jeweils vier Eingabe-Module 11 der Eingabe-Einrichtung 10 mit jeweils zwei Speicherplätzen beschreiben die Eingabedaten. Entweder ist der Speicherplatz für den Bit-Wert 0 oder der Speicherplatz für den Bit-Wert 1 aktiv. Die von diesen vier Eingabe-Modulen 11 erzeugten Eingabe-Indizes werden an die erste Schicht 50 weitergeleitet, wo zwei Merkmalsmodule 21 mit jeweils 4 Speicherplätzen für latente Zustandsvariablen vorhanden sind. Diese Merkmalsmodule 21 der ersten Schicht 50 senden Modul-Indizes an das Merkmalsmodul 21 in der zweiten Schicht 51 sowie empfangen Modul-Indizes aus der zweiten Schicht 51. Die zweite Schicht 51 besteht aus einem Merkmalsmodul 21 mit vier Speicherplätzen für latente Zustandsvariablen. Diese Schicht 51 sendet und empfängt Modul-Indizes an die Ausgabe-Einrichtung 30 bzw. von den Merkmalsmodulen 21 in der ersten Schicht 50. Die Ausgabe-Einrichtung 30 erhält Modul-Indizes von dem Merkmalsmodul 21 der zweiten Schicht 51. Es wird dann ausgewertet, welcher der beiden Speicherplätze der Ausgabe-Einrichtung 30 für den Bit-Wert 0 oder 1 den höheren Wert hat und als Ergebnis der Berechnung ausgegeben. Die Gewichte können gelernt werden. In 6a ist ein Satz an Gewichten durch Linien dargestellt, der die Aufgabe löst. Dabei sind Gewichte mit einem Wert 0 nicht eingezeichnet. Die gezeigten Gewichte in einer Schicht haben alle die gleichen Werte, wobei der Wert von der Normalisierung der Gewichte bestimmt ist. 6b zeigt, wie die Indizes zwischen den Merkmalsmodulen 21 in 6a ausgetauscht werden. 6c illustriert eine analoge Struktur und der Informationsfluss für die 8 Bit-Paritätsfunktion.
  • Ein Beispiel eines Deep-Convolution-Netzwerks für die Klassifikation handgeschriebener Ziffern, das durch die erfindungsgemäße Datenverarbeitungseinrichtung realisiert wird, ist schematisch in 7 illustriert. Bei diesem sind die Merkmalsmodule 21 zu Schichten 53 bis 57 wie folgt zusammengefasst. Der Block A zeigt einen Satz von Eingabe-Merkmalsmodulen der Eingabe-Einrichtung 10 (28 × 28) für Bilder mit 28 × 28 Pixeln. Jedes Eingabe-Merkmalsmodul 21 enthält zwei Zustandsvariablen. Dies realisiert eine vereinfachte Version der aus der Biologie bekannten „On/Off center cells“. Dieser Satz an Eingabe-Merkmalsmodulen sendet Eingabe-Indizes an die Sammlung von Merkmalsmodulen (Schicht 53). Block B illustriert die Faltungsschicht 53 mit 24 × 24 Merkmalsmodulen mit jeweils 32 latenten Zustandsvariablen. Jedes Merkmalsmodul verarbeitet Modul-Indizes von 5 × 5 Blöcken von den vorgeschalteten Eingabe- Merkmalsmodulen und Indizes von den nachgeschalteten Merkmalsmodulen mit einer zusammenfassenden Eigenschaft in Schicht 54. Block C illustriert die Schicht 54 aus 12 × 12 Merkmalsmodulen mit jeweils 32 latenten Zustandsvariablen. Jedes Merkmalsmodul in dieser Schicht 54 erhält die Modul-Indizes eines 2 × 2 großen und nicht überlappenden Bereiches in der Schicht 53. Die Gewichte zwischen den Schichten 53 und 54 werden nicht gelernt, sondern werden vorkonfiguriert (z. B. manuell vorgegeben), so dass ein Wettbewerb zwischen den 32 Merkmalen der vorigen Schicht entsteht. Die Merkmalsmodule der Schicht 54 verarbeiten auch die Modul-Indizes, welche von den Merkmalsmodulen aus der Faltungsschicht 55 stammen und mit dem jeweiligen Einzugsgebiet der Merkmalsmodule überlappen. Wenn man hierfür gemeinsame Gewichte verwenden möchte, kann hier die so genannte „Transposed convolution“ (auch „fractionally strided convolutions“) angewendet werden. Block D illustriert die 5 × 5 Faltungsschicht 55 mit 8 × 8 Merkmalsmodulen. Ähnlich zu den Merkmalsmodulen in der Schicht 53, aber mit 64 Speicherplätzen für die latenten Zustandsvariablen in den jeweiligen Merkmalsmodulen. Block E ist eine Schicht 56 wie die Zusammenfassungs-Schicht 54, aber nur mit 2 × 2 Merkmalsmodulen mit jeweils 64 Speicherplätzen für die latenten Zustandsvariablen. Block F zeigt ein vollverbundenes Merkmalsmodul 57. Dieses enthält 1024 Speicherplätze für latente Zustandsvariablen und ist vollständig mit der Zusammenfassungs-Schicht 56 und Ausgabe-Einrichtung 30 vernetzt. Diese ist in Block G mit 10 Speicherplätzen für die latenten Zustandsvariablen gezeigt, welche die 10 möglichen Ziffern repräsentieren. Zum Bestimmen der erkannten Ziffer wird die Position des Speicherplatzes mit dem höchsten Wert in der Verteilung der latenten Zustandsvariablen errechnet und als Ausgabedaten verwendet.
  • Hardware-Konfiguration einer Datenverarbeitungsvorrichtung
  • Die 8 bis 26 zeigen Einzelheiten einer Hardware-Konfiguration einer Datenverarbeitungsvorrichtung gemäß der Erfindung (insbesondere gemäß den Darstellungen in den 1 bis 7), wie sie durch eine oder mehrere integrierte Schaltung(en) realisiert werden kann.
  • Die 8 bis 13 zeigen zunächst Grundbausteine, die in der Datenverarbeitungsvorrichtung verwendet werden. Grundbaustein * in der integrierten Schaltung gemäß 8 ist für die Multiplikation zweier Zahlen in Pipeline-Bauweise konfiguriert. In jedem Zeitschritt werden ein Wertepaar von Eingabevariablen (A, B) sowie ein Ordnungsparameter i eingegeben. Nach einer Verzögerung durch die Ausführung der Operation verlässt das Ergebnis der Multiplikation und der Ordnungsparameter i, der das A & B Paar bei seiner Verarbeitung begleitet, den Grundbaustein *. Dieser Grundbaustein wird in den folgenden Figuren durch das Zeichen * repräsentiert.
  • Grundbaustein + in der integrierten Schaltung gemäß 9 ist für die Addition zweier Zahlen in Pipeline-Bauweise konfiguriert. In jedem Zeitschritt werden ein Wertepaar von Eingabevariablen (A, B) und ein Ordnungsparameter i eingegeben. Nach einer Verzögerung durch die Ausführung der Operation verlässt das Ergebnis der Addition und der Ordnungsparameter i, der das A & B Paar bei seiner Verarbeitung begleitet, den Grundbaustein. Dieser Grundbaustein wird in den folgenden Figuren durch das Zeichen + repräsentiert.
  • 10 zeigt den Grundbaustein / in der integrierten Schaltung. In diesem werden zunächst ein Wert A und der Wert 1 addiert. Aus A+1 wird in sequentieller Weise 1/(A+1) ausgerechnet. Nach der Beendigung dieser Operation wird B mit 1/(A+1) durch eine Multiplikationspipeline multipliziert. A ändert sich deutlich seltener als B. i ist ein Ordnungsparameter zu B, der das B während seiner Verarbeitung begleitet. Dieser Grundbaustein wird in den folgenden Figuren durch das Zeichen / repräsentiert.
  • In 11 ist der Grundbaustein MEM in der integrierten Schaltung gezeigt, der Speicherplätze in einem Merkmalsmodul mit Speicherplätzen 23, 24 für die latenten Zustandsvariablen h(i) und den dazugehörigen Gewichtswerte p(s|i) beinhaltet (siehe 2). Das Modul MEM hat die drei Funktionen Lesen (11a), Schreiben der latenten Variablen (11b) und Schreiben der Gewichte (11c). Auf der Basis eines Paares (s,i) können gemäß 11A die beiden Arten von Speicherplätzen 23, 24 ausgelesen werden. Alternativ kann z.B. bei Anliegen eines neuen Eingabe-Musters die Ausgabe von h(i) durch einen Initialwert (hier 1/NH , wobei NH der Anzahl der verwendeten Speicherplätze für die latenten Zustandsvariablen entspricht) ersetzt werden, was das zusätzliche initiales Überschreiben der Speicherplätze der latenten Zustandsvariablen einspart. Um den richtigen Speicherplatz für p(s|i) zu finden, wird ein Speicherplatzpositionsrechner verwendet, der Teil der Recheneinheit 26 (siehe 2) ist. Als Reaktion auf ein Paar (s,i), liefert der Grundbaustein MEM die dazugehörigen h(i) , p(s|i) und den dazugehörigen Ordnungsparameter i. 11b zeigt die Konfiguration für das Schreiben in die Speicherplätze h(i) 23 und 11c zeigt die Konfiguration für das Schreiben der Gewichte p(s|i). Dieser Grundbaustein wird in den folgenden Figuren durch das Zeichen MEM repräsentiert.
  • 12 illustriert den Grundbaustein MULTI-NORM in der integrierten Schaltung. Dieser Baustein erfüllt mehrere Aufgaben: 1.) eine Kombination h(i), p(s|i) und i wird durch eine Multiplikationspipeline gemäß 8 in h(i) p(s|i) umgerechnet und von dem dazugehörigen Ordnungsparameter i begleitet. 2.) Das Ergebnis der Multiplikationspipeline gemäß 8 wird von einem Sub-Baustein erfasst, und daraus wird die kumulative Summe über alle h(i) p(s|i) gebildet. Wenn alle i Tupel abgearbeitet wurden, wird X/Σi h(i) p(s|i) ausgerechnet. Wenn parallel zur Aktualisierung der latenten Zustandsvariablen h(i) auch ein Lernen der dazugehörenden Gewichte durchgeführt werden soll, ist es effizient, parallel γ(t)/∑i h(i)p(s|i) auszurechnen, wobei y(t) der aktuellen Lernrate entspricht. Nach dem Ende der Division bleibt das Ergebnis erhalten, auch wenn weitere Berechnungen in der Multiplikationspipeline durchgeführt werden, bis das Ergebnis durch einen Reset gelöscht wird. Dieser Grundbaustein wird in den folgenden Figuren durch das Zeichen MULTI-NORM repräsentiert.
  • Schließlich zeigt 13 den Grundbaustein INDEX GENERATOR in der integrierten Schaltung. Die Aufgabe dieses Bausteins ist es, die Werte der latenten Zustandsvariablen eines Moduls (Merkmalsmodul, Eingabe-Einrichtung oder Ausgabe-Einrichtung) und einer Zufallszahl R1 in entsprechende Indizes umzurechnen. Für die Berechnung jedes neuen Index-Wertes der Eingabe- oder Modul-Indizes wird die Anzahl der aktiven Speicherplätze der latenten Zustandsvariablen NH gesetzt und eine Zufallszahl R1 zur Verfügung gestellt (z.B. eine 32 Bit Zufallszahl aus einem Mersenne Twister MT 19937). Es werden nun Paare an latenten Zustandsvariablen h(i) und deren Ordnungsparameter i an den INDEX GENERATOR übergeben. Dieser Grundbaustein konvertiert h(i) in das Zahlenformat der Zufallszahl (z.B. von Fließkommazahl in Fixpunktzahl) und summiert die gezeigten h(i) schrittweise zu σ(i) kumulativ auf. Wenn σ(i) größer oder gleich R1 wird, wird dieser i Wert gespeichert und als Index-Wert weitergegeben. Sollte i den Wert NH annehmen, ohne dass σ(i) größer oder gleich R1 wird, wird NH als neuer Index-Wert weitergegeben.
  • Ein Standard-Vorgehen beim Lernen von Gewichten in herkömmlichen Netzwerken wird als „Abkühlen“ bezeichnet. Durch dieses Verfahren soll vermieden werden, dass die Gewichte in lokalen Minima der Zielfunktion (hier: das probabilistische Ziel-Maß) hängen bleiben. Zum optional vorgesehenen „Abkühlen“ in der erfindungsgemäßen Datenverarbeitungsvorrichtung wird die Erzeugung der Indizes modifiziert. Anstatt direkt aus den internen Zustandsvariablen die Indizes stochastisch zu ziehen, wird eine Kopie der internen Zustandsvariablen erzeugt, auf die ein Offset addiert wird. Dies wird dann wieder normalisiert und zum Ziehen der Indizes verwendet. Über die Lernschritte wird die Größe des Offsets immer weiter verringert.
  • 14 zeigt beispielhaft einen Rechenblock der Recheneinheit jedes Merkmalsmoduls, der zum Erzeugen von Indizes mit dem Verfahren zum „Abkühlen“ der Eingabe-Wahrscheinlichkeit p*(s) bzw. Merkmalsmodul-Wahrscheinlichkeit h(i) beim Lernen konfiguriert ist. Bei einigen Lern-Problemen ist es bevorzugt, die Wahrscheinlichkeit, aus der die Indizes erzeugt werden, nach der Gleichung hneu(i) = a(t)/NH + (1 - a(t))h(i) bzw. p*,neu(i) = a(t)/Ns + (1 - a(t))p*(s) zu glätten. a(t) wird dann über das Lernen immer weiter reduziert. Eine effiziente Art, aus diesen modifizierten Wahrscheinlichkeitsverteilungen Indizes zu erzeugen, ist es, einen doppel-stochastischen Prozess zu verwenden. Einerseits werden auf der Basis einer Zufallszahl R1 zwei Indizes gezogen, die einen Index aus der Verteilung der latenten Zustandsvariablen h(i) (bzw. p*(s)) und einen Index aus der Gleichverteilung 1/NH bzw. 1/NS (NH bzw. NS entsprechen der Anzahl der jeweils aktiven Speicherplätze) umfassen. Mit der Hilfe einer zweiten Zufallszahl R2 wird auf Basis der Wahrscheinlichkeit a(t) bestimmt, welcher der beiden aus der Zufallszahl R1 bestimmten Indizes als Ergebnis verwendet wird. Dieser Rechenblock besteht aus drei Grundbausteinen INDEX GENERATOR.
  • 15 zeigt einen Rechenblock der Recheneinheit jedes Merkmalsmoduls, der zum Erzeugen eines normalisierten Offsets auf den Gewichten beim Lernen konfiguriert ist. Es kann von Vorteil sein, dafür zu sorgen, dass die Gewichte p(s|i) beim Lernen nicht den Wert einer perfekten Null annehmen. Dies kann durch die Addition eines Offsets erfolgen. Dabei wird aber dafür gesorgt, dass trotzdem die Normierung ΣspNeu(s|i) = 1 erhalten beibt. Um dies zu erfüllen, kann dieser Rechenblock an den Ausgang des Grundbaustein MEM gekoppelt werden (wird in den folgenden Zeichnungen nicht gezeigt, um die Übersichtlichkeit der Zeichnungen zu erhalten). Zunächst wird dem Rechenblock gemäß 15 zur Vorbereitung der Wert des Offsets φ und 1/NS mitgeteilt, wobei NS der Anzahl der möglichen s in p(s|i) entspricht. Mit diesen Informationen wird φ N S
    Figure DE102018127383A1_0005
    berechnet. Mit Hilfe der Grundbausteine + und / wird der normalisierte Offset auf den Gewichten in einer Pipeline-weise ausgeführt.
  • 16 zeigt einen Rechenblock der Recheneinheit jedes Merkmalsmoduls, der zum Berechnen einer Wahrscheinlichkeitsverteilung p(s) aus beobachteten Indizes konfiguriert ist. Die beobachteten Index-Werte s werden verwendet, um die Anzahl der bisher beobachteten Indizes (mit diesem Index-Wert s) c(s) aus ihrem Speicherplatz zu lesen, anschließend um den Wert 1 zu erhöhen und wieder in den Speicherplatz c(s) zu schreiben. Parallel dazu wird immer der Speicherwert cAll gelesen und um den Wert 1 erhöht und wieder in den Speicher geschrieben. Wenn die Wahrscheinlichkeitsverteilung benötigt und abgerufen wird, wird CAll in ein passendes Zahlenformat überführt und 1 C A l l
    Figure DE102018127383A1_0006
    wird berechnet. Dann wird ein Index-Wert s angelegt, der dazu führt, dass der Speicherplatz c(s) gelesen wird, in ein passendes Zahlenformat überführt wird, und dann durch eine Multiplikationspipeline mit 1 C A l l
    Figure DE102018127383A1_0007
    multipliziert wird. Das Ergebnis dieser Berechnung verlässt dann diesen Rechenblock gemäß 16 und wird in den 22 und 23 als Eingabe verwendet.
  • Die Phasen der Dynamik der latenten Zustandsvariablen ist in den 17 und 18 illustriert: 17 zeigt Phase 1 der Aktualisierung der latenten Zustandsvariablen h(i) auf der Basis des Index-Werts s. Der Index-Wert s wird von außen vorgegeben. Alle i aus {1, ... , NH} werden nacheinander an den Grundbaustein MEM angelegt. Alle NHSpeicherplätze der latenten Zustandsvariablen h(i) und den dazugehörigen NH Gewichtswerte p(s|i) werden abgerufen. Optional können diese Werte durch den Rechenblock „normalisierten Offset“ geleitet werden. Danach enden die Werte in dem Grundbaustein MULTI-NORM. Nach Durchlaufen aller NH Wertepaare erhält man ∈(t)/∑i h(i)p(s|i), was die Grundlage für Phase 2 bildet.
  • 18 zeigt Phase 2 der Aktualisierung der latenten Zustandsvariablen h(i) auf der Basis des Index-Werts s. Der Index-Wert s wird von außen vorgegeben. Alle i aus {1, ... , NH} werden nacheinander an den Grundbaustein MEM angelegt. Alle NHSpeicherplätze der latenten Zustandsvariablen h(i) und den dazugehörigen NHGewichtswerte p(s|i) werden abgerufen. Optional können diese Werte durch den Rechenblock „normalisierten Offset“ geleitet werden. Der Grundbaustein MULTI-NORM liefert h(i) p(s|i) und hält noch ∈(t)/∑i h(i) p(s|i) aus Phase 1 vor. Mit der Hilfe einer Serie von Grundbaustein (*, + und \) werden die latenten Zustandsvariablen h(i) entsprechend aktualisiert. Die neuen Werte werden einerseits in die dazugehörigen Speicherplätze in MEM für die latenten Zustandsvariablen geschrieben, andererseits beobachtet der Grundbaustein INDEX GENERATOR (bzw. der Rechenblock zum Erzeugen von Indizes mit „Abkühlen“) parallel die neuen h(i) Werte, um einen neuen Index für dieses Merkmalmodul (oder dieser Ausgabe-Einheit) zu berechnen.
  • Die Phasen des Online-Lernens der Gewichte p(s|i) ist in den 19 bis 21 illustriert: 19 zeigt Phase 1 des Online-Lernens der Gewichte p(s|i). Parallel zur Phase 1 der Aktualisierung der latenten Zustandsvariablen gemäß 17 wird ∈(t)/∑i h(i) p(s|i) berechnet. 20 zeigt Phase 2 des Online-Lernens der Gewichte p(s|i). Parallel zur Phase 2 der Aktualisierung der latenten Zustandsvariablen h(i) gemäß 18 werden mit der Hilfe eines weiteren Grundbausteins * die Werte γ(t)h(i)p(s|i)/∑i h(i) p(s|i) ausgerechnet und in den Speicherplätzen einer Hilfsvariablen U(i) gespeichert. 21 zeigt Phase 3 des Online-Lernens der Gewichte p(s|i). Der externe Index, der zur Aktualisierung der latenten Zustandsvariablen genutzt wurde, wird im Folgenden als st weiter bereitgehalten. Der Speicherplatz i der Hilfsvariablen U(i) wird gelesen, und ein Grundbaustein \ wird mit diesem Wert bestückt. Dann werden alle NSWerte für s durchlaufen. Im Fall, dass s == st, wird U(i) zu p(s|i) addiert. Der Grundbaustein \ multipliziert dann p(s|i) bzw. p(sli) + U(i) mit 1 1 + U ( i ) .
    Figure DE102018127383A1_0008
    Das Ergebnis dieser Berechnung wird dann in die entsprechenden Speicherplätze p(s|i) in MEM geschrieben.
  • Das Lernens der Gewichte p(s|i) auf Basis einer Sammlung von Mustern ist in den 22 bis 23 illustriert. 22 zeigt Phase 1 des Lernens der Gewichte p(s|i) auf Basis der Sammlung von Mustern. Nachdem für ein Eingabe-Muster von Eingabedaten ausreichend Indizes zur Aktualisierung der latenten Zustandsvariablen verwendet wurden und mit dem Rechenblock zum Berechnen einer Wahrscheinlichkeitsverteilung p(s) aus beobachteten Indizes ausgewertet wurden, wird über alle der NH aktiven Speicherplätze der latenten Zustandsvariablen p ^ ( s ) i h ( i ) p ( s | i )
    Figure DE102018127383A1_0009
    ausgerechnet. 23 zeigt Phase 2 des Lernens der Gewichte p(s|i) auf Basis einer Sammlung von Mustern. Mit Hilfe des Grundbausteins * wird p ^ ( s ) i h ( i ) p ( s | i )
    Figure DE102018127383A1_0010
    mit p(s|i)h(i) verrechnet. Das Ergebnis p ^ ( s ) p ( s | i ) h ( i ) i h ( i ) p ( s | i )
    Figure DE102018127383A1_0011
    für dieses Muster wird zu der Hilfsvariable W(s|i) addiert, in die schon die Informationen von den vorangegangen Mustern akkumuliert wurden. Nachdem alle Muster abgearbeitet wurden, muss W(s|i) mit p(s|i) verrechnet werden. Dies kann auch auf der integrierten Schaltung erfolgen. Alternativ kann W(s|i) und p(s|i) an eine CPU übergeben werden, die dann die Aktualisierung von p(s|i) durchführt. Dies erlaubt den flexiblen Einsatz von komplexeren Aktualisierungsverfahren z.B. basierend auf ADAM oder L4.
  • Die Organisation der Kommunikation der Merkmalsmodule (einschließlich Eingabe-Einrichtungen und/oder Ausgabe-Einrichtungen) durch gemeinsame Datenbusse A, B ist in 24 illustriert. Alternativ kann das die Datenverarbeitungsvorrichtung mit einem einzigen Datenbus konfiguriert sein. Alle oder eine Untermenge der Merkmalsmodule sind an einen gemeinsamen Datenbus angebunden. Jedes Modul, das mit einem der Datenbusse A, B verbunden ist, hat eine eindeutige Nummer auf jedem dieser Datenbusse A, B. Diese Nummer kann sich je nach Datenbus unterscheiden. Eine Zähler-Kontrolleinheit beobachtet, ob alle Merkmalsmodule mit der Abarbeitung ihrer Index-Speicher fertig sind. Sind alle Merkmalsmodule entsprechend fertig, ruft die Zähler-Kontrolleinheit alle an ihrem Datenbus vorhandenen Merkmalsmodule durch Veröffentlichung derer eindeutigen Nummern einmal auf. In einem definierten zeitlichen Abstand (der für alle Merkmalsmodule, Eingabe- und Ausgabemodule gleich ist) reagieren die aufgerufenen Merkmalsmodule auf die Nennung ihrer Nummer. Als Reaktion wird, falls dieses aufgerufene Merkmalsmodule Informationen besitzt, welche den anderen Merkmalsmodule mitgeteilt werden muss, die eigene Merkmalsmodul-Nummer und der generierte Index-Wert über den gemeinsamen Datenbus an alle anderen angeschlossenen Merkmalsmodule übermittelt. Es kann von Vorteil sein, mehrerer dieser Datenbusse zu betreiben, und die Datenbusse können sich über mehrere integrierte Schaltungen erstrecken. Die Zähler-Kontrolleinheit wird wiederum durch eine übergeordnete Kontrolleinheit (Steuereinrichtung 40, siehe 1 und 26) gesteuert. Haben alle an einem Datenbus angeschlossenen Merkmalsmodule ihre Verarbeitung beendet, teilt dies die Zähler-Kontrolleinheit der übergeordneten Kontrolleinheit mit und wartet auf einen Befehl, der die nächste Runde an Datenaustausch und Abarbeitung der errechneten Index-Werte anstößt.
  • 25 illustriert einen gemäß einer vorteilhaften Variante der Erfindung vorgesehenen Modul-Filter innerhalb eines Merkmalmoduls und der Ausgabe-Einrichtung. Alle Merkmalsmodule an dem gemeinsamen Datenbus teilen ihre Information über ihre Indizes allen anderen angeschlossenen Merkmalsmodulen mit. Zur Realisierung einer geeigneten Architektur kann es aber von Vorteil sein, wenn (während der Laufzeit) definierbar ist, auf welche anderen Merkmalsmodule jedes Merkmalsmodul reagieren soll. Hierzu hat jedes Merkmalsmodul für jeden der Datenbusse, an denen dieses angeschlossen ist, eine Liste. Nur wenn die eindeutige Nummer eines empfangenden Merkmalsmoduls in dieser Liste vorhanden ist, wird der eingehende Index der sendenden Gruppe in die Index-Speicherliste aufgenommen. Die Liste enthält noch weitere Informationen für jedes der zu beobachtenden Merkmalsmodule, wie z.B. einen Index-Offset sOffset , welcher von der eingehenden Modul-Nummer abhängt, damit zwischen dem empfangenen Index-Wert sin und den Speicherplätzen für die Gewichte p(s|i) eine Zuordnung stattfinden kann. So kann z.B eine Umrechnung des eingegangenen Index-Wertes sin auf die Gewichtsmatrix in folgender Weise erfolgen: p(s = sin + sOffset |i). Auch kann die Liste individuelle ∈ und Lernraten γ für jedes sendende Modul beinhalten. Wenn die Zähler-Kontrolleinheit dem Modul mitteilt, dass alle Indizes ausgetauscht sind, arbeitet das Modul die in der Index-Speicherliste gesammelten Indizes ab. Abgearbeitete Indizes werden aus der Liste entfernt. Ist die Liste leer, wird der letzte bei der Aktualisierung erzeugte eigene Index-Wert in einen Speicher kopiert. Der Zähler-Kontrolleinheit wird mitgeteilt, dass die Liste abgearbeitet ist. Kommt nun ein neuer Aufruf der Zähler-Kontrolleinheit, werden die eindeutige Nummer des Moduls und der gespeicherte eigene Index über den Datenbus entsprechend an alle angeschlossenen Module veröffentlicht.
  • 26 illustriert Einzelheiten eines Datenbusses für Steuerinformationen. Es ist für viele Anwendungen von Vorteil, Informationen an die Eingabe-Einrichtung 10, Merkmalsmodule 21, Ausgabe-Einrichtung 30 und diverse Kontrolleinheiten (40) des Netzwerkes 20 von außen zuzuführen oder Daten über den aktuellen Zustand aus dem Netzwerk auszulesen (siehe 1). Des Weiteren sollen die ausgehenden Datenflüsse der verschiedenen Merkmalsmodule zusammengeführt werden. Dies geschieht vorzugsweise über einen gemeinsamen Datenbus mit einer „Arbiter“-Weiche. Auf der Seite der eingehenden Daten in das Netzwerk ist es effizienter, wenn Information über Parameter oder andere Befehle, die immer nach einer bestimmten Anzahl an Indizes auftreten (z.B. Wechsel der Lernrate nach einer vorgegebenen Anzahl an Aktualisierungen der latenten Zustandsvariablen), nicht zur richtigen Zeit von außen zugeführt werden müssen. Dies kann zu nicht gewünschten Wartezeiten bis zum Eintreffen der notwendigen Information über den Wechsel der Parameter führen. Um dies zu vermeiden, kann ein internes Nachrichten-Speicher-System 44 verwendet werden. Es erfasst die Anzahl der verarbeiteten Eingabe- oder Modul-Indizes und abhängig davon sendet es dort abgelegte Nachrichten an die Merkmalsmodule. Ein Zufallsgenerator versorgt in diesem Fall alle Merkmalsmodule mit neuen Zufallszahlen und ein „Endlicher Automat“ (Finite State Machine) sorgt für den geordneten Ablauf und die autonome Abarbeitung einer von außen vorgegeben Anzahl an Aktualisierungen der latenten Zustandsvariablen und dem Einsetzen eines optionalen online Lernens.
  • Mathematische Grundlagen der Datenverarbeitung
  • Im Folgenden werden mathematische Gleichungen für das Beispiel eines Netzwerkes mit vier Merkmalsmodulen (Eingabe-Einrichtung, Ausgabe-Einrichtung und zwei Merkmalsmodule, z. B. gemäß 3) präsentiert. Diese lassen sich in entsprechender Weise auf Netzwerke mit mehr Merkmalsmodulen anwenden und verallgemeinern. Bei der Anwendung numerischer Verfahren auftretende Parameter werden, soweit sie sich nicht aus den Daten ergeben, empirisch bestimmt.
  • Aktualisieren der latenten Zustandsvariablen und Lernen der Gewichte
  • Im Allgemeinen wird beim Aktualisieren der latenten Zustandsvariablen und Lernen der Gewichte ein Abstandsmaß zwischen der Wahrscheinlichkeit p̂(sν) , welche zur Erzeugung des Index sνverwendet wird, und der Rekonstruktion p(sν|hζ) basierend auf der latenten Variable hζ betrachtet und optimiert. Ein Beispiel ist: A b s t a n d = μ υ ζ ψ υ , ζ s υ p ^ ( s υ )  log ( i ζ w υ ζ ( s υ | i ζ ) h ζ , μ ( i ζ ) )
    Figure DE102018127383A1_0012
    wobei µ einen Satz an Eingabedaten (Muster) durchnummeriert (z.B. Bilder, Zeitreihen), ν alle Merkmalsmodule sowie Eingabe- und Ausgabemodule durchnummeriert, ζ alle Merkmalsmodule und Ausgabemodule durchläuft, wobei ζ ≠ v gilt. sνund iζ entspricht den Speicherplätzen für latente Variablen bzw. der Eingabedatenwahrscheinlichkeiten. hζ,µ(iζ) mit 0 ≤ hζ,µ(iζ) ≤ 1 und Σi ζ hζ,µ(iζ) = 1 für die latenten Variablen und wν-ζ(sν| iζ) für die zugeordneten Gewichte mit 0 ≤ wν→ζ(sν|iζ)≤ 1 und ∑s ν wν→ζ(sν|iζ) = 1.ψν,ζ kann die Werte 0 oder 1 annehmen und repräsentiert die Architektur des Netzwerkes.
  • Aus dem Abstand kann nun eine Regel zur Aktualisierung der latenten Zustandsvariablen mit der Hilfe eines Gradientenverfahrens errechnet werden. In diesem Fall ist es z.B.: h n e u ζ ' , μ ( i ζ ' ) = h ζ ' , μ ( i ζ ' ) ε υ , ζ ' ( i ζ ' ) A b s t a n d h ζ ' , μ ( i ζ ' )
    Figure DE102018127383A1_0013
    mit εν,ζ, als einem, in Abhängigkeit von der Anzahl der zu verarbeitenden Indizes veränderlichen Parameter. Um die zu verarbeitende Information auf die aktuell beobachteten eingehenden und verarbeiteten Indizes s t v
    Figure DE102018127383A1_0014
    zu beschränken, wird p̂(sν) durch δ s t v , s t
    Figure DE102018127383A1_0015
    ersetzt, wobei δi,j das Kronecker-Delta ist. Zur Erhaltung der Normierung muss h n e u , n o r m ζ ' , μ ( i ζ ' ) = h n e u ζ ' , μ ( i ζ ' ) / i ζ h n e u ζ ' , μ ( i ζ ' )
    Figure DE102018127383A1_0016
    impliziert oder expliziert durchgeführt werden, um den aktualisierten Wert für die latente Variable zu erhalten.
  • Das Lernen der Gewichte basiert ebenfalls auf Gradientenverfahren. Dabei wird ein multiplikatives Lernverfahren durch w υ ' ζ ' n e u ( s υ ' | i ζ ' ) = w υ ' ζ ' ( s υ ' | i ζ ' ) γ υ ' , ζ ' w υ ' ζ ' ( s υ ' | i ζ ' ) A b s t a n d w υ ' ζ ' ( s υ ' | i ζ ' )
    Figure DE102018127383A1_0017
    und ein additives Lernverfahren durch w υ ' ζ ' n e u ( s υ ' | i ζ ' ) = w υ ' ζ ' ( s υ ' | i ζ ' ) γ υ ' , ζ ' A b s t a n d w υ ' ζ ' ( s υ ' | i ζ ' )
    Figure DE102018127383A1_0018
    dargestellt, wobei yν,, einer Lernrate entspricht, die sich über die Lernschritte verändern kann. Es wird die Normierung der Gewichte sichergestellt, so dass w υ ' ζ ' n e u , n o r m ( s υ ' | i ζ ' ) = w υ ' ζ ' n e u ( s υ ' | i ζ ' ) / s υ w υ ' ζ ' n e u ( s υ | i ζ ' )
    Figure DE102018127383A1_0019
    impliziert oder expliziert durchgeführt wird. Diese Lernregeln können nun als Batch-Lernregel angewendet werden, wobei die gesammelten Informationen über mehr als das aktuelle Muster µ für eine Aktualisierung der Gewichte verwendet werden, oder als Online-Lernregel, bei der nur der aktuelle Index für eine Aktualisierung der Gewichte verwendet wird.
  • Beispiel-Netzwerk mit zwei Merkmalsmodulen
  • Die folgenden Gleichungen werden für ein Beispiel-Netzwerk mit einer Eingabe-Einrichtung 10 (EE) X (mit einer Eingabe-Wahrscheinlichkeitsverteilung p*(s), s = 1, ..., NS) und einer Ausgabe-Einrichtung 30 (AE) Y (mit den latenten Zustandsvariablen hy,µ(i), i = 1, ..., Ny) beschrieben. Zwischen diesen beiden Einrichtungen befinden sich zwei Merkmalsmodule MM1 (mit den latenten Zustandsvariablen h1,µ(i), i = 1, ...,NH1) und Merkmalsmodule MM2 (mit den latenten Zustandsvariablen h2,µ(i), i = 1, ..., NH2), siehe 3. Dabei nummeriert µ das aktuelle Muster rµ(s), welches gerade verarbeitet oder gelernt wird. In diesem Beispiel Netzwerk ist MM1 mit der Eingabe-Einrichtung 10 EE X verbunden und MM2 ist mit der Ausgabe-Einrichtung 30 AE Y verbunden. Des Weiteren sind MM1 und MM2 miteinander verbunden. Es gilt s = 1 N S p μ * ( s ) = 1, i = 1 N Y h y , μ ( i ) = 1, i = 1 N H 1 h 1, μ ( i ) = 1, und i = 1 N H 2 h 2, μ ( i ) = 1,
    Figure DE102018127383A1_0020
    sowie 0 p μ * ( s ) 1, 0 h y , μ * ( i ) 1, 0 h 1, μ * ( i ) 1, und 0 h 2, μ * ( i ) 1,
    Figure DE102018127383A1_0021
    da es sich bei diesen Größen um Wahrscheinlichkeiten handelt. Diese Wahrscheinlichkeiten werden dazu verwendet, stochastisch Indizes zu erzeugen, die zum Austausch von Informationen zwischen den EEs, EAs und MMs verwendet werden. Indizes erzeugt aus p μ * ( s )
    Figure DE102018127383A1_0022
    werden mit sx benannt. Indizes aus hy,µ(i) mit sy, aus h1,µ(i) mit s1 und aus h2,µ(i) mit s2 .
  • Die Gewichte des Netzwerkes werden auf einem Ensemble von M Mustern (µ = 1, ..., M) von Eingabedaten rµ(s) ≥ 0 gelernt, die z. B. Bilder kodieren können. Im Folgenden werden die Gewichte mit wa→b bezeichnet. Dies entspricht einem Gewichtssatz, bei dem Information von Merkmalsmodul α (dieses Modul erzeugt den Index) nach Merkmalsmodul b fließt. In diesem einfachen Beispiel gibt es die folgenden fünf Gewichtssätze:
    • wX→1(k|l) mit einer Dimension von NS × NH1 und ∑kwX→1(k|l) = 1, 0 ≤ wX→1(k|l) ≤ 1
    • w1→2(k|l) mit einer Dimension von NH1 × NH2 und Σk w1→2(k|l) = 1, 0 ≤ w1→2(k|l) ≤ 1
    • w2→y(k|l) mit einer Dimension von NH2 × NY und ∑kw2→y(k|l) = 1, 0 ≤ w2→y(k|l) ≤ 1
    • wy,2(k|l) mit einer Dimension von NY × NH2 und ∑kwy→2(k|l) = 1, 0 ≤ wy→2(k|l) ≤ 1
    • w2→1(k|l) mit einer Dimension von NH2 × NH1 und ∑k w2→1(k|l) = 1, 0 ≤ w2→1(k|l) ≤ 1
  • Basierend auf den Gewichten und den latenten Zustandsvariablen werden folgende fünf „Rekonstruktionen“ der erzeugenden Wahrscheinlichkeitsverteilung auf der Basis der latenten Zustandsvariablen der Module MM1, MM2 und AE und den jeweilig dazugehörenden Gewichten definiert: p ( s x | h 1, μ ) = i h 1, μ ( i ) w X 1 ( s x | h 1, μ )
    Figure DE102018127383A1_0023
    p ( s 1 | h 2, μ ) = i h 2, μ ( i ) w 1 2 ( s 1 | i )
    Figure DE102018127383A1_0024
    p ( s 2 | h y , μ ) = i h y , μ ( i ) w 2 y ( s 2 | i )
    Figure DE102018127383A1_0025
    p ( s 2 | h 1, μ ) = i h 1, μ ( i ) w 2 1 ( s 2 | i )
    Figure DE102018127383A1_0026
    p ( s y | h 2, μ ) = i h 2, μ ( i ) w y 2 ( s y | i )
    Figure DE102018127383A1_0027
    Ziel ist es, einen Abstand der Rekonstruktionen und deren dazugehörigen erzeugenden Wahrscheinlichkeitsverteilungen zu minimieren, wobei latente Zustandsvariablen in mehreren Rekonstruktionen gleichzeitig vorkommen können. Dies koppelt die Rekonstruktionen aneinander.
    Für dieses Beispiel wird der Abstand nach der folgenden Gleichung (ähnlich einer Likelihood oder Kullback-Leibler-Divergenz) berechnet: A b s t a n d = μ ( α 1 a p ^ x , μ ( a ) log ( i w x 1 ( a | i ) h 1, μ ( i ) ) + β 1 b p ^ h 2 , μ ( b ) log ( i w 2 1 ( b | i ) h 1, μ ( i ) ) + α 2 c p ^ h 1 , μ ( c ) log ( i w 1 1 ( c | i ) h 2, μ ( i ) ) + β 2 d p ^ h y , μ ( d ) log ( i w y 2 ( d | i ) h 2, μ ( i ) ) + α y e p ^ h 2 , μ ( e ) log ( i w 2 1 ( e | i ) h y , μ ( i ) ) )
    Figure DE102018127383A1_0028
    Dabei entspricht p̂x,µ(a) der Eingabe-Wahrscheinlichkeit der Eingabe-Einrichtung. Für die anderen drei Wahrscheinlichkeiten p̂h 1(i) , p̂h 2(i) und p̂h y(i) gilt, dass diese aus den „alten“ (vom letzten Zeitschritt) latenten Zustandsvariablen bestehen, aus denen die aktuell zu bearbeitenden Indizes erzeugt wurden. Vor jeder Aktualisierung der latenten Zustandsvariablen findet folgende Zuweisung statt:
    • h1,µ(i) - p̂h 1(i)
    • h2,µ(i) → p̂h 2(i)
    • hy,µ(i) - p̂h y(i)
    Dabei sind die α's und β's Konstanten.
    Aus dem Abstand zwischen den Rekonstruktionen und den erzeugenden Wahrscheinlichkeiten wird ein Gradienten zur Optimierung für die latenten Zustandsvariablen berechnet: A b s t a n d h 1, μ ( j ) = α 1 a p ^ x , μ ( a ) w x 1 ( a | j ) i w x 1 ( a | i ) h 1, μ ( i ) + β 1 b p ^ h 2 , μ ( b ) w 2 1 ( b | j ) i w 2 1 ( b | i ) h 1, μ ( i )
    Figure DE102018127383A1_0029
    A b s t a n d h 2, μ ( j ) = α 2 c p ^ h 1 , μ ( c ) w 1 2 ( c | j ) i w 1 2 ( c | i ) h 2, μ ( i ) + β 3 b p ^ h y , μ ( d ) w y 2 ( d | j ) i w y 2 ( d | i ) h 2, μ ( i )
    Figure DE102018127383A1_0030
    A b s t a n d h y , μ ( j ) = α y e p ^ h 2 , μ ( e ) w 2 y ( e | j ) i w 2 y ( e | i ) h y , μ ( i )
    Figure DE102018127383A1_0031
    Jetzt werden die p̂ durch die in einem Zeitschritt tatsächlich beobachteten Indizes ersetzt, was einer Aktualisierung mit jedem einzelnen beobachten Index st entspricht: A b s t a n d h 1, μ ( j ) = α 1 w x 1 ( s t x | j ) i w x 1 ( s t x | i ) h 1, μ ( i ) + β 1 w 2 1 ( s t 2 | j ) i w 2 1 ( s t 2 | i ) h 1, μ ( i )
    Figure DE102018127383A1_0032
    A b s t a n d h 2, μ ( j ) = α 2 w 1 1 ( s t 1 | j ) i w 1 2 ( s t 1 | i ) h 2, μ ( i ) + β 2 w y 2 ( s t y | j ) i w y 1 ( s t y | i ) h 2, μ ( i )
    Figure DE102018127383A1_0033
    A b s t a n d h y , μ ( j ) = α y w 2 1 ( s t 2 | j ) i w 2 y ( s t 2 | i ) h y , μ ( i ) + β 1 w 2 1 ( s t 2 | j ) i w 2 1 ( s t 2 | i ) h 1, μ ( i )
    Figure DE102018127383A1_0034
    Daraus folgen Aktualisierungsregeln für eine nicht normierte Version latenten Zustandsvariablen: h 1, μ N e u ( j ) = h 1, μ ( j ) + α 1 w x 1 ( s t 2 | j ) h 1, μ ( j ) i w x 1 ( s t x | i ) h 1, μ ( i ) + β 1 w 2 1 ( s t 2 | j ) h 1, μ ( j ) i w 2 1 ( s t 2 | i ) h 1, μ ( i )
    Figure DE102018127383A1_0035
    h 1, μ N e u ( j ) = h 2, μ ( j ) + α 2 w 1 2 ( s t 1 | j ) h 2, μ ( j ) i w 1 2 ( s t 1 | i ) h 2, μ ( i ) + β 2 w y 2 ( s t y | j ) h 2, μ ( j ) i w y 2 ( s t y | i ) h 2, μ ( i )
    Figure DE102018127383A1_0036
    h y , μ N e u ( j ) = h y , μ ( j ) + α y w 2 y ( s t 2 | j ) h y , μ ( j ) i w 2 y ( s t 2 | i ) h y , μ ( i )
    Figure DE102018127383A1_0037
    Diese Zwischenform der latenten Zustandsvariablen hNeu(j) wird dann noch normalisiert hNeu,Norm(j) = hNeu(j)/ Σi hNeu(i). Dies ist vorgesehen, um die Wahrscheinlichkeitseigenschaften der latenten Zustandsvariablen zu erhalten, die für die stochastische Erzeugung der Indizes benötigt wird.
  • Es ist ersichtlich, dass jedes hNeu,Norm(j) nur von den eingehenden Indizes abhängt, was die internen Berechnungen jedes Merkmalsmoduls von den anderen Merkmalsmodulen vollständig isoliert. Die Merkmalsmodule gehen in einen angepassten Zustand relativ zu den Merkmalsmodulen von denen diese Indizes zugesendet bekommen.
  • In der Anwendung hat sich gezeigt, dass die einzelnen Indizes nacheinander abgearbeitet werden können, was zu einer deutlich vereinfachten Berechnung führt: h 1, μ N e u , N o r m ( j ) = ( h 1, μ ( j ) + α 1 w x 1 ( s t x | j ) h 1, μ ( j ) i w x 1 ( s t x | i ) h 1, μ ( i ) ) 1 + α 1
    Figure DE102018127383A1_0038
    h 1, μ N e u , N o r m ( j ) = ( h 1, μ ( j ) + β 1 w 2 1 ( S t 2 | j ) h 1, μ ( j ) i w 2 1 ( S t 2 | i ) h 1, μ ( i ) ) 1 + β 1
    Figure DE102018127383A1_0039
    h 2, μ N e u , N o r m ( j ) = ( h 2, μ ( j ) + α 2 w 1 2 ( S t 2 | j ) h 2, μ ( j ) i w 1 2 ( S t 2 | i ) h 2, μ ( i ) ) 1 + α 2
    Figure DE102018127383A1_0040
    h 2, μ N e u , N o r m ( j ) = ( h 2, μ ( j ) + β 2 w y 2 ( S t y | j ) h 2, μ ( j ) i w y 2 ( S t y | i ) h 2, μ ( i ) ) 1 + β 1
    Figure DE102018127383A1_0041
    h y , μ N e u , N o r m ( j ) = ( h y , μ ( j ) + α y w 2 y ( S t y | j ) h y , μ ( j ) i w 2 y ( S t y | i ) h y , μ ( i ) ) 1 + α y
    Figure DE102018127383A1_0042
  • Eine ähnliche Gradienten-Berechnung kann nun auch für die fünf Gewichtssätze durchgeführt werden: A b s t a n d w x 1 ( a | j ) = α 1 μ p ^ x , μ ( a ) w x 1 ( a | j ) i w x 1 ( a | i ) h 1, μ ( i )
    Figure DE102018127383A1_0043
    A b s t a n d w 1 2 ( a | j ) = α 2 μ p ^ h 1 , μ ( a ) w 1 2 ( a | j ) i w 1 2 ( a | i ) h 2, μ ( i )
    Figure DE102018127383A1_0044
    A b s t a n d w 2 y ( a | j ) = α y μ p ^ h 2 , μ ( a ) w 2 y ( a | j ) i w 2 y ( a | i ) h y , μ ( i )
    Figure DE102018127383A1_0045
    A b s t a n d w y 2 ( a | j ) = β 3 μ p ^ h 3 1 , μ ( a ) w y 2 ( a | j ) i w y 2 ( a | i ) h 2, μ ( i )
    Figure DE102018127383A1_0046
    A b s t a n d w 2 1 ( a | j ) = β 1 μ p ^ h 2 , μ ( a ) w 2 1 ( a | j ) i w 1 ( a | i ) h 1, μ ( i )
    Figure DE102018127383A1_0047
    Hieraus kann man verschiedene Lernregeln herleiten. Zunächst zwei Online-Lernregeln (also Lernen mit jeweils einem Index).
  • Additive Online-Lernregel: w x 1 N e u ( s t x | j ) = w x 1 ( s t x | j ) + γ 1 h 1, μ ( j ) i w x 1 ( s t x | i ) h 1, μ ( i )
    Figure DE102018127383A1_0048
    w x 1 N e u ( s t 1 | j ) = w x 1 ( s t x | j ) + γ 2 h 2, μ ( j ) i w 1 z ( s t x | i ) h z , μ ( i )
    Figure DE102018127383A1_0049
    w 2 y N e u ( s t x | j ) = w 2 y ( s t 2 | j ) + γ 3 h y , μ ( j ) i w 2 y ( s t x | i ) h y , μ ( i )
    Figure DE102018127383A1_0050
    w y 2 N e u ( s t x | j ) = w y 2 ( s t 2 | j ) + γ 4 h 2, μ ( j ) i w y 2 ( s t x | i ) h z , μ ( i )
    Figure DE102018127383A1_0051
    w 2 1 N e u ( s t x | j ) = w 2 1 ( s t 2 | j ) + γ 5 h 1, μ ( j ) i w 2 y ( s t x | i ) h 1, μ ( i )
    Figure DE102018127383A1_0052
  • Multiplikative Online-Lernregel: w x 1 N e u ( s t x | j ) = w x 1 ( s t 2 | j ) + γ 1 w x 1 ( s t 2 | j ) h 1, μ ( j ) i w x 1 ( s t x | j ) h 1, μ ( i )
    Figure DE102018127383A1_0053
    w 1 2 N e u ( s t x | j ) = w 1 2 ( s t 2 | j ) + γ 2 w 1 2 ( s t 2 | j ) h 2, μ ( j ) i w 2 y ( s t x | j ) h y , μ ( i )
    Figure DE102018127383A1_0054
    w 2 y N e u ( s t x | j ) = w 2 y ( s t 2 | j ) + γ 3 w 2 y ( s t 2 | j ) h y , μ ( j ) i w 2 y ( s t x | j ) h y , μ ( i )
    Figure DE102018127383A1_0055
    w y 2 N e u ( s t x | j ) = w y 2 ( s t 2 | j ) + γ 4 w y 2 ( s t 2 | j ) h 2, μ ( j ) i w y 2 ( s t x | j ) h 2, μ ( i )
    Figure DE102018127383A1_0056
    w 2 1 N e u ( s t x | j ) = w 2 1 ( s t 2 | j ) + γ 5 w 2 1 ( s t 2 | j ) h 1, μ ( j ) i w 2 1 ( s t x | j ) h 1, μ ( i )
    Figure DE102018127383A1_0057
  • Nach jedem Lernschritt (Multiplikative oder Additive Lernregel) werden die Gewichte normiert: w x 1 N e u ( s | j ) = w x 1 N e u ( s | j ) r w x 1 N e u ( r | j )
    Figure DE102018127383A1_0058
    w 1 2 N e u ( s | j ) = w 1 2 N e u ( s | j ) r w 1 2 N e u ( r | j )
    Figure DE102018127383A1_0059
    w 2 y N e u ( s | j ) = w 2 y N e u ( s | j ) r w 2 y N e u ( r | j )
    Figure DE102018127383A1_0060
    w y 2 N e u ( s | j ) = w y 2 N e u ( s | j ) r w y 2 N e u ( r | j )
    Figure DE102018127383A1_0061
    w 2 1 N e u ( s | j ) = w 2 1 N e u ( s | j ) r w 2 1 N e u ( r | j )
    Figure DE102018127383A1_0062
  • Diese Lernregeln haben unterschiedliche Eigenschaften, wobei vorzugsweise getestet wird, welche am besten bei welchem Problem funktioniert. Beide Online-Lernregeln wurden erfolgreich zum Lernen von 4Bit Booleschen Parity-Funktionen angewendet.
  • Außerdem kann man Batch-Lernregeln (ein Ensemble an Mustern und mehrere Indizes pro Muster) mit Hilfe des Gradienten A b s t a n d w x 1 ( a | j )
    Figure DE102018127383A1_0063
    aufstellen, wie z.B. als multiplikative Batch-Lernregel: w x 1 N e u ( s | j ) = η 1 w x 1 ( s | j ) + ϕ 1 μ p ^ x , μ ( s ) w x 1 ( s | j ) h 1, μ ( j ) i w x 1 ( s | j ) h 1, μ ( i )
    Figure DE102018127383A1_0064
    w 1 2 N e u ( s | j ) = η 2 w 1 2 ( s | j ) + ϕ 2 μ p ^ h 1 , μ ( s ) w 1 2 ( s | j ) h 2, μ ( j ) i w 1 2 ( s | j ) h 1, μ ( i )
    Figure DE102018127383A1_0065
    w 2 1 N e u ( s | j ) = η 3 w 2 y ( s | j ) + ϕ 3 μ p ^ h 2 , μ ( s ) w 2 y ( s | j ) h 2, μ ( i ) i w 2 y ( s | j ) h y , μ ( i )
    Figure DE102018127383A1_0066
    w y 2 N e u ( s | j ) = η 4 w y 2 ( s | j ) + ϕ 4 μ p ^ h y , μ ( s ) w y 2 ( s | j ) h 2, μ ( i ) i w y 2 ( s | j ) h 2, μ ( i )
    Figure DE102018127383A1_0067
    w 2 1 N e u ( s | j ) = η 5 w 2 1 ( s | j ) + ϕ 4 μ p ^ h 2 , μ ( s ) w 2 1 ( s | j ) h 2, μ ( i ) i w 2 i ( s | j ) h 1, μ ( i )
    Figure DE102018127383A1_0068
    wobei die η's und ϕ's Lernraten entsprechen und wieder, nach jedem Lernschritt, eine Normalisierung erfolgen muss: w x 1 N e u , N o r m ( s | j ) = w x 1 N e u ( s | j ) r w x 1 N e u ( r | j )
    Figure DE102018127383A1_0069
    w 1 2 N e u , N o r m ( s | j ) = w 1 2 N e u ( s | j ) r w 1 2 N e u ( s | j )
    Figure DE102018127383A1_0070
    w 2 y N e u , N o r m ( s | j ) = w 2 y N e u ( s | j ) r w 2 y N e u ( r | j )
    Figure DE102018127383A1_0071
    w y 2 N e u , N o r m ( s | j ) = w y 2 N e u ( s | j ) r w y 2 N e u ( r | j )
    Figure DE102018127383A1_0072
    w 2 1 N e u , N o r m ( s | j ) = w 2 1 N e u ( s | j ) r w 2 1 N e u ( r | j )
    Figure DE102018127383A1_0073
  • Anstatt der hier gezeigten multiplikativen Batch-Lernregen kann man analog auch Lernregeln basierend auf moderneren Lernverfahren wie Adam [20] oder L4 [21] aufsetzen.
  • Das hier gezeigte Batch-Lernen hat sich bei Deep-Convolutional Netzwerken als besonders nützlich erwiesen. Z.B. konnte von den Erfindern erfolgreich ein Deep-Convolutional Netzwerk zur Erkennung von handgeschriebenen Ziffern trainiert (gelernt) werden. Dabei wurde die hier gezeigte multiplikative Batch-Lernregel erfolgreich angewandt.
  • Es hat sich auch als vorteilhaft erwiesen, das Netzwerk schichtweise vorzulernen, wobei der Zustand der vorangegangenen Schichten zunächst unverändert gehalten wird und erst danach unter der vollen Dynamik zu Ende zu lernen.
  • Um aus der latenten Zustandsvariable hy,µ(i) eine Klassifizierung zu berechnen gibt es mehrere Möglichkeiten. Zum Beispiel kann man K l a s s e = a r g m a x i h y , μ ( i )
    Figure DE102018127383A1_0074
    verwenden, wobei der Zusammenhang zwischen Klasse und i während des Lernens des Netwerks festgelegt wurde. Oder analog kann man die von der Ausgabe-Einrichtung erzeugten Indizes nach ihrer Quelle sortiert zählen, und anschließend die Quelle mit der maximalen Aktivität als Klasse wählen. In beiden Varianten kann es von Vorteil sein, nach dem Einschwingen der Dynamik der latenten Zustandsvariablen, Fluktuationen herauszumittlen. Es können auch komplizierte Verfahren (z.B. Klassifikatoren wie Nearest-Neighbor, Support-Vector Maschinen oder Perceptron-Netzwerke) aus dem Maschinenlernen Bereich zum Einsatz kommen.
  • Die in der vorstehenden Beschreibung, den Zeichnungen und den Ansprüchen offenbarten Merkmale der Erfindung können sowohl einzeln als auch in Kombination oder Unterkombination für die Verwirklichung der Erfindung in ihren verschiedenen Ausgestaltungen von Bedeutung sein. Die Erfindung ist nicht auf die oben beschriebenen bevorzugten Ausführungsformen beschränkt. Vielmehr ist eine Vielzahl von Varianten und Abwandlungen möglich, die ebenfalls von dem Erfindungsgedanken Gebrauch machen und deshalb ebenfalls in den Schutzbereich fallen. Darüber hinaus beansprucht die Erfindung auch Schutz für den Gegenstand und die Merkmale der Unteransprüche unabhängig von den in Bezug genommenen Merkmalen und Ansprüchen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • WO 2017/021322 A1 [0002]
    • US 2007192267 A1 [0002]
    • US 8219507 B2 [0002]
  • Zitierte Nicht-Patentliteratur
    • Schmidhuber, J. (2015). Deep learning in neural networks: An overview. Neural networks, 61, 85-117; [0002]
    • Rosenblatt, F. (1958). The perceptron: a probabilistic model for information storage and organization in the brain. Psychological review, 65(6), 386; [0002]
    • Guo, Yanming, et al. „Deep learning for visual understanding: A review.“ Neurocomputing 187 (2016): 27-48; [0002]
    • Azkarate Saiz, A. (2015). Deep learning review and its applications; [0002]
    • Längkvist, M., Karlsson, L., & Loutfi, A. (2014). A review of unsupervised feature learning and deep learning for time-series modeling. Pattern Recognition Letters, 42, 11-24; [0002]
    • Silver, D., Huang, A., Maddison, C. J., Guez, A., Sifre, L., Van Den Driessche, G., ... & Dieleman, S. (2016). Mastering the game of Go with deep neural networks and tree search. Nature, 529(7587), 484-489; [0002]
    • Gatys, L. A., Ecker, A. S., & Bethge, M. (2016, June). Image style transfer using convolutional neural networks. In Computer Vision and Pattern Recognition (CVPR), 2016 IEEE Conference on (pp. 2414-2423). IEEE; [0002]
    • Lacey, G., Taylor, G. W., & Areibi, S. (2016). Deep learning on FPGAs: Past, present, and future. arXiv preprint arXiv:1602.04283; [0002]
    • Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by backpropagating errors. Nature, 323(6088), 533; [0002]
    • Hinton, G. E. (2012). A practical guide to training restricted Boltzmann machines. In Neural networks: Tricks of the trade (pp. 599-619). Springer, Berlin, Heidelberg; [0002]
    • Salakhutdinov, R. and Hinton G. E. (2012) An efficient learning procedure for deep Boltzmann machines. Neural Comput. Aug; 24(8):1967-2006. doi: 10.1162/NECO_a_00311 [0002]
    • Salakhutdinov, R. (2015). Learning deep generative models. Annual Review of Statistics and Its Application, 2, 361-385; [0002]
    • Ernst, U., Rotermund, D., & Pawelzik, K. (2007). Efficient computation based on stochastic spikes. Neural computation, 19(5), 1313-1343; [0002]
    • Spanne, A., & Jörntell, H. (2015). Questioning the role of sparse coding in the brain. Trends in neurosciences, 38(7), 417-427; [0002]
    • Bruckstein, A. M., Elad, M., & Zibulevsky, M. (2008). On the uniqueness of nonnegative sparse solutions to underdetermined systems of equations. IEEE Transactions on Information Theory, 54(11), 4813-4820; [0002]
    • Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980; [0002]
    • Rolinek, M., & Martius, G. (2018). L4: Practical loss-based stepsize adaptation for deep learning. arXiv preprint arXiv:1802.05074; [0002]
    • Angeline, P. J., Saunders, G. M., & Pollack, J. B. (1994). An evolutionary algorithm that constructs recurrent neural networks. IEEE Transactions on Neural Networks, 5(1), 54-65) [0002]

Claims (33)

  1. Datenverarbeitungsvorrichtung (100), die zur Abbildung von Eingabedaten r(s) auf Ausgabedaten konfiguriert ist, umfassend (a) eine Eingabe-Einrichtung (10), die zur Aufnahme der Eingabedaten r(s), Erzeugung einer Eingabe-Wahrscheinlichkeitsverteilung p*(s) der Eingabedaten und Erzeugung einer stochastischen Repräsentation der Eingabedaten in Gestalt einer Sequenz von Eingabe-Indizes eingerichtet ist, wobei jeder Eingabe-Index eine stochastisch ermittelte Position innerhalb der Eingabe-Wahrscheinlichkeitsverteilung p*(s) repräsentiert, (b) mindestens ein Netzwerk (20) aus mindestens zwei Merkmalsmodulen (21), die über Datenverbindungen (22) miteinander gekoppelt sind, wobei mindestens eines der Merkmalsmodule (21) über eine Datenverbindung (22) mit der Eingabe-Einrichtung (10) gekoppelt ist, wobei (b1) jedes Merkmalsmodul (21) eine Vielzahl von Zustandsvariablen-Speicherplätzen (23), denen jeweils eine Vielzahl von Gewichte-Speicherplätzen (24) zugeordnet ist, eine Vielzahl von Index-Speicherplätzen (25) und eine Recheneinheit (26) umfasst, (b2) die Zustandsvariablen-Speicherplätze (23) zur Speicherung von normierten latenten Zustandsvariablen hi und die Gewichte-Speicherplätze (24) zur Speicherung von Gewichten p(s|i), die den latenten Zustandsvariablen hi zugeordnet sind, eingerichtet sind, (b3) die Eingabe-Einrichtung (10) zum Senden der Sequenz von Eingabe-Indizes an das mindestens eine mit der Eingabe-Einrichtung (10) gekoppelte Merkmalsmodul (21) eingerichtet ist, (b4) jedes Merkmalsmodul (21) zum Senden einer Sequenz von Modul-Indizes an die mit diesem Merkmalsmodul (21) gekoppelten Merkmalsmodule (21) eingerichtet ist, wobei jeder Modul-Index basierend auf einer Merkmalsmodul-Wahrscheinlichkeitsverteilung hi des jeweils sendenden Merkmalsmoduls eine stochastisch ermittelte Position eines Zustandsvariablen-Speicherplatzes ist, (b5) die Index-Speicherplätze (25) jedes Merkmalsmoduls zur Speicherung von empfangenen Eingabe- oder Modul-Indizes eingerichtet sind, und (b6) die Recheneinheit (26) jedes Merkmalsmoduls dazu eingerichtet ist, die latenten Zustandsvariablen hi und die zugeordneten Gewichte p(s|i), die in dem Merkmalsmodul (21) gespeichert sind, durch Anwendung einer numerischen Optimierung basierend auf den Werten in den Index-Speicherplätzen (25) schrittweise so zu verändern, dass für alle direkt miteinander gekoppelten Merkmalsmodule (21) wechselweise die Merkmalsmodul-Wahrscheinlichkeitsverteilung Σi p(s|i)hi des einen Merkmalsmoduls an die latenten Zustandsvariablen hs des jeweils anderen Merkmalsmoduls angepasst ist und die Merkmalsmodul-Wahrscheinlichkeitsverteilung Σi p(s|i)hi des mindestens einen, mit der Eingabe-Einrichtung (10) gekoppelten Merkmalsmoduls an die Eingabe-Wahrscheinlichkeitsverteilung p*(s) angepasst ist, und (c) eine Ausgabe-Einrichtung (30), die mit mindestens einem Merkmalsmodul (21) des Netzwerks (20) über eine Datenverbindung (22) gekoppelt und zur Bereitstellung der Ausgabedaten eingerichtet ist.
  2. Datenverarbeitungsvorrichtung gemäß Anspruch 1, bei der - die Eingabe-Einrichtung (10) mindestens ein Eingabe-Merkmalsmodul (21) umfasst, das wie die übrigen Merkmalsmodule (21) mit einer Vielzahl von Zustandsvariablen-Speicherplätzen (23) und einer Recheneinheit (26) aufgebaut ist, wobei die Recheneinheit (26) zur Erzeugung der Eingabe-Wahrscheinlichkeitsverteilung p*(s) der Eingabedaten und die Zustandsvariablen-Speicherplätze (23) zur Speicherung der Eingabe-Wahrscheinlichkeitsverteilung p*(s) eingerichtet sind.
  3. Datenverarbeitungsvorrichtung gemäß einem der vorherigen Ansprüche, die für einen Lernmodus und für einen Anwendungsmodus eingerichtet ist, wobei - im Lernmodus die Eingabe-Einrichtung (10) zur Aufnahme vorbekannter Lern-Eingabedaten, die Ausgabe-Einrichtung (30) zur Aufnahme vorbekannter Lern-Ausgabedaten, die den Lern-Eingabedaten zugeordnet sind, und das Netzwerk (20) aus Merkmalsmodulen (21) für das Aktualisieren der latenten Zustandsvariablen hi und das Lernen der zugeordneten Gewichte p(s | i), mit denen die Lern-Eingabedaten auf die Lern-Ausgabedaten abgebildet werden, eingerichtet sind, und - im Anwendungsmodus die Eingabe-Einrichtung (10) zur Aufnahme von Anwendungs-Eingabedaten und die Ausgabe-Einrichtung (30) zur Ausgabe von Anwendungs-Ausgabedaten, die den Anwendungs-Eingabedaten zugeordnet und durch die Merkmalsmodule (21) des Netzwerks (20) mit den aktualisierten latenten Zustandsvariablen hi und zugeordneten gelernten Gewichten p(s|i) ermittelt sind, eingerichtet sind.
  4. Datenverarbeitungsvorrichtung gemäß den Ansprüchen 2 und 3, bei der - die Eingabe-Einrichtung (10) zusätzlich mindestens ein Lerneingabe-Merkmalsmodul (12) umfasst, das im Lernmodus mit dem mindestens Netzwerk (20) aus mindestens zwei Merkmalsmodulen (21) gekoppelt und im Anwendungsmodus von dem mindestens Netzwerk (20) getrennt ist.
  5. Datenverarbeitungsvorrichtung gemäß einem der vorherigen Ansprüche, bei der - die Merkmale der Eingabedaten r(s) Bildmerkmale, Audiomerkmale, Sprachmerkmale, Sensormerkmale, Signalmerkmale, ökonomische Zeitreihen, Verhaltensdaten, Zustandsmerkmale eines biologischen Organismus, Zustandsmerkmale eines natürlichen Systems, physikalische Größen, chemische Parameter und/oder Zustandsmerkmale einer technischen Einrichtung umfassen.
  6. Datenverarbeitungsvorrichtung gemäß einem der vorherigen Ansprüche, umfassend - eine Konfigurationseinrichtung (41), mit der eine Netzwerkkonfiguration einstellbar ist, welche die Anzahl der Merkmalsmodule, die Anzahl von Zustandsvariablen-Speicherplätzen (23) jedes Merkmalsmoduls, die Anzahl von Gewichte-Speicherplätzen (24), die jeweils einem Zustandsvariablen-Speicherplatz zugeordnet sind, die Anzahl von Index-Speicherplätzen (25) jedes Merkmalsmoduls und/oder die Datenverbindungen (22) zwischen Merkmalsmodulen (21) umfasst.
  7. Datenverarbeitungsvorrichtung gemäß Anspruch 6, umfassend - die Konfigurationseinrichtung (41) für eine iterative Einstellung der Netzwerkkonfiguration eingerichtet ist, bei der die Anzahl der Merkmalsmodule (21) und die Anzahl der Zustandsvariablen-Speicherplätze (23) jedes Merkmalsmoduls schrittweise erhöht werden, bis die Leistung der Abbildung der Eingabedaten auf die Ausgabedaten einem vorbestimmten Betriebskriterium entspricht.
  8. Datenverarbeitungsvorrichtung gemäß Anspruch 6 oder 7, bei der - mindestens ein Reserve-Merkmalsmodul (21) vorgesehen ist, das keine Datenverbindung (22) mit dem Netzwerk (20) aus Merkmalsmodulen (21) aufweist, und - die Konfigurationseinrichtung (41) zur Herstellung mindestens einer Datenverbindung (22) des mindestens einen Reserve-Merkmalsmoduls mit dem Netzwerk (20) aus Merkmalsmodulen (21) eingerichtet ist.
  9. Datenverarbeitungsvorrichtung gemäß einem der vorherigen Ansprüche, bei der - das Netzwerk (20) aus Merkmalsmodulen (21) ein geschichtetes Netzwerk (20), insbesondere Deep Convolutional Network (DCN), mit mehreren Schichten (50 - 57) aus Merkmalsmodulen (21) umfasst, bei dem Merkmalsmodule (21) innerhalb einer Schicht gemeinsame Gewichte haben, die den latenten Zustandsvariablen hi zugeordnet sind.
  10. Datenverarbeitungsvorrichtung gemäß Anspruch 9, bei der - das geschichtete Netzwerk (20) für einen schichtbasierten Lernmodus eingerichtet ist, wobei die Schichten von der Eingabe-Einrichtung beginnend für ein Aktualisieren der latenten Zustandsvariablen hi und ein Lernen der zugeordneten Gewichte p(s|i) derart eingerichtet ist, dass die Lern-Eingabedaten auf die Lern-Ausgabedaten abgebildet werden.
  11. Datenverarbeitungsvorrichtung gemäß Anspruch 9, bei der - das geschichtete Netzwerk (20) für einen unüberwachten, schichtbasierten Lernmodus eingerichtet ist, wobei die Schichten von der Eingabe-Einrichtung beginnend bis zu einer vorletzten Schicht vor der Ausgabe-Einrichtung aufeinanderfolgend für eine Ermittlung der latenten Zustandsvariablen hi und der zugeordneten Gewichte p(s|i) ohne Berücksichtigung der Lern-Ausgabedaten eingerichtet sind und eine letzte Schicht vor der Ausgabe-Einrichtung für eine Ermittlung der latenten Zustandsvariablen hi und der zugeordneten Gewichte p(s|i) mit einer Berücksichtigung der Lern-Ausgabedaten eingerichtet ist.
  12. Datenverarbeitungsvorrichtung gemäß Anspruch 9, bei der - das geschichtete Netzwerk (20) für einen überwachten, schichtbasierten Lernmodus eingerichtet ist, bei dem basierend auf dem aktuellen Lernfehler die Gewichte p(s | i) ausgewählter Module reinitialisiert werden.
  13. Datenverarbeitungsvorrichtung gemäß einem der vorherigen Ansprüche, bei der - die Recheneinheit (26) jedes Merkmalsmodul (21) dazu eingerichtet ist, die numerische Optimierung basierend auf einem probabilistischen Ziel-Maß, insbesondere der Log-Likelihood, der Kullbach-Leibler-Divergenz oder Kombinationen von Vektornormen, auszuführen.
  14. Datenverarbeitungsvorrichtung gemäß einem der vorherigen Ansprüche, bei der - die Ausgabe-Einrichtung (30) mindestens ein Ausgabe-Merkmalsmodul (21) umfasst, das wie die übrigen Merkmalsmodule (21) mit einer Vielzahl von Zustandsvariablen-Speicherplätzen (23), einer Vielzahl von Index-Speicherplätzen (25) und einer Recheneinheit (26) aufgebaut ist, wobei die latenten Zustandsvariablen des mindestens einen Merkmalsmoduls oder davon abgeleitete Größen als Ausgabedaten ausgegeben werden.
  15. Datenverarbeitungsvorrichtung gemäß einem der vorherigen Ansprüche, bei der - die Ausgabe-Einrichtung (30) einen Klassifikator, insbesondere basierend auf Perzeptrons oder einer Support-Vector-Maschine, umfasst, der auf der Basis der latenten Zustandsvariablen von Merkmalsmodulen (21) operiert, mit denen die Ausgabe-Einrichtung (30) gekoppelt ist.
  16. Datenverarbeitungsvorrichtung gemäß einem der vorherigen Ansprüche, die umfasst - ein modulares System mit mindestens zwei integrierten Schaltungen, die jeweils ein Netzwerk (20) aus Merkmalsmodulen (21) umfassen.
  17. Datenverarbeitungsverfahren, das zur Abbildung von Eingabedaten r(s) auf Ausgabedaten konfiguriert ist, umfassend die Schritte (S1) Aufnahme der Eingabedaten r(s), Erzeugung einer Eingabe-Wahrscheinlichkeitsverteilung p*(s) der Eingabedaten und Erzeugung einer stochastischen Repräsentation der Eingabedaten in Gestalt einer Sequenz von Eingabe-Indizes eingerichtet ist, mit einer Eingabe-Einrichtung (10), wobei jeder Eingabe-Index eine stochastisch ermittelte Position innerhalb der Eingabe-Wahrscheinlichkeitsverteilung p*(s) repräsentiert, (S2) Betreiben mindestens eines Netzwerks (20) aus mindestens zwei Merkmalsmodulen (21), die über Datenverbindungen (22) miteinander gekoppelt sind, wobei mindestens eines der Merkmalsmodule (21) über eine Datenverbindung (22) mit der Eingabe-Einrichtung (10) gekoppelt ist, wobei jedes Merkmalsmodul (21) eine Vielzahl von Zustandsvariablen-Speicherplätzen (23), denen jeweils eine Vielzahl von Gewichte-Speicherplätzen (24) zugeordnet ist, eine Vielzahl von Index-Speicherplätzen (25) und eine Recheneinheit (26) umfasst, die Zustandsvariablen-Speicherplätze (23) normierte latente Zustandsvariablen hi und die Gewichte-Speicherplätze (24) Gewichte p(s|i) speichern, die den latenten Zustandsvariablen hi zugeordnet sind, (S2.1) die Eingabe-Einrichtung (10) die Sequenz von Eingabe-Indizes an das mindestens eine mit der Eingabe-Einrichtung (10) gekoppelte Merkmalsmodul (21) sendet, (S2.2) jedes Merkmalsmodul (21) eine Sequenz von Modul-Indizes an die mit diesem Merkmalsmodul (21) gekoppelten Merkmalsmodule (21) sendet, wobei jeder Modul-Index basierend auf einer Merkmalsmodul-Wahrscheinlichkeitsverteilung hi des jeweils sendenden Merkmalsmoduls eine stochastisch ermittelte Position eines Zustandsvariablen-Speicherplatzes repräsentiert, (S2.3) die Index-Speicherplätze (25) jedes Merkmalsmoduls empfangene Eingabe- oder Modul-Indizes speichern, und (S2.4) die Recheneinheit (26) jedes Merkmalsmoduls die latenten Zustandsvariablen hi und die zugeordneten Gewichte p(s|i), die in dem Merkmalsmodul (21) gespeichert sind, durch Anwendung einer numerischen Optimierung basierend auf den Werten in den Index-Speicherplätzen (25) schrittweise verändert, dass für alle direkt miteinander gekoppelten Merkmalsmodule (21) wechselweise die Merkmalsmodul-Wahrscheinlichkeitsverteilung Σi p(s|i)hi des einen Merkmalsmoduls an die latenten Zustandsvariablen hs des jeweils anderen Merkmalsmoduls angepasst ist und die Merkmalsmodul-Wahrscheinlichkeitsverteilung Σi p(s|i)hi des mindestens einen, mit der Eingabe-Einrichtung (10) gekoppelten Merkmalsmoduls an die Eingabe-Wahrscheinlichkeitsverteilung p*(s) angepasst ist, und - (S3) Bereitstellung der Ausgabedaten mit einer Ausgabe-Einrichtung (30), die mit mindestens einem Merkmalsmodul (21) des Netzwerks (20) über eine Datenverbindung (22) gekoppelt ist.
  18. Datenverarbeitungsverfahren gemäß Anspruch 17, bei dem - die Eingabe-Einrichtung (10) mindestens ein Eingabe-Merkmalsmodul (21) umfasst, das wie die übrigen Merkmalsmodule (21) mit einer Vielzahl von Zustandsvariablen-Speicherplätzen (23) und einer Recheneinheit (26) aufgebaut ist, und - die Recheneinheit (26) die Eingabe-Wahrscheinlichkeitsverteilung p*(s) der Eingabedaten erzeugt und die Zustandsvariablen-Speicherplätze (23) die Eingabe-Wahrscheinlichkeitsverteilung p*(s) speichern.
  19. Datenverarbeitungsverfahren gemäß einem der Ansprüche 17 bis 18, bei dem ein Lernmodus oder ein Anwendungsmodus ausgeführt wird, wobei - im Lernmodus die Eingabe-Einrichtung (10) vorbekannte Lern-Eingabedaten aufnimmt, die Ausgabe-Einrichtung (30) vorbekannter Lern-Ausgabedaten aufnimmt, die den Lern-Eingabedaten zugeordnet sind, und das Netzwerk (20) aus Merkmalsmodulen (21) die latenten Zustandsvariablen hi aktualisiert und die zugeordneten Gewichte p(s|i) lernt, mit denen die Lern-Eingabedaten auf die Lern-Ausgabedaten abgebildet werden, und - im Anwendungsmodus die Eingabe-Einrichtung (10) Anwendungs-Eingabedaten aufnimmt und die Ausgabe-Einrichtung (30) Anwendungs-Ausgabedaten ausgibt, die den Anwendungs-Eingabedaten zugeordnet und durch die Merkmalsmodule (21) des Netzwerks (20) mit den aktualisierten latenten Zustandsvariablen hi und zugeordneten gelernten Gewichten p(s|i) ermittelt sind.
  20. Datenverarbeitungsverfahren gemäß Anspruch 19, bei dem - die Eingabe-Einrichtung (10) zusätzlich mindestens ein Lerneingabe-Merkmalsmodul (21) umfasst, das im Lernmodus mit dem mindestens Netzwerk (20) aus mindestens zwei Merkmalsmodulen (21) gekoppelt und im Anwendungsmodus von dem mindestens Netzwerk (20) getrennt ist.
  21. Datenverarbeitungsverfahren gemäß einem der Ansprüche 17 bis 20, bei dem - die Merkmale der Eingabedaten r(s) Bildmerkmale, Audiomerkmale, Sprachmerkmale, Sensormerkmale, Signalmerkmale, ökonomische Zeitreihen, Verhaltensdaten, Zustandsmerkmale eines biologischen Organismus, physikalische Größen, chemische Parameter und/oder Zustandsmerkmale einer technischen Einrichtung umfassen.
  22. Datenverarbeitungsverfahren gemäß einem der Ansprüche 17 bis 21, mit dem Konfigurationsschritt - Einstellung einer Netzwerkkonfiguration mit einer Konfigurationseinrichtung (41), welche die Anzahl der Merkmalsmodule, die Anzahl von Zustandsvariablen-Speicherplätzen (23) jedes Merkmalsmoduls, die Anzahl von Gewichte-Speicherplätzen (24), die jeweils einem Zustandsvariablen-Speicherplatz zugeordnet sind, die Anzahl von Index-Speicherplätzen (25) jedes Merkmalsmoduls und/oder die Datenverbindungen (22) zwischen Merkmalsmodulen (21) umfasst.
  23. Datenverarbeitungsverfahren gemäß Anspruch 22, bei dem - die Einstellung der Netzwerkkonfiguration iterativ erfolgt, wobei bei die Anzahl der Merkmalsmodule (21) und die Anzahl der Zustandsvariablen-Speicherplätze (23) jedes Merkmalsmoduls schrittweise erhöht werden, bis die Leistung der Abbildung der Eingabedaten auf die Ausgabedaten einem vorbestimmten Betriebskriterium entspricht.
  24. Datenverarbeitungsverfahren gemäß Anspruch 22 oder 23, bei dem - der Konfigurationsschritt während der Abbildung der Eingabedaten r(s) auf die Ausgabedaten erfolgt und die Herstellung mindestens einer Datenverbindung (22) von mindestens einem Reserve-Merkmalsmodul (21) mit dem Netzwerk (20) aus Merkmalsmodulen (21) umfasst.
  25. Datenverarbeitungsverfahren gemäß einem der Ansprüche 17 bis 24, bei dem - das Netzwerk (20) aus Merkmalsmodulen (21) ein geschichtetes Netzwerk (20), insbesondere Deep Convolutional Network (DCN), mit mehreren Schichten aus Merkmalsmodulen (21) umfasst, bei dem Merkmalsmodule (21) innerhalb einer Schicht gemeinsame Gewichte haben, die den latenten Zustandsvariablen hi zugeordnet sind.
  26. Datenverarbeitungsverfahren gemäß Anspruch 25, bei dem - das geschichtete Netzwerk (20) einen schichtbasierten Lernmodus ausführt, wobei die Schichten von der Eingabe-Einrichtung beginnend die latenten Zustandsvariablen hi aktualisieren und die zugeordneten Gewichte p(s|i) lernen, so dass die Lern-Eingabedaten auf die Lern-Ausgabedaten abgebildet werden.
  27. Datenverarbeitungsverfahren gemäß Anspruch 25, bei dem - das geschichtete Netzwerk (20) für einen unüberwachten, schichtbasierten Lernmodus ausführt, wobei die Schichten von der Eingabe-Einrichtung beginnend bis zu einer vorletzten Schicht vor der Ausgabe-Einrichtung aufeinanderfolgend unabhängig von den Lern-Ausgabedaten die latenten Zustandsvariablen hi aktualisieren und die zugeordneten Gewichte p(s|i) lernen und eine letzte Schicht vor der Ausgabe-Einrichtung unter Berücksichtigung der Lern-Ausgabedaten die latenten Zustandsvariablen hi aktualisiert und die zugeordneten Gewichte p(s | i) lernt.
  28. Datenverarbeitungsverfahren gemäß Anspruch 25, bei dem - das geschichtete Netzwerk (20) einen überwachten, schichtbasierten Lernmodus ausführt, bei dem basierend auf dem aktuellen Lernfehler die Gewichte p(s | i) ausgewählter Module reinitialisiert werden.
  29. Datenverarbeitungsverfahren gemäß einem der Ansprüche 17 bis 28, bei dem - die Recheneinheit (26) jedes Merkmalsmodul (21) die numerische Optimierung basierend auf einem probabilistischen Ziel-Maß, insbesondere der Log-Likelihood, der Kullbach-Leibler-Divergenz oder Kombinationen von Vektornormen, ausführt.
  30. Datenverarbeitungsverfahren gemäß einem der Ansprüche 17 bis 29, bei dem - die Ausgabe-Einrichtung (30) mindestens ein Merkmalsmodul (21) umfasst, das wie die übrigen Merkmalsmodule (21) mit einer Vielzahl von Zustandsvariablen-Speicherplätzen (23) und einer Recheneinheit (26) aufgebaut ist, wobei die latenten Zustandsvariablen des mindestens einen Merkmalsmoduls oder davon abgeleitete Größen als Ausgabedaten ausgegeben werden.
  31. Datenverarbeitungsverfahren gemäß einem der Ansprüche 17 bis 30, bei dem - die Ausgabe-Einrichtung (30) einen Klassifikator, insbesondere basierend auf Perzeptrons oder einer Support-Vector-Maschine, umfasst, der auf der Basis der latenten Zustandsvariablen von Merkmalsmodulen (21) operiert, mit denen die Ausgabe-Einrichtung (30) gekoppelt ist.
  32. Computerprogrammprodukt, das auf einem Computer-lesbaren Speichermedium gespeichert und zur Ausführung eines Verfahrens gemäß einem der Ansprüche 17 bis 31 eingerichtet ist.
  33. Computer-lesbares Speichermedium, auf dem ein Computerprogrammprodukt gespeichert ist, das zur Ausführung des Verfahrens gemäß einem der Ansprüche 17 bis 31 eingerichtet ist.
DE102018127383.5A 2018-11-02 2018-11-02 Datenverarbeitungsvorrichtung mit einem künstlichen neuronalen Netzwerk und Verfahren zur Datenverarbeitung Pending DE102018127383A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102018127383.5A DE102018127383A1 (de) 2018-11-02 2018-11-02 Datenverarbeitungsvorrichtung mit einem künstlichen neuronalen Netzwerk und Verfahren zur Datenverarbeitung
PCT/EP2019/079645 WO2020089287A1 (de) 2018-11-02 2019-10-30 Datenverarbeitungsvorrichtung mit einem künstlichen neuronalen netzwerk und verfahren zur datenverarbeitung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018127383.5A DE102018127383A1 (de) 2018-11-02 2018-11-02 Datenverarbeitungsvorrichtung mit einem künstlichen neuronalen Netzwerk und Verfahren zur Datenverarbeitung

Publications (1)

Publication Number Publication Date
DE102018127383A1 true DE102018127383A1 (de) 2020-05-07

Family

ID=68424898

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018127383.5A Pending DE102018127383A1 (de) 2018-11-02 2018-11-02 Datenverarbeitungsvorrichtung mit einem künstlichen neuronalen Netzwerk und Verfahren zur Datenverarbeitung

Country Status (2)

Country Link
DE (1) DE102018127383A1 (de)
WO (1) WO2020089287A1 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192267A1 (en) 2006-02-10 2007-08-16 Numenta, Inc. Architecture of a hierarchical temporal memory based system
US8219507B2 (en) 2007-06-29 2012-07-10 Numenta, Inc. Hierarchical temporal memory system with enhanced inference capability
WO2017021322A1 (en) 2015-07-31 2017-02-09 Eberhard Karls Universität Tübingen Method and device for image synthesis

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150242745A1 (en) * 2014-02-21 2015-08-27 Qualcomm Incorporated Event-based inference and learning for stochastic spiking bayesian networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192267A1 (en) 2006-02-10 2007-08-16 Numenta, Inc. Architecture of a hierarchical temporal memory based system
US8219507B2 (en) 2007-06-29 2012-07-10 Numenta, Inc. Hierarchical temporal memory system with enhanced inference capability
WO2017021322A1 (en) 2015-07-31 2017-02-09 Eberhard Karls Universität Tübingen Method and device for image synthesis

Non-Patent Citations (21)

* Cited by examiner, † Cited by third party
Title
Angeline, P. J., Saunders, G. M., & Pollack, J. B. (1994). An evolutionary algorithm that constructs recurrent neural networks. IEEE Transactions on Neural Networks, 5(1), 54-65)
Azkarate Saiz, A. (2015). Deep learning review and its applications;
Bruckstein, A. M., Elad, M., & Zibulevsky, M. (2008). On the uniqueness of nonnegative sparse solutions to underdetermined systems of equations. IEEE Transactions on Information Theory, 54(11), 4813-4820;
Ernst, U., Rotermund, D., & Pawelzik, K. (2007). Efficient computation based on stochastic spikes. Neural computation, 19(5), 1313-1343;
ERNST, Udo; ROTERMUND, David; PAWELZIK, Klaus: Efficient computation based on stochastic spikes. In: Neural Computation, Bd. 19, 2007, H. 5, S. 1313-1343. ISSN 1530-888X (E); 0899-7667 (P). DOI: 10.1162/neco.2007.19.5.1313. *
Gatys, L. A., Ecker, A. S., & Bethge, M. (2016, June). Image style transfer using convolutional neural networks. In Computer Vision and Pattern Recognition (CVPR), 2016 IEEE Conference on (pp. 2414-2423). IEEE;
Guo, Yanming, et al. „Deep learning for visual understanding: A review." Neurocomputing 187 (2016): 27-48;
Hinton, G. E. (2012). A practical guide to training restricted Boltzmann machines. In Neural networks: Tricks of the trade (pp. 599-619). Springer, Berlin, Heidelberg;
Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980;
Lacey, G., Taylor, G. W., & Areibi, S. (2016). Deep learning on FPGAs: Past, present, and future. arXiv preprint arXiv:1602.04283;
Längkvist, M., Karlsson, L., & Loutfi, A. (2014). A review of unsupervised feature learning and deep learning for time-series modeling. Pattern Recognition Letters, 42, 11-24;
Massively Parallel FPGA Hardware for Spike-By-Spike Networks: David Rotermund, Klaus R. Pawelzik. In: bioRxiv, June 2019, 1-29. https://www.biorxiv.org/content/early/2019/06/14/500280 [abgerufen am 01.10.2019] *
Rolinek, M., & Martius, G. (2018). L4: Practical loss-based stepsize adaptation for deep learning. arXiv preprint arXiv:1802.05074;
Rosenblatt, F. (1958). The perceptron: a probabilistic model for information storage and organization in the brain. Psychological review, 65(6), 386;
Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by backpropagating errors. Nature, 323(6088), 533;
Salakhutdinov, R. (2015). Learning deep generative models. Annual Review of Statistics and Its Application, 2, 361-385;
Salakhutdinov, R. and Hinton G. E. (2012) An efficient learning procedure for deep Boltzmann machines. Neural Comput. Aug; 24(8):1967-2006. doi: 10.1162/NECO_a_00311
Schmidhuber, J. (2015). Deep learning in neural networks: An overview. Neural networks, 61, 85-117;
Silver, D., Huang, A., Maddison, C. J., Guez, A., Sifre, L., Van Den Driessche, G., ... & Dieleman, S. (2016). Mastering the game of Go with deep neural networks and tree search. Nature, 529(7587), 484-489;
Spanne, A., & Jörntell, H. (2015). Questioning the role of sparse coding in the brain. Trends in neurosciences, 38(7), 417-427;
Xilinx, Inc.: Virtex-6 Family Overview DS150 (v2.5). San Jose, CA 95124, USA, August 20, 2015. - Firmenschrift. https://www.xilinx.com/support/documentation/data_sheets/ds150.pdf [abgerufen am 01.10.2019] *

Also Published As

Publication number Publication date
WO2020089287A1 (de) 2020-05-07

Similar Documents

Publication Publication Date Title
DE112020000281T5 (de) Vereinigen von modellen, die jeweilige zielklassen aufweisen, mit destillation
DE69217047T2 (de) Verbesserungen in neuronalnetzen
DE102018129424A1 (de) System und verfahren zum lernen der struktur von tiefen neuronalen netzwerken
DE68928484T2 (de) Verfahren zum erkennen von bildstrukturen
DE112018005227T5 (de) Merkmalsextraktion mithilfe von multi-task-lernen
DE102018111905A1 (de) Domänenspezifische Sprache zur Erzeugung rekurrenter neuronaler Netzarchitekturen
DE102018221413A1 (de) Effektive baustein-ausgestaltung für tiefe konvolutionelle neuronale netzwerke unter verwendung einer suche
DE112018006189T5 (de) Robuste gradienten-gewichtskomprimierungsschemata für deep-learning-anwendungen
DE60024452T2 (de) Verbesserte Kenntnisentdeckung von mehreren Datensätzen unter Verwendung von multiplen Support-Vektormaschinen
EP1530779A2 (de) Verfahren, datenverarbeitungseinrichtung und computerprogrammprodukt zur datenverarbeitung
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
DE112005000569T5 (de) System und Verfahren zur Patientenidentifikation für klinische Untersuchungen unter Verwendung von inhaltsbasiertem Erlangen und Lernen
DE102021004591A1 (de) Für Graphen vorgesehene neuronale Netzwerke für Datensätze mit Heterophilie
LU501881B1 (de) Eine methode und ein system zur vorhersage von mirna-krankheitsassoziationen auf der grundlage von heterogenen graphen
DE112019006156T5 (de) Erkennung und behandlung von unsachgemässen eingaben durch neuronale netzwerke
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
EP3736817A1 (de) Überprüfung und/oder verbesserung der konsistenz von datenkennzeichnungen bei der medizinischen bildverarbeitung
DE102020124761A1 (de) Speicher-Controller und Speicher-Vorrichtung mit demselben und Betriebsverfahren für denselben
DE112020001774T5 (de) Datensatzabhängiges niedrigrang-zerlegen von neuronalen netzwerken
DE69110538T2 (de) Neuronales Klassifikationssystem and -verfahren.
DE60125536T2 (de) Anordnung zur generierung von elementensequenzen
DE102021109382A1 (de) System und verfahren eines monotonen neuronalen operatornetzes technisches gebiet
DE112020003446T5 (de) Validierung einer Leistung eines neuronalen Netzes, das mit markierten Trainingsdaten trainiert wurde
DE112021003761T5 (de) Prädiktive modelle mit zerlegbaren hierarchischen ebenen, die konfiguriert werden, um interpretierbare resultate zu erzeugen
DE112020002547T5 (de) Rausch- und signalverwaltung für rpu-array

Legal Events

Date Code Title Description
R163 Identified publications notified