DE60024582T2 - Neuronales verarbeitungselement zur verwendung in einem neuronalen netzwerk - Google Patents

Neuronales verarbeitungselement zur verwendung in einem neuronalen netzwerk Download PDF

Info

Publication number
DE60024582T2
DE60024582T2 DE60024582T DE60024582T DE60024582T2 DE 60024582 T2 DE60024582 T2 DE 60024582T2 DE 60024582 T DE60024582 T DE 60024582T DE 60024582 T DE60024582 T DE 60024582T DE 60024582 T2 DE60024582 T2 DE 60024582T2
Authority
DE
Germany
Prior art keywords
data
input
neuron
neural network
module
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.)
Expired - Fee Related
Application number
DE60024582T
Other languages
English (en)
Other versions
DE60024582D1 (de
Inventor
Neil Bridge of Don LIGHTOWLER
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.)
Johnson Matthey Battery Systems Engineering Ltd
Original Assignee
Axeon Ltd
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 Axeon Ltd filed Critical Axeon Ltd
Application granted granted Critical
Publication of DE60024582D1 publication Critical patent/DE60024582D1/de
Publication of DE60024582T2 publication Critical patent/DE60024582T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Description

  • Die vorliegende Erfindung betrifft ein neuronales Verarbeitungselement zur Verwendung in einem Neuronalen Netzwerk (NN). Insbesondere, nicht jedoch ausschließlich, betrifft die Erfindung eine skalierbare Implementation eines modularen NN und ein Lernverfahren für dieses. Insbesondere wird eine Hardware-Implementation eines skalierbaren modularen NN geschaffen.
  • Künstliche Neuronale Netze (ANNs) sind parallel arbeitende Informationsverarbeitungssysteme, deren Parallelität nicht nur von der grundlegenden Architektur/Technologie abhängig ist, sondern auch von dem Algorithmus und manchmal von der beabsichtigten Anwendung selbst.
  • Bei einer Implementation von ANNs als Hardware treten Schwierigkeiten auf, wenn die Größe des Netzwerks zunimmt. Dies beruht auf Siliziumbereiche, Pinout-Abwägungen und prozessorinternen Kommunikationen. Ein Aspekt der Erfindung versucht ein skalierbares ANN zu schaffen mit einem modularen System, das auf einem Chip implementiert ist, wobei die Schwierigkeiten, die auftreten, wenn die erforderliche Netzwerkgröße zunimmt, zu mildern oder zu verhindern. Durch Verwendung eines modularen Ansatzes bei der Implementation ist es möglich, eine Partitionierungsstrategie anzuwenden, um die gewöhnlichen Begrenzungen bezüglich der Skalierbarkeit zu überwinden. Nur eine kleine Anzahl von Neuronen sind für ein einzelnes Modul erforderlich und gesonderte Module können bei separaten Einrichtungen implementiert werden.
  • In einer digitalen Umgebung können beispielsweise zwei Faktoren die Skalierbarkeit eines neuronalen Netzwerks begrenzen, nämlich die Erfordernisse zum Implementieren digitaler Multiplier und das Speichern der Bezugsvektorwerte.
  • Skalierbare Systeme sind wegen des Kommunikations-Overheads, der proportional zu der Netzwerkgröße zunimmt, schwierig zu implementieren. Die Erfindung mindert dieses Prob lem durch Schaffen einer feinkörnigen Implementation eines neuronalen Netzwerks, bei dem jedes Neuron auf einem separaten Prozessorelement abgebildet ist und in dem die Multipliereinheit des Kohonen'schen originalen Self-Organising Map (SOM)-Algorithmus (Tuevo Kohonen: „Self-Organising Maps", Springer series in information sciences, Springer-Verlang, Deutschland 1995) durch einen arithmetischen Schieber ersetzt wird, wodurch die erforderlichen Ressourcen reduziert werden. Andere Logorithmen, die eine skalierbare Implementation schaffen, können stattdessen verwendet werden, insbesondere Algorithmen, die topologische Abbildungen ihres Eingangsraums bilden können.
  • „A modular approach to Implementation of the Self-Organising Koordinaten" Proc of WSOM 97, Workshop on Self-Organising Maps, Espoo, Finland, June 4–6 1997, Helsinki University of Technology, S. 130–135, und "An introduction to Modular Maps systems", IEE colloquium on Neuronal and Fuzzy systems, 9 May 1997, INSPEC 5615702, pp 3/1 – both by Lightowler, N. et al offenbaren eine Implementation eines modularen Ansatzes zu einer vollständigen digitalen Hardware-Implementation der sich selbst organisierenden Map.
  • Jedes Modul der Erfindung ist ein eigenständiges neuronales Netzwerk, das Netzwerk kann jedoch durch Hinzufügen von Modulen entsprechend einer vorgegebenen Struktur erweitert werden. Für eine laterale Expansion ist so gesorgt. Die Abbildungsstruktur ist in einem Ausführungsbeispiel der Erfindung hierarchisch, was große Eingangssektoren ohne signifikante Erhöhung der Lernzeit des Systems erlaubt.
  • Die Verarbeitungselemente nach der Erfindung, d. h. die Neuronen, haben zwei Funktionen, nämlich das Berechnen eines Abstands nach einer geeigneten Metrik, beispielsweise einer Manhattan-Distanz und weiter das Updaten der Referenzvektoren. Die Referenzvektoren werden seriell upgedatet, die Distanzvektoren werden jedoch parallel berechnet; eine Entscheidungslogik, beispielsweise ein binärer Baum, ist vorgesehen um sicherzustellen, dass nur ein einziges Verarbeitungselement zu einem Zeitpunkt Daten ausgeben kann.
  • Ein Ausführungsbeispiel der Erfindung versucht, die Probleme des Standes der Technik, die sich bei der Expandierbarkeit neuronaler Netzwerke, die als Hardware implementiert sind, durch Schaffen einer Hardware-Implementation eines modularen ANN mit einer feinkörnigen Parallelität zu überwinden, bei dem ein einziges Verarbeitungselement die Funktion eines einzelnen Neurons ausübt. Jedes Verarbeitungselement wird als ein einziges Neuron imple mentiert, jedes Neuron, ist als Reduced Instruction Set Computer Prozessor optimiert für Neuronale Verarbeitung implementiert.
  • Eine globale Information, d. h., Daten, die durch alle Neuronen der Einrichtung erforderlich sind, werden zentral von dem Modul-Controller gehalten. Lokale Information, d. h., Daten, die von den individuellen Neuronen benötigt werden, werden in Registern gehalten, die ein Teil jedes Neurons bildet. Parallelität wird durch jedes Neuron maximiert, das eine Systemberechnung ausführt, so dass einzelne Neuronen sich identifizieren, wenn sie in der jeweiligen Nachbarschaft sind.
  • Jedes Neuron hat seinen eigenen Referenzvektor, gegen den Eingangsvektoren gemessen werden. Wenn ein Eingangsvektor an dem Neuronalen Netzwerk anliegt, wird es allen Neuronen, die das Netzwerk bilden, übergeben. Alle Neuronen berechnen dann den Abstand zwischen dem Eingangsvektor und dem Referenzvektor unter Verwendung einer Distanzmetrik. Es ist ein Merkmal der Erfindung, dass die Distanzmetrik unter Verwendung einer Addierer/Subtrahierer-Einheit, beispielsweise der Manhattan-Distanzmetrik, bestimmt werden kann.
  • Wenn alle Neuronen in dem Netzwerk ihren jeweiligen Abstand bestimmt haben, kommunizieren sie über laterale Verbindungen miteinander, um zu bestimmen, welcher von ihnen den minimalen Abstand zwischen seinem Referenzvektor und dem jeweiligen Eingang hat, d. h., wer der „Gewinner" oder das aktive Neuron ist.
  • Die Modular Map Implementation nach der Erfindung erhält so starke lokale Verbindungen aufrecht, die Bestimmung des „Gewinners" wird jedoch erreicht ohne den Overhead der Kommunikation, der durch den Kohonen'schen Original Algorithmus vorgeschlagen wird. Alle Neuronen, die das Netzwerk bilden, werden bei den Berechnungen verwendet, um das aktive Neuron zu bestimmen und die Arbeitsbelastung wird infolgedessen über das Netzwerk verteilt. Während der Lernphase des Betriebs werden alle Neuronen in der unmittelbaren Nähe des aktiven Neurons ihre Bezugsvektoren updaten, um diese näher an den jeweiligen Eingang zu bringen. Die Größe dieser Nachbarschaft verändert sich während der Lernphase, sie ist anfänglich sehr groß und schließlich auf das aktive Neuron selbst beschränkt. Der Modular Map Ansatz nach der Erfindung verwendet den Manhattan-Abstand, um die Nachbarschaft zu messen, was zu einer diamantförmigen Nachbarschaft führt.
  • Die Erfindung weist einen Mechanismus zum Ermöglichen der Multiplikation der metrischen Abstände durch Bruchteile, die das Verhältnis des Abstands zwischen dem Eingang und Referenzvektoren repräsentieren. Diese Bruchteile werden bestimmt durch einen Verstärkungsfaktor α(t), der auf diskrete Werte beschränkt ist, beispielsweise negative Potenzen von zwei.
  • α(t) wird verwendet, um die Bezugsvektorwerte upzudaten und durch Begrenzen von α(t) kann die erforderliche Multiplikation durch einen arithmetischen Schieber implementiert werden, der erheblich preisgünstiger ist bezüglich der Hardware-Ressourcen, als ein vollständiger Multiplier.
  • Ein vollständig digitales ANN Hardware-Implementationssystem weist 16 Einheiten auf, wobei jede Einheit 25 Neuronen als gesonderte Prozessorelemente implementiert. Die Größe des Netzwerks kann durch Verwenden mehrerer Einheiten vergrößert werden. Diese Einheiten beinhalten jedoch nur Neuronen, es besteht keine lokale Steuerung für die Neuronen einer Einheit. Ein externer Controller ist erforderlich, um diese Einheiten zu verkoppeln und die Aktionen ihrer einzelner Neuronen zu steuern. Infolgedessen sind die Einheiten nicht autonom, im Gegensatz zu der Modular Map NN-Einheit nach der Erfindung.
  • Es ist Aufgabe der Erfindung, eine Modular Map Implementation zu schaffen, bei der jedes Modul ausreichende Neuronen beinhaltet, um es als eigenständiges System sinnvoll arbeiten zu lassen, mit dem Vorteil, dass viele Module miteinander verbunden werden können, um eine große Variation von Konfigurationen und Netzwerkgrößen zu erzeugen. Dieser modulare Ansatz führt zu einem skalierbaren System, das eine erhöhte Arbeitsbelastung zulässt mit einer Erhöhung der Parallelität und damit die gewöhnlich erhebliche Zunahme der Lernzeiten, die einheitlichen Implementationen eigen ist, vermeidet.
  • ANGABE DER ERFINDUNG
  • Nach einem ersten Aspekt der Erfindung wird ein Neuronales Prozessorelement (100) geschaffen, das zur Verwendung in einem Neuronalen Netzwerk eingerichtet ist, mit
    arithmetischen Logikmitteln (50);
    einem arithmetischen Schiebemechanismus (52);
    Datenübertragungsmitteln (115, 125);
    Speichermitteln (56, 57, 58, 59);
    Dateneingabemittel (110) einschließlich wenigstens eines Eingangsanschlusses;
    Datenausgabemitteln (120) einschließlich wenigstens eines Ausgangsanschlusses;
    und
    Steuerlogikmitteln (54);
    wobei das Neuronale Prozessorelement zur Ausführung von Operationen an einem Bezugsvektor, der aus gewichteten Werten besteht, eingerichtet ist;
    dadurch gekennzeichnet, dass die Wichtungswerte während verschiedener Phasen der Neuronalen Operation unterschiedliche Bit-Größen haben.
  • Nach einem zweiten Aspekt der Erfindung ist ein neuronales Netzwerkmodul (300) vorgesehen, das ein Feld von Neuronalen Prozessorelementen (100) aufweist, wie sie eben genannt worden sind, und wenigstens einen Neuronalen Netzwerkcontroller (200) zum Steuern der Operation wenigstens eines Prozessorelements (100), wobei der Controller (200) aufweist:
    Steuerlogikmittel (270, 280)
    Dateneingabemittel (60) einschließlich wenigstens eines Eingangsanschlusses;
    Datenausgabemittel (62) einschließlich wenigstens eines Ausgangsanschlusses;
    Datenübertragungsmittel (290, 292, 294);
    Speichermittel (64, 68, 280);
    eine Adressierabbildung (66); und
    Synchronisationsmittel, die zum Implementieren wenigstens eines Handshake-Mechanismus (210, 220, 230) eingerichtet sind.
  • Nach einem dritten Aspekt der Erfindung wird ein modulares neuronales Netz geschaffen mit:
    einem Modul (300), das wie bei dem zweiten Ausführungsbeispiel der Erfindung definiert ist, oder wenigstens zwei Modulen (300), die wie bei dem zweiten Ausführungsbeispiel der Erfindung angegeben, ausgebildet sind.
  • Nach einem vierten Aspekt der Erfindung wird eine neuronale Netzwerkeinheit geschaffen mit einem Neuronalen Netz, wie es nach dem dritten Ausführungsbeispiel der Erfindung angegeben ist, wobei ein Feld von Prozessorelementen (100) bei der neuronalen Netzwerkeinheit mit wenigstens einem Modulcontroller (200) implementiert wird.
  • Nach einem fünften Ausführungsbeispiel der Erfindung wird ein Computerprogramm geschaffen, das bei der Ausführung auf einem Computer gemeinsam mit dem Computer, auf dem es ausgeführt wird, einen Apparat entsprechend einem des ersten bis vierten Ausführungsbeispiels nach der Erfindung bildet.
  • Nach einem sechsten Ausführungsbeispiel der Erfindung wird ein Lärmverfahren für ein Neuronales Netzwerk geschaffen, das folgende Schritte aufweist:
    • i. Schaffen eines Netzwerks von Neuronen (100), wobei jedes Neuron (100) einen Eingangsvektor liest, der an den Eingang des Neuronalen Netzwerks angelegt wird;
    • ii. Berechnen des Abstands des Eingangsvektors und eines Bezugsvektors bestehend aus Wichtungswerten entsprechend einer vorgegebenen Abstands-Metrik durch jedes Neuron, wobei das Neuron (100) mit dem minimalen Abstand zwischen seinem Bezugsvektor und dem jeweiligen Eingang das aktive Neuron (100a) wird;
    • iii. Ausgeben des Orts des aktiven Neurons (100a); und
    • iv. Updaten der Bezugsvektoren für alle Neuronen (100), die in der Nachbarschaft um das aktive Neuron (100a) angeordnet sind, dadurch gekennzeichnet, dass in dem Schritt ii. die Berechnung des Abstands zwischen dem Eingangsvektor und dem Referenzvektor der gewichteten Werte eine erste Bit-Größe haben und in dem Schritt iv. das Updaten der Bezugsvektoren der gewichteten Werte von einer zweiten Bit-Größe sind, die von der ersten Bit-Größe unterschiedlich ist.
  • Nach einem siebenten Aspekt der Erfindung wird ein Computerprogramm geschaffen mit Software-Modulen, die eingerichtet sind, das Verfahren nach dem sechsten Ausführungsbeispiel nach der Erfindung zu implementieren.
  • Ein bevorzugtes Ausführungsbeispiel der Erfindung schafft ein Parallelcomputersystem auf einer Einheit, beispielsweise auf einem Chip, das die zusätzliche Fähigkeit hat, als ein Baustein zur Erzeugung eines leistungsfähigeren und komplexen Computersystems verwendet zu werden. Bei diesem Ausführungsbeispiel ist das Modular Maps als ein programmierbares Single Instruction stream Multiple Data stream (SIMD) Feld von Prozessoren implementiert, dessen Architektur für die Implementation von künstlichen Neuronalen Netzwerken optimiert werden kann durch Modifizieren des bekannten SOM ANN Algorithmus zum Ersetzen seiner Multipliereinheit durch eine arithmetische Schiebeeinheit.
  • Das bevorzugte Ausführungsbeispiel der Erfindung des Modular Maps beinhaltet 265 einzelne Prozessorelemente pro Modul unter Schaffung einer parallelen ANN Implementation. Ein programmierbares SIMD Feld ermöglicht die Verwendung einer Modular Map-Einheit zum Implementieren anderer parallelen Prozessoranwendungen zusätzlich zu Neuronalen Netzwerken. Das On-Chip-Lernen wird unterstützt, um ein schnelles Lernen zu erlauben und eine kontinuierliche Anpassung ist verfügbar, um gute Klassifikationsraten für eine zeitweilige Datenvariation zu erhalten, die ansonsten ein Neulernen des Netzwerks erfordert. Das Modular Maps kann adaptiert werden und hat keine vorgegebenen Beschränkungen der maximalen Eingangsvektorgröße oder der Netzwerkgröße. Dies erlaubt die Anwendung der Modular Maps auf Probleme, die bisher als zur Lösung mit vorhandenen ANN-Implementationen als zu komplex betrachtet wurden.
  • Das modulare System kann rekonfiguriert werden und vorhandene Konfigurationen können erhalten und gespeichert werden, wenn dies erforderliche ist, um die Flexibilität zu maximieren und um teilweise trainierte oder vollständig trainierte Netzwerke zu verwenden, was es erlaubt, Lernzeit zu sparen.
  • Dies ermöglich das Aufnehmen der Modular Map in elektronischen Systemen zur Schaffung einer Lösung für Real Time Probleme, beispielsweise Signalverarbeitung (zum Beispiel bei der Telekommunikation, insbesondere der mobilen Kommunikation intelligenten Sensoren, Zustandsbeobachtung und der Robotertechnik.
  • Bei anderen bevorzugten Ausführungsbeispielen der Erfindung kann das Modular Maps als ein Teil eines traditionellen Computersystems verwendet werden, um eine ANN Maschine oder einen parallelen Co-Prozessor zu schaffen. Dies erlaubt es derartigen Systemen, wirksa mer zu sein bei Adressierproblemen, wie die Zeitreihenvorhersage, kombinatorische Optimierung, data mining, Sprachverarbeitung und Bilderkennung.
  • Jedes Modul hat eine Netzwerklernzeit, die für Echtzeit-Lösungen optimiert werden kann, so dass das Ausgangssignal beispielsweise in 3,5 μs bekannt sein kann. Bei einem anderen Ausführungsbeispiel hat die Modular Map Einheit 256 separate Neuronen und ist dazu in der Lage, bei 50 MHz zu arbeiten. Jedes Modul beinhaltet eine durchschnittliche Ausbreitungsverzögerung von weniger als 3,5 μs durch Schaffen eines Durchsatzes von 1,2 GCPS und 0,675 GCUPS, d. h., es kann eine Lernzeit von weniger als einer Sekunde für individuelle Module geschaffen werden.
  • Bei einigen Ausführungsbeispielen nach der Erfindung können die Modular Maps als alleine stehende Maps konfiguriert sein, siehe 5, d. h., ein Modul kann als ein- oder zweidimensionales Netzwerk ausgebildet sein. Bei anderen Ausführungsbeispielen der Erfindung ist das Modular Map System ausgebildet, um eine Expansion durch Verbindung von Modulen miteinander zum Ermöglichen von Änderungen in der Netzwerkgröße und/oder der Eingangsvektorgröße und zum Erlauben der Bildung von neuen neuronalen Netzwerkkonfigurationen. Wenn, beispielsweise, die Modular Map in einer modularen lateralen Topologie verbunden sind (siehe 6) nimmt jedes Modul denselben Eingangsvektor auf. Dies steht im Gegensatz zu der hierarchischen modularen Topologie (siehe 7), in der es möglich ist, Eingangsvektoren zu akzeptieren, die größer sind als der maximale Eingang jedes Modular Map.
  • Ausführungsbeispiele der vorliegenden Erfindung werden jetzt unter Bezugnahme auf die beiliegenden Zeichnungen erläutert. Dabei zeigt:
  • 1a einen Einheitskreis für eine Euklidische Distanzmetrik;
  • 1b ein Einheitskreis für eine Manhattan-Distanzmetrik;
  • 2 ein Graph für den Verstärkungsfaktor gegen die Lernzeit;
  • 3 ein Diagramm, das Nachbarschaftsfunktionen zeigt;
  • 4a–c sind Beispiele, die verwendet werden, um ein elastisches Netzprinzip darzustellen;
  • 5 ein schematisches Diagramm einer einzelnen Modular Map;
  • 6 ein schematisches Diagramm von lateral kombinierten Maps;
  • 7 ein schematisches Diagramm von hierarchisch kombinierten Maps;
  • 8 ein Streubild, das die Eingangsdaten, die dem Netzwerk von 7 zugeführt wird, wiedergibt;
  • 9 ein Voronidiagramm eines Moduls in einer Eingangsschicht I von 7;
  • 10 ein Diagramm von Eingangsschicht-Aktivierungsbereichen für ein Modul vom Level 2 mit 8 Eingängen;
  • 11 ein schematisches Diagramm eines Reduced Instruction Set Computer (RISC) Neurons nach einem Ausführungsbeispiel der Erfindung;
  • 11B ein anderes schematisches Diagramm eines Neurons nach einem Ausführungsbeispiel der Erfindung;
  • 11C eine RISC-Prozessorimplementation an einem Neuron nach dem Ausführungsbeispiel von 11B;
  • 12 eine schematiasche Darstellung eines Modulcontrollersystems;
  • 13 ein Statusdiagramm für einen Dreizeilen handshake Mechanismus;
  • 14 ein Flussdiagramm, das die Hauptprozesse, die an dem Lernen eines Neuronalen Netzes beteiligt sind;
  • 15 eine Darstellung von Aktivationen gegenüber Lernschritten für ein typisches Neuronales Netz;
  • 16 eine Darstellung der Lernzeit gegenüber der Netzwerkgröße unter Verwendung von 16 und 99 Element-Bezugsvektoren;
  • 17 ein logorithmisch/linearer Ausdruck von relativen Lernzeiten für unterschiedliche Implementationsstrategien für eine feste Vektorgröße von 128 Elementen;
  • 18 eine beispielhafte Graudarstellung eines Bereiches von Bildern für ein einziges Subjekt verwendet bei einer Anwendung der Erkennung des menschlichen Gesichts;
  • 19a ist ein beispielhaftes Aktivierungsmuster das erzeugt worden ist durch die gleiche Klasse von Daten für ein Modular Maps, das in 23 gezeigt ist;
  • 19b ist ein beispielhaftes Aktivationsmuster, das durch dieselbe Klasse von Daten für ein sich selbst organisierendes Koordinaten (SOM) von 256 Neuronen erzeugt worden ist;
  • 20 ein schematisches Diagramm eines Modular Maps (Konfiguration 1);
  • 21 ein schematisches Diagramm eines Modular Maps (Konfiguration 2);
  • 22 ein schematisches Diagramm für ein Modulares Koordinaten (Konfiguration 3);
  • 23 ein schematisches Diagramm eines Modular Maps (Konfiguration 4);
  • 24a24e sind durchschnittliche Zeitbereichssignale für 10kN, 20kN, 30kN, 40kN bzw. Blindgrundverankerungsvorbelastungsleveltests;
  • 25a25e durchschnittliche Leistungsspektren für die Zeitbereichssignale in den 24a24e;
  • 26 ist eine Aktivierungsmap für ein SOM trainiert mit den Grundverankerungsleistungsspektren von den 25a25e;
  • 27 ist ein schematisches Diagramm eines Modular Map (Konfiguration 5);
  • 28 ist ein Aktivierungsmap für Modul 0 in 27;
  • 29 ist ein Aktivierungsmap für Modul 1 in 27;
  • 30 ist eine Aktivierungsmap für Modul 2 in 27;
  • 31 ist eine Aktivierungsmap für Modul 3 in 27; und
  • 32 ist eine Aktivierungsmap für ein Ausgangsmodul (Modul 4) in 27.
  • Es wird auf 11 der Zeichnungen Bezug genommen. Die Struktur eines individuellen neuronalen Prozessorelements 100 zur Verwendung in einem Neuronalen Netzwerk nach einem Ausführungsbeispiel der vorliegenden Erfindung ist dargestellt. Bei diesem Ausführungsbeispiel der Erfindung ist das Neuronale Prozessorelement 100 ein individuelles Neuron. Das Neuron 100 ist als ein RIXC Prozessor, der für ANNs Anwendungen optimiert ist, implementiert. Jedes Modular Map besteht aus verschiedenen derartigen Neuronen, die gemeinsam vernetzt sind zur Bildung eines Neuronalen Feldes.
  • Das Neuron
  • In dem Feld hat jedes Neuron 100 einen Satz von virtuellen Koordinaten, die diesem zugehörig sind, beispielsweise kartesischen Koordinaten. Nimmt man zur Vereinfachung einen zweidimensionalen Index an, kann die Basisoperation eines Modular Map wie folgt betrachtet werden:
    Der mehrdimensionale euklidische Eingangsraum Rn, wobei R den Bereich (0,255) und (0 < n ≤ 16) abdeckt, wird abgebildet in einem zweidimensionalen Ausgangsraum R2 (wobei die Obergrenze von R eine Variable zwischen 8 und 255 ist) durch eine nicht-lineare Projektion der Wahrscheinlichkeitsdichtefunktion (offensichtlich kann jeder anders geeignete dimensionierte Ausgangsraum verwendet werden in Abhängigkeit von der erforderlichen Anwendung, d. h. 3-D, R3).
  • Ein Eingangsvektor x = [ξ1, ξ2, ..., ξn] = Rn wird an alle Neuronen 100 in dem Netzwerk angelegt. Jedes Neuron 100 in dem Netzwerk hat einen Bezugsvektor m1 = [μi1, μi2, ..., μin] = Rn wobei μij skalare Gewichte sind, i ist der Neuronindex und j ist der Vektorelementenindex.
  • Alle Neuronen 100 berechnen gleichzeitig den Abstand zwischen ihren Bezugsvektoren und dem jeweiligen Eingangsvektor. Das Neuron mit einem minimalen Abstand zwischen seinem Bezugsvektor und dem gegenwärtigen Eingang (d. h. der größten Ähnlichkeit) wird das aktive Neuron 100a (siehe beispielsweise 3). In der Familie der Minkowski-Metrik ist der Abstand zwischen zwei Punkten a und b gegeben durch Lp = ((|a – b|p + |a – b|p)1/p
  • Beispielsweise ist die euklidische Distanz der L2 Metrik (siehe beispielsweise 1a) und die Manhattan-Distanz ist die L1 Metrik (siehe beispielsweise 1b).
  • In 1a ist der Einheitskreis entsprechend einer euklidischen Distanz-Metrik projiziert, während 1b den Einheitskreis von 1a zeigt entsprechend einer Manhattan-Metrik, die in diesem Ausführungsbeispiel der Erfindung verwendet wird, projiziert zeigt. Bei der Manhattan-Metrik ist das aktive Neuron 100a gegeben durch
    Figure 00120001
    wobei k die Netzwerkgröße ist.
  • Durch Assoziieren einer 2-D kartesianischen Koordinaten mit jedem Neuron wird ein 2-D Ausgangsraum R2 erzeugt, wobei die obere Grenze von R variieren kann zwischen 8 und 255.
  • Dies bildet so den ursprünglichen n-dimensionalen Eingang auf den 2-D Ausgangsraum mittels einer nicht-lineraren Projektion der Wahrscheinlichkeitsdichtefunktion ab.
  • Die 2-D kartesianischen Koordinaten des aktiven Neurons 100a werden dann als ein Ausgang von dem Modular Map verwendet. Der Abstand zwischen dem Referenzvektor und dem aktiven Neuron 100a und dem jeweiligen Eingang (dem Aktivierungswert) kann auch in geeigneten Speichern gespeichert werden, um verfügbar zu sein, wenn sie durch eine Anwendung erforderlich werden. Der Aktivierungswert kann beispielsweise während des Lernens des Netzwerks verfügbar gemacht werden, bevor die Bezugsvektorwerte upgedatet werden.
  • Während des Lernens werden die Bezugsvektoren upgedatet, nachdem das aktive Neuron 100a identifiziert worden ist, um diese näher an den jeweiligen Eingangsvektor zu bringen. Ein Bezugsvektor wird um einen Betrag geändert, der durch seinen Abstand von dem Eingangsvektor und dem jeweiligen Verstärkungsfaktor α(t) bestimmt wird. In einem Netzwerk von Neuronen updaten alle Neuronen 100b innerhalb der Nachbarschaft des aktiven Neurons 100a (schematisch in 3 gezeigt) ihre Bezugsvektoren, ansonsten werden keine Änderungen durchgeführt. Die upgedateten Bezugsvektoren mi(t + 1) sind gegeben durch: m1(t + 1) = mi(t) × (t) – mi(t)] wenn i eine Element von Nc(t) ist und mi(t + 1) = mi(t) wenn i Element von Nc(t) ist wobei Nc(t) die jeweilige Nachbarschaft und t = 0, 1, 2 ... sind.
  • Ein Ausführungsbeispiel der Erfindung verwendet eine quadratische Schrittfunktionsnachbarschaft, die durch die Manhattan-Distanz-Metrik definiert ist, die durch individuelle Neuronen 100 verwendet wird um zu bestimmen, ob sie in der jeweiligen Nachbarschaft sind, wenn der Index der aktiven Neuronen 100a (siehe 3) gegeben ist. 3 ist ein Diagramm, das die Nachbarschaftsfunktion 102 zeigt, wenn eine quadratische Schrittfunktionsnachbarschaft verwendet wird. Durch Anwendung einer quadratischen Schrittfunktionsnachbarschaft und deren Drehen um 45°, so dass es die Konfiguration, die in 3 gezeigt ist, annimmt, hat es sich gezeigt, dass das Modular Maps einem Neuronalen Netzwerk ähnliche Eigenschaften wie die Kohonen SOM hat und ergibt bei einer Bewertung vergleichbare Ergebnisse.
  • Sowohl der Verstärkungsfaktor und die Nachbarschaftsgröße nehmen mit der Zeit von den ursprünglichen Ausgangswerten über den Lernvorgang ab. Aufgrund der Implementationsüberlegungen werden diese Parameter auf einen Bereich von diskreten Werten beschränkt, anders als als Kontinuum, wie dies durch Kohonen vorgeschlagen wird. Der Algorithmus wird jedoch ausgewählt, um Werte für die Verstärkung und die Nachbarschaftsgröße zu berechnen, was die Konvergenz der Referenzvektoren mit Kohonen's Originalalgorithmus ermöglicht.
  • Der verwendete Verstärkungsfaktor α(t) ist auf diskrete Werte beschränkt, beispielsweise Bruchteile wie negative Potenzen von zwei, um die Implementation zu vereinfachen. 2 ist eine Darstellung eines Verstärkungsfaktors α(t) über die Lernzeit, wenn der Verstärkungsfaktor auf negative Potenzen von zwei beschränkt ist. Durch Einschränken des Verstärkungsfaktors α(t) ist es auf diese Weise möglich, eine Bit-Verschiebungsoperation für die Multiplikation statt einen Hardware-Multiplier zu verwenden, was mehr Ressourcen verlangen würde und die Komplexität der Implementation erhöhen würde.
  • In dem Ausführungsbeispiel der Erfindung, die in 11 gezeigt ist, ist das neuronale Prozessorelement ein einzelnes Neuron 100, das als ein RISC Prozessor implementiert ist. Das Neuron 100 schließt arithmetische Logikmittel ein, beispielsweise eine arithmetische Logikeinheit (ALU) einschließlich eines Addierers/Subtrahierers 50, einen Schiebermechanismus 32, Speichermittel, Datenübertragungsmittel 115, 125, 135, eine Kontrolllogik 54, Dateneingabemittel 110, Datenausgabemittel 120 und einen Satz von Registern 56, 58a, 58b, 130.
  • Weitere Darstellungen eines Neurons 100 werden durch die 11B und 11C gegeben. 11B ist ein schematisches Diagramm eines Neurons und 11C zeigt das Layout des Neurons, das schematisch in 11B gezeigt ist, wenn es als ein RISC Prozessor implementiert ist.
  • Zurück zu 11. Die ALU ist eine Hauptrechenkomponente und verwendet den arithmetischen Schiebermechanismus, um alle Multiplikationsartenfunktionen auszuführen, d. h. sol che Funktionen, die, wenn die euklidische Metrik verwendet würde, eine Multipliereinheit benötigen würde, wenn das Netzwerk vom SOM-Typ implementiert würde.
  • Alle Register 58a, 58b, 56, 130 in dem Neuron sind individuell als 8 oder 12 Bit-Register adressierbar, obwohl individuelle Bits nicht direkt zugreifbar sind.
  • Viele werden von dem Neuron 100 von einem Modulcontroller über Eingabemittel 110 (beispielsweise einem Eingangsanschluss) empfangen und eine lokale Steuerlogik 54 interpretiert diese Befehle und koordiniert die Operationen des Neurons 100.
  • Die Addier/Subtrahier-Einheit des ALU 50 ist das Hauptrechenelement innerhalb des Neurons. Das Neuron ist dazu in der Lage, sowohl eine 8 Bit als auch 12 Bit Arithmetik auszuführen. Um verschiedene Ausführungszeiten für die unterschiedlichen auszuführenden Berechnungen zu vermeiden, wird eine 12 Bit Addierer/Subtrahierer-Einheit bevorzugt. Es ist möglich, bei alternativen Ausführungsbeispielen eine 4 Bit Addierer/Subtrahierer-einheit oder eine 8 Bit Addierer/Subtrahierer-Einheit zu verwenden, um sowohl die 8 Bit und die 12 Bit Arithmetik durchzuführen. Die Ausführungszeiten bei verschiedenen Größen von Daten sind erheblich unterschiedlich, wenn keine 12 Bit Addierer/Subtrahierer-Einheit verwendet wird. Wenn eine 12 Bit Addierer/Subtrahierer-Einheit verwendet wird, kann ein üblicher Carry Lookahead Addierer (CLA) verwendet werden, der etwa 160 logische Gates verlangt, der eine Ausbreitungsverzögerung gleich der Verzögerung von 10 logischen Gates erzeugt.
  • Bei diesem Ausführungsbeispiel der Erfindung hat die ALU Ausbildung eine Registerspeicher Architektur und arithmetische Operationen werden direkt an Registerwerten zugelassen. In 11 ist ein ALU Addierer/Subtrahierer 50 direkt zwei Registern 56 und 58a zugeordnet und weiter mit zwei Flaggen, einer Nullflagge, die gesetzt ist, wenn das Ergebnis einer arithmetischen Operation vorliegt und einer negativen Flagge, die gesetzt ist, wenn das Ergebnis negativ ist, versehen.
  • Die Register 56, 58a, die dem ALU zugehörig sind, sind beide 12 Bit, ein erstes Register 56 ist an dem ALU Ausgang vorgesehen, ein zweites Register 58a ist an einem der ALU Eingänge vorgesehen. Das erste Register 56 an dem Ausgang von dem ALU Addierer/Subtrahierer 50 wird als Datenpuffer verwendet, um Daten zu puffern, bis diese bereit sind, gespeichert zu werden. Nur ein einziges 12 Bit Register 58a wird an dem Eingang an dem ALU 50 verlangt als Teil eines Ansatzes, der es erlaubt, die Länge der Instruktionen auf ein Minimum zu halten.
  • Bei diesem Ausführungsbeispiel der Erfindung ist die Instruktionslänge, die für ein Neuron 100 verwendet wird, zu gering, um eine Operation einzuschließen und die Adresse der beiden Operanden in einem einzigen Befehl. Das zweite Register 58a an dem einen Ende des ALU Eingangs wird zum Speichern des ersten Datums zur Verwendung in einer der nachfolgenden arithmetischen Operationen verwendet. Die Adresse des nächsten Operanden kann mit dem Operatorcode versehen sein und infolgedessen kann das zweite Datum direkt dem Speicher entnommen werden.
  • Der arithmetische Schiebemechanismus 52 ist während der Updatephase der Operation (nachfolgend in weiteren Einzelheiten beschrieben), erforderlich, um die Unterschiede zwischen den Eingabe- und den Bezugsvektorelementen mit dem Verstärkungsfaktorwert α(t) zu multiplizieren.
  • Bei diesem Ausführungsbeispiel der Erfindung ist der Verstärkungsfaktor α(t) auf eine vorgegebene Anzahl von diskreten Werten begrenzt. Beispielsweise auf negative Potenzen von zwei, so dass Fall vier Verstärkungswerte (d. h. 0,5, 0,25, 0,125 und 0,0625) verwendet werden können und der Schiebemechanismus 52 erforderlich ist, um nach rechts um 0, 1, 2, 3 und 4 Bits zu verschieben, um die erforderlichen Multiplikationen auszuführen.
  • Der artithmetische Schiebemechanismus 52 ist von konventioneller Art, der unter Verwendung von Flip-Folps implementiert werden kann und erfordert weniger Ressourcen, als bei dem Implementieren einer vollständigen Multipliereinheit erforderlich wären. Für den Ansatz der Bit-Verschiebung zum richtigen Arbeiten sind Wichtungswerte, d. h. Bezugsvektorwerte erforderlich, um so viele zusätzliche Bits, wie Schiebeoperationen gegeben sind (d. h. unter der Annahme, dass ein Wichtungswert 8 Bit ist, wenn 4 Bit Schiebungen erlaubt sind, sind 12 Bits erforderlich, um als Wichtungswert verwendet zu werden). Die zusätzlichen Bits speichern den Bruchteil der Wichtungswerte und werden nur während der Updateoperation verwendet, um sicherzustellen, dass eine Konvergenz möglich ist. Es besteht kein Erfordernis, diesen Bruchteil als Wichtungswerte zu verwenden, wenn der Manhattan-Abstand bestimmt wird.
  • Bei diesem Ausführungsbeispiel ist der arithmetische Schieber 52 in dem Datenstrom zwischen dem Ausgang des ALU und dem Eingangsregister 58a positioniert, er ist jedoch nur aktiv, wenn der Verstärkungsfaktor größer als Null ist. Diese Grenzen der Anzahl der gesonderten Befehle, die erforderlich sind durch Verwendung von Verstärkungsfaktorwerten, die von dem Systemcontroller geliefert werden an dem Beginn der Updatephase von Operationen. Die Verstärkungsfaktorwerte können dann, am Ende dieser operationalen Phase auf Null zurückgestellt werden.
  • Entsprechend diesem Ausführungsbeispiel der Erfindung hält jedes RTSC Neuron 100 280 Bits von Daten, bei anderen Ausführungsbeispielen der Erfindung kann die Anzahl von Bits von Daten, die gehalten werden, unterschiedlich sein. Ein ausreichendes Speichermittel muss jedoch bei allen Ausführungsbeispielen vorgesehen sein, um das System effektiv arbeiten zu lassen und um einen ausreichenden simultanen Zugriff von Wichtungswerten (d. h. Bezugsvektoren) von den Neuronen zu ermöglichen, wenn sie es in einem Neuronalen Netzwerk ist. Bei diesem Ausführungsbeispiel ist der Speicher an der Neuronalen Netzwerkeinheit angeordnet. Der On-Chip-Speicher stellt sicher, dass die Register für die Neuronen schnell zugreifbar sind, insbesondere das Register, das die Bezugsvektorwerte beinhaltet, auf die häufig zugegriffen wird.
  • Ein Zugriff zu Wichtungsfaktoren ist entweder 8 oder 12 Bits gleichzeitig für jedes Neuron erforderlich, abhängig von der Phase der Operation. Wenn in einem Ausführungsbeispiel nach der Erfindung beispielsweise 64 Neuronen vernetzt sind, um es 64 Neuronen zu ermögliche, gleichzeitigen Zugriff zu ihren Referenzvektorwerten zu haben, muss eine Midestverfügbarkeit von 512 Bits on-chip bis zu 768 Bits (während der Updatephase) gegeben sein, damit 64 Neuronen gleichzeitigen Zugriff zu ihren jeweiligen Bezugsvektorwerten haben.
  • Wenn ein Kompromiss erreicht werden kann zwischen dem erforderlichen Datenzugriff und zwischen dem begrenzten pin-outs, die bei einer einzigen Einheit erreichbar sind, könnten die Bezugsvektorwerte bei anderen Ausführungsbeispielen außerhalb des Chips gespeichert werden.
  • Wie die 11 und 11B teilweise zeigen, weist das Neuron 100 verschiedene Register auf. Die Register werden zum Halten von Bezugsvektorwerten (16·12 Bits), die den jeweiligen Distanzwert (12 Bits), von virtuellen X und Y Koordinaten (2·8 Bits), der Nachbarschafts größe (8 Bits) und den Verstärkungswert α(t) (3 Bits) für jedes Neuron verwendet. Es sind auch Eingangs- und Ausgangsregister (2·8 Bits), Register für das ALU (2·12), ein Register für das Neuron ID (8 Bit) und ein Bit zum Halten einer Updateflagge, dessen Funktion im Folgenden in seinen Einzelheiten beschrieben werden wird, vorgesehen.
  • Alle Register können direkt durch jedes Neuron adressiert werden mit der Ausnahme des Ausgangsregisters und der Updateflagge. Das Neuron ID wird während der Lern- und Operationsphase fixiert und wie das Eingangsregister ist ein Nur-Lese-Register soweit das Neuron betroffen ist.
  • Zu dem Beginn werden alle Register mit Ausnahme des Neuron ID auf Nullwerte gesetzt, bevor Parameterwerte durch einen I/O-Controller vorgesehen werden. Zu diesem Zeitpunkt werden die anfänglichen Wichtungswerte von dem Controller vorgesehen, um dem System zu erlauben, entweder von zufälligen Wichtungswerten oder Werten, die zuvor durch Lernen eines Netzwerks bestimmt worden sind, zu starten. Während 12 Bit Register verwendet werden, um die Wichtungswerte zu halten, werden lediglich 8 Bit verwertet, um den Abstand eines Neurons von einem Eingang zu bestimmen. Nur diese 8 Bits werden von dem Controller bei dem Start geliefert, die verbleibenden 8 Bits repräsentieren den Bruchteil des Wichtungswerts, werden anfänglich auf Null gesetzt und werden lediglich während des Wichtungsupdatings verwendet.
  • Die Nachbarschaftsgröße ist eine Variable, die von dem Controller bei dem Start geliefert wird. Neue Werte werden von dem Controller zu geeigneten Zeiten während des Lernvorgangs geschaffen (entsprechend dem Verstärkungsfaktor α(t)). Die virtuellen Daten werden weiter durch den Controller bei dem Start vorgesehen, werden jedoch über die Lern- und Operationsphase des Systems fixiert. Die virtuellen Koordinaten versorgen das Neuron mit einem Ort, von dem aus bestimmt wird, ob es innerhalb der jeweiligen Nachbarschaft ist.
  • Da virtuelle Adressen für Neuronen für ein Ausführungsbeispiel, das 256 Neuronen und einen zweidimensionalen Ausgangsraum hat verwendet werden, kann jedes Neuron irgendwo innerhalb eines 2562 Neuronalen Feldes konfiguriert werden. Dies schafft eine große Flexibilität, wenn Neuronale Netzwerke kombiniert werden, um Systeme zu bilden, die viele Module verwenden.
  • Es ist für die virtuellen Adressen, die in dem Neuronalen Netzwerk verwendet werden, vorteilhaft, den virtuellen Adressraum zu maximieren (d. h. den vollen Bereich der möglichen Adressen sowohl in der X als auch in der Y-Richtung zu nutzen). Wenn beispielsweise ein 64 Neuronen großes Netzwerkmodul verwendet wird, sollten die virtuellen Adressen der Neuronen entlang der Y-Achse 0,0, 0,36, 0,72 usw. sein. Auf diese Weise werden die Ausgänge von den Modulen dem maximalen Bereich von möglichen Werten verwendet, die in diesem Fall zwischen 0 und 252 liegen.
  • Um effizient die Daten mit gemischter Bit-Größe zu manipulieren, wird eine Updateflagge als Schaltmechanismus verwendet, um den Datentyp anzugeben. Ein Schaltmechanismus ist vorteilhaft, da es verschiedene Operationsanforderungen in Abhängigkeit von der Datengröße gibt (d. h. wenn 8 Bit Werte und 12 Bit Werte verwendet werden, sind unterschiedliche Anforderungen an unterschiedliche Phasen der Operation).
  • Während der normalen Operationsphase sind lediglich 8 Bit Werte erforderlich, es muss sich dabei aber um die geringwertigsten 8 Bits handeln, insbesondere bei dem Berechnen des Manhattan-Abstands. Während der Updatephase der Operation werden sowohl 8 Bit als auch 12 Bit Werte verwendet. Während dieser Updatephase müssen alle 8 Bit Werte die führenden 8 Bits sein und wenn Änderungen der Bezugsvektoren auftreten, ist der vollständige 12 Bit Wert erforderlich. Durch Verwenden einer einfachen Flagge als Schalter wird das Erfordernis der Verdopplung der Befehle vermieden, so dass Operationen mit 8 und 12 Bit Werten unter Verwendung desselben Befehlssatzes ausgeführt werden können.
  • Die Steuerlogik 54 innerhalb des Neurons 100 ist einfach und besteht im vorwiegenden aus einem Schaltmechanismus. Bei diesem Ausführungsbeispiel der Erfindung sind alle Befehle von derselben Größe, d. h. 8 Bit und es gibt lediglich eine begrenzte Anzahl von unterschiedlichen Befehlen insgesamt. Bei diesem Ausführungsbeispiel werden 13 unterschiedliche Befehle verwendet, bei anderen Ausführungsbeispielen kann die Gesamtzahl an Befehlssätzen geringer sein, beispielsweise 8 unterschiedliche Befehle.
  • Obwohl ein 8 Bit Befehlssatz in der Theorie 256 unterschiedliche Befehle unterstützen würde, ist es ein Ziel der Ausbildung des Neurons, einen reduzierten Befehlssatz zu verwenden. Die separaten Register in einem Neuron müssen adressierbar sein, um ihre Operation zu ermöglichen, beispielsweise wenn ein Befehl sich auf eine bestimmte Registeradresse bezieht, wobei die Adresse einen Teil des Befehls bildet. Die Befehlslänge kann nicht die Breite eines Datenbusses übersteigen, hier z. B. 8 Bit, was eine obere Grenze für eine einzelne Befehlslesung setzt. Die Orte der Operanden für 6 der Befehle müssen adressiert werden, was die Vorsehung von bis zu 25 separaten Adressen in den Befehlen erfordert. Dies verlangt 5 Bit für die Adresse allein des Operanden.
  • Die Gesamtbefehlslänge kann jedoch auf 8 Bits begrenzt werden, da Befehle, die nicht Operandenadressen verlangen, einige dieser Bits als Teil ihres Befehls verwenden können. Die Erfindung schafft also Raum zur Expansion für den Befehlssatz innerhalb des Befehlsraums.
  • Bei diesem Ausführungsbeispiel der Erfindung sind alle Befehle für Neuronenoperationen 8 Bit lang und werden von dem Controller empfangen. Der erste Eingang zu einem Neuron ist immer ein Befehl, normalerweise der Rückstellbefehl, um alle Register auf Null zu setzen. Dieser Befehlssatz ist wie folgt:
  • RDI:
    (Lies das Eingangssignal) Lesen des nächsten Datums von dem Eingang und Schreiben in die angegebene Registeradresse. Dieser Befehl wird arithmetische Flaggen nicht betreffen.
    WRO:
    (Schreibe arithmetisches Ausgangssignal) Bewegen der jeweiligen Daten, die an dem Ausgangsregister 56 des ALU zu der bestimmten Registeradresse. Dieser Befehl beschreibt vorliegende Daten in dem Zielregister und wird nicht die arithmetischen Flaggen des Systems betreffen.
    ADD:
    Hinzufügen der Inhalte der bestimmten Registeradresse zu der, die bereits an dem ALU Eingang gehalten werden. Dieser Befehl berührt die arithmetischen Flaggen und, wenn das Updateregister null ist, werden alle 8 Bit Werte verwendet als geringstwertige 8 Bit der möglichen 12 und lediglich die höchstwertigen 8 Bit der Bezugsvektoren werden verwendet werden (ungeachtet der geringstwertigsten 8 Bit für das ALU) wenn die bestimmte Registeradresse diejenigen einer Wichtung ist, während dann, wenn das Updateregister auf null gesetzt ist, alle 8 Bit Werte als höchstwertige Bits gesetzt werden und alle 12 Bits des Bezugsvektors verwendet werden.
    SUB:
    Subtrahieren des Werts, der bereits an dem ALU Eingang anliegt, von demjenigen an der bestimmten Registeradresse. Dieser Befehl wird die arithmetischen Flaggen betreffen und wird Daten entsprechend dem jeweiligen Wert des Updateregisters behandeln als eingehend für den Addierbefehl.
    BRD:
    (Verzweige wenn negativ) Prüfen der negativen Flagge und Ausführen des nächsten Befehls, wenn diese gesetzt ist, oder des übernächsten Befehls, wenn sie nicht gesetzt ist.
    BRZ:
    (Verzweige wenn null) Prüfen der Nullflagge und Ausführen des nächsten Befehls, wenn diese gesetzt ist. Wenn die Flagge null ist, wird der übernächste Befehl ausgeführt.
    BRU:
    (Verzweige wenn update) Prüfen der Updateflagge und Ausführen des nächsten Befehls, wenn sie gesetzt ist, oder des übernächsten Befehls, wenn sie nicht gesetzt ist.
    OUT:
    Ausgeben des Werts an der bestimmten Registeradresse von dem Neuron. Dieser Befehl betrifft nicht die arithmetischen Flaggen.
    MOV:
    Setzen der ALU Eingangsregister auf den Wert, der in der bestimmten Adresse gehalten wird. Dieser Befehl berührt nicht die arithmetischen Flaggen.
    SUP:
    Setzen des Updateregisters. Dieser Befehl berührt nicht die arithmetischen Flaggen.
    RUP:
    Rückstellen des Updateregisters. Dieser Befehl berührt nicht die arithmetischen Flaggen.
    NOP:
    (Keine Operation) Dieser Befehl veranlasst keine Aktion für einen der Befehlszyklen.
  • Zusätzliche Befehle betreffen die Operation der Bruchteilflagge, Setzen oder Rücksetzen seines Werts und führen eine arithmetische Schiebeoperation aus. Alternativ kann ein Maste rückstellbefehl vorgesehen sein, um alle Register und Flaggen in einem Neuron auf Null zu setzen.
  • Zusätzliche Bits für die Bezugsvektoren haben sich aus Simulationen als erforderlich ergeben, um die Konvergenz sicherzustellen, wenn ein arithmetischer Schiebemechanismus verwendet wird. Wenn die Differenz zwischen dem jeweiligen Wichtungswert und dem gewünschten Wichtungswert 15 ist und die Verstärkung α(t) 0,0625 ist, wird der Wichtungswert nicht upgedatet, wenn nur 8 Bits verwendet werden, wenn jedoch 12 Bits verwendet werden, wird der Wichtungswert seinen Zielwert erreichen.
  • Bei dieser Erfindung weist jedes Modul ein Neuronales Netzwerk bestehend aus einem Feld von wenigstens einem neuronalen Prozessorelement (d. h., einem Feld oder Neuronen, beispielsweise 64 oder 256) und einem Modulcontroller auf.
  • Modulcontroller
  • Es wird jetzt auf 12 Bezug genommen, in der eine schematische Darstellung eines Modulcontrollers 200 nach einem Ausführungsbeispiel der Erfindung gezeigt ist. Der Modulcontroller 200 führt verschiedene Aufgaben aus: Er bedient alle Eingänge und Ausgänge der Einheit, gibt Befehle an die Prozessorelemente in einem Modul aus und synchronisiert die Moduloperationen.
  • In 12 ist ein Controllersystem nach einem Ausführungsbeispiel nach der Erfindung gezeigt. Das Controllersystem weist Eingangsmittel 60, Ausgangsmittel 62 (d. h., I/O Ausgänge 60, 62); Speichermittel 64, die Befehle für das Controllersystem und Subroutinen für das Neuronale Feld; eine Adressmap 66 zur Konversion zwischen realen und virtuellen Neuronalen Adressen; Eingangspuffer 68 zum Halten eingehender Daten; und eine Anzahl von handshake Mechanismen 210, 220, 230 auf. In 12 weist der Speicher 64 einen programmierbaren Nur-Lese-Speicher (PROM) auf, jedoch kann bei alternativen Ausführungsbeispielen der Erfindung ein RAM implementiert werden.
  • Der Controller 200 bedient alle Eingänge für ein Modul, das Ausgangsdaten während der Systemkonfiguration beinhaltet, d. h. Eingabevektoren von 16 Bits (zwei Vektorelementen) gleichzeitig während der normalen Operation und auch den Index des aktiven Neurons 100a bei einer Konfiguration in einem lateralen Expansionsbetrieb. Die Ausgänge von einem Modul werden auch ausschließlich von dem Controller 200 bedient.
  • Bei einem Ausführungsbeispiel der Erfindung werden die Ausgänge auf einen 16 Bit Ausgang begrenzt. Der Ausgang repräsentiert die Information, die von einem Neuron 100 gehalten wird, beispielsweise die virtuellen Koordinaten des aktiven Neurons 100a während des Betriebs, die Parameter eines trainierten Neurons 100 derart, dass ihre Bezugsvektoren nach einem Lernvorgang abgeschlossen ist und/oder andere Informationen, die von dem Neuron 100 gehalten wird.
  • Um die obigen Datenübertragungen zu ermöglichen, muss ein geeigneter Datenbus zwischen dem Controller und dem Neuronalen Feld vorgesehen sein. Ein geeigneter Datenbus kann beispielsweise ein Zweirichtungs-Datenbus oder, beispielsweise, zwei eingerichtete Datenbusse aufweisen, derart, dass einer die Eingangsdaten zu dem Controller von dem Neuronalen Feld und der andere den Ausgang von dem Controller zu dem Neuronalen Feld trägt. Der oder die Datenbusse ermöglichen es dem Controller, entweder einzelne Prozessorelemente oder alle Prozessorelemente gleichzeitig zu adressieren, es besteht kein Erfordernis, anderen Gruppen von Prozessorelementen zu erlauben, adressiert zu werden, der Bus muss jedoch auch Daten von den individuellen Prozessordaten zu dem Controller tragen.
  • Während bei einigen Ausführungsbeispielen der Erfindung Module synchron arbeiten können, beispielsweise in einem lateralen Expansionsbetrieb, arbeiten bei anderen Ausführungsbeispielen die Module zueinander asynchron. Bei solchen Ausführungsbeispielen ist es erforderlich, die Datenkommunikation zwischen Modulen durch Implementieren eines geeigneten Handshakemechanismus zu synchronisieren.
  • Der Handshakemechanismus synchronisiert die Datenübertragung von einem Modul, das die Daten überträgt (den Sender) zu einem Modul, das die Daten empfängt (den Empfänger). Der Handshake kann durch die Modulcontroller der Sender- und Empfängermodule implementiert werden, bei einem anderen Ausführungsbeispiel sind drei Handshakeleitungen erforderlich. Bei diesem Ausführungsbeispiel kann das Handshakesystem daher angesehen werden als eine Statusmaschine mit lediglich drei möglichen Zuständen:
    • 1) Warte (nicht bereit für einen Eingang)
    • 2) Keine Einheit (kein Eingangsstrom für diese Position)
    • 3) Daten bereit (Übertrage Daten).
  • Das Handshakesystem ist als ein einfaches Statusdiagramm in 13 gezeigt. Es wird auf 13 Bezug genommen. Der „Warte" Zustand 70 tritt auf, wenn entweder der Sender oder der Empfänger (oder beide) nicht für eine Datenübertragung bereit sind. Der „Keine Einheit" Zustand 72 wird verwendet, um Situationen anzugeben, wo keine Engangssignale vorhanden sind, so dass reduzierte Eingangsvektorgrößen verwendet werden können. Dieser Mechanismus könnte auch verwendet werden, um eine Fehlertoleranz zu ermöglichen, die Eingangsströme inaktiv sind, so dass das System nicht zu einem Stopp kommt. Der „Daten bereit" Zustand 74 tritt auf, wenn so der Sender als auch der Empfänger zum Übertragen von Daten bereit sind, und infolgedessen die Datenübertragung unmittelbar folgt, wenn dieser Zustand erreicht wird.
  • Das Handshakesystem macht es einem Modul möglich, Eingangsdaten in jeder Abfolge zu lesen. Wenn eine Datenquelle zeitweise nicht verfügbar ist, kann die Verzögerung minimiert werden durch Verarbeiten aller anderen Eingangsvektorelemente während des Wartens, bevor das Datum verfügbar wird. Bei diesem Ausführungsbeispiel der Erfindung können individuelle Neuronen instruiert werden, um Eingänge in einer unterschiedliche nReihenfolge zu verarbeiten. Da der Controller die Eingangsdaten puffert, besteht keine Notwendigkeit für die Neuronen die Daten in derselben Reihenfolge wie sie empfangen werden, zu verarbeiten.
  • Bei diesem Ausführungsbeispiel werden daher die drei möglichen Zustände der Datentransferstatusmaschine durch zwei Ausgänge von dem Sendermodul und einem Ausgang von dem Empfangsmodul bestimmt.
  • Der dreilinige Handshakemechanismus erlaubt den Datenübergang direkt zueinander, wobei keine dritte Einheit erforderlich ist, die Datenübertragung erfolgt Punkt zu Punkt.
  • Die Daten werden 16 Bits gleichzeitig übertragen und da zwei 8 Bit Werte von dem System ausgegeben werden können, ist nur ein einziger Datenausgangszyklus erforderlich. Der dreilinige Handshakemechanismus wird verwendet, um die Übergabe der Daten zu synchronisieren, so dass drei Handshakeverbindungen auch an dem Ausgang eines Moduls erforderlich sind. Die Eingänge können von bis zu acht gesonderten Quellen empfangen, jeder benötigt drei Handshakeverbindungen, wodurch insgesamt 24 Handshakeverbindungen für die Eingangsdaten gegeben sind.
  • Dieser Mechanismus erfordert 24 Pins an der Einheit, ein internes Multiplexen kann es dem Controller ermöglichen, einen einzigen dreilinigen Handshakemechanismus intern zu verwenden, um alle Eingänge zu verarbeiten.
  • Bei einem alternativen Ausführungsbeispiel der Erfindung wird ein Zweileitungs-Handshakesystem verwendet, um das Lesen der Coordinaten für den lateralen Expansionsbetrieb zu ermöglichen. Der Mechanismus ist ähnlich dem Dreileiter-Handshakesystem mit der Ausnahme, dass der „Einheit ist nicht vorhanden" Zustand unnötig ist und auf diesen daher verzichtet werden kann.
  • Der Modulcontroller muss weiter den Operationen der Prozessorelemente managen, d. h., die Neuronen auf dem Modul. Um eine solche Kontrolle zu ermöglichen, sind geeignete Speichermittel 64 vorgesehen. 12 zeigt, dass dies Mittel nur ein programmierbarer Nur-Lese-Speicher (ROM) 64 sein kann, der Subroutinen für das Neuronale Feld beinhaltet zusätzlich zu den Befehlen für den Controller, alternativ kann der Speicher ein RAM aufweisen. Wenn ein RAM implementiert wird, wird eine größere Flexibilität erreicht, um die Module für unterschiedliche Anwendung zu programmieren.
  • Bei diesem Ausführungsbeispiel der Erfindung, das in 12 gezeigt ist, beinhaltet der Modulcontroller ein Neuronalfeldbefehlssubsystem, das verwendet wird, um die Operationen des Neuronalen Feldes zu steuern und das ein ROM hat, um die Modulcontrollerbefehle zu halten. Die Neuronalfeldbefehle werden sodann in diese Befehle eingebettet.
  • Der Modulcontroller beinhaltet weiter eine Sammlung von Registern und einen Programmzähler, wie er hier beschrieben wird. Der Zähler versorgt den Modulcontroller mit der Fähigkeit, Rechnungen zum Berechnen des jeweiligen Lernschritts, Verstärkungsfaktors, Nachbarschaftswerts und der Fähigkeit zum Ausführen von Manipulation der eingehenden und ausgehenden Daten auszuführen.
  • Der Speicher 64 des Controllers kann so einen RAM und/oder einen PROM aufweisen. Das Programm wird aus dem Speicher ausgelesen und passiert zu dem Neuronalfeld ein einziger Befehl jeweils. Jeder Befehl wird ausgeführt unmittelbar wenn er von den einzelnen Neuronen empfangen wird. Wenn diese Befehle ausgegeben werden, liefert der Controller auch eingehende Daten und verarbeitet ausgehende Daten.
  • Verschiedene Routinen sind vorgesehen, um die Funktionalität des vollen Systems zu unterstützen, um das System auf die Startzeit einzustellen und zum Ausgeben von Bezugsvektorwerten usw. bei dem Abschalten. Die Start- und Abschaltroutinen sind sehr einfach und verlangen lediglich das Schreiben von Daten in und aus den Registern unter Verwendung der RDI und OUT Befehle.
  • Die vier Hauptroutinen werden bei diesem Ausführungsbeispiel der Erfindung verwendet. Diese berechnen den Manhattanabstand (calcdist); findet das aktive Neuron (findactive); bestimmen, welche Neuronen in der jeweiligen Nachbarschaft sind (nbhood); und updaten der Bezugsvektoren (update). Jeder dieser Prozessoren wird einer nach dem anderen eingehend beschrieben.
  • Die am häufigsten verwendete Routine (calcdist) wird benötigt, um den Manhattanabstand für den jeweiligen Eingang zu berechnen. Wenn ein Eingangsvektor dem System präsentiert wird, wird es an alle Neuronen Element für Element ausgesendet (d. h., jeweils ein 8 Bit Wert) von dem Controller. Wenn die Neuronen diese Daten empfangen, berechnen sie den Abstand zwischen jedem Eingangswert und seinem entsprechenden Wichtungswert unter Addieren der Ergebnisse zu dem Distanzregister. Der Controller liest die Routine aus dem Programm ROM, liefert diese zu dem Neuronalen Feld und fordert die eingehenden Daten zu dem geeigneten Zeitpunkt. Diese Subroutine ist erforderlich für jedes Vektorelement und ergibt sich wie folgt:
  • MOV (Wi)
    /*Bewege Wichtung (Wi) zu dem ALU Eingangsregister.*/
    SUB (Xi)
    /*Subtrahiere den Wert an dem ALU Register von dem nächsten Eingang.*/
    MOV (Ri)
    /*Bewege das Ergebnis (Ri) zu dem ALU Eingangsregister.*/
    BRN
    /*Wenn das Ergebnis negativ war*/
    SUB dist
    /*Abstand = Abstand – Ri*/
    ADD dist
    /*Anderer Abstand = Abstand + Ri*/
    WRO dist
    /*Schreiben des neuen Abstands in das Register.*/
  • Wenn alle Eingaben verarbeitet worden sind und die Neuronen ihren jeweiligen Manhattanabstand berechnet haben, muss das aktive Neuron identifiziert werden. Da das aktive Neuron einfach das Neuron mit dem minimalen Abstand ist und alle Neuronen die Fähigkeit haben, diese Berechnungen auszuführen, wird die Arbeitsbelastung über das gesamte Netzwerk verteilt. Dieser Ansatz kann implementiert werden, indem alle Neuronen gleichzeitig 1 von ihrem jeweiligen Distanzwert wiederholt subtrahieren, bis ein Neuron einen Nullabstandswert erreicht, zu diesem Zeitpunkt übergibt das Neuron Daten zu dem Controller, um anzugeben, dass es das aktive Neuron ist. Während dieses Vorgangs wird der Wert, der von dem Abstand zu subtrahieren ist, von dem Controller zu dem Neuronalen Feld geliefert. In einer ersten Iteration wird dies null sein, um zu prüfen, ob irgendein Neuron eine Übereinstimmung mit dem jeweiligen Eingangsvektor hat (d. h. der Abstand ist bereits null) woraufhin der gelieferte Wert null sein wird. Die Subroutine findactive definiert diesen Prozess wie folgt:
  • MOV input
    /*Bewegen des Eingangs zu dem ALU Eingangsregister.*/
    SUB dist
    /*Subtrahieren des nächsten Eingangs von dem jeweiligen Distanzwert.*/
    BRZ
    /*Wenn das Ergebnis null ist.*/
    OUT ID
    /*Ausgeben des ID des Neurons.*/
    NOP
    /*Sonst geschieht nichts.*/
  • Bei dem Empfang eines Quittungssignals von einem der Neuronen in dem Netzwerk mittels seiner ID gibt der Controller die virtuellen Koordinaten des aktiven Neurons aus. Der Controller verwendet eine Koordinaten (oder eine Tabelle) dieser Koordinaten, die 16 Bits sind, so dass die Neuronen lediglich ihre Orts-ID (8 Bit) zu dem Controller führen. Der Controller gibt die virtuellen Koordinaten des aktiven Neurons unmittelbar wenn sie verfügbar werden, aus. In einem hierarchischen Ausführungsbeispiel der Erfindung muss der Ausgang sobald wie möglich für die nächste Schicht verfügbar sein, um die Verarbeitung der Daten zu beginnen, bei dem lateral konfigurierten Ausführungsbeispiel dieser Erfindung bleiben die Koordinaten des aktiven Neurons unbekannt, bis die Koordinaten an den Eingangsanschluss des Moduls geliefert sind.
  • Wenn Module in einer lateralen Weise miteinander verbunden werden, muss jedes Modul Einzelheiten des aktiven Neurons für die Einheit vor dem Updaten der Bezugsvektoren aus geben, da das aktive Neuron für das ganze Netzwerk nicht dasselbe sein muss wie das aktive Neuron für das bestimmte Modul. Bei einem Verbinden auf diese Weise werden die Module synchronisiert und das erste Modul, das antwortet, ist dasjenige in dem gesamten Netzwerk, das das aktive Neuron beinhaltet. Nur das erste Modul, das antwortet, wird sein Ausgangssignal an die Eingänge aller Module, die das Netzwerk bilden, ausgeben. Infolgedessen kann ein Modul mit dem Updaten der Bezugsvektoren beginnen, bis die Koordinaten des aktiven Neurons über den Eingang des Geräts geliefert sind, da die Information zu diesem Zeitpunkt nicht bekannt ist. Wenn ein Modul in einem „lateralen Betrieb" ist, wird das Zweilinienhandshakesystem aktiviert und nachdem die Koordinaten dieses aktiven Neurons geliefert worden sind, wird der Ausgang rückgesetzt und das Aussenden der Koordinaten zu den Neuronen dieses Moduls.
  • Wenn die Koordinaten des aktiven Neurons ausgesendet sind, bestimmen alle Neuronen in dem Netzwerk, ob sie in der jeweiligen Nachbarschaft sind, durch Berechnen des Manhattanabstands zwischen der virtuellen Adresse der aktiven Neuronen und ihrer eigenen Adresse. Wenn das Ergebnis kleiner oder gleich dem jeweiligen Nachbarschaftswert ist, wird das Neuron seine Updateflagge setzen, so dass es seinen Bezugsvektor bei der nachfolgenden Operationsphase updaten kann. Die Routine für diesen Vorgang (nbhood) ist wie folgt:
  • MOV Xcoord
    /*Bewegen der virtuellen X-Koordinaten zu dem ALU Eingangsregister.*/
    SUB input
    /*Subtrahieren des nächsten Eingangs (X coord) von dem Wert an ALU.*/
    WRO dist
    /*Schreiben des Ergebnisses in das Abstandsregister.*/
    MOV Ycoord
    /*Bewegen der virtuellen Y-Koordinaten in dem ALU.*/
    SUB input
    /*Subtrahieren der nächsten Eingabe (Y coord) von dem Wert bei ALU.*/
    MOV dist
    /*Bewegen des Werts in dem Abstandsregister zu ALU.*/
    ADD result
    /*Addieren des Ergebnisses der vorangehenden Arithmetik zu dem Wert bei dem ALU Eingang.*/
    MOV result
    /*Bewegen des Ergebnisses der vorangehenden Arithmetik zu dem ALU Eingang.*/
    SUB input
    /*Subtrahieren des nächsten Eingangs (neighbourhoodval) von dem Wert bei ALU.*/
    BRN
    /*Wenn das Ergebnis negativ ist.*/
    SUP
    /*Setzen der Updateflagge.*/
    BRZ
    /*Wenn das Ergebnis null ist.*/
    SUP
    /*Setzen der Updateflagge.*/
    NOP
    /*Ansonsten geschieht nichts*/
  • Alle Neuronen in der jeweiligen Nachbarschaft schreiten dann fort, um ihre Wichtungswerte upzudaten. Um dies zu erreichen, haben sie die Differenz zwischen dem Eingang und den Wichtungswerten neu zu berechnen, was rechnerisch ineffizient ist, da diese Werte bereits in dem Prozess des Bestimmens des Manhattanabstands berechnet worden sind. Ein alternativer Ansatz verlangt, dass jedes Neuron diese Zwischenwerte speichert, wodurch ein zusätzlicher Speicher für das Neuron nötig wird (in diesem Ausführungsbeispiel 16 Bits pro Neuron).
  • Um die Verwendung von Hardswareressourcen zu minimieren, werden die Zwischenwerte während der Updatephase neu berechnet. Um dies zu ermöglichen, speichert der Modulcontroller den jeweiligen Eingangsvektor und ist dazu in der Lage, Vektorelemente zu dem Neuronalen Feld zu führen, wenn diese erforderlich sind. Der Updatevorgang wird sodann für jedes Vektorelement wie folgt ausgeführt:
  • RDI gain
    /*Lesen des nächsten Eingangs und Platzieren in dem Verstärkungsregister.*/
    MO Wi
    /*Wegen des Wichtungswerts (Wi) zu dem ALU Eingang.*/
    SUB input
    /*Subtrahieren des Eingangs von dem Wert bei ALU.*/
    MOV result
    /*Bewegen des Ergebnisses zu dem ALU.*/
    ADD Wi
    /*Addieren des Wichtungswerts (Wi) zu dem ALU Eingang.*/
    BRU
    /*Wenn die Updateflagge gesetzt ist.*/
    WRO Wi
    /*Schreiben des Ergebnisses zurück in dem Wichtungsregister.*/
    NOP
    /*Sonst geschieht nichts.*/
  • Nachdem alle Neuronen in der jeweiligen Nachbarschaft ihre Bezugsvektoren upgedatet haben, liest der Modulcontroller den nächsten Eingangsvektor ein und der Prozess wird wiederholt. Dieser Prozess wird dann fortgesetzt, bis das Modul die verlangte Anzahl von Lernschritten ausgeführt hat oder eine Unterbrechung von dem Mastercontroller empfangen wird.
  • Der Begriff „Mastercontroller" wird verwendet, um jedes externe Computersystem zu bezeichnen, das verwendet wird, um Modular Maps zu konfigurieren. Ein Mastercontroller ist während des normalen Betriebs nicht erforderlich, da Modular Maps autonom arbeiten, kön nen jedoch bei einigen Ausführungsbeispielen der Erfindung erforderlich sein, um die Operationsparameter und Bezugsvektorwerte bei dem Starten zu liefern, zum Setzen der Art des Betriebes und zum Sammeln der Netzwerkparameter, nachdem das Lernen abgeschlossen ist. Bei derartigem Ausführungsbeispiel empfängt der Motorcontroller Befehle von dem Mastercontroller zu diesen Zeiten. Um dies zu ermöglichen, haben Module eine 3 Bit Befehlsschnittstelle ausschließlich zum Empfangen einer Eingabe von dem Mastercontroller. Die empfangenen Befehle sind sehr grundlegend und der gesamte Mastercontrollbefehlssatz weist lediglich sechs Befehle auf, die sich wie folgt ergeben:
    • RESET: Dies ist der Masterresetbefehl und wird verwendet, um alle Register usw. in dem Controller und dem Neuronalen Feld zu löschen.
    • LOAD: Befehle des Controllers, die Setupdaten für das Neuronale Feld einschließlich Einzelheiten des Verstärkungsfaktors und Nachbarschaftsparameter zu laden. Die Anzahl der zu ladenden Daten ist für alle Konfigurationen konstant und die Daten werden immer in derselben Abfolge gelesen. Um das Lesen der Daten von dem Controller zu ermöglichen, wird der normale Dateneingangsanschluss mit einem Zweileitungshandshake (derselbe, der für den lateralen Betrieb verwendet wird) verwendet, der identisch ist mit dem Dreileitungshandshake, der früher beschrieben worden ist, mit der Ausnahme, dass die Leitung, die das Vorhandensein einer Einheit anzeigt, nicht genutzt wird.
    • UNLOAD: Befehle des Controllers zum Ausgeben von Netzwerkparametern von einem trainierten Netzwerk. Wie bei dem Loadbefehl werden immer dieselben Daten in derselben Abfolge ausgegeben. Die Daten werden von dem Moduldatenausgangsanschluss ausgegeben.
    • NORMAL: Dieser Eingang befiehlt dem Controller, in der normalen Betriebsweise zu arbeiten.
    • LATERAL: Dies befiehlt dem Controller in dem lateralen Ausbreitungsbetrieb zu arbeiten. Es ist erforderlich, diese Betriebsweise gesondert zu dem normalen Betrieb zu haben, da das Modul erforderlich ist, Koordinaten des aktiven Neurons einzulesen, bevor die Neuronalen Feldbezugsvektoren upgedatet werden und Rücksetzen des Ausgangs, wenn diese Koordinaten empfangen werden.
    • STOPP: Dies ist eine Unterbrechung, um dem Controller anzugeben, dass er seinen gegenwärtigen Betrieb einstellen soll.
  • Bei einem Ausführungsbeispiel der Erfindung ist die Anzahl der Neuronen eines einzelnen Moduls gering genug, um eine Implementation auf einer einzigen Einheit zu ermöglichen. Die Anzahl der Neuronen ist vorzugsweise eine Potenz von 2, beispielsweise ist eine Netzwerkgröße für die Anforderungen bei einem Ausführungsbeispiel der Erfindung am besten geeignet mit 256 Neuronen pro Modul.
  • Da die Ausbildung des Modular Maps für eine digitale Hardware gestaltet sind, sind eine Reihe von Technologien verfügbar, die verwendet werden können, beispielsweise eine anwendungsspezifische very large scale integration (VLSI), eine angepasste VLSI, ein anwendungsspezifischer integrierter Schaltkreis (ASIC) oder ein Field Programmable Gate Arrays (FPGA). Eine Modular Maps mit 256 Neuronen bildet ein kleines Neuronales Netzwerk und die Einfachheit der RISC- Neuronalen Ausbildung führt zu verringerten Hardwareanforderungen verglichen mit dem traditionellen SOM Neuron.
  • Die Modular Map Ausbildung maximiert das Potential für die Skalabilität durch Partionieren der Arbeitsbelastung in einer modularen Weise. Jedes Modul arbeitet als ein Single Instruction Stream Multiple Data stream (SIMD) Computersystem zusammengesetzt aus RISC Prozessorelementen, wobei jeder RISC Prozessor die Funktionalität eines Neurons ausführt. Diese Module sind selbständige Einheiten, die als ein Teil einer multiplen Modulkonfiguration arbeiten können oder als selbständige Systeme.
  • Die zum Implementieren eines Moduls erforderlichen Hardwareressourcen können durch Modifizieren des originalen SOM Algorithmus minimiert werden. Eine Modifikation ist der Ersatz der konventionellen euklidischen Distanzmetrik durch die einfacher und leichter zu implementierenden Manhattan-Abstands-Metrik. Die Anpassung der Manhattan-Metrik gekoppelt mit einer um 45° gedrehten rechtwinkligen Schrittfunktionsnachbarschaft ermöglicht es jedem Neuron unter Verwendung eines arithmetischen Schiebermechanismus zu bestimmen, ob es innerhalb der Nachbarschaft des aktiven Neurons ist oder nicht. Solche Abwandlungen führen zu erheblichen Ersparnissen der Hardwareressourcen, da die Ausbildung der Modular Map nicht übliche Multipliereinheiten verlangt. Die Einfachheit dieser vollständig digitalen Ausbildung ist zur Implementation unter Verwendung einer Vielzahl von Technologien wie VLSI oder ASIC geeignet.
  • Die Module und die Modular Map Struktur
  • Es wird jetzt auf 5 Bezug genommen, in der eine schematische Wiedergabe einer einzelnen Modular Map gezeigt ist. Zum Startzeitpunkt muss die Modular Map mit den korrekten Parameterwerten für die gewünschte Anordnung konfiguriert werden. Alle 8 Bit Wichtungswerte werden in das System zum Zeitpunkt der Konfiguration geladen, so dass das System entweder zufällige Wichtungswerte oder vorgelernte Werte bei dem Start hat. Der Index aller individuellen Neuronen, die aus zwei 8 Bit Werten für die X- und die Y-Koordinaten bestehen, werden weiter zu dem Konfigurationszeitpunkt gewählt.
  • Dass dieser Parameter einzustellen ist, ist möglicherweise für Situationen wichtiger, wo verschiedene Module kombiniert werden, bietet aber die Möglichkeit zum Erzeugen einer Vielzahl von Netzwerkformen für selbständige Situationen. Beispielsweise könnte ein Modul als ein- oder zweidimensionales Netzwerk konfiguriert sein. Zusätzlich zur Schaffung von Parametern für individuelle Neuronen zum Zeitpunkt der Konfiguration werden die Parameter, die das ganze Netzwerk betreffen, auch erforderlich sein (d. h. die Anzahl der Lernschritte, den Verstärkungsfaktor und die Nachbarschaftsstartwerte). Zwischenwerte für den Verstärkungsfaktor und die Nachbarschaftsgröße werden sodann durch das Modul selbst bestimmt während der Laufzeit unter Verwendung von Standardalgorithmen, die den jeweiligen Lernschritt und die Gesamtanzahl der Lernschrittparameter verwenden.
  • Nachdem die Konfiguration abgeschlossen ist, tritt das Modular Map in seine Betriebsphase ein und Daten werden eingegeben, 16 Bit (d. h. zwei Eingangsvektorelemente) gleichzeitig. Das Handshakesystem, das den Dateneingang steuert, ist derart ausgebildet, dass es Situationen erlaubt, in denen lediglich ein Unterset der maximal möglichen Eingänge zu verwenden ist. Aufgrund des Kompromisses zwischen den Dateneingangsraten und der Flexibilität ist die Option zur Verwendung lediglich eines Untersatzes aus der Anzahl von möglichen Eingängen auf gerade Anzahlen eingeschränkt (14, 12, 10 usw.) Wenn jedoch beispielsweise nur 15 Eingänge erforderlich sind, könnte das 16te Eingangselement für alle Eingänge konstant gehalten werden, so dass es die Bildung der Map während des Lernens nicht betrifft. Die Hauptdifferenz zwischen den beiden Ansätzen zum Reduzieren der Eingangsdimensionalität besteht darin, dass, wenn das System merkt, dass die Eingänge nicht vorhanden sind, es keinen Versuch macht, ihre Werte zum Berechnen des Abstands zwischen dem jeweiligen Eingang und den Bezugsvektore innerhalb des Netzwerks zu verwenden, wodurch die Arbeitsbelastung auf allen Neuronen reduziert wird und infolgedessen die Fortschrittszeit des Netzwerkes reduziert wird.
  • Nachdem alle Eingänge von dem Modular Map gelesen worden sind, wird das aktive Neuron bestimmt und seine X, Y Koordinaten werden ausgegeben, während die Bezugsvektoren upgedatet werden. Da der Lernvorgang die Wirkung der Erzeugung einer topologischen Map (derart, dass Neuronale Aktivitäten über das Netzwerk eine sinnvolle Ordnung haben, obwohl ein MerkmalsMapsystem über das Netzwerk definiert worden ist) erzeugen die X, Y Koordinaten einen sinnvollen Ausgang. Durch Speisen von Eingängen zu der Map nachdem das Lernen beendet worden ist, ist es möglich, eine Aktivierungsmap herzuleiten, die sodann zum Zuordnen von Labels zu den Ausgängen von dem System verwendet wird.
  • Beispielsweise kann in einem vereinfachten Ausführungsbeispiel der Erfindung eine Modular Map betrachtet werden, bei der lediglich drei Dimensionen als Eingangssignal verwendet werden. In einem solchen Beispiel könnte eine einzige Map (wie sie 5 darstellt) dazu in der Lage sein, einen Eingaberaum zu repräsentieren, der von einem Kubus umschlossen wird und jede Dimension könnte einen möglichen Bereich von Werten zwischen 0 und 255 haben. Mit lediglich der einfachsten Vorverarbeitung könnte dieser Kubus irgendwo in dem Eingangssignalraum Rn platziert werden, wobei R in dem Bereich (–∞ bis +∞) liegt, und der Referenzvektor jedes Neurons innerhalb des Moduls könnte die Position eines Punkts irgendwo innerhalb des Raums angeben. Die vorgeschlagene Implementation würde es jedem Vektorelement erlauben, ganzzahlige Werte innerhalb der gegebenen Skala zu halten, so dass es eine finite Anzahl von distinkten Punkten vorhanden sind, die innerhalb des Kubus dargestellt werden (d. h. 2563). Jeder dieser Punkte, die durch die Referenzvektoren gegeben sind, hat eine „elastische" Art von Verbindung zwischen sich selbst und dem Punkt, der durch Bezugsvektoren der benachbarten Neuronen angegeben wird, so dass ein elastisches Netz gebildet wird (4).
  • Die 4a bis 4c zeigen eine Reihe von Ansichten des elastischen Netzes, wenn ein Eingangssignal an das Netzwerk angelegt wird. Die Figuren zeigen die Punktposition von Bezugsvektoren in einem dreidimensionalen euklidischen Raum gemeinsam mit ihren elasti schen Verbindungen. Zur Vereinfachung werden die Bezugsvektoren anfänglich in der Ebene mit z = 0 platziert, der Verstärkungsfaktor α(t) wird konstant auf 0,5 gehalten und die beiden orthogonalen und planen Ansichten sind gezeigt. Nachdem das Eingangssignal angelegt ist, schreitet das Netzwerk fort zum Updaten der Bezugsvektoren aller Neuronen in der jeweiligen Nachbarschaft. In 4b hat die Nachbarschaftsfunktion einen Wert von drei. In 4c wird dasselbe Eingangssignal an das Netzwerk für einen zweiten Zeitraum angelegt und die Nachbarschaft wird für diese Situation auf zwei reduziert. Es ist zu beachten, dass die Bezugspunkte um das aktive Neuron enger zueinander kommen, als wenn sie zueinander gezogen werden in Richtung auf den Eingang durch elastische Verbindungen zwischen ihnen.
  • Eingangsnetzwerke werden in der Form von mehrdimensionalen Vektoren, die Positionen innerhalb eines Merkmalraums angeben, präsentiert. Wenn ein Eingangssignal empfangen wird, berechnen alle Neuronen in dem Netzwerk die Ähnlichkeit zwischen ihren Referenzvektoren und dem Eingang unter Verwendung der Manhattan-Abstands Metrik. Das Neuron mit der minimalen Manhattan-Distanz zwischen seinem Bezugsvektor und dem jeweiligen Eingang (d.h. der größten Ähnlichkeit) wird das aktive Neuron. Das aktive Neuron schreitet sodann fort, um seinen Referenzvektor näher an das Eingangssignal anzunähern, wodurch ihre Ähnlichkeit erhöht wird. Das Ausmaß dieser Änderung ist proportional zu dem jeweiligen Abstand, diese Proportionalität wird durch den Verstärkungsfaktor α(t), einem zeitabhängigen Parameter, bestimmt.
  • Nicht nur das aktive Neuron updatet seinen Referenzvektor, dies machen alle Neuronen in der jeweiligen Nachbarschaft (d. h., die Neuronen, die topographisch zu dem aktiven Neuron auf der Oberfläche der Map sind bis zu einem geometrischen Abstand, der durch die Nachbarschaftsfunktion definiert ist), als ob durch das elastische Netz nahe verbundene Punkte in Richtung auf den Eingang der aktiven Neuronen gezogen würden. Diese Abfolge von Ereignissen wird über den Lernvorgang häufig wiederholt, wenn die Trainingsdaten in das System eingebracht werden. Zu Beginn des Lernvorgangs ist das elastische Netz aufgrund der großen Nachbarschaft und des großen Verstärkungsfaktors sehr flexibel, wenn das Lernen fortschreitet versteift sich das Netz, wenn die Parameter kleiner werden. Dieser Vorgang verursacht, dass die Neuronen einander zur Bildung ähnlicher Bezugswerte näher kommen.
  • Während dieser Lernphase neigen die Referenzvektoren dazu, verschiedene Verteilungen von Eingangsvektoren mit einer Art der Regularität und der sich ergebenden Reihenfolge immer Eigenschaften der Wahrscheinlichkeitsdichtefunktion (P(x) zu reflektieren (d. h. die Punktdichte der Referenzvektoren proportional zu [P(x)]1/3).
  • Die Referenzvektoren können zum Beschreiben der Dichtefunktion von Eingängen, lokale Interaktionen zwischen den Neuronen neigen zum Schaffen einer Kontinuität auf der Oberfläche dieser neuronalen Map. Eine Kombination dieser gegensätzlichen Kräfte verursacht, dass die Vektorverteilung sich an eine sanfte Hyperoberfläche in dem Musterraum mit optimaler Ausrichtung und Form, dass am besten die Gesamtstruktur der Eingangsvektordichte imitiert, annähert.
  • Dies erfolgt derart, dass die Map veranlasst wird, Dimensionen des Merkmalraums zu identifizieren mit der größten Varianz, die in der Map beschrieben werden sollte. Die anfängliche Ordnung der Map erscheint ganz schnell und ist normalerweise innerhalb der ersten 10 % der Lernphase erreicht, eine Konvergenz auf die optimalen Bezugsvektorwerte kann jedoch eine erhebliche Zeit dauern. Das trainierte Netzwerk schafft eine nicht-lineare Projektion der Wahrscheinlichkeitsdichtefunktion P(x) der hochdimensionalen Eingangsdaten x auf eine zweidimensionale Fläche (d. h. der Oberfläche der Neuronen).
  • 5 ist eine schematische Darstellung einer einzelnen Modular Map. Bei dem Startzeitpunkt muss die Modular Map mit den richtigen Parameterwerten für die gewünschte Anordnung konfiguriert werden. Alle 8-bit Richtungswerte werden in das System zum Konfigurationszeitpunkt geladen, so dass das System bei dem Start entweder zufällige Wichtungsfaktoren oder vorgelernte Werte hat. Der Index aller individuellen Neuronen, die aus zwei 8-bit Werten für die X und Y Koordinaten bestehen, werden zu dem Konfigurationszeitpunkt ausgewählt. Die Flexibilität, die dadurch geboten wird, dass die Parameter eingesetzt werden kann, ist vielleicht für Situationen wichtiger, wo verschiedene Module miteinander kombiniert werden, schafft jedoch die Möglichkeit zur Erzeugung einer Vielzahl von Netzwerkformen für selbständige Situationen. Ein Modul könnte beispielsweise als eindimensionales oder als zweidimensionales Netzwerk konfiguriert werden. Zusätzlich zu der Schaffung von Parametern für individuelle Neuronen zu Konfigurationszeiten der Parameter, die das gesamte Netzwerk anwenden, werden ebenfalls benötigt (d. h. die Anzahl der Lernschritte, den Verstärkungsfaktor und den Nachbarschaftsstartwerten). Zwischenwerte für den Verstärkungsfaktor und die Nachbarschaftsgröße werden sodann von dem Modul selbst während der Laufzeit unter Ver wendung von Standardalgorithmen, die den jeweiligen Lernschritt und die Gesamtzahl von Lernschrittparametern verwenden, bestimmt.
  • Nachdem die Konfiguration abgeschlossen ist, erreicht das Modular Map seine Betriebsphase und Daten werden eingegeben, 16 bits (d. h. zwei Eingangsvektorelemente) gleichzeitig. Das Handshakesystem, das die Dateneingabe steuert, ist derart ausgebildet, dass es Situationen erlaubt, in denen lediglich eine Untermenge der maximal möglichen Eingänge zu verwenden ist. Aufgrund des tradeoffs zwischen den Dateneingangsraten und der Flexibilität der Option zum verwenden lediglich einer Untermenge der Anzahl von möglichen Eingängen auf eine gerade Zahl beschränkt ist (d. h. 14, 12, 10 uws.). Wenn nur 15 Eingänge erforderlich sind, könnte der 16te Eingang jedoch für alle Eingangssignale konstant gehalten werden, so dass es die Bildung der Mappe während des Lernens nicht betrifft. Der Hauptunterschied zwischen den beiden Ansätzen zum Reduzieren der Eingangsdimensionalität besteht darin, dass, wenn das System erkennt, dass keine Eingangssignale vorhanden sind, es keinen Versuch macht, die Werte zum Berechnen des Abstands zwischen dem jeweiligen Eingang und den Bezugsvektore innerhalb des Netzwerks zu berechnen, wodurch die Arbeitsbelastung aller Neuronen und damit die Ausbreitungszeit des Netzwerks reduziert wird.
  • Nachdem alle Eingänge von der Modular Map gelesen worden sind, wird das aktive Neuron bestimmt und seine X, Y-Koordinaten werden ausgegeben, während die Bezugsvektoren upgedatet werden. Da der Lernvorgang die Wirkung des Erzeugens einer topologischen Map (derart, dass neuronale Aktivitäten über das Netzwerk eine sinnvolle Ordnung haben, obwohl ein Merkmalkoordinatensystem definiert worden ist über das gesamte Netzwerk) erzeugen die X, Y-Koordinaten einen sinnvollen Ausgang. Durch Einspeisen von Eingangssignalen zu dem Map nachdem das Lernen abgeschlossen ist, wird es direkt eine Aktivierungsmap herleiten, die dann zum Zuordnen von Labels für die Ausgangssignale des Systems verwendet werden können.
  • Laterale Maps
  • Da viele unterschiedliche Aufgaben große Anzahlen von Neuronen benötigen, ist das Modular Map ausgebildet, um die Erzeugung von Netzwerken bis zu 65,536 Neuronen auf einer einzigen Ebene durch Erlauben von lateralen Expansionen zu ermöglichen. Jedes Modul besteht aus beispielsweise 256 Neuronen und infolgedessen ist dies die Blockgröße für die late rale Expansion von Netzwerken. Jedes individuelle Neuron kann so ausgebildet sein, dass es an jeder Position eines zweidimensionalen Feldes, das bis zu 2562 erreicht, Netzwerke sollte jedoch idealer Weise in einer regelmäßigen Weise expandiert werden, so dass es rechteckige Felder erzeugt. Das individuelle Neuron hat zwei separate Adressen; eine ist fest und bezieht sich auf den Ort des Neurons auf der Einheit und wird lediglich lokal verwendet, das andere, eine virtuelle Adresse, bezieht sich auf den Ort des Neurons in dem Netzwerk und wird durch den Verwender zum Konfigurationszeitpunkt bestimmt. Die virtuelle Adresse wird durch zwei 8-bit Werte angegeben, die die X und Y-Koordinaten bezeichnen, es sind diese Koordinaten, die ausgesendet werden, wenn das aktive Neuron auf einem Modul identifizier ist.
  • Wenn Module miteinander in einer lateralen Konfiguration verbunden werden, empfängt jedes Modul denselben Vektor. Um die Dateneingangsphase zu vereinfachen ist es erwünscht, dass die Daten lediglich einmal für die gesamte Konfiguration von Modulen verfügbar sind, als wenn nur ein Modul vorhanden wäre. Um dies zu ermöglichen, sind alle Module in dieser Konfiguration synchronisiert, so dass sie als eine einzige Einheit wirken. Der Mechanismus, der verwendet wird, um diese Synchronität sicherzustellen, ist der Dateneingangshandshake-Mechanismus.
  • Die Modular Map ist ausgebildet, um die Erzeugung von Netzwerken bis zu 65,536 Neuronen auf einer einzelnen Ebene durch Erlauben einer lateralen Expansion zu ermöglichen. Jedes Modul besteht aus, beispielsweise, 256 Neuronen und infolgedessen ist dieses Gebäude die Blockgröße für die laterale Expansion von Netzwerken. Jedes einzelne Neuron kann ausgebildet werden, um an einer beliebigen Position auf einem zwei-dimensionalen Feld, das bis zu 2562 Felder hat, Netzwerke sollten jedoch idealer Weise in einer regelmäßigen Weise erstreckt werden, um so quadratische Felder zu erzeugen. Das einzelne Neuron hat zwei separate Adressen, eine ist fest und bezieht sich auf den Ort des Neurons auf dem Gerät und wird lediglich lokal verwendet, die andere, eine virtuelle Adresse, bezieht sich auf den Ort des Neurons in dem Netzwerk und wird durch den Verwender zum Zeitpunkt der Konfiguration bestimmt. Die virtuelle Adresse wird durch zwei 8-bit Werte dargestellt, die die X und die Y-Koordinaten angeben; es sind diese Koordinaten, die ausgesendet werden, wenn das aktive Neuron auf einem Modul identifiziert ist.
  • Wenn Module miteinander in einer lateralen Konfiguration verbunden werden, empfängt jedes Modul denselben Vektor. Um die Dateneingangsphase zu vereinfachen ist es erwünscht, dass die Daten lediglich einmal für die gesamte Konfiguration von Modulen verfügbar sind, als wenn nur ein Modul vorhanden wäre. Um dies zu ermöglichen, sind alle Module in dieser Konfiguration synchronisiert, so dass sie als eine einzige Einheit wirken. Der Mechanismus, der verwendet wird, um diese Synchronität sicherzustellen, ist der Dateneingangshandshake-Mechanismus. Durch Anordnen des Eingangsdatenbusses für laterale Konfigurationen derart, dass diese nicht arbeiten, bis alle Module bereit sind, das Eingangssignal zu akzeptieren, werden die Module synchronisiert. Alle Module führen dieselbe Funktion gleichzeitig aus, so dass sie synchron bleiben können, wenn sie bereit sind, aber nach jedem Zyklus werden neue Daten benötigt und die Synchronisation wird erneuert.
  • Bei einer lateralen Konfiguration, wie sie in 6 gezeigt ist, berechnen alle Module den lokalen „Gewinner" (d. h., das aktive Neuron) durch Verwenden aller Neuronen auf dem Modul zum simultanen Subtrahieren von eins von ihrem berechneten Distanzwert bis ein Neuron einen Wert von Null erreicht. Das erste Neuron, das einen Abstand von Null erreicht ist dasjenige, das anfänglich den minimalen Abstandswert hat und ist daher das aktive Neuron für das Modul. Die virtuellen Koordinaten dieses Neurons werden sodann von dem Modul ausgegeben, da jedoch alle Module synchronisiert sind, ist das erste Modul, das versucht, Daten auszugeben, auch das Modul, das den „globalen Gewinner" beinhaltet (d. h., das aktive Neuron für das gesamte Netzwerk). Der Index des „globalen Gewinners" wird sodann zu allen Modulen in der Konfiguration geführt. Wenn ein Modul diese Daten empfängt, liefert es diese zu allen einzelnen Neuronen. Wenn ein Neuron diesen Index empfängt, ist es dazu in der Lage zu bestimmen, wenn es in der jeweiligen Nachbarschaft in genau derselben Weise ist, als wenn es ein Teil eines selbständigen Moduls wäre.
  • Eine Entscheidungslogik ist vorgesehen um sicherzustellen, dass lediglich ein „globaler Gewinner" über das gesamte neuronale Feld ausgewählt wird. Die Entscheidungslogik kann, beispielsweise, ein binärer Baum sein. Die Entscheidungslogik kann auf jedem Neuron derart vorgesehen sein, dass es über das gesamte neuronale Feld arbeiten kann, unabhängig von der Topologie des Netzwerks (d. h., der Modultopologie). Alternativ können zusätzliche logische externe Geräte zu den Modulen vorgesehen sein.
  • Die Entscheidungslogik stellt sicher, dass nur der Index, der von dem ersten Modul zum Antworten ausgegeben wird, zu den Modulen in der Konfiguration übergeben wird (s. 6). In 6 akzeptiert der logische Block A als Eingangssignale diejenigen der Datenbereitschafts leitung von jedem Modul in dem Netzwerk. Das erste Modul, das diese Leitung belegt, beinhaltet den „globalen Gewinner" für das Netzwerk. Wenn die Logik dieses Signal empfängt, wird es zu dem Eingang für die Gerätebereitschaft geführt, die einen Teil des Zweileiter-Handshakes bildet, der in allen Modulen in dem lateralen Expansionsbetrieb verwendet wird. Wenn alle Module geantwortet haben mit der Wirkung, dass sie bereit sind, die Koordinaten des aktiven Neurons zu akzeptieren, wird das Modul mit diesen Koordinaten von dem Logikblock A aufgefordert, die Daten zu senden. Wenn die Module in dieser lateralen Weise miteinander verbunden sind, arbeiten sie synchron und wirken, als wenn sie ein einzelnes Modul wären, was es dann erlaubt, mit anderen Modulen zur Bildung größerer Netzwerke kombiniert zu werden.
  • Wenn ein Netzwerk in dieser Weise erstellt worden ist, wirkt es, als ob es ein selbständiges Modular Map wäre und kann in Verbindung mit anderen Modulen verwendet werden, um einen großen Bereich von Netzwerkkonfigurationen zu erzeugen. Es sollte jedoch beachtet werden, dass dann, wenn die Netzwerkgröße zunimmt, die Anzahl der Lernschritte ebenfalls zunimmt, weil die Anzahl der erforderlichen Lernschritte proportional zu der Netzwerkgröße ist, was bedeutet, dass Maps am besten auf einer moderaten Größe gehalten werden, wenn immer dies möglich ist.
  • 7 zeigt ein Beispiel eines hierarchischen Netzwerks mit vier Modulen 10, 12, 14, 16 auf der Eingangsschicht I. Der Ausgang von jedem der Module 12, 14, 18 auf der Eingangsschicht I ist mit dem Eingang eines Ausgangsmoduls 18 auf der Ausgangsschicht 0 verbunden. Jedes der Module 10, 12, 14, 16, 18 hat einen 16-bit Eingangsdatenbus und Module 10, 12, 14, 16 auf der Eingangsschicht I haben 24 Handshakeleitungen, die als Eingang verbunden sind, um die Datenübertragung zwischen diesen zu ermöglichen, wie dies im Folgenden beschrieben werden wird. Das Ausgangsmodul 18 hat 12 Handshakeleitungen, die als Eingänge verbunden sind, drei Handshakeleitungen von jedem der Module 10, 12, 14, 16 in der Eingangsschicht I.
  • Bei einem Ausführungsbeispiel der Erfindung ist das Modular Map begrenzt auf ein Maximum von 16 Eingängen und ein Mechanismus ist vorgesehen, um diesen Maps zu erlauben, größere Eingangsvektoren zu akzeptieren, so dass sie bei einem weiteren Bereich von Problemfeldern verwendet werden kann. Größeren Eingangsvektoren wird Rechnung getragen durch Verbinden von Modular Maps in einer hierarchischen Art und Weise und Partionieren der Eingangsdaten über die Module an der Basis der Hierarchie. Jedes Modul in der Hierarchie ist dazu in der Lage bis zu 16 Eingangssignale aufzunehmen und gibt die X, Y-Koordinaten des aktiven Neurons für jeden gegebenen Eingang aus; infolgedessen ist dort ein Eingangsfach von acht Modulen zu einem was bedeutet, dass eine einzelne Schicht in einer solchen Hierarchie Vektoren akzeptieren wird, das bis zu 128 Eingangssignale akzeptiert. Durch Erhöhen der Anzahl von Schichten in der Hierarchie kann die Anzahl von Eingängen, die verarbeitet werden können, auch zunimmt (d. h. die maximale Anzahl von Eingängen = 2·8n wobei n = Anzahl der Schichten in der Hierarchie). Aus dieser einfachen Gleichung ergibt es sich, dass sehr viele Eingangssignale mit sehr wenig Schichten in der Hierarchie verarbeitet werden können.
  • Durch Bilden von hierarchischen Konfigurationen von modularen Maps zum Verarbeiten von großen Eingangsvektoren arbeitet das System wie bei dem Parallelisieren der Arbeitslast unter vielen Prozessorelementen. Wenn die Eingangsvektorgröße zunimmt, nimmt auch die Arbeitsbelastung der individuellen Neuronen zu, was zu einer erheblichen Zunahme der Ausbreitungsverzögerung durch das Netzwerk führt. Die hierarchischen Konfigurationen halten die Arbeitsbelastung der einzelnen Neuronen konstant, zunehmende Arbeitsbelastungen werden durch die Zunahme von Neuronen, die in dem Netzwerk verwendet werden, entsprochen.
  • Um hierarchische Konfigurationen der Modular Maps zu ermöglichen, muss die Kommunikation zwischen den Modulen effizient sein, um Flaschenhalsausbildungen zu vermeiden. Die Verbindung schafft bevorzugte Busmittel zum Verbinden der Ausgänge einer Mehrzahl von Modulen (beispielsweise 8 Modulen) mit dem Eingang eines einzigen Moduls auf der nächsten Schicht der Hierarchie (siehe 7).
  • Eine Datenkollision wird durch Vorsehen einer Sequenzsteuerung vermieden, beispielsweise Synchronisierungsmittel. Jede Modular Map hat einen geeigneten Handshakemechanismus, beispielsweise wie in 7 gezeigt, das Modul 16 hat Eingangsdatenleitungen zuzüglich drei Leitungen für jeden 16-bit Eingang (zwei Vektorelemente), d. h. 24 Handshakeleitungen, die einem Maximum von acht Eingangseinheiten entsprechend. Infolgedessen hat jedes Modul einen drei-bit Handshake und einen 16-bit Datenausgang, um das Interfaceschema zu ermöglichen. Eine Handshakeleitung zeigt dem Empfangsmodul an, dass der Sender vorhanden ist, eine Leitung zeigt an, dass der Sender bereits zum Übertragen von Daten ist und die dritte Leitung zeigt dem Sender an, dass es die Daten übertragen soll. Nachdem der Handshake ab geschlossen ist, wird der Sender seine Daten zu dem von dem Empfänger zu lesenden Bus vollenden. Die Einfachheit dieses Ansatzes negiert das Erfordernis zusätzlicher Verbindungshardware und hält daher den Kommunikationsoverhead auf ein Minimum. Der begrenzte Faktor bezüglich dieser Hierarchien und deren Arbeitsgeschwindigkeit besteht darin, das jede Stufe der Hierarchie nicht schneller verarbeitet werden kann als das langsamste Element auf diesem Level.
  • Bei einigen Ausführungsbeispielen der Erfindung können die Module jedoch die Klassifikation mit unterschiedlichen Raten vervollständigen, was die Arbeitsgeschwindigkeit betreffen könnte, beispielsweise kann ein Modul größer als die bei einem einzelnen Modular Map verfügbaren 256 Neuronen sein und könnte aus mehreren Maps bestehen, die miteinander verbunden sind in einer Konfiguration vom Lateraltyp (wie oben beschrieben), was zu einer leichten Zunahme der Zeit führt, die erforderlich ist, um seine Aktivität zu abschließen oder vielleicht einem Modul, das geringer als die maximale Anzahl von Eingängen hat, wodurch seine Zeit zum Abschließen der Aktivitäten reduziert wird. Es sollte auch beachtet werden, dass unter normalen Umständen (d. h., wenn alle Module von gleicher Konfiguration sind) die Verarbeitungszeit aller Schichten in der Hierarchie dieselbe sein wird, als wenn alle Module die gleiche Menge an Arbeit ausführen, dies hat die Wirkung des Erzeugens eines Pipelineeffekts derart, dass der Durchsatz konstant gehalten wird, auch wenn die Ausbreitungszeit durch das System von der Anzahl der Schichten in der Hierarchie abhängig ist.
  • Bei diesem Ausführungsbeispiel ist, da jede Modular Map dazu in der Lage ist, maximal 16 Eingangssignale zu akzeptieren und lediglich ein 2-dimensionales Ausgangssignal, eine dimensionale Kompressionsrate von 8:1 gegeben, was einen Mechanismus schafft, um viele Eingänge in einer Art und Weise zusammenzuschweißen, die das Vorhandensein der Merkmale, die durch die Eingänge bezüglich der verwendeten Metrik sind, beibehält.
  • Bei einem Ausführungsbeispiel der Erfindung wurde eine Modular Map, die 64 Neurone beinhaltet, konfiguriert in einem quadratischen Feld mit Neuronen mit gleichem Abstand innerhalb einer 2-D Ebene mit 2562 an 2000 Datenpunkten zufällig trainiert, die ausgewählt waren aus zwei kreisförmigen Bereichen innerhalb des Eingangsraums, derselben Dimensionen (siehe 8). Das trainierte Netzwerk bildet Bereiche der Aktivierung, das als Voronoi-Diagramm in 9 gezeigt ist.
  • Von der in 9 gezeigten Darstellung wird deutlich, dass die Punktpositionen der Bezugsvektoren (als schwarze Punkte gezeigt) viel enger aneinander sind um die Bereiche des Eingangsraums mit einer hohen Wahrscheinlichkeit des Beinhaltens von Eingangssignalen. (d. h., eine höhere Konzentration haben) Es ist auch klar, dass, obwohl eine einfache Distanz-Metrik (Manhattendistanz) durch die Neuronen verwendet wird, die Bereiche der Aktivierung einige interessante Formen haben können.
  • Es ist zu beachten, dass die Bildung von Regionen an den Rändern des Merkmalraums, die Lerndaten zugehörig sind, häufig ganz groß sind und es wird vorgeschlagen, dass weitere Eingangssignale an das lernende System erheblich mit der normalen Verteilung der Trainingsdaten ausgeweitet sind, zu falschen Neuronenaktivitäten führen können. In diesem Beispiel haben drei Neuronen des trainierten Netzwerks keine Aktivität überhaupt für die verwendeten Daten, die Bezugsvektorpositionen dieser drei Neuronen (in dem Voronoidiagramm von 9 durch * markiert) fallen zwischen die beiden gezeigten Cluster und wirken als Teiler zwischen zwei Klassen.
  • Das in 9 gezeigte trainierte Netzwerk wurde verwendet, um verschiedene Eingänge zu einem anderen Netzwerk derselben Konfiguration (außer der Anzahl der Eingangssignale) in einer Weise zu schaffen, das eine Vier in einer Hierarchie (d. h., vier Netzwerke auf der ersten Schicht, eine auf der zweiten) imitiert. Nachdem das Modul auf dem höchsten Level in der Hierarchie trainiert worden ist, hat es sich gezeigt, dass die Bereiche der Aktivierung für den ursprünglichen Eingangsraum so waren, wie in 10 gezeigt.
  • Ein Vergleich zwischen den 9 und 10 zeigt, dass dieselben regionalen Formen exakt beibehalten wurden mit der Ausnahme, dass einige Regionen miteinander verschmolzen sind, was zeigt, dass komplizierte nicht-lineare Bereiche auf diese Weise erzeugt werde können, ohne die Integrität der Klassifikation zu betreffen. Es kann weiter gezeigt werden, dass die Bereiche der Aktivierung, die miteinander verschmelzen, normalerweise angeordnet sind, wo eine geringe Wahrscheinlichkeit von Eingangssignalen vorliegt, um so eine effizientere Verwendung der verfügbaren Ressourcen zu ermöglichen und eine Form von Kompression zu schaffen. Die vorhandene Anomalie, die in 10 gezeigt ist, ergibt sich daraus, dass die Aktivierungsbereichen von drei Neuronen des ersten Netzwerkes, die nach dem Training inaktiv sind, nicht miteinander verschmolzen sind. Dieser Bereich von Inaktivität ist natürlich gebildet zwischen den beiden Clustern während des Trainings aufgrund des Effekts des elasti schen Netzes, das weiter oben dargestellt worden ist und ist infolgedessen durch das Verschmelzen der Bereiche nicht betroffen. Durch dieses Kombinieren von Bereichen hat weiter die Anzahl von inaktiven Neuronen auf acht für die zweite Schicht des Netzwerkes erhöht. Der herausgehobene Vorgang ergibt sich für höher dimensionale Daten. Geeignete hierarchische Konfigurationen für die Modular Map kann so einen Mechanismus zum Partitionieren der Arbeitslast sehr große Eingangsvektoren und eine Basis für eine Datenfusion aus einem Bereich von Datentypen von verschiedenen Quellen und Eingängen an unterschiedlichen Stufen der Hierarchie schaffen.
  • Durch Verbinden der Module miteinander in einer hierarchischen Weise können die Eingangsdaten in einer Vielzahl von Weisen partitioniert werden. Beispielsweise können ursprünglich hoch dimensionale Eingangsdaten Vektoren von 16 Eingängen oder weniger gesplittet werden, d. h. für einen ursprünglichen Merkmalsraum Rn, wobei n in Gruppen von 16 partitioniert werden kann. Wenn Daten auf diese Weise partitioniert werden, bildet jedes Modul ein Map seines jeweiligen Eingangsbereichs. Es gibt kein Überlappen von Maps und ein Modul hat keine Interaktion mit anderen Modulen auf seinem Level in der Hierarchie.
  • Alternativ können die Eingangssignale des Systems mehr als ein Modul überspannen, wodurch eine Datenüberlappung zwischen den Modulen ermöglicht wird, was die Module bei ihrer Klassifikation unterstützt durch Versorgen mit einer Sorte von Kontext für die Eingangssignale. Dieser ist weiter ein Mechanismus, der es dem Merkmalsraum erlaubt, von einem Bereich von Perspektiven mit Ähnlichkeiten zwischen Ansichten betrachtet zu werden, die durch das Ausmaß der Datenüberlappung bestimmt wird.
  • Simulationen haben gezeigt, dass eine Überlappung der Eingangssignale (d. h., das Speisen einiger Eingangssignale in zwei oder mehrere Module) bis zu einer verbesserten Abbildung und Klassifikation führen kann.
  • Das Partitionieren kann eine bessere Repräsentation für den Bereich der Werte in einer Dimension schaffen, d. h. R könnte partitioniert sein. Das Partitionieren einer einzigen Dimension des Merkmalsraums über verschiedene Eingänge sollte normalerweise nicht erforderlich sein, wenn der reduzierte Bereich von 256 aber verfügbar ist, so sollte das Modular Map sich als zu restriktiv für eine Anwendung erweisen. Die Flexibilität des Modular Map ist dann dazu in der Lage, eine solche Partitionierung zu unterstützen. Der Bereich von Werten, die durch das Modular Map unterstützt wird, sollte ausreichend sein, um das Wesen einer einzelnen Dimension des Merkmalsraums aufzunehmen, normalerweise ist jedoch eine Vorverarbeitung erforderlich, um die beste Leistung des Systems zu erreichen.
  • Eine Balance zwischen der Genauigkeit der Vektorelemente, der Referenzvektorgröße und der Prozessorleistungsfähigkeit der einzelnen Neuronen zum Gewinnen der besten Ergebnisse kann bei minimalen Ressourcen erreicht werden. Die mögliche Geschwindigkeitssteigerung der Implementierung aller Neuronen in paralleler Weise wird bei einem Ausführungsbeispiel der Erfindung durch Speichern der Referenzvektoren lokal zu ihren jeweiligen Neuronen (d. h., on chip als lokalen Registern) maximiert. Um weiter einen maximalen Datendurchsatz zu bewirken, kann eine einfache aber effektive parallele Punk zu Punkt Kommunikation zwischen den Modulen verwendet werden. Diese Modular Map Ausgestaltung schafft eine vollständig digitale parallele Implementation des SOM, das skalierbar ist und zu einer einfachen Lösung eines komplexen Problems führt.
  • Eine der Aufgaben des Implementierens von künstlichen neuronalen Netzwerken (ANNs) in Hardware ist die Reduktion der Prozesszeit für diese rechnerisch intensiven Systeme. Während des normalen Betriebs von ANNs ist eine signifikante Berechnung erforderlich, um jedes Datensignal zu verarbeiten. Einige Anwendungen sind große Eingangsvektoren, die manchmal Daten von einer Anzahl von Quellen beinhalten und diese großen Mengen von zu verarbeitenden Daten häufig erfordern. Es kann auch sein, dass eine Anwendung das Updaten von Referenzvektoren während eines normalen Betriebs benötigt, um eine adaptive Lösung zu schaffen, die meisten rechnerisch intensiven und zeitaufwendigen Phasen des Betriebs ist jedoch das Lernen des Netzwerks. Einige Hardware ANN Implementationen, etwa solche für die Mehrschicht-Perceptron implementieren das Lernen als Teil ihres Betriebs, wodurch der Vorteil einer Hardwareimplementation minimiert wird. Modulare Maps jedoch implementieren die Lernphase der Operation und auf diese Weise, maximieren sie die potentiellen Nutzen einer Hardwareimplementation. Infolgedessen ist die Zeit, die zum Trainieren dieser Netzwerke erforderlich ist, angemessen.
  • Das Modular Map und die SOM Algorithmen haben dieselben grundlegenden Phasen des Betriebs, wie in dem Flussdiagramm von 14 gezeigt. Unter Berücksichtigung einer Implementationsstrategie im Sinne der Partitionierung der Arbeitsbelastung des Algorithmus und Verwenden verschiedener Skalen von Parallelität sollte die potentionelle Beschleunigung dieser Ansätze berücksichtigt werden, um die Netzwerklernzeit zu minimieren. Von den fünf Betriebsphasen, die in 14 gezeigt sind, sind lediglich zwei rechnerisch intensiv und daher signifikant getroffen durch Variation der Systemparallelität. Diese beiden Phasen des Betriebs beinhalten die Berechnung des Abstands zwischen dem jeweiligen Eingangssignal und den Referenzvektoren aller Neuronen, die das Netzwerk bilden, und Updaten der Referenzvektoren aller Neuronen in der Nachbarschaft des aktiven Neurons (d. h., Phasen 2 und 5 in 14).
  • Das Partitionieren von R ist nicht so einfach wie das Partitionieren von n und würde etwas mehr Vorverarbeitung von Eingangsdaten erfordern, diese Aufgabe könnte jedoch nicht als übermäßig komplex angesehen werden. Bei dem Partitionieren von R wird jedoch nur einer der Eingangsdaten, die zum Repräsentieren jedes der Merkmalsraumdimensionen verwendet werden, Eingangsstimuli für jedes Eingangsmuster, das dem System präsentiert wird, beinhalten. Infolgedessen ist es nötig, einen geeigneten Mechanismus zum Berücksichtigen dieser Möglichkeit zu haben, die möglichen Lösungen sind entweder Einsetzen des Systemeingangs auf den minimalen oder den maximalen Wert in Abhängigkeit auch davon, auf welcher Seite des Feldes dieses Eingangssignal den Eingangsstimulus hat, oder einen Eingang überhaupt zu verwenden, wenn dieses keine aktiven Eingangsstimuli beinhaltet.
  • Die Ausbildung des Modular Map ist derart flexibel, dass Eingangssignale über das Netzwerksystem in einigen überschneidenden Wegen partitioniert wird, d. h., Eingangssignale könnten direkt auf jedem Level in der Hierarchie genommen werden. Entsprechend können auch Ausgänge von einem Modul in der Hierarchie genommen werden, was zum Verschmelzen oder Extrahieren unterschiedlicher Informationskarten nützlich sein kann. Es ist nicht erforderlich, die Symmetrie innerhalb einer Hierarchie beizubehalten, was zu einigen neuen Konfigurationen führen könnte. Infolgedessen könnten gesonderte Konfigurationen für spezifische Funktionen verwendet werden und kombiniert werden mit anderen Modulen und Eingängen zur Bildung eines Systems mit zunehmender Komplexibilität und Funktionalität. Es ist auch möglich, eine Rückkopplung in die Modular Map Systeme einzuführen, was die Erzeugung einiger überschneidender modularer Architekturen führen könnte und die mögliche Funktionalität erhöht.
  • Es kann möglich sein, einen dynamischen Änderungskontext abhängig von Faden in den Modular Map Systemen zu Schaffen durch Verwendung von Rückkopplung und die Konzepte der neuronalen Reizung und die Konzepte der Erregung und Hemmung von Neuronen, wie es in der Natur gefunden wurde. Diese Möglichkeit existiert, da die Schnittstelle eines Modular Map das Verarbeiten lediglich eines Teiles des Eingangsvektors erlaubt und die Möglichkeit einer Störung eines Moduls zulässt. Die Logik für derartige hemmende Systeme wären außerhalb der Module selbst, konnten jedoch die Flexibililtät des Systems erheblich vergrößern. Eine solche Hemmung könnte in verschiedene Weisen zum Erlauben unterschiedlicher Funktionen verwendet werden, d. h., entweder könnten die Eingangssignale und die Ausgangssignale eines Moduls gehemmt sein. Wenn unzureichende Eingangssignale verfügbar sind, es könnte ein Modul oder auch der ganze neuronale Pfad für eine einzige Iteration gestört sein oder, wenn das Ausgangssignal eines Moduls innerhalb eines bestimmten Bereichs ist, könnten Teile des Systems gestört sein. Das Konzept eines erregten Neurons wäre invers zu dem obigen, wobei Teile des Systems lediglich aktiv sind unter besonderen Umständen.
  • Lernzeiten
  • Kohonen statuiert, dass die Anzahl von Lernschritten, die erforderlich sind, um ein einziges Netzwerk zu trainieren, proportional zu der Netzwerkgröße ist. Lässt man die Anzahl von Lernstufen (s) gleich sein dem Produkt der Proportionalitätskonstanten (k) und der Netzwerkgröße (N) (d. h., der Anzahl von Lernschritten, die erforderlich sind (s) = kN). Aus diesem vereinfachten mathematischen Modell kann man erkennen, dass die Gesamtlernzeit (Tpar) das Produkt der Anzahl der erforderlichen Lernschritte (s), der Zeit, die erforderlich ist, um jeden Eingangsvektor (d) zu berechnen und der Zeit, die erforderlich ist, um jeden Referenzvektor (d) upzudaten, ist. Die gesamte Lernzeit (Tpar) = 2ds (Sekunden), da d = ntd und s = kN ist, ergibt ein Substituieren und Umstellen: Tpar = 2Nnktd Gleichung 1.1
  • Dieses vereinfachte Modell ist für Zugriffstrends in Lernzeiten geeignet und zeigt, dass die gesamte Trainingszeit proportional zu dem Produkt der Netzwerkgröße und der Vektorgröße ist, die Hauptaufgabe ist jedoch das Erreichen relativer Lernzeiten zu erreichen, werden zwei gesonderte Implementationen mit identischen Parametern mit Ausnahme der unterschiedlichen Vektorgrößen oder Netzwerkgrößen betrachtet. Bei einer Verwendung mit den beiden Systemen derart, dass die Vektorgröße n2 ein Vielfaches (y) der Vektorgröße n1 ist.
  • Wenn Ti = 2N n1 ktd und T2, ergibt sich durch Umstellung der Gleichung für T1, n1 = T1/2Nktd), jedoch n2 = yn1 = y(T1/(2Nktd)). Durch Substituieren dieses Ergebnisses in die obige Gleichung für T2 ergibt sich: T2 = 2N y(T1/(2Nktd))ktd = yT1 Gleichung 1.2
  • Die Konsequenz dieser einfachen Analyse ist, dass ein Modul, das aus einfachen Neuronen mit kleinen Referenzvektoren besteht, schneller lernt als ein Netzwerk mit komplexeren Neuronen mit größeren Referenzvektoren. Diese Analyse kann auch auf Änderungen in der Netzwerkgröße angewendet werden, wo sich ergibt, dass die Lernzeit der zunehmenden Netzwerkgröße zunimmt. Infolgedessen sollte zum Minimieren der Lernzeiten sowohl die Netzwerke als auch die Bezugsvektoren auf einem Minimum gehalten werden, wie es mit der Modular Map erfolgt.
  • Dieses Modell kann weiter expandiert werden, um die hierarchischen Konfigurationen der Modular Maps zu berücksichtigen. Einige der Vorteile des Aufbauens einer Hierarchie von Modulen ist, das große Eingangsvektoren bearbeitet werden können, ohne erhebliche Zunahme der Lernzeit des Systems.
  • Bei einem Ausführungsbeispiel der Erfindung mit einer hierarchischen Modularstruktur ist die Lernzeit die Gesamtlernzeit für eine Schicht zuzüglich der Fortschreitungsverzögerungen aller anderen. Die Fortschreitungsverzögerung eines Moduls (Tprop) ist verglichen mit seiner Lernzeit sehr klein und ist annähernd gleich der Zeit, die alle Neuronen benötigen, um den Abstand zwischen ihrem Eingangswert und den Referenzvektoren zu berechnen. Diese Verzögerung wird auf einem Minimum gehalten, da ein Modul sein Ausgangssignal verfügbar macht, sobald das aktive Neuron bestimmt ist und bevor die Referenzvektoren upgedatet werden. Eine Folge dieser Art von Ausgestaltung ist, dass ein Pipeliningeffekt erzeugt wird bei jeder folgenden Schicht in der Hierarchie bei Verarbeitung der Daten, die von dem letzten Eingangssignal der vorliegenden Schicht hergeleitet wird. Tprop = ntd Gleichung 1.3
  • Alle Module, die in der Hierarchie eine einzige Schicht bilden, arbeiten parallel und infolgedessen parallel zueinander. Lernzeit für jede Schicht ist gleich der Lernzeit für ein einzelnes Modul. Wenn verschiedene Module eine derartige Schicht in einer Hierarchie bilden, wird die Lernzeit von dem langsamsten Modul auf dem Level bestimmt, was das Modul mit dem größten Eingangsvektor sein wird (unter der Annahme, dass keine Module lateral verbunden sind).
  • Bei diesem Ausführungsbeispiel der Erfindung hat eine einzelne Modular Map eine maximale Eingangsvektorgröße von 16 Elementen und unter den meisten Umständen wird wenigstens ein Modul auf einer Schicht die maximale Vektorgröße verfügbar haben. Die Vektorgröße für alle Module in einer Hierarchie (nh) kann mit 16 angenommen werden zum Zwecke dieses Zeitmodells. Weiter gibt jedes Modul lediglich ein 2-dimensionales Ergebnis aus, das ein 8:1 Kompressionsverhältnis erzeugt, so dass die maximale Eingangsgröße für eine hierarchische Modular Map Ausbildung 2 × 81 verarbeitet wird (wobei 1 die Anzahl der Schichten in der Hierarchie ist). Infolgedessen können große Eingangsvektoren angenommen werden mit sehr wenigen Schichten in einer hierarchischen Konfiguration und die Ausbreitungsverzögerung, die durch diese Schichten eingeführt wird, wird in den meisten Fällen zu vernachlässigen sein. Es ergibt sich dann, dass die gesamte Lernzeit wie eine Hierarchie (Th) folgendermaßen sein wird: Th = 2Nnhtd = 2 Nnhktd Gleichung 1.4
  • Durch das Folgende kann eine ähnliche Herleitung zu derjenigen, die für die Gleichung 1.2 verwendet wurde, hergeleitet werden: Tpar = YTh Gleichung 1.5
  • Wobei der Skalenfaktor y = n/nh ist.
  • Dieser modulare Ansatz bewältigt eine erhöhten Arbeitsbelastung mit einer Erhöhung an Ressourcen und Parallelität, was zu reduzierten Lernzeiten verglichen mit dem äquivalenten Einheitsnetzwerk führt, diese Differenz der Lernzeiten ist proportional zu dem Skalierungsfaktor zwischen den Vektorgrößen (d. h. y).
  • 15 ist eine Darstellung der Aktivierungswerte (Manhattan-Abstände) des aktiven Neurons für die ersten 100 Lernschritte bei einer beispielhaften Neuronalen Netzwerkanwendung.
  • Die Daten wurden für ein 64 Neuronen Modular Map mit 16 Eingängen unter Verwendung einer Start-Nachbarschaft, die 80 % des Netzwerks abdeckt, erzeugt. Die ersten wenigen Iterationen der Lernphase (weniger als 10) haben einen hohen Wert für die Abstände, wie sich aus 15 ergibt. Nach den ersten 10 Iterationen ist jedoch eine geringe Variation für die Abstände zwischen dem Referenzvektor des aktiven Neurons und dem jeweiligen Eingangssignal gegeben. Der durchschnittliche Aktivierungswert nach dieser Anfangsperiode ist lediglich 10, was nur 10 Subtraktionsvorgänge erfordert, um das aktive Neuron zu finden. Infolgedessen wird dies für alle Netzwerke ähnlich sein, obwohl es dort einen erheblichen Overhead für die ersten wenigen Iterationen gibt, dieser Overhead kann als fix angesehen werden. Über den Rest der Lernphase ist der Overhead der Berechnung der aktiven Neuronen relativ unerheblich.
  • Während der Lernphase des Betriebs werden die Referenzvektoren upgedatet, während der Abstand zwischen dem jeweiligen Eingangssignal und den Bezugsvektoren aller Neuronen berechnet worden ist. Dieser Vorgang schließt wieder die Berechnung der Differenzen zwischen Vektorelementen wie oben einzeln beschrieben, ein. Rechnerisch ist dies ineffizient, da diese Werte bereits während der vorangehenden Betriebsphase berechnet worden sind. Diese Differenzen können in einem geeigneten Speicher bei alternativen Ausführungsbeispielen der Erfindung gespeichert werden, bei diesem Ausführungsbeispiel werden die Werte jedoch neu berechnet.
  • Nachdem der Abstand zwischen jedem Element berechnet worden ist, werden diese Zwischenergebnisse mit dem Verstärkungsfaktor multipliziert. Die Multiplikationsphase wird durch einen arithmetischen Schiebemechanismus, der innerhalb des Datenstroms angeordnet ist und daher keinen signifikanten zusätzlichen Overhead benötigt, ausgeführt (siehe 11). Die Addition dieser Werte zu dem jeweiligen Bezugsvektor beeinflusst die Updatezeit für ein Neuron annähernd äquivalent dem ursprünglichen Summationsvorgang, der ausgeführt worden ist, um die Differenzen zwischen den Eingangssignalen und Referenzvektoren zu bestimmen. Infolgedessen ist die Zeit, die ein Neuron benötigt, seine Referenzvektoren upzudaten, annähernd gleich der Zeit die es benötigt, zu berechnen, d. h. d (Sekunden), da die betroffenen Prozesse dieselben sind (d. h., die Differenzberechnungen und Addition).
  • Die Anzahl der Neuronen, deren Bezugsvektoren auf diese Weise upzudaten sind, variiert über die Lernperiode oft mit annähernd 80% des Netzwerks beginnend und sich auf nur eines am Ende des Lernens beschränkend. Die Zeit, die ein Modular Map benötigt, um ein einzelnes Neuron upzudaten wird dasselbe sein, wie es Zeit benötigt, um alle seine Neuronen upzudaten, da der Betrieb aller Neuronen parallel ausgeführt wird.
  • Im allgemeinen wird, wenn ein Neuron mit einem Eingangsvektor präsentiert wird, nach einem Ausführungsbeispiel der Erfindung, dieses fortschreiten, den Abstand zwischen seinem Bezugsvektor und dem jeweiligen Eingangsvektor unter Verwendung einer geeigneten Abstandsmektrik, beispielsweise des Manhattan-Abstands zu berechnen.
  • Wenn die Differenzen zwischen Vektorelementen in Folge berechnet werden, und wenn daher n dimensionale Vektoren verwendet werden, sind n gesonderte Berechnungen erforderlich. Die Zeit, die ein Neuron benötigt, um den Abstand für eine Dimension zu bestimmen, ist td Sekunden, für n Dimensionen ist daher die Gesamtzeit zum Berechnen des Abstands zwischen den Eingangssignalen und den Referenzvektoren (d) ntd Sekunden, d. h. d = ntd (Sekunden).
  • Dieser Summationsvorgang wird ausgeführt, wenn der Abstand zwischen jedem Element bestimmt wird und ist daher ein variabler Overhead abhängig von der Anzahl der Vektorelemente und betrifft nicht die obige Gleichung für die Abstandsberechnungszeit. Der Wert td hat keine direkte Beziehung zu der Zeit, die eine Addition oder Subtraktion für eine bestimmte Einheit benötigt; es ist die Zeit, die erforderlich ist, den Abstand für ein einziges Element eines Referenzvektors einschließlich aller variablen Overheads, die bei diesem Betrieb beteiligt sind, zu berechnen.
  • Wenn alle Neuronen parallel implementiert werden, wird die Gesamtzeit, die für alle Neuronen erforderlich ist, um den Abstand zu berechnen, gleich sein der Zeit, die es für ein einzelnes Neuron benötigt, seinen Abstand zu berechnen. Wenn die Neuronen ihre Abstände berechnet haben, ist das aktive Neuron zu identifizieren, bevor ein weiterer Betrieb ausgeführt werden kann, was bedeutet, dass alle Neuronen gleichzeitig 1 von ihrem jeweiligen Distanzwert abziehen, bis ein Neuron einen Wert von 0 erreicht. Dies identifiziert das aktive Neuron (das Neuron mit dem minimalen Abstand).
  • Die große Mehrheit von ANN-Implementationen war in der Form von Simulationen auf üblichen seriellen Computersystemen, die wirksam die schlechtere der beiden Welten darstellen, da ein Parallelsystem auf einem seriellen Computer implementiert ist. Als ein Ansatz zum Erreichen der Geschwindigkeitserhöhung, die durch eine parallele Implementation erfolgt, kann das obige Zeitmodell modifiziert werden. Zusätzlich kann die Validität dieses Modells durch Vergleichen der vorausberechneten relativen Lernzeiten mit tatsächlichen Lernzeiten für eine serielle Implementation eines Modular Map abgeschätzt werden.
  • Der Hauptunterschied zwischen einer parallelen und einer seriellen Implementation des Modular Map besteht darin, dass die Funktionalität jedes Neurons bei einer seriellen Implementation wieder berechnet wird, was zu einer signifikanten Zunahme der Zeit führt, die erforderlich ist, um die Manhattan-Abstände für alle Neuronen in dem Netzwerk zu berechnen, verglichen mit einer parallelen Implementation. Da der Betrieb der Neuronen der Reihe nach berechnet wird, wird auch ein Unterschied zwischen der Zeit gegeben sein, die erforderlich ist, um die Manhattan-Abstände zu berechnen und die Bezugsvektoren upzudaten. Der Grund für diese Disparität mit einer seriellen Implementation besteht darin, dass lediglich ein Untersatz von Neuronen in dem Netzwerk ihre Referenzvektoren upzudaten haben, was eindeutig weniger Zeit benötigt als das Updaten aller Neuronen, die das Netzwerk bilden, wenn jeder Referenzvektor der Reihe nach upgedatet wird.
  • Die Anzahl von Neuronen, deren Referenzvektoren upzudaten ist, variiert über die Lernzeit, beispielsweise kann es mit 80% beginnen und am Ende des Lernens lediglich ein Neuron. Da dieser Parameter über die Zeit variiert, ist es schwierig, ein Zeitmodell auszustellen, da die Nachbarschaftsgröße in einer regelmäßigen Weise abnimmt, beträgt die durchschnittliche Nachbarschaftsgröße über die ganze Trainingsdauer etwa 40% des Netzwerks. Die Zeit, die erforderlich ist, um jeden Referenzvektor upzudaten, ist annähernd gleich der Zeit, die erforderlich ist, um den Abstand für jeden Referenzvektor zu bestimmen. Infolgedessen wird die Zeit, die benötigt wird, um die Referenzvektoren upzudaten, bei einer seriellen Implementation durchschnittlich 40% der Zeit benötigen, die das Berechnen der Zeit benötigen, die das Berechnen der Abstände braucht.
  • Um die Einfachheiten dieses Modells beizubehalten, wird die Arbeitsbelastung des Updatens der Referenzvektoren sein unter allen Neuronen in dem Netzwerk gleichmäßig verteilt und infolgedessen wird die Zeit, die ein Neuron benötigt, um seine Referenzvektoren upzudaten, 40% der Zeit betragen, die erforderlich ist, um den Manhattan-Abstand zu berechnen, d. h. die Updatezeit = 0,5d (Sekunden).
  • In diesem Fall wird die Gleichung 1.1 zu: Tseriell = 1.4N2 nkt (Sekunden) Gleichung 1.6
  • Diese Gleichung zeigt klar, dass für eine serielle Implementation die Lernzeit im Verhältnis zu dem Quadrat der Netzwerkgröße zunehmen wird. Infolgedessen wird die Lerzeit für eine serielle Implementation erheblich größer sein als für eine parallele Implementation. Weiter zeigt ein Vergleich der Gleichung 1.1 mit 1.6, dass Tseriell = 0.7NTpar, d. h., die Differenz zwischen den Lernzeiten für eine serielle und eine parallele Implementation wird proportional zu der Netzwerkgröße sein.
  • Die Modular Map Hierarchiedatenkompression wird durch aufeinander folgende Schichten in der Hierarchie ausgeführt und führt zu einer Situation, in der weniger Neuronen erforderlich sind in dem Ausgangsnetzwerk der Hierarchie des Modular Maps, als sie für ein einzelnes SOM erforderlich sind, das dasselbe Probelm bearbeitet. Zusätzlich können die Modular Maps sowohl lateral als auch hierarchisch kombiniert werden, um eine Architektur zu schaffen, die für verschiedene Anwendungen geeignet ist.
  • Eine Anwendung der Erfindung ist die Verwendung eines Modular Map eines neuronalen Netzwerks zum Klassifizieren von Gesichtsdaten. Das Modular Map kann auf unterschiedliche Weisen kombiniert werden und verwendet unterschiedliche Partitionierungsstrategien.
  • Bei einem anderen Beispiel einer Anwendung können Grundankerdaten verwendet werden, um zu zeigen, dass Modular Map Hierarchien Verbesserungen bei der Klassifizierung und dem Aufwärtsbewegen von Clustern in der Hierarchie verglichen mit üblichen SOMs.
  • Der Modular Map Ansatz zur Gesichtserkennung führt zu einer hierarchischen modularen Architektur, die einen „Datenüberlappungs"-Ansatz zur Datenpartitionierung verwendet. Verglichen mit einer SOM Lösung für das Gesichtserkennungsproblem bieten Modular Maps bessere Klassifikationsergebnisse. Wenn hierarchische Konfigurationen modularer Maps er zeugt werden, bietet die Klassifikation an der Ausgangsschicht eine Verbesserung gegenüber derjenigen der SOM, da die Cluster von Aktivierungen kompakter sind und besser für modulare Hierarchien definiert sind. Dieses Clustern und Klassifizieren verbessert die Aufwärtsbewegung durch verschiedene Schichten in einer modularen Hierarchie derart, dass höhere Schichten, d. h. Schichten, die näher dem Ausgang sind, wirksamer arbeiten oder eine komplexere Funktionalität haben.
  • Der modulare Ansatz der Erfindung führt dazu, dass mehr Neuronen verwendet werden, als diese für ein Standard SOM erforderlich wären. Die RISC-Neuronen, die durch ein Modular Map verwendet werden, verlangen erheblich geringere Ressourcen als die komplexeren Neuronen, die durch das SOM verwendet werden. Der Modular Map Ansatz ist weiter derart skalierbar, dass Entscheidungsnetzwerke erzeugt werden können, bei denen viele Faktoren die Begrenzung bezüglich der Größe der monolitischen neuronalen Netzwerke beeinflussen. Weiter wird, da die Anzahl von Neuronen in einer modularen Hierarchie zunimmt und damit die Parallelität in dem System zunimmt derart, dass eine Erhöhung der Arbeitsbelastung durch eine Zunahme der Ressourcen, die diese Arbeit ausführt. Infolgedessen werden die Lernzeiten minimal gehalten und diese werden geringer sein als dies bei einer äquivalenten SOM-Lösung mit der Ersparnis von Lernzeiten für das Modular Map, die mit einer zunehmenden Arbeitsbelastung zunimmt, erforderlich wäre.
  • Ein Ausführungsbeispiel der Erfindung weit einen Chip auf mit wenigstens einem Modul und hat die folgenden Spezifikationen:
    • – eine programmierbare SIMD Feldarchitektur;
    • – eine Implementation eines Modular Map oder eines SOM Algorithmus;
    • – 256 Neuronen pro Einheit;
    • – 16 Dimensionen Vektorgröße;
    • – 8 bit Genauigkeit;
    • – on chip lernen;
    • – volle digitale CMOS-Implementation;
    • – 3,3V Leistungseingang;
    • – Betriebstemperaturbereich von 0° bis 75°C;
    • – 2 Watt Leistungsabstrahlung;
    • – 86 Pin LCC Konfektionierung;
    • – Taktgeschwindigkeiten von 50 MHz oder 100 MHz.
  • Diese 50 MHz Implementation hat eine durchschnittliche Ausbreitungsverzögerung (Tprop) von 3,5 μs., eine Betriebseigenschaft von 1,2 GCPS und 0,675 GCUPS, 13 GIPS Äquivalent-Befehlen pro Sekunde und eine durchschnittliche Lernzeit von 0,9 Sekunden.
  • Diese 100 MHz Implementation hat eine durchschnittliche Ausbreitungsverzögerung (Tprop) von 1,75 μs, eine Betriebseigenschaft von 2,4 GCPS und 1,35 GCUPS, 26 GIPS äquivalenten Befehlen pro Sekunde und eine durchschnittliche Lernzeit von 0,45 Sekunden.
  • Die Expansionsfähigkeiten schlossen bis zu 65,536 Neuronen für ein einzelnes neuronales Feld bei lateral expandierenden Ausführungsbeispielen der Erfindung ein. Bei 65.536 Neuronen beispielsweise könnte die Betriebsleistungsfähigkeit 300 GCPS 154 GCUPS sein und die Lernzeit weniger als 4 Stunden betragen, beispielsweise 3 Stunden 45 Minuten mit einem Tprop = 3,5 μs. Bei lateral expandierenden Ausführungsbeispielen mit 1,024 Neuronen könnte die Betriebszeit 4,8 GCPS, 2,7 GCUPS und die Lernzeit innerhalb von 4 Minuten abgeschlossen sein, beispielsweise nach 3,5 Minuten und Tprop = 3,5 μs.
  • Die bevorzugte Netzwerksausbreitungsart erfolgt mittels einer hierarchischen Konfiguration unter einer Unterraum-Klassifikation, die zu einer fast konstanten Trainingszeit unabhängig von der Anzahl der Neuronen führt. Keine maximale neuronale Größe ist dann vorgegeben, auch die Vektorgröße ist frei wählbar.
  • Bei einem hierarchischen Ausführungsbeispiel nach der Erfindung mit einer zwei-schichtigen Hierarchie würde ein 2.304 Neuronfeld eine maximale Eingangsvektordimension von 24 haben. Die Hierarchiebetriebsleistungsfähigkeit wäre 10,8 GCPS, 6 GCUPS mit einer Trainingszeit von 0,9 Sekunden und einer Ausbreitungsverzögerung Tprop von 7 μs.
  • Bei einem alternativen hierarchischen Ausführungsbeispiel der Erfindung mit einer Vier-Schicht-Hierarchie mit 149,760 Neuronen wären die maximalen Eingangsvektordimensionen 8,192. Die Hierarchiebetriebsleistungsfähigkeit wäre 702 GCPS, 395 GCUPS mit einer Lernzeit von 0,9 Sekunden und einer Ausbreitungsverzögerung Tprop von 14 μs.
  • Auch asymmetrische hierarchische Strukturen können bei alternativen Ausführungsbeispielen der Erfindung implementiert werden.
  • Modifikationen und Verbesserungen können gegenüber dem vorstehend Beschriebenen ausgeführt werden ohne sich aus dem Schutzbereich der Erfindung zu entfernen. Obwohl die obige Beschreibung bevorzugte Formen der Erfindung als in einer besonderen Hardware implementiert beschreibt, ist die Erfindung nicht auf derartige Ausbildungen begrenzt. Die Modular Map und die hierarchischen Strukturen können in gleicher Weise in einer Software implementiert sein, wie durch eine Softwaresimulation der Schaltkreise, die oben beschrieben worden sind.

Claims (27)

  1. Ein neuronales Prozessorelement (100), das zur Verwendung in einem Neuronalen Netz eingerichtet ist, mit: – einer arithmetischen Logik (50); – einem arithmetischen Schiebemechanismus (52); – Datenmultiplexern (115, 125); – Speichermitteln (56, 57, 58, 59); – Dateneingabemitteln (110) einschließlich wenigstens eines Eingangsanschlusses; – Datenausgangsmittel (120) einschließlich wenigstens eines Ausgangsanschlusses; und – einer Kontrolllogik (54); wobei das neurnale Prozessorelement dazu eingerichtet ist, Operationen an einem Referenzvektor, der aus Wichtungswerten besteht, auszuführen; dadurch gekennzeichnet, dass die Wichtungswerte während der unterschiedlichen Phasen in der neuronalen Verarbeitung von unterschiedlicher Bit-Größe sind.
  2. Das neuronale Prozessorelement (100) nach Anspruch 1, wobei jedes neuronale Prozessorelement (100) ein allein stehendes Neuron in dem Neuronalen Netzwerk ist.
  3. Das neuronale Prozessorelement nach Anspruch 1 oder Anspruch 2, weiter mit Mitteln zum Angeben der Bit-Größe der Daten.
  4. Das neuronale Prozessorelement nach Anspruch 3, wobei die Mittel zum Anzeigen der Bit-Größe der Daten Operationen an Datenwerten mit unterschiedlicher Bit-Größe, die während desselben Befehlssatzes auszuführen sind, zulassen.
  5. Das neuronale Prozessorelement nach einem der vorangehenden Ansprüche, weiter mit wenigstens einem Register.
  6. Das neuronale Prozessorelement nach Anspruch 5, wobei das Register mit Daten unterschiedlicher Bit-Größe in Abhängigkeit von der Anzeige für die Bit-Größe der Daten arbeitet.
  7. Ein neuronales Netzwerkmodul (300) mit einem Feld von neuronalen Prozessorelementen (100) nach einem der Ansprüche 1 bis 6, und wenigstens einem neuronalen Netzwerkkontroller (200) zum Steuern der Operation wenigstens eines Prozessorelements (100), wobei der Kontroller (200) aufweist: – Kontrolllogiken (270, 280); – Dateneingabemittel einschließlich wenigstens eines Eingangsanschlusses; – Datenausgabemittel (60) einschließlich wenigstens eines Ausgangsanschlusses; – Datenmultiplexer (290, 292, 294); – Speichermittel (64, 68, 280); – einer Adressenmap (66); und – Synchronisationsmittel, die dazu eingerichtet sind, wenigstens einen Handshakemechanismus (210, 220, 230) zu implementieren.
  8. Das neuronale Netzwerkmodul nach Anspruch 7, wobei die Speicher des Kontrollers einen programmierbaren Speicher beinhalten.
  9. Das neuronale Netzwerkmodul nach Anspruch 7 oder Anspruch 8, wobei der Speicher des Kontrollers einen Pufferspeicher einschließt, der den Dateneingabemitteln oder den Datenausgabemitteln zugehörig ist.
  10. Das neuronale Netzwerkmodul (300) nach einem der Ansprüche 7 bis 9, wobei die Anzahl der Prozessorelement (100) in dem Feld eine Potenz von zwei ist.
  11. Ein modulares Neuronales Netz mit: – einem Modul (300) nach einem der Ansprüche 7 bis 10 oder wenigstens zwei miteinander verbundenen Modulen (300) nach einem der Ansprüche 7 bis 20.
  12. Das modulare Neuronale Netz nach Anspruch 11, wobei die Module (300) in einer lateralen Expansionsweise und/oder einer hierarchischen Weise miteinander verbunden sind.
  13. Das modulare Neuronale Netz nach Anspruch 12, mit Synchronisationsmitteln zum Ermöglichen der Dateneingabe in das Neuronale Netz.
  14. Das modulare Neuronale Netz nach Anspruch 13, wobei das Synchronisationsmittel das Eingeben von Daten lediglich dann, wenn das Modul (300) in einer hierarchischen Weise verbunden ist, ermöglicht.
  15. Das modulare Neuronale Netz nach Anspruch 13 oder Anspruch 14, wobei das Synchronisationsmittel dazu eingerichtet ist, einen Zweiweg-Handshakemechanismus zu implementieren.
  16. Eine neuronale Netzwerkeinheit mit einem Neuronalen Netz nach den Ansprüchen 11 bis 15, wobei ein Feld von Prozessorelementen (100) in der neuronalen Netzwerkeinheit mit wenigstens einem Modulkontroller (200) implementiert ist.
  17. Die Neuronale Netzwerkeinheit nach Anspruch 16, wobei die Einheit ein feldprogrammierbares gate-array (FPGA) ist.
  18. Die neuronale Netzwerkeinheit nach Anspruch 16, mit einem der folgenden: eine vollständig anwendungsbezogene, sehr große Skalenintegrations(VLSI)-Einheit, eine teilweise anwendungsspezifische VLSI-Einheit oder eine applikationsspezifische integrierte Schaltung (ASIC)-Einheit.
  19. Ein Computerprogramm, das bei Ausführung auf einem Computer gemeinsam mit dem Computer, auf dem es ausgeführt wird, einen Apparat nach einem der vorangehenden Ansprüche bildet.
  20. Ein Verfahren zum Trainieren eines Neuronalen Netzes, wobei das Verfahren die Schritte aufweist: – i. Schaffen eines Netzwerks von Neuronen (100), wobei jedes Neuron (100) einen Eingangsvektor liest, der an den Eingang des Neuronalen Netzes angelegt ist; ii. Freigeben jedes Neurons (100) zum Berechnen seines Abstands zwischen dem Eingangsvektor und einem Referenzvektors bestehend aus Wichtungswerten entsprechend einer vorgegebenen Distanzmetrik, wobei das Neuron (100) mit dem minimalen Abstand zwischen seinem Referenzvektor und dem jeweiligen Eingangssignal das aktive Neuron (100a) wird. iii. Ausgeben des Ortes des aktiven Neurons (100a); und – iv. Updaten der Referenzvektoren für alle Neuronen (100), die innerhalb einer Nachbarschaft und das aktive Neuron (100a) angeordnet sind, dadurch gekennzeichnet, dass die Wichtungswerte bei der Berechnung des Abstandes zwischen dem Eingangsvektor und dem Referenzvektor von einer ersten Bit-Größe sind und in Schritt iv. die Wichtungswerte bei dem Updaten der Referenzvektoren von einer zweiten Bit-Größe sind, die von der ersten Bit-Größe unterschiedlich ist.
  21. Das Verfahren nach Anspruch 20, wobei die zweite Bit-Größer größer ist als die erste Bit-Größe.
  22. Das Verfahren nach Anspruch 20 oder 21, wobei in dem Schritt ii. die Berechnung des Abstands zwischen dem Eingangsvektor und dem Referenzvektor 8-Bit Wichtungswerte verwendet und in dem Schritt iv das Updaten der Referenzvektoren 12-Bit Wichtungswerte verwendet, wobei die zusätzlichen Bits, die in Schritt iv. verwendet werden, Bruchteile der Wichtungswerte darstellen.
  23. Das Verfahren nach einem der Ansprüche 22 bis 23 mit dem zusätzlichen Schritt der Aktivierung eines die Datenbitgröße angebenden Mittels zum Anzeigen der Bit-Größe der Wichtungswerte.
  24. Das Verfahren nach Anspruch 23, wobei das Mittel zum Angeben der Datenbitgröße eine Updateflagge ist.
  25. Das Verfahren nach Anspruch 24, wobei die Schritte ii. und iv. unter Verwendung desselben Befehlssatzes ausgeführt werden.
  26. Das Verfahren nach einem der Ansprüche 20 bis 25, wobei die vorgegebene Abstandsmetrik die Manhattan-Abstandsmetrik ist.
  27. Ein Computerprogramm mit Softwaremodulen, die dazu eingerichtet sind, das Verfahren nach einem der Ansprüche 20 bis 26 zu implementieren.
DE60024582T 1999-02-01 2000-02-01 Neuronales verarbeitungselement zur verwendung in einem neuronalen netzwerk Expired - Fee Related DE60024582T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9902115 1999-02-01
GBGB9902115.6A GB9902115D0 (en) 1999-02-01 1999-02-01 Neural networks
PCT/GB2000/000277 WO2000045333A1 (en) 1999-02-01 2000-02-01 Neural processing element for use in a neural network

Publications (2)

Publication Number Publication Date
DE60024582D1 DE60024582D1 (de) 2006-01-12
DE60024582T2 true DE60024582T2 (de) 2006-08-24

Family

ID=10846824

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60024582T Expired - Fee Related DE60024582T2 (de) 1999-02-01 2000-02-01 Neuronales verarbeitungselement zur verwendung in einem neuronalen netzwerk

Country Status (8)

Country Link
US (2) US7082419B1 (de)
EP (2) EP1569167A2 (de)
AT (1) ATE312386T1 (de)
AU (1) AU2304600A (de)
DE (1) DE60024582T2 (de)
ES (1) ES2254133T3 (de)
GB (1) GB9902115D0 (de)
WO (1) WO2000045333A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017223522A1 (en) * 2016-06-23 2017-12-28 Mohammad Shami Neural network systems and methods for generating distributed representations of electronic transaction information

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0101043D0 (en) * 2001-01-15 2001-02-28 Univ Aberdeen Input parameter selection process
JP3833125B2 (ja) 2002-03-01 2006-10-11 キヤノン株式会社 撮像装置
GB0204826D0 (en) 2002-03-01 2002-04-17 Axeon Ltd Control of a mechanical actuator using a modular map processor
KR100571831B1 (ko) * 2004-02-10 2006-04-17 삼성전자주식회사 음성 식별 장치 및 방법
GB2414328A (en) * 2004-05-17 2005-11-23 Mitsubishi Electric Inf Tech Discrimination transforms applied to frequency domain derived feature vectors
JP4175296B2 (ja) * 2004-06-25 2008-11-05 キャタピラージャパン株式会社 建設機械のデータ処理装置及び建設機械のデータ処理方法
US7392499B1 (en) * 2005-08-02 2008-06-24 Xilinx, Inc. Placement of input/output blocks of an electronic design in an integrated circuit
WO2007020456A2 (en) * 2005-08-19 2007-02-22 Axeon Limited Neural network method and apparatus
US7715563B2 (en) * 2006-02-16 2010-05-11 General Dynamics C4 Systems, Inc. Rapid acquisition of state vectors in an encrypted data communication system
US7672915B2 (en) * 2006-08-25 2010-03-02 Research In Motion Limited Method and system for labelling unlabeled data records in nodes of a self-organizing map for use in training a classifier for data classification in customer relationship management systems
US7555469B2 (en) * 2006-11-16 2009-06-30 L-3 Communications Integrated Systems L.P. Reconfigurable neural network systems and methods utilizing FPGAs having packet routers
US20080168013A1 (en) * 2006-12-05 2008-07-10 Paul Cadaret Scalable pattern recognition system
WO2008067676A1 (en) * 2006-12-08 2008-06-12 Medhat Moussa Architecture, system and method for artificial neural network implementation
US8117137B2 (en) 2007-04-19 2012-02-14 Microsoft Corporation Field-programmable gate array based accelerator system
WO2009010950A1 (en) * 2007-07-18 2009-01-22 Seq.U.R. Ltd System and method for predicting a measure of anomalousness and similarity of records in relation to a set of reference records
JP2010044101A (ja) * 2008-08-08 2010-02-25 Toshiba Corp パターン予測方法、プログラム及び装置
US8131659B2 (en) * 2008-09-25 2012-03-06 Microsoft Corporation Field-programmable gate array based accelerator system
US20100235909A1 (en) * 2009-03-13 2010-09-16 Silver Tail Systems System and Method for Detection of a Change in Behavior in the Use of a Website Through Vector Velocity Analysis
US20100235908A1 (en) * 2009-03-13 2010-09-16 Silver Tail Systems System and Method for Detection of a Change in Behavior in the Use of a Website Through Vector Analysis
EP2336834A1 (de) * 2009-11-20 2011-06-22 Zerogroup Holding OÜ Verfahren und System zum Steuern der Umweltbedingungen einer Einheit
US8583577B2 (en) * 2011-05-25 2013-11-12 Qualcomm Incorporated Method and apparatus for unsupervised training of input synapses of primary visual cortex simple cells and other neural circuits
US20130325416A1 (en) * 2012-05-29 2013-12-05 Fmr Llc Contribution Model
US9082078B2 (en) 2012-07-27 2015-07-14 The Intellisis Corporation Neural processing engine and architecture using the same
US9189729B2 (en) 2012-07-30 2015-11-17 International Business Machines Corporation Scalable neural hardware for the noisy-OR model of Bayesian networks
US9153230B2 (en) * 2012-10-23 2015-10-06 Google Inc. Mobile speech recognition hardware accelerator
US9185057B2 (en) 2012-12-05 2015-11-10 The Intellisis Corporation Smart memory
FR3011659B1 (fr) * 2013-10-04 2015-10-16 Commissariat Energie Atomique Circuit electronique, notamment apte a l'implementation d'un reseau de neurones, et systeme neuronal
FR3015068B1 (fr) * 2013-12-18 2016-01-01 Commissariat Energie Atomique Module de traitement du signal, notamment pour reseau de neurones et circuit neuronal
US9542645B2 (en) 2014-03-27 2017-01-10 Qualcomm Incorporated Plastic synapse management
US9552327B2 (en) 2015-01-29 2017-01-24 Knuedge Incorporated Memory controller for a network on a chip device
US10061531B2 (en) 2015-01-29 2018-08-28 Knuedge Incorporated Uniform system wide addressing for a computing system
US10083395B2 (en) 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
US9747546B2 (en) * 2015-05-21 2017-08-29 Google Inc. Neural network processor
US10192162B2 (en) 2015-05-21 2019-01-29 Google Llc Vector computation unit in a neural network processor
US9805303B2 (en) 2015-05-21 2017-10-31 Google Inc. Rotating data for neural network computations
US10049322B2 (en) 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
US10438117B1 (en) 2015-05-21 2019-10-08 Google Llc Computing convolutions using a neural network processor
US11244225B2 (en) 2015-07-10 2022-02-08 Samsung Electronics Co., Ltd. Neural network processor configurable using macro instructions
CN106484362B (zh) * 2015-10-08 2020-06-12 上海兆芯集成电路有限公司 利用使用者指定二维定点算术运算的装置
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN109993285B (zh) * 2016-01-20 2020-02-07 中科寒武纪科技股份有限公司 用于执行人工神经网络正向运算的装置和方法
US10027583B2 (en) 2016-03-22 2018-07-17 Knuedge Incorporated Chained packet sequences in a network on a chip architecture
CN108416436B (zh) * 2016-04-18 2021-06-01 中国科学院计算技术研究所 使用多核心处理模块进行神经网络划分的方法及其系统
US10346049B2 (en) 2016-04-29 2019-07-09 Friday Harbor Llc Distributed contiguous reads in a network on a chip architecture
EP3476281A4 (de) * 2016-06-28 2020-01-01 KYOCERA Corporation Elektronische vorrichtung und kalkulationssystem
US20180053086A1 (en) * 2016-08-22 2018-02-22 Kneron Inc. Artificial neuron and controlling method thereof
US11042802B2 (en) * 2016-10-07 2021-06-22 Global Optimal Technology, Inc. System and method for hierarchically building predictive analytic models on a dataset
CN107992942B (zh) * 2016-10-26 2021-10-01 上海磁宇信息科技有限公司 卷积神经网络芯片以及卷积神经网络芯片操作方法
US10284556B1 (en) * 2016-11-11 2019-05-07 Symantec Corporation Systems and methods for verifying authentication requests using internet protocol addresses
WO2018106222A1 (en) 2016-12-07 2018-06-14 Google Llc Quantum bit multi-state reset
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US11551028B2 (en) 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network
US11238334B2 (en) 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method of input alignment for efficient vector operations in an artificial neural network
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
US10970630B1 (en) * 2017-06-15 2021-04-06 National Technology & Engineering Solutions Of Sandia, Llc Neuromorphic computing architecture with dynamically accessible contexts
EP3662474B1 (de) 2017-07-30 2023-02-22 NeuroBlade Ltd. Speicherbasierte verteilte prozessorarchitektur
WO2019023984A1 (en) * 2017-08-02 2019-02-07 Intel Corporation SYSTEM AND METHOD FOR INCLUSION OF NEURAL NETWORKS 1 AMONG N ON AN AUTOMATIC LEARNING COMPUTER PLATFORM
US20190050714A1 (en) * 2017-08-09 2019-02-14 Ants Technology (Hk) Limited Modular distributed artificial neural networks
US11188820B2 (en) * 2017-09-08 2021-11-30 International Business Machines Corporation Deep neural network performance analysis on shared memory accelerator systems
EP3495988A1 (de) 2017-12-05 2019-06-12 Aptiv Technologies Limited Verfahren zur verarbeitung von bilddaten in einem verbindungsnetzwerk
CN109993284B (zh) * 2017-12-29 2020-08-04 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
US10601960B2 (en) 2018-02-14 2020-03-24 Eingot Llc Zero-knowledge environment based networking engine
EP3561727A1 (de) * 2018-04-23 2019-10-30 Aptiv Technologies Limited Vorrichtung und verfahren zum extrahieren von dynamischen informationen über eine szene unter verwendung eines neuronalen faltungsnetzwerks
EP3561726A1 (de) 2018-04-23 2019-10-30 Aptiv Technologies Limited Vorrichtung und verfahren zur verarbeitung von datensequenzen mithilfe eines neuronalen faltungsnetzes
US11315231B2 (en) * 2018-06-08 2022-04-26 Industrial Technology Research Institute Industrial image inspection method and system and computer readable recording medium
CN108830378A (zh) * 2018-06-11 2018-11-16 东北师范大学 基于fpga的som神经网络可配置模块化硬件实现方法
WO2020032998A1 (en) 2018-08-06 2020-02-13 Hi Llc Systems and methods to reduce data and complexity in neural signal processing chain
US11769040B2 (en) 2018-09-10 2023-09-26 Nvidia Corp. Scalable multi-die deep learning system
EP3696733B1 (de) * 2019-02-13 2024-03-27 Siemens Aktiengesellschaft Codierung und übertragung von szenen- und aufgabenabhängigen lerninformationen in übertragbare neuronale netzwerkschichten
US11270197B2 (en) 2019-03-12 2022-03-08 Nvidia Corp. Efficient neural network accelerator dataflows
CN110502278B (zh) * 2019-07-24 2021-07-16 瑞芯微电子股份有限公司 基于RiscV扩展指令的神经网络协处理器及其协处理方法
US11763156B2 (en) 2019-11-15 2023-09-19 Microsoft Technology Licensing, Llc Neural network compression based on bank-balanced sparsity
US20210216868A1 (en) * 2020-01-08 2021-07-15 Maxim Integrated Products, Inc. Systems and methods for reducing memory requirements in neural networks
CN111694643B (zh) * 2020-05-12 2023-04-11 中国科学院计算技术研究所 一种面向图神经网络应用的任务调度执行系统及方法
JP7430271B2 (ja) * 2020-09-17 2024-02-09 株式会社日立ハイテク エラー要因の推定装置及び推定方法
US11237894B1 (en) 2020-09-29 2022-02-01 Hailo Technologies Ltd. Layer control unit instruction addressing safety mechanism in an artificial neural network processor
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor
US11874900B2 (en) 2020-09-29 2024-01-16 Hailo Technologies Ltd. Cluster interlayer safety mechanism in an artificial neural network processor
US11263077B1 (en) 2020-09-29 2022-03-01 Hailo Technologies Ltd. Neural network intermediate results safety mechanism in an artificial neural network processor
US11221929B1 (en) 2020-09-29 2022-01-11 Hailo Technologies Ltd. Data stream fault detection mechanism in an artificial neural network processor
CN112819143B (zh) * 2021-02-04 2024-02-27 成都市深思创芯科技有限公司 一种基于图神经网络的工作记忆计算系统及方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0378115B1 (de) * 1989-01-06 1998-09-30 Hitachi, Ltd. Neuronaler Rechner
JPH05242065A (ja) * 1992-02-28 1993-09-21 Hitachi Ltd 情報処理装置及びシステム
US5937202A (en) * 1993-02-11 1999-08-10 3-D Computing, Inc. High-speed, parallel, processor architecture for front-end electronics, based on a single type of ASIC, and method use thereof
DE69430870T2 (de) * 1994-07-28 2003-03-13 Ibm Innovative Neuronalschaltungsarchitektur
US5598362A (en) 1994-12-22 1997-01-28 Motorola Inc. Apparatus and method for performing both 24 bit and 16 bit arithmetic
US6138945A (en) * 1997-01-09 2000-10-31 Biggers; James E. Neural network controller for a pulsed rocket motor tactical missile system
US6076152A (en) * 1997-12-17 2000-06-13 Src Computers, Inc. Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017223522A1 (en) * 2016-06-23 2017-12-28 Mohammad Shami Neural network systems and methods for generating distributed representations of electronic transaction information

Also Published As

Publication number Publication date
ES2254133T3 (es) 2006-06-16
EP1569167A2 (de) 2005-08-31
EP1149359A1 (de) 2001-10-31
US20070022063A1 (en) 2007-01-25
ATE312386T1 (de) 2005-12-15
US7082419B1 (en) 2006-07-25
WO2000045333A1 (en) 2000-08-03
EP1149359B1 (de) 2005-12-07
DE60024582D1 (de) 2006-01-12
AU2304600A (en) 2000-08-18
GB9902115D0 (en) 1999-03-24

Similar Documents

Publication Publication Date Title
DE60024582T2 (de) Neuronales verarbeitungselement zur verwendung in einem neuronalen netzwerk
DE19581638C2 (de) Rechenvorrichtung mit einem Mikroprozessor, einem neuralen Netz-Koprozessor und einer DMA-Steuervorrichtung
DE112008000988B4 (de) Rechenknoten und Rechenknotennetzwerke,die Dynamiknanovorrichtungsverbindungen umfassen
Eluyode et al. Comparative study of biological and artificial neural networks
US9412041B1 (en) Retinal apparatus and methods
DE112021002239T5 (de) Deep learning-beschleuniger und direktzugriffsspeicher mit einer kameraschnittstelle
DE3909153C2 (de)
Page et al. Algorithm development for neural networks
Yuille et al. Dimension reduction, generalized deformable models and the development of ocularity and orientation
DE60022398T2 (de) Sequenzgenerator
DE112019002061T5 (de) Zeit- und platzsparende sowie energieeffiziente neuronale inferenz durch parallelismus und on-chip-speicher
Zhang et al. VLSI-placement with a neural network model
Chang et al. An efficient parallel algorithm for LISSOM neural network
Kappen Stimulus-dependent correlations in stochastic networks
Nicoletti An analysis of neural networks as simulators and emulators
Yarushev et al. Time Series Prediction based on Hybrid Neural Networks.
Sutton et al. The behaving human neocortex as a dynamic network of networks
Marshakov Modeling of the processes of extracting rules from Neural Network components with Petri nets
Morasso et al. Advances in modeling cortical maps
Blayo et al. Extension of cellular automata to neural computation: theory and applications
Maria et al. 1d and 2d systolic implementations for radial basis function networks
Feng Establishment of topological maps—a model study
Duff Image Processing Architectures
Prange et al. Emulation of biology-oriented neural networks on specific hardware
Hammerstrom et al. Dynamics and VLSI Implementation of Self–Organizing Networks

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee