[go: up one dir, main page]

DE69227648T2 - Verbesserte Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme - Google Patents

Verbesserte Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme

Info

Publication number
DE69227648T2
DE69227648T2 DE69227648T DE69227648T DE69227648T2 DE 69227648 T2 DE69227648 T2 DE 69227648T2 DE 69227648 T DE69227648 T DE 69227648T DE 69227648 T DE69227648 T DE 69227648T DE 69227648 T2 DE69227648 T2 DE 69227648T2
Authority
DE
Germany
Prior art keywords
neural network
user
input data
block
type
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
DE69227648T
Other languages
English (en)
Other versions
DE69227648D1 (de
Inventor
Shawn Michael Rochester Minnesota 55901 Austvold
Joseph Phillip Rochester Minnesota 55901 Bigus
Jonathan David Rochester Minnesota 55906 Henckel
Paul Alan Rochester Minnesota 55901 Hospers
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69227648D1 publication Critical patent/DE69227648D1/de
Application granted granted Critical
Publication of DE69227648T2 publication Critical patent/DE69227648T2/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/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Devices For Executing Special Programs (AREA)

Description

    BEREICH DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf Datenverarbeitungssysteme und insbesondere auf die Verbesserung der Nutzbarkeit eines Neuronalnetzwerks, das in einem Computersystem ausgeführt wird.
  • HINTERGRUND DER ERFINDUNG
  • Moderne Computersysteme werden genutzt, um einen immer stärker zunehmenden Bereich von komplexen Problemen zu lösen. Die Benutzung von Computern zur Durchführung von Aufgaben, die normalerweise mit menschlicher Urteilskraft und menschlichem Erkenntnisvermögen verbunden sind, ist als künstliche Intelligenz bekannt. Da die Fähigkeiten von Computern immer weiter ausgebaut werden, werden sie in zunehmendem Maße benutzt, um Aufgaben im Bereich der künstlichen Intelligenz durchzuführen. Obwohl Computerhardware zur Durchführung von komplexen Aufgaben zur Verfügung steht, ist es jedoch sehr schwierig und zeitraubend, künstliche Intelligenzprogramme zu schreiben.
  • In den letzten Jahren bestand zunehmendes Interesse an der Lösung von komplexen Problemen bei Neuronalnetzwerken. Ein Neuronalnetzwerk ist eine Sammlung von einfachen Prozessoren (Knoten), die miteinander verbunden sind, wobei jeder Prozessor eine Vielzahl von Ein- und Ausgangsanschlüssen hat. Jeder Prozessor bewertet eine relativ einfache mathematische Funktion der Eingaben, um eine Ausgabe zu erzeugen. Einige der Prozessorknoten empfangen die Eingabe oder erzeugen die Ausgabe extern zum Netzwerk, aber normalerweise laufen die meisten Verbindungen zwischen den Knoten im Netzwerk ab. Ein anpassungs fähiger Wichtungskoeffizient gehört zu jeder Verbindung. Ein Neuronalnetzwerk wird geschult, um ein bestimmtes Problem zu lösen, indem dem Netzwerk Beispiele von Eingabedaten für das Problem und die gewünschten Ausgaben vorgelegt werden. Das Netzwerk stellt die Wichtungskoeffizienten ein, um den Unterschied zwischen den Ausgabewerten des Netzwerks und den gewünschten Ausgabewerten der geschulten Daten zu reduzieren. Ein Neuronalnetzwerk besteht idealerweise aus physisch getrennten Prozessorknoten. Ein solches Netzwerk wird häufig in einem einzelnen Prozessorcomputersystem mit passender Programmierung simuliert. Wie hierin benutzt, wird der Begriff "Neuronalnetzwerk" ein ideales Netzwerk von separaten physischen Prozessoren für jeden Knoten berücksichtigen, sowie ein simuliertes Netzwerk, das in einem Computersystem mit einem oder mehreren Prozessoren ausgeführt wird.
  • Die Erwartung von Neuronalnetzwerken war so, daß sie mit weniger Programmierungsaufwand und Erfahrung programmiert werden können als konventionelle Anwendungsprogramme, die konzipiert wurden, um Probleme im Bereich der künstlichen Intelligenz zu lösen. Bevor ein Programmierer die Neuronalnetzwerktechnologie als Teil eines ansonsten konventionellen Anwendungsprogramms benutzen kann, ist allerdings ein beträchtlicher Programmierungsaufwand und Erfahrung mit Neuronalnetzwerken erforderlich. EP-A-0443 976 beschreibt eine Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme, durch die eine Menge Programmierungsaufwand und Erfahrung mit Neuronalnetzwerken entfällt, die bei der Benutzung der Neuronalnetzwerktechnologie in einem Anwendungsprogramm erforderlich ist. Leider erfordert die Neuronalnetzwerkbenutzeroberfläche dieser Patentanmeldung noch einigen Programmierungsaufwand und einige Erfahrung mit Neuronalnetzwerken. Es gibt beispielsweise verschiedene Neuronalnetzwerkmodelle, die im Stand der Technik bekannt sind, z. B. das Back Propagation Model, das Adaptive Resonance Theory Model, das Self-Organizing Feature Maps Model, das Self-Organizing Routing (TSP) Networks Model, das Constraint Satisfaction Model und das Learning Vector Quantization Network Model. Diese Modelle können bei der Lösung spezifischer Probleme sehr wirksam sein, aber bei der Lösung von Problemen anderer Art sehr unwirksam sein. Ein Programmierer, der ein Neuronalnetzwerk entwickeln möchte, muß über beträchtliche Kenntnisse der Neuronalnetzwerktechnologie verfügen, bevor er wissen würde, welches Neuronalnetzwerkmodell das geeignetste wäre, um sein spezifisches Problem zu lösen.
  • Ein Neuronalnetzwerk erfordert auch, daß ihm Daten in einer spezifischen, architektonischen Form präsentiert werden, die das Neuronalnetzwerkmodell versteht. Der Programmierer muß entscheiden, welche Information als Eingabe und Ausgabe benutzt werden muß, zusammen mit entscheidender, zusätzlicher, modellabhängiger Information, z. B. der Anzahl von verborgenen Eingaben, Aufgaben, Ressourcen oder Beschränkungen. Diese Entscheidung ist ohne Erfahrung in der Neuronalnetzwerktechnologie sehr schwierig zu treffen.
  • Ein Artikel der NASA Tech Brief, NTIS Tech Notes December 1990, Springfield, VA, US page 1034, BAFFES 'Program aids simulation of neural networks' beschreibt ein Computerprogramm NETS, ein Werkzeug für die Entwicklung und Bewertung von Neuronalnetzwerken, das eine Simulation des Neuronalnetzwerks liefert, welches das Back-Propagation Verfahren benutzt, um alle Netzwerke zu lernen, die das Programm erstellt. NETS ermöglicht es dem Benutzer, die Verbindungsmuster zwischen den Schichten eines Netzwerks an den Anwender anzupassen. Dieses Programm ist auf den Einsatz des Back-Propagation Verfahrens begrenzt.
  • Ein anderer Artikel von A. Maren im Handbuch mit Neuronalrechenanwendungen, 1990, Academic Press, San Diego, US, p59-70, mit dem Titel "Dynamics of neural network operations" bezieht sich auf die dynamischen Netzwerkoperationen, die auf dem back propagating Perceptron und dem Hopfield Netzwerk basieren, indem die Stabilitätskriterien des Netzwerks benutzt werden. Diese Stabilität erfordert dann die Zufallsverarbeitung und die Konvergenz in eine Lösung, wenn ein Eingabemuster angegeben wird.
  • Ein weiterer Artikel aus "Proceedings: Tools for artificial intelligence TAI 90", 6 November 1990, Herndon, USA, pages 118- 124 AHALT 'The neural Shell: a neural network simulation tool' lehrt eine Neuronalbenutzeroberfläche, die es einem Benutzer erlaubt, die Netzwerkkonfiguration einfach zu ändern und die Parameter zu lernen. Diese hierin beschriebene Technik beabsichtigt, das Design zu vereinfachen und die Neuronalnetzwerke zu benutzen. Aber sie ändert nicht die Datenstruktur, die in den Neuronalnetzwerken enthalten ist.
  • Es ist ein erster Gegenstand der Erfindung, eine verbesserte Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme bereitzustellen.
  • Es ist ein weiterer Gegenstand der Erfindung, eine verbesserte Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme bereitzustellen, die wenig Programmierungsaufwand oder Erfahrung mit Neuronalnetzwerken erfordert.
  • Es ist ein weiterer Gegenstand dieser Erfindung, eine verbesserte Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme bereitzustellen, die automatisch ein passendes Neuronalnetzwerkmodell auswählt.
  • Es ist ein weiterer Gegenstand dieser Erfindung, eine verbesserte Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme bereitzustellen, die automatisch ein geeignetes Neuronalnetzwerkmodell auswählt, das auf der Benutzereingabe basiert, welche die Art des zu lösenden Problems beschreibt.
  • Es ist ein weiterer Gegenstand dieser Erfindung, eine verbesserte Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme bereitzustellen, die automatisch eine geeignete Anzahl von Eingaben, Ausgaben und andere modellspezifische Parameter für das ausgewählte Neuronalnetzwerkmodell erzeugt.
  • Diese und andere Gegenstände werden durch die verbesserte Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme erfüllt, die hierin beschrieben ist.
  • Es wird eine verbesserte Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme beschrieben. Der Benutzer wird aufgefordert, eine nichttechnische Information über die spezifische Problemart einzugeben, die das Neuronalnetzwerk für den Benutzer lösen soll. Der Benutzer wird auch aufgefordert, die Verwendungsinformation der Eingabedaten in das Neuronalnetzwerk einzugeben. Anhand dieser Information erstellt die Neuronalnetzwerkbenutzeroberfläche eine Neuronalnetzwerkdatenstruktur, indem automatisch ein geeignetes Neuronalnetzwerkmodell ausgewählt wird und automatisch eine geeignete Anzahl von Eingaben, Ausgaben und/oder anderen modellspezifischen Parametern für das ausgewählte Neuronalnetzwerkmodell erstellt werden. Der Benutzer muß nun nicht länger über Erfahrungen in der Neuronalnetzwerktechnologie verfügen, um eine Neuronalnetzwerkdatenstruktur zu erstellen.
  • Das Verfahren und das Computersystem, um eine Neuronalnetzwerkdatenstruktur für ein Neuronalnetzwerk gemäß der vorliegenden Erfindung zu erstellen, sind in den Ansprüchen 1 und 12 beschrieben.
  • Diese Patentanmeldung gehört zu EP-A-0443 976 und EP-A-0509948 (mit dem Titel: "Apparatus and Method for Facilitating Use of a Neural Network" und wurde gleichzeitig mit der vorliegenden Anmeldung eingereicht).
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 zeigt ein Blockdiagramm des Computersystems der Erfindung.
  • Fig. 2 zeigt, wie ein in einer Hardware fest implementiertes paralleles Neuronalnetzwerk in einem seriellen, auf Von Neumann basierten Computersystem simuliert werden kann.
  • Die Fig. 3A-3B zeigen das Konzept eines Rahmens der Computerumgebung der Erfindung.
  • Fig. 4 zeigt die Neuronalnetzwerkdatenstruktur der Erfindung.
  • Die Fig. 5-9 zeigen die Flußdiagramme der Erfindung.
  • Fig. 10A zeigt ein Beispiel der symbolischen Schulungsdaten, die in der Erfindung benutzt werden.
  • Fig. 10B zeigt, wie die exemplarischen, symbolischen Schulungsdaten in numerische Schulungsdaten konvertiert werden.
  • Die Fig. 11-20 zeigen Bildschirme, die einem Benutzer angezeigt werden, der ein Beispiel des Neuronalnetzwerks, das die Erfindung benutzt, erstellt, schult und ablaufen läßt.
  • Beschreibung des bevorzugten Ausführungsbeispiels
  • Fig. 1 zeigt ein Blockdiagramm des Computersystems der Erfindung. Das Computersystem 10 besteht aus der Haupt- oder Zentraleinheit 11, die mit dem Speicher 12 verbunden ist. Der Speicher 12 kann ein Primärspeicher sein, z. B. ein RAM oder ein Sekundärspeicher, z. B. ein magnetischer oder optischer Speicher. In dem bevorzugten Ausführungsbeispiel ist die CPU 11 mit dem Co-Prozessor 13 verbunden. Der Co-Prozessor 13 kann generische, mathematische Rechenfunktionen (ein mathematischer Co- Prozessor) oder spezielle Unterstützungsfunktionen der Neuronalnetzwerk-Hardware (ein Neuronalnetzwerkprozessor) bereitstellen. Der Co-Prozessor 13 ist nicht notwendig, wenn die CPU 11 über genügend Verarbeitungsleistung verfügt, um eine umfangreiche Rechenoperation ohne inakzeptable Leistungsverschlechterung zu bewältigen. Die CPU 11 wird auch mit der Benutzerschnittstelle 14 verbunden. Die Benutzerschnittstelle 14 ermöglicht es Entwicklern und Benutzern, mit dem Computersystem 10 zu kommunizieren, normalerweise über einen programmierbaren Arbeitsplatzrechner.
  • In dem bevorzugten Ausführungsbeispiel ist das Computersystem 10 ein IBM Application System/400 midrange computer, obwohl irgendein Computersystem benutzt werden könnte. Der Co-Prozessor 13 ist vorzugsweise ein Prozessor in dem Application System/400 midrange computer, könnte aber auch der mathematische Co-Prozessor sein, der in Personal Computern vorhanden ist, wie z. B. der IBM PS/2. In diesem Fall würden CPU 11 und Co-Prozessor 13 miteinander über den IBM PC Support kommunizieren.
  • Fig. 2 zeigt, wie (parallele) Neuronalnetzwerkcomputer in einem (seriellen) Von Neumann Prozessorsystem simuliert werden können. Es gibt viele verschiedene Neuronalnetzwerkmodelle mit unterschiedlichen Verbindungstopologien und Verarbeitungseinheitsattributen. Sie können jedoch im allgemeinen als Rechensysteme klassifiziert werden, die aus vielen (zehn, hunderten oder tausenden) einfachen Verarbeitungseinheiten 21 bestehen, die durch anpassungsfähige (veränderbare) Wichtungen 22 verbun den werden. Zusätzlich zu den Prozessoren und Wichtungen muß ein Neuronalnetzwerk einen Lernmechanismus 23 haben, der funktioniert, indem die Wichtungen nach jeder Schulungswiederholung aktualisiert werden.
  • Ein Neuronalnetzwerkmodell kann in einem digitalen Computer mittels Programmen und Daten simuliert werden. Die Programme 26 simulieren die Verarbeitungsfunktionen, die von den Neuronalnetzwerk-Verarbeitungseinheiten 21 durchgeführt werden, und die anpassungsfähigen Verbindungswichtungen 22 sind in den Daten 27 enthalten. Die Programme 28 werden benutzt, um den Anpassungsmechanismus der Lern- oder Verbindungswichtung 23 zu implementieren.
  • Fig. 3A zeigt das Konzept des Layouts von dieser Erfindung und wie es mit der Anwendungssoftware verknüpft wird. In der obersten Ebene befindet sich die Anwendungsprogrammierungsschnittstelle 31 (API). API 31 ist eine formal angegebene Schnittstelle, die es Anwendungsentwicklern, die keine Kenntnisse von Neuronalnetzwerken besitzen, erlaubt, auf die Dienstprogramme und Datenstruktur der Neuronalnetzwerkbenutzeroberfläche 32 in ihren Anwendungsprogrammen zuzugreifen und diese zu nutzen.
  • Die Neuronalnetzwerkbenutzeroberfläche 32 besteht aus einem Satz Dienstprogramme 33 und einer Neuronalnetzwerkdatenstruktur 50. Die Oberfläche bietet die Fähigkeit, Neuronalnetzwerke einfach und wirksam zu definieren, zu erstellen, zu schulen und in Anwendungen in konventionellen Computersystemen laufen zu lassen. In dem bevorzugten Ausführungsbeispiel ist die Benutzeroberfläche 32 das IBM Neuronalnetzwerk-Dienstprogramm für den AS/400, obwohl andere Programme für die Benutzeroberfläche mittels der Lehren aus dieser Erfindung ebenfalls benutzt werden könnten.
  • Ein Neuronalnetzwerkmodell, zum Beispiel die Modelle 35-38, können von der Neuronalnetzwerkbenutzeroberfläche 32 unter stützt werden, indem eine generische Neuronalnetzwerkdatenstruktur 50 definiert wird, auf die von allen Dienstprogrammen in der Neuronalnetzwerkbenutzeroberfläche 32 zugegriffen werden kann. Jedes Neuronalnetzwerkmodell wird in dieser generischen Neuronalnetzwerkdatenstruktur abgebildet, die ausführlicher in Fig. 4 beschrieben ist. Die Programme, die für jedes Neuronalnetzwerkmodell spezifisch sind, werden von den Neuronalnetzwerk-Dienstprogrammen 33 aufgerufen, wie dies später erörtert werden wird.
  • Fig. 3B zeigt, wie ein normales Anwendungsprogramm 41 ein Neuronalnetzwerkanwendungsprogramm 40 wird, indem es mit einem oder mehreren der Neuronalnetzwerk-Dienstprogramme 45-48 in der Neuronalnetzwerkbenutzeroberfläche 32 verbunden wird. Die Dienstprogramme 45-48 verbinden sich ihrerseits mit der Datenstruktur 50. Die Daten, die von dem Neuronalnetzwerkanwendungsprogramm 40 (hier auch als "Neuronalnetzwerk" bezeichnet) verarbeitet werden, werden in die Eingabe 42 eingegeben. Nachdem die Daten durch das Neuronalnetzwerk gelaufen sind, wird das Ergebnis in der Ausgabe 43 ausgegeben. Das Anwendungsprogramm 41 und die Dienstprogramme 45-48 befinden sich in der entsprechend programmierten CPU 11 und/oder dem Co-Prozessor 13 (Fig. 1). Die Datenstruktur 50 befindet sich im Speicher 12 und/oder in dem internen Speicher der CPU 11 und/oder dem Co-Prozessor 13.
  • Fig. 4 zeigt die Neuronalnetzwerkdatenstruktur 50 der Erfindung. Die Datenstruktur 50 liefert einen gemeinsamen Rahmen, der es ermöglicht, ein Neuronalnetzwerkmodell zur Benutzung in einem Anwendungsprogramm zu definieren. Dieser gemeinsame Rahmen wird erreicht, indem Datenbereiche für die netzwerkspezifischen Parameter und Felder bereitgestellt werden. Kapitel 5 des Dokuments mit dem Titel "Application System/400 - Neural Network Utility/400: User's Guide (order number SC41-8202-0)" zeigt, wie der Netzwerkparameterteil 85 und der Netzwerkbe reichsteil 90 der Datenstruktur 50 von den Back Propagation, Constraint Satisfaction Network, Adaptive Resonance Network, Self Organizing Feature Map und Self Organizing Routing Network Modellen benutzt werden.
  • Die Datenstruktur 50 besteht aus dem Anfangsteil 60, dem Parameterteil 85 und dem Feldteil 90.
  • Das Feld 79 enthält den Namen des Neuronalnetzwerkmodells oder -typs. Ein Beispiel für einen Namen eines Neuronalnetzwerkmodels ist "*BKP" für Back Propagation. Dieser Name wird bei Erstellung des Neuronalnetzwerk-Dienstprogramms bestimmt, was später erörtert werden wird.
  • Feld 67 enthält den Kennzeichner der Netzwerkversion. Diese Information wird benutzt, um Ungleichheiten zwischen den Programmen der Neuronalnetzwerkbenutzeroberfläche und den Neuronalnetzwerkdatenstrukturen zu verhindern. Wenn neue Versionen oder Änderungen der Software entwickelt werden, ist Kompatibilität mit vorhandenen Netzwerken wünschenswert. Wenn Verbesserungen Änderungen in der Hauptnetzwerkdatenstruktur erfordern, würde dieses Feld eine Ungleichheit zwischen Software und Daten erkennen. Die Software könnte eine Konvertierungsroutine aufrufen, um das Datenstrukturformat zu aktualisieren oder um Down- Level-Datenstrukturen zu akzeptieren.
  • Feld 81 enthält die Anzahl von Netzwerkparametern im Netzwerkparameterteil 85. Feld 82 enthält die Anzahl von Netzwerkbereichen im Netzwerkbereichsteil 90. Feld 83 enthält die Größe des Netzwerkparameterteils 85.
  • Die Datenstruktur 50 wird durch das Neuronalnetzwerk-Dienstprogramm Erstellen erstellt, was später erörtert werden wird (Fig. 7A-7I). Die Dienstprogramme Lehren und Lauf greifen auf die Datenstruktur 50 zu, um das Neuronalnetzwerk zu schulen und ablaufen zu lassen.
  • Die Fig. 5-9 zeigen die Flußdiagramme der Erfindung, wie sie von der entsprechend programmierten CPU 11 und/oder dem Co-Prozessor 13 ausgeführt werden. Fig. 5 zeigt einen Überblick von den wichtigsten Schritten im Entwicklungsprozeß des Neuronalnetzwerkanwendungsprogramms. Block 110 fragt, ob ein neues Neuronalnetzwerkmodell definiert werden muß. Falls ja, ruft Block 200 die Define Neural Network Model Subroutine (Fig. 6) auf. Falls nicht, fragt Block 120, ob der Benutzer eine Neuronalnetzwerkdatenstruktur erstellen möchte. Eine Neuronalnetzwerkdatenstruktur wird für jedes Neuronalnetzwerk erstellt. So würde beispielsweise eine Neuronalnetzwerkdatenstruktur für ein Neuronalnetzwerk zur Münzenidentifizierung erstellt werden. Wenn wir auch ein anderes Neuronalnetzwerk erstellen möchten, um zu bestimmen, ob eine Eingabezahl ungerade oder gerade ist, würde eine andere Neuronalnetzwerkdatenstruktur erstellt werden. Wenn Block 120 bejahend antwortet, ruft Block 300 die Create Neural Network Data Structure Subroutine (Fig. 7) auf. Wenn nicht, fragt Block 130, ob der Benutzer ein Neuronalnetzwerk schulen möchte. Ein Neuronalnetzwerk muß mit Schulungsdaten geschult werden, so daß das Verhältnis zwischen Eingabedaten und dem gewünschten Ausgabeergebnis lernen kann, oder relevante Funktionen aus den Eingabedaten herausziehen kann. Falls ja, ruft Block 400 die Teach Neural Network Subroutine (Fig. 8) auf. Andernfalls fragt Block 140, ob der Benutzer ein Neuronalnetzwerk ablaufen lassen möchte. Falls ja, ruft Block 500 die Run Neural Network Model Subroutine (Fig. 9) auf. Andernfalls wird das Programm in Block 190 beendet.
  • Die Fig. 6A-6D beschreiben die Define Neural Network Model Subroutine 200. Diese Subroutine erlaubt es einem Benutzer, ein kundenspezifisches Neuronalnetzwerkmodell zu definieren. Eine ausführliche Beschreibung, wie dies durchgeführt würde, ist in Kapitel 4 des Dokuments mit dem Titel "Application System/400 - Neural Network Utility/400: Programmer's Reference, (SC41- 0032)" enthalten.
  • Block 207 definiert einen einzigartigen Namen für das Modell, das für Feld 79 der Datenstruktur 50 zu definieren ist. Block 208 definiert die Anzahl der Netzwerkparameter und der Netzwerkbereiche, die für die Felder 81 und 82 benutzt werden. Block 209 definiert die Parameter und Bereiche, die für das spezifische Neuronalnetzwerkmodell benutzt werden und bildet diese Parameter und Bereiche im Parameterteil 85 und dem Bereichsteil 90 der Datenstruktur 50 ab. Block 209 berechnet auch die Größe des Parameterteils 85 für das Netzwerkparametergrößenfeld 83.
  • Block 210 ruft die Build Neural Network Model Create Program Subroutine von Fig. 6B auf. Es wird nun Bezug auf Fig. 6B genommen. Die Subroutine 210 erlaubt dem Modell die Erstellung spezifischer Routinen, so daß sie später durch die Create Neural Network Data Structure Subroutine (Fig. 7) ausgeführt werden können. Block 211 liefert eine einfache Routine, um den Benützer ggf. zur zusätzlichen Eingabe von Datenbenutzungsinformationen aufzufordern, die für das Neuronalnetzwerk spezifisch sind. Block 211 würde beispielsweise eine Routine bereitstellen, die Bildschirme vorbereiten würde, was von dem Neuronalnetzwerkmodell abhängig ist, ähnlich dem, das in Fig. 12E- 12G dargestellt ist.
  • Block 212 liefert eine Routine, um die generische Neuronalnetzwerkdatenstruktur mit Standardparameterwerten zu initialisieren, um die Standard-Neuronalnetzwerkdatenstruktur für dieses Neuronalnetzwerkmodell zu erstellen. Alle Neuronalnetzwerkmodelle haben die gleiche generische Neuronalnetzwerkdatenstruktur. Jedes einzelne Neuronalnetzwerkmodell hat seine eigene einzigartige Standarddatenstruktur. Deshalb werden alle Neuronalnetzwerkanwendungsprogramme (Münzenidentifizierung, Identi fizierung ungerade/gerade Zahl usw.), die das gleiche Neuronalnetzwerkmodell (z. B. Back Propagation) einzigartige Parameterwerte in die gleiche Standard-Neuronalnetzwerkdatenstruktur eingeben.
  • Block 213 speichert die Neural Network Model Create Program Built in Subroutine 210, indem ihr ein einzigartiger Name gegeben wird, und sie in den Speicher 12 (Fig. 1) geschrieben wird. In dem bevorzugten Ausführungsbeispiel kann dieses Programm in jeder gewünschten Sprache geschrieben werden, das die Fähigkeit hat, auf die Datenstruktur zuzugreifen. Block 219 kehrt zu Block 230 von Fig. 6A zurück.
  • Block 230 ruft die Build Neural Network Model Teach Program Subroutine von Fig. 6C auf. Es wird nun auf Fig. 6C Bezug genommen. Die Subroutine 230 liefert Routinen, die später durch die Teach Neural Network Subroutine (Fig. 8) aufgerufen werden. Block 233 liefert eine Routine, um das Neuronalnetzwerk zu initialisieren. Block 233 initialisiert Zähler und Variablen, die von dem Lehrprogramm des Neuronalnetzwerks benutzt werden.
  • Block 234 liefert eine Routine, um für dieses Neuronalnetzwerkmodell einen einzelnen Lehrschritt durchzuführen. Diese Routine liefert einen Mechanismus, der stark von dem Neuronalnetzwerkmodell abhängig ist, das benutzt wird, um die Werte der Daten im Datenbereich des Rahmens 90 einzustellen, so daß das Netzwerk die gewünschten Funktionen lernen kann. Der Fachmann würde eine Neuronalnetzwerkmodellbeschreibung von seinen Wichtungseinstellverfahren nehmen und diese Beschreibung mittels einer Computersprache seiner Wahl einfach in ein Programm konvertieren, das auf die Datenstruktur der Erfindung zugreift.
  • Block 235 liefert eine Routine, die durchgeführt wird, wenn die Verarbeitung der Schulungsepoche abgeschlossen ist. Diese Routine kann sich insgesamt von einem einfachen Clean-Up-Verfahren unterscheiden, z. B. dem Rücksetzen von Variablen auf eine kom plexere Einstellung von Datenbereichswerten, was von dem Neuronalnetzwerkmodell abhängig ist. Der Fachmann würde eine Neuronalnetzwerkmodellbeschreibung von seinem einzigartigen Ende der Epochenverarbeitung nehmen und diese Beschreibung mittels einer Computersprache seiner Wahl einfach in ein Programm konvertieren, die auf die Datenstruktur der Erfindung zugreift.
  • Block 236 speichert die Neural Network Model Teach Program Built in Subroutine 230, indem er ihr einen einzigartigen Namen gibt, und sie in den Speicher 12 (Fig. 1) schreibt. Block 239 kehrt zu Block 250 von Fig. 6A zurück.
  • Block 250 ruft die Build Neural Network Model Run Program Subroutine von Fig. 6D auf. Es wird nun Bezug auf Fig. 6D genommen. Die Subroutine 250 liefert Routinen, die später durch die Run Neural Network Subroutine (Fig. 8) ausgeführt werden können. Block 251 liefert eine einfache Routine, um das Neuronalnetzwerk zu initialisieren. Black 253 liefert eine Routine, um die eingegebenen Daten durch das Neuronalnetzwerk laufen zu lassen. Block 254 liefert eine Routine, um das ausgegebene Ergebnis an die Run Neural Network Subroutine zurückzugeben. Block 255 speichert die Neural Network Model Run Program Built in Subroutine 250, indem er ihr einen einzigartigen Namen gibt, und sie in den Speicher 12 (Fig. 1) schreibt. Block 259 kehrt zu Block 260 von Fig. 6A zurück.
  • Block 260 gibt den Namen des Neuronalnetzwerkmodells (z. B. "*BKP" für Back Propagation) und die Namen der Programme Erstellen, Lehren und Lauf für dieses Modell ein, das in den Blöcken 213, 236 und 255 in einer Modelldefinitionsdatei gespeichert wurde, die in Speicher 12 gespeichert ist. Block 270 kehrt zu Block 120 von Fig. 5 zurück.
  • In dem bevorzugten Ausführungsbeispiel sind die folgenden Neuronalnetzwerkmodelle zur Annehmlichkeit des Anwendungsentwick lers oder Benutzers vordefiniert worden: Back Propagation, Constraint Satisfaction Network, Adaptive Resonance Theory, Self Organizing Feature Maps und Self Organizing Routing Networks. Deshalb müssen diese Modelle nicht mit Hilfe der Define Neural Network Model Subroutine durch den Benutzer definiert werden.
  • Die verbleibenden Flußdiagramme werden in Verbindung mit der exemplarischen Münzenidentifizierung des Neuronalnetzwerks erörtert, die zuvor erklärt wurde. Es wird angenommen, daß ein Benutzer ein Neuronalnetzwerk erstellen möchte, das bestimmt, ob es sich bei der Münze um einen Penny, Nickel, Dime oder Quarter handelt, was auf den Eingabedaten beruht, die Attributinformationen über die Münze enthalten (ob es sich um eine Kupfer- oder Silbermünze handelt, ob das Profil der Person rechts oder links angeordnet ist, und ob sich ein Gebäude, ein Adler, Flügel oder eine Fackel auf der Münze befindet). Der Benutzer erstellt dieses Neuronalnetzwerk, indem Block 120 in Fig. 5 bejahend beantwortet wird und ruft die Create Neural Network Data Structure Subroutine in Block 300 (Fig. 7A) auf.
  • Block 3002 fordert den Benutzer zur Angabe der Problemart auf, wie dies in Fig. 11 dargestellt ist. Der Benutzer muß keine Erfahrung mit den verschiedenen Arten von Neuronalnetzwerkmodellen haben. Er wird lediglich in einer nichttechnischen Sprache aufgefordert, die Art des Problems auszuwählen, die er lösen möchte. Da unser Beispiel der Münzenidentifizierung ein Klassifizierungsproblem ist (Erkennung von einer Art der amerikanischen Münze, die auf ihren Merkmalen beruht), wählt der Benutzer Option 1.
  • Block 3004 fordert den Benutzer zur Angabe der Dateiinformation der Eingabedatei auf, wie dies in den Feldgruppen 1210 und 1220 in den Fig. 12A-12B dargestellt ist. Die Dateiinformation der Eingabedatei enthält den Namen, das Verzeichnis und das Glied der Eingabedatei zusammen mit der Dateiart und den zugehörigen Dateiparametern. Bei unserem Münzenbeispiel gibt der Benutzer "NNDATA, *CURLIB und COINDATA" als Namen, Verzeichnis und Glied der Eingabedatei ein. Die Inhalte von diesem Beispiel der Eingabedatei sind in Fig. 10A abgebildet.
  • Unser Dateibeispiel ist eine AS/400 Textdatei. Unser Benutzer gibt TEXT ein und drückt PF4 mit dem Cursor in dem Dateiparameterfeld. Dies führt dazu, daß Fig. 12B als Balkenfenster angezeigt wird, wodurch der Benutzer zur Eingabe der Felder pro Aufzeichnung und des verwendeten Begrenzerzeichens aufgefordert wird. In unserem Beispiel gibt der Benutzer 7 als Anzahl der Felder pro Aufzeichnung (6 Eingabefelder und ein Ausgabefeld) und gibt an, daß eine "Leerstelle" als Begrenzer dient (d. h. diese trennt die Felder voneinander). Auf diese Art und Weise können alle Eingabedateien, die in einer Vielzahl von Formaten erstellt wurden, die eine Vielzahl von Techniken benutzen, z. B. Daten aus einer Tabelle oder einer Datenbankdatei, erfolgreich von dem Neuronalnetzwerk benutzt werden, ohne daß der Benutzer die Daten neu strukturieren muß.
  • Block 3005 fragt den Benutzer nach einem optionalen, benutzerspezifischen Schnittstellenprogramm in der Feldgruppe 1230 von Fig. 12A. Wenn kein benutzerspezifisches Schnittstellenprogramm angegeben wird, wird ein Standard-Schnittstellenprogramm die erforderliche Übersetzung vornehmen. Dieses Standard-Schnittstellenprogramm liegt außerhalb des Bereichs dieser Erfindung, wird aber ausführlich in EP-A-0 509948 (mit dem Titel: "Apparatus and Method for Facilitating Use of a Neural Network", das zusammen mit diesem am gleichen Tag zugeteilt und eingereicht wurde) erörtert.
  • In unserem Beispiel wird ein benutzerspezifisches Programm angegeben, und dieses Programm wird benutzt, um die symbolische Eingabedatei, die in Fig. 10A abgebildet ist, in die übersetzte (numerische) Eingabedatei, die in Fig. 10B abgebildet ist, zu konvertieren, indem einfach jedes Eingabeattribut in eine "0" oder "1" in einer binären Kette konvertiert wird. Es ist zu beachten, daß das benutzerspezifische Schnittstellenprogramm das einzelne Ausgabefeld erweitert, das von dem Benutzer in vier binären Ausgabefeldern angegeben wird, um die möglichen Münzen in unserem Beispiel darzustellen.
  • Block 3006 fragt den Benutzer nach Dateioptionen, wie dies in der Feldgruppe 1240 in Fig. 12A dargestellt ist. Diese Dateioptionen geben an, wie die Eingabedatei vorverarbeitet werden kann (indem diese in bis zu zwei symbolische Eingabedateien, zwei numerische Eingabedateien und zwei binäre Eingabedateien aufgeteilt wird), bevor der Übersetzungsvorgang, der von dem schnittstellenspezifischen Programm ausgeführt beendet wird. Wenn der Benutzer die Eingabedatei in eine Schulungsdatei (die zum Schulen des Neuronalnetzwerks benutzt wird) und eine Testdatei (die benutzt wird, nachdem die Schulung abgeschlossen ist, und das Netzwerk verriegelt ist, um zu testen, wie effektiv die Schulung war) aufteilen möchte, wird der Prozentsatz der Aufteilung in die Felder 1236 und 1237 eingegeben. Wenn der Benutzer beispielsweise 70% seiner Eingabedatei als Schulungsdaten und 30% als Testdaten benutzen möchte, gibt er in Feld 1236 70 und 30 (oder *rest) in Feld 1237 ein. Der Benutzer könnte auch angeben, daß nur ein Untersatz der Eingabedatei benutzt wird, indem ein Prozentsatz kleiner als 100% angegeben wird.
  • Block 330 ruft die Run Model Create Program Subroutine von Fig. 7B auf. Es wird nun auf Fig. 7B Bezug genommen. Block 3031 prüft, ob ein benutzerspezifisches Schnittstellenprogramm vom Benutzer ausgewählt wurde. Andernfalls übersetzt Block 3035 automatisch die Eingabedatei mittels des Standard-Schnittstellenprogramms auf eine Art und Weise, wie dies ausführlich in EP-A- O 509948 erörtert wurde (Titel: "Apparatus and Method for Facilitating Use of a Neural Network").
  • Da in unserem Beispiel ein benutzerspezifisches Schnittstellenprogramm angegeben wurde, wird Block 3031 bejahend antworten, und die Steuerung geht zu Block 3036. Block 3036 läßt das angegebene benutzerspezifische Schnittstellenprogramm ablaufen, wobei die Eingabedatei übersetzt wird. In unserem Beispiel konvertiert Block 3036 die Eingabedatei aus dem symbolischen Format, das in Fig. 10A dargestellt ist, in das numerische Format, das in Fig. 10B abgebildet ist.
  • Es ist zu beachten, daß Felder in der Eingabedatei, die als "IGNORE" Felder (Fig. 12C) angegeben sind, während des Übersetzungsprozesses zerlegt werden. Da in unserem Beispiel keines von unseren Feldern zu den "IGNORE" Felder gehört, wird keines während des Übersetzungsprozesses von Fig. 10A bis Fig. 10B zerlegt.
  • Block 3040 fragt, ob dies ein Problem der Klassifizierungsart ist. Dies wird bestimmt, indem die Antwort des Benutzers in dem Bildschirm, der in Fig. 11 dargestellt ist, analysiert wird. Wenn der Benutzer angibt, daß es sich um ein Problem der Klassifizierungsart handelt, wird die Select Model for Classification Problem Type Subroutine in Block 3100 aufgerufen. Wenn es sich nicht um ein Problem der Klassifizierungsart handelt, fragt der Block 3045, ob es sich um ein Problem der Zeitreihenvorhersage handelt. Wenn der Benutzer angibt, daß es sich um ein Problem der Zeitreihenvorhersage handelt, wird die Select Model for Time Series Forecasting Problem Type Subroutine in Block 3200 aufgerufen.
  • Wenn es sich nicht um ein Problem der Zeitreihenvorhersage handelt, fragt Block 3050, ob dies ein Problem der Terminplanungsart ist. Wenn der Benutzer angibt, daß es sich um ein Problem der Terminplanungsart handelt, wird die Select Model for Scheduling Problem Type Subroutine in Block 3300 aufgerufen.
  • Wenn es sich nicht um ein Problem der Terminplanungsart handelt, fragt Block 3055, ob es sich um ein Problem der Ressourcenzuordnungsart handelt. Wenn der Benutzer angibt, daß es sich um ein Problem der Ressourcenzuordnungsart handelt, wird die Select Model for Resource Allocation Problem Type Subroutine in Block 3400 aufgerufen.
  • Wenn es sich nicht um ein Problem der Ressourcenzuordnungsart handelt, fragt Block 3060, ob dies ein Problem der Datenrekonstruktionsart ist. Wenn der Benutzer angibt, daß es sich um ein Problem der Datenrekonstruktionsart handelt, wird die Select Model for Data Reconstruction Problem Type Subroutine in Block 3500 aufgerufen.
  • Wenn es sich nicht um ein Problem der Datenrekonstruktionsart handelt, fragt Block 3065, ob dies ein Problem der Clusteranalyseart ist. Wenn der Benutzer angibt, daß es sich um ein Problem der Clusteranalyseart handelt, wird die Select Model for Cluster Analysis Problem Type Subroutine in Block 3600 aufgerufen.
  • Wenn es sich nicht um ein Problem der Clusteranalyseart handelt, fragt Block 3070, ob dies ein Problem der geschlossenen Pfadart ist. Wenn der Benutzer angibt, daß es sich um ein Problem der geschlossenen Pfadart handelt, wird die Select Model for Closed Path Problem Type Subroutine in Block 3700 aufgerufen.
  • Wenn keine dieser Problemarten angegeben wurde, wird die Benutzereingabe einen falschen Wert anzeigen, und eine Fehlermeldung wird in Block 3095 angezeigt. Die Ablaufsteuerung kehrt zu Block 3010 von Fig. 7A zurück, der fragt, ob ein Fehler aufgetreten ist. Da ein Fehler aufgetreten ist, geht die Ablaufsteuerung zu Block 3002 zurück, um den Benutzer wieder nach Informationen zu fragen.
  • Es wird wieder auf Fig. 7B Bezug genommen. Wenn Block 3040 angibt, daß der Benutzer ein Problem der Klassifizierungsart ausgewählt hat, ruft Block 3100 die Select Model for Classification Problem Type Subroutine von Fig. 7C auf. Es wird nun auf Fig. 7C Bezug genommen. Block 3101 prüft die Größe der Eingabedatei, indem er fragt, ob die Datei eine große Anzahl (überschreitet einen zuvor bestimmten Schwellwert von beispielsweise mehr als 256) an Ein- und Ausgabeeinheiten enthält.
  • Wenn Block 3101 bestimmt, daß die Datei keine große Anzahl an Ein- und Ausgabeeinheiten enthält, wie es in unserem Beispiel der Münzenidentifizierung der Fall ist, wählt Block 3105 das Back Propagation Neural Network Model als bestes Modell für Klassifizierungsprobleme mit einer kleinen Anzahl an Ein- und Ausgabeeinheiten aus. Block 3106 erstellt die Standard-Neuronalnetzwerkdatenstruktur für dieses Neuronalnetzwerkmodell, indem er die Routine ablaufen läßt, die in Block 212 von Fig. 6B bereitgestellt wird. Block 3110 setzt die Anzahl der Eingabeparameter für dieses Modell gleich der Anzahl Eingabeeinheiten, die in der übersetzten Dateneingabedatei vorhanden sind. Es ist zu beachten, daß der von dem kundenspezifischen Schnittstellenprogramm durchgeführte Übersetzungsprozeß eine unterschiedliche Anzahl von Eingabeeinheiten speichern kann, die in der übersetzten Dateneingabedatei vorhanden sind, als der Benutzer in dem Bildschirm angegeben hat, der in Fig. 12C abgebildet ist. In unserem Beispiel ist dieser Wert sechs. Block 3115 setzt die Anzahl des 1. verborgenen Eingabeparameters für dieses Modell gleich der Anzahl der Eingaben, die in der übersetzten Dateneingabedatei vorhanden sind, plus der Anzahl von Ausgaben, die in der übersetzten Dateneingabedatei vorhanden sind, plus 1. In unserem Beispiel ist dieser Wert elf (6 + 4 + 1). Block 3120 setzt die Anzahl des 2. verborgenen Eingabeparameters für dieses Modell auf Null, und Block 3125 setzt die Anzahl des 3. verborgenen Eingabeparameters für dieses Modell auf Null. Block 3130 setzt die Anzahl der Ausgabeparameter für dieses Modell gleich der Anzahl der Ausgaben, die in der übersetzten Dateneingabedatei vorhanden sind. In unserem Beispiel ist dieser Wert eins. Die Architektur, die für dieses Neuronalnetzwerkmodell in den Blöcken 3110-3130 erstellt wurde, wurde für diese Art von Problem und für diese Art von Eingabedatenformat als geeignet bestimmt. Andere Architekturen für dieses Modell und für die nachfolgend erörterten Modelle könnten auch geeignet sein, wie dies der Fachmann schätzen würde.
  • Wie aus dem obigen Beispiel hervorgeht, wurde das geeignete Neuronalnetzwerkmodell und die Architektur automatisch für den Benutzer ausgewählt, ohne daß besondere Kenntnisse in der Neuronalnetzwerktechnologie vorhanden sein müssen. Der Benutzer muß nicht die Parameter verstehen, die für jedes Neuronalnetzwerkmodell spezifisch sind, oder wissen, daß sie existieren. Der Benutzer muß nur - in nichttechnischen Worten - die Art des Problems kennen, das er versucht zu lösen und einige Verwendungsinformationen über seine eingegebenen Daten, z. B. ob ein Feld Ein- oder Ausgabedaten enthält. Die Subroutine kehrt von Block 3199 zu Block 3080 von Fig. 7B zurück.
  • Die Neuronalnetzwerkdatenstruktur, die für dieses Modell und die nachfolgenden Modelle erstellt wird, wird als "basierend" auf den eingegebenen Verwendungsinformationen betrachtet, die der Benutzer angegeben hat, da die vom Benutzer angegebene Information durch den Übersetzungsprozeß veränderbar ist, um die übersetzte Datendatei (die benutzt wird, um die Parameterwerte für die Datenstruktur zu bestimmen) zu erstellen. Die Beschreibung der Problemart in "nichttechnischen Worten" bedeutet eine andere Terminologie als der Name eines Neuronalnetzwerkmodell, das adäquat die Problemart beschreibt.
  • Wenn Block 3101 bestimmt, daß die Anzahl der Ein- und Ausgabeeinheiten groß ist, wählt Block 3150 das Learning Vector Quantization Neural Network Model als bestes Modell für Klassifizierungsprobleme mit einer großen Anzahl an Ein- und Ausgabe einheiten. Obwohl dieses in dem bevorzugten Ausführungsbeispiel nicht vordefiniert ist, kann dieses bekannte Neuronalnetzwerkmodell - wie zuvor erörtert - definiert werden. Block 3151 erstellt die Standard-Neuronalnetzwerkdatenstruktur für dieses Neuronalnetzwerkmodell, indem die Routine abläuft, die in Block 212 von Fig. 6B bereitgestellt wird. Block 3155 setzt die Anzahl der Eingabeparameter für dieses Modell gleich der Anzahl Eingaben, die in der übersetzten Dateneingabedatei vorhanden sind. Block 3160 setzt die Anzahl von Ausgabeparameter für dieses Modell gleich der Anzahl Ausgaben, die in der übersetzten Dateneingabedatei vorhanden sind. Die Architektur, die für dieses Neuronalnetzwerkmodell in den Blöcken 3155 und 3160 erstellt wurde, wurde für diese Art von Problem und diese Art von Eingabedatenformat als geeignet bestimmt. Die Subroutine kehrt von Block 3199 zu Block 3080 in Fig. 7B zurück.
  • Es wird wieder auf Fig. 7B Bezug genommen. Wenn Block 3045 angibt, daß der Benutzer ein Problem der Zeitreihenvorhersageart ausgewählt hat, ruft Block 3200 die Select Model for Time Series Forecasting Problem Type Subroutine aus Fig. 7D auf. Es wird nun auf Fig. 7D Bezug genommen. Block 3205 wählt das Back Propagation Neural Network Model als bestes Modell für Zeitreihenvorhersageprobleme aus. Block 3206 erstellt die Standard- Neuronalnetzwerkdatenstruktur für dieses Neuronalnetzwerkmodell, indem er die Routine ablaufen läßt, die in Block 212 von Fig. 6B vorgesehen ist. Da zusätzliche Verwendungsinformationen für die Zeitreihenvorhersageprobleme eingegeben werden müssen, verlangt Block 3208 diese zusätzlichen Informationen von dem Benutzer, wie dies im Bildschirm von Fig. 12E-1 dargestellt ist. Die zusätzliche Information, die benötigt wird, hat "Fenstergröße". Der Benutzer gibt die Größe des eingeschobenen Fensters mit Daten an, die benutzt werden, um den Zeitraum für die Zeitreihenvorhersage zu setzen. Wenn die eingegebenen Daten beispielsweise den Closing Dow Jones Industrial Average für jeden Tagen enthalten, und es wünschenswert ist, das Neuronal netzwerk zu lehren, wie es lernt, diese durchschnittlichen Schwankungen auf einer wöchentlichen Basis vorherzusagen, würde der Benutzer die Fenstergröße auf fünf setzen (für jeden Wochentag). Block 3210 setzt die Eingabeparameter für dieses Modell gleich der Anzahl Eingaben, die in der übersetzten Dateneingabedatei vorhanden sind. Block 3215 setzt die Anzahl des 1. verborgenen Eingabeparameters für dieses Modell gleich der Anzahl von Eingaben, die in der übersetzten Dateneingabedatei vorhanden sind, plus der Anzahl von Ausgaben, die in der übersetzten Dateneingabedatei vorhanden sind, plus 1. Block 3220 setzt die Anzahl des 2. verborgenen Eingabeparameters für dieses Modell auf Null, und Block 3225 setzt die Anzahl des 3. verborgenen Eingabeparameters für dieses Modell auf Null. Block 3230 setzt die Anzahl der Ausgabeparameter für dieses Modell gleich der Anzahl Ausgaben, die in der übersetzten Dateneingabedatei vorhanden sind. Block 3235 setzt den Parameter für die Fenstergröße für dieses Modell gleich der Fenstergröße, die von dem Benutzer in dem Bildschirm angegeben wird, der in Fig. 12E- 1 abgebildet ist. Die Architektur, die für dieses Neuronalnetzwerkmodell in den Blöcken 3210-3235 erstellt wurde, wurde als für diese Art von Problem und diese Art von Eingabedatenformat als geeignet angesehen. Die Subroutine kehrt von Block 3299 zu Block 3080 in Fig. 7B zurück.
  • Es wird nun auf Fig. 7B Bezug genommen. Wenn Block 3050 angibt, daß der Benutzer ein Problem der Terminplanungsart ausgewählt hat, ruft Block 3300 die Select Model for Scheduling Problem Type Subroutine von Fig. 7E auf. Es wird nun auf Fig. 7E Bezug genommen. Block 3305 wählt das Constraint Satisfaction Neural Network Model als bestes Modell für Terminplanungsprobleme aus. Block 3306 erstellt die Standard-Neuronalnetzwerkdatenstruktur für dieses Neuronalnetzwerkmodell, indem er die Routine ablaufen läßt, die in Block 212 von Fig. 6B bereitgestellt wird. Da zusätzliche Verwendungsinformationen für die Terminplanungsprobleme eingegeben werden müssen, verlangt Block 3310 diese zusätzliche Information von dem Benutzer, wie dies in den Bild schirmen von Fig. 12F-12H dargestellt ist. Die zusätzliche Information des Benutzers wird von Block 3310 verarbeitet, um eine "Anzahl von Aufgaben", eine "Anzahl von Ressourcen" und eine "Anzahl von Einschränkungen" in einer Art und Weise bereitzustellen, die ausführlicher in Kapitel 4 des Dokuments mit dem Titel "Application System/400 - Neural Network Utility/400" beschrieben wird.
  • Block 3315 setzt die Anzahl von Aufgabenparametern für dieses Modell gleich der Anzahl Aufgaben, die der Benutzer in dem Bildschirm angegeben hat, der in Fig. 12F dargestellt ist. Block 3320 setzt die Anzahl von Ressourcenparameter für dieses Modell gleich der Anzahl Ressourcen, die der Benutzer in dem Bildschirm angegeben hat, der in Fig. 12F abgebildet ist. Block 3330 setzt die Anzahl der Einschränkungsparameter für dieses Modell gleich der Anzahl Einschränkungen, die der Benutzer in dem Bildschirm angegeben hat, der in Fig. 12H abgebildet ist. Die Architektur, die für dieses Neuronalnetzwerkmodell in den Blöcken 3315-3330 erstellt wurde, wurde als für diese Art von Problem und diese Art von Eingabedatenformat für geeignet gehalten. Die Subroutine kehrt von Block 3399 zu Block 3080 in Fig. 7B zurück.
  • Es wird nun auf Fig. 7B Bezug genommen. Wenn Block 3055 angibt, daß der Benutzer ein Problem der Ressourcenzuordnungsart ausgewählt hat, ruft Block 3400 die Select Model for Resource Allocation Problem Type Subroutine in Fig. 7F auf. Es wird nun auf Fig. 7F Bezug genommen. Block 3405 wählt das Constraint Satisfaction Neural Network Modell als bestes Modell für Ressourcenzuordnungsprobleme aus. Block 3406 erstellt die Standard-Neuronalnetzwerkdatenstruktur für dieses Neuronalnetzwerkmodell, indem er die Routine ablaufen läßt, die in Block 212 von Fig. 6B bereitgestellt wird. Da zusätzliche Verwendungsinformationen für Ressourcenzuordnungsprobleme eingegeben werden müssen, verlangt Block 3410 diese zusätzliche Information vom Benutzer, wie dies in den Bildschirmen von Fig. 12F-12H dargestellt ist. Die zusätzliche Information des Benutzers wird von Block 3310 verarbeitet, um eine "Anzahl von Aufgaben", eine "Anzahl von Ressourcen" und eine "Anzahl von Einschränkungen" bereitzustellen, wie dies bereits erörtert wurde. Block 3415 setzt die Anzahl der Aufgabenparameter für dieses Modell gleich der Anzahl Aufgaben, die der Benutzer in dem Bildschirm angegeben hat, der in Fig. 12F abgebildet ist. Block 3420 setzt die Anzahl der Ressourcenparameter für dieses Modell gleich der Anzahl Ressourcen, die der Benutzer in dem Bildschirm angegeben hat, der in Fig. 12F abgebildet ist. Block 3430 setzt die Anzahl der Einschränkungsparameter für dieses Modell gleich der Anzahl Einschränkungen, die der Benutzer in dem Bildschirm angegeben hat, der in Fig. 12H abgebildet ist. Die Architektur, die für dieses Neuronalnetzwerkmodell in den Blöcken 3415- 3430 erstellt wurde, wurde als für diese Art von Problem und für diese Art von Eingabedatenformat für geeignet gehalten. Die Subroutine kehrt von Block 3499 zu Block 3080 in Fig. 7B zurück.
  • Es wird nun wieder auf Fig. 7B Bezug genommen. Wenn Block 3060 angibt, daß der Benutzer ein Problem der Datenrekonstruktionsart ausgewählt hat, ruft Block 3500 die Select Model for Data Reconstruction Problem Type Subroutine von Fig. 7G auf. Es wird nun auf Fig. 7G Bezug genommen. Block 3505 wählt das Back Propagation Neural Network Model als bestes Modell für Datenrekonstruktionsprobleme mit binären Eingabedaten aus. Block 3506 erstellt die Standard-Neuronalnetzwerkdatenstruktur für dieses Neuronalnetzwerkmodell, indem er die Routine ablaufen läßt, die in Block 212 von Fig. 6B bereitgestellt wird. Block 3510 setzt die Anzahl der Eingabeparameter für dieses Modell gleich der Anzahl Eingaben, die in der übersetzten Dateneingabedatei vorhanden sind. Block 3515 setzt die Anzahl des 1. verborgenen Eingabeparameters für dieses Modell gleich der Anzahl Eingaben, die in der übersetzten Dateneingabedatei vorhanden sind, plus der Anzahl der Ausgaben, die in der übersetzten Dateneingabedatei vorhanden sind, geteilt durch zwei. Wenn das Ergebnis ein gebrochener Wert ist, wird dieser auf die nächste Ganzzahl (z. B. 2,1 wird 3) gerundet. Block 3520 setzt die Anzahl des 2. verborgenen Eingabeparameters für dieses Modell auf Null, und Block 3525 setzt die Anzahl des 3. verborgenen Eingabeparameters für dieses Modell auf Null. Block 3530 setzt die Anzahl der Ausgabeparameter für dieses Modell gleich der Anzahl von Ausgaben, die in der übersetzten Dateneingabedatei vorhanden sind. Die Architektur, die für dieses Neuronalnetzwerkmodell in den Blöcken 3510-3530 erstellt wurde, wurde als für diese Art von Problem und diese Art von Eingabedatenformat für geeignet gehalten. Die Subroutine kehrt von Block 3599 zu Block 3080 in Fig. 7B zurück.
  • Es wird nun wieder auf Fig. 7B Bezug genommen. Wenn Block 3065 angibt, daß der Benutzer ein Problem der Clusteranalyseart ausgewählt hat, ruft Block 3600 die Select Model for Cluster Analysis Problem Type Subroutine in Fig. 7H auf. Es wird nun auf Fig. 7H Bezug genommen. Block 3601 fragt, ob die Daten in der Eingabedatendatei in binärem oder echtem Format sind.
  • Die Daten in der Eingabedatendatei sind binär, wenn alle Daten entweder "0" oder "1" sind. Die Daten in der Eingabedatendatei sind echt, wenn einige der Daten gebrochene Werte zwischen 0 und 1 aufweisen, z. B. "0,25". Block 3101 tastet die Eingabedatendatei ab, die ein Feld sucht, das Daten mit echten Werten enthält. Wenn keine gefunden werden (d. h. alle Felder enthalten binäre Daten), dann ist das Eingabedatenformat "binär". Ansonsten ist das Eingabedatenformat "echt".
  • Wenn Block 3601 bestimmt, daß die Daten in der Eingabedatendatei binär sind, wählt Block 305 das Adaptive Resonance Neural Network Model als bestes Modell für Clusteranalyseprobleme mit binären Eingabedaten aus. Block 3600 erstellt die Standard-Neu ronalnetzwerkdatenstruktur für dieses Neuronalnetzwerkmodell, indem er die Routine ablaufen läßt, die in Block 212 von Fig. 6B bereitgestellt wird. Block 3610 setzt die Anzahl der Eingabeparameter für dieses Modell gleich der Anzahl von Eingaben, die in der übersetzten Dateneingabedatei vorhanden sind. Block 3615 setzt die Anzahl der Ausgabeparameter für dieses Modell gleich der Anzahl von Ausgaben, die in der übersetzten Dateneingabedatei vorhanden sind. Die Architektur, die für diese Neuronalnetzwerk in den Blöcken 3610-3615 erstellt wurde, wurde als für diese Art von Problem und diese Art von Eingabedatenformat für geeignet gehalten. Die Subroutine kehrt von Block 3699 zu Block 3080 in Fig. 7B zurück.
  • Wenn Block 3601 bestimmt, daß die Daten in der Eingabedatendatei echt sind, wählt Block 3650 das Self Organizing Feature Map Neural Network Model als bestes Modell für Clusteranalyseprobleme mit Eingabedaten mit echten Werten aus. Block 3651 erstellt die Standard-Neuronalnetzwerkdatenstruktur für dieses Neuronalnetzwerkmodell, indem er die Routine ablaufen läßt, die in Block 212 von Fig. 6B bereitgestellt wird. Da zusätzliche Verwendungsinformationen für Clusteranalyseprobleme eingegeben werden müssen, verlangt Block 3652 diese zusätzlichen Informationen vom Benutzer, wie dies im Bildschirm von Fig. 12E-2 dargestellt ist. Die zusätzlich verlangte Information ist die "Anzahl der Cluster". Block 3655 setzt die Anzahl der Eingabeparameter für dieses Modell gleich der Anzahl Eingaben, die in der übersetzten Dateneingabedatei vorhanden sind. Block 3660 setzt die Anzahl von Zeilenparameter für dieses Modell gleich der Obergrenze (Zahl, die auf die nächste Zahl aufgerundet wurde) der Quadratwurzel der Anzahl der Cluster, die von dem Benutzer in Fig. 12E-2 angegeben wird. Block 3665 setzt die Anzahl der Spaltenparameter für dieses Modell gleich der Obergrenze der Quadratwurzel der Anzahl Cluster, die von dem Benutzer in Fig. 12E-2 angegeben wurde. Die Architektur, die für dieses Neuronalnetzwerkmodell in den Blöcken 3655 bis 3665 er stellt wurde, wurde als für diese Art von Problem und diese Art von Eingabedatenformat für geeignet gehalten. Die Subroutine kehrt von Block 3699 zu Block 3080 in Fig. 7B zurück.
  • Es wird nun wieder auf Fig. 7B Bezug genommen. Wenn Block 3070 angibt, daß der Benutzer ein Problem der geschlossenen Pfadart ausgewählt hat, ruft Block 3700 die Select Model for Closed Path Problem Type Subroutine in Fig. 7I auf. Es wird nun auf Fig. 7I Bezug genommen. Block 3705 wählt das Self Organizing Routing Neural Network Model als bestes Modell für geschlossene Pfadprobleme aus. Block 3706 erstellt die Standard-Neuronalnetzwerkdatenstruktur für dieses Neuronalnetzwerkmodell, indem er die Routine ablaufen läßt, die in Block 212 von Fig. 6B bereitgestellt wird. Da zusätzliche Verwendungsinformationen für geschlossene Pfadprobleme eingegeben werden müssen, verlangt Block 3710 diese zusätzliche Information von dem Benutzer, wie dies auf dem Bildschirm von Fig. 12E-3 dargestellt ist. Die zusätzliche Information, die benötigt wird, ist die "maximale Anzahl von Zielen". Block 3715 setzt die maximale Anzahl von Zielparametern für dieses Modell gleich der maximalen Anzahl von Zielen, die der Benutzer in dem Bildschirm angegeben hat, der in Fig. 12E-3 abgebildet ist. Die Architektur, die für dieses Neuronalnetzwerkmodell in Block 3715 erstellt wurde, wurde als für diese Art von Problem und diese Art von Eingabedatenformat für geeignet gehalten. Die Subroutine kehrt von Block 3799 zu Block 3080 in Fig. 7B zurück.
  • Es wird nun wieder auf Fig. 7B Bezug genommen. Wenn die Subroutinen 3100-3700 zurückkehren, gehen sie alle zu Block 3080. Block 3080 teilt die Eingabedatendatei (oder Dateien) in eine Schulungseingabedatei (oder Dateien) und eine Testeingabedatei (oder Dateien) in dem Verhältnis auf, das von dem Benutzer in Fig. 12A angegeben wurde. In unserem Beispiel hat der Benutzer angegeben, daß 100% der Eingabedatei als Schulungsdaten genutzt werden sollten. Deshalb wird die gesamte Eingabedatei als Schu lungseingabedatei benutzt. Block 3081 füllt die Parameter und Bereiche aus, die für das ausgewählte Neuronalnetzwerkmodell in der Standard-Neuronalnetzwerkdatenstruktur bestimmt wurden.
  • Nachdem Block 3081 ausgeführt wurde, enthält das Beispiel unserer Neuronalnetzwerkdatenstruktur alle Informationen, die benötigt werden, um das Neuronalnetzwerk zu lehren, wie es Münzen aus den Eingabedaten identifizieren kann, die seine Attribute beschreiben (oder ein anderes Netzwerk mit sechs Eingängen und vier Ausgängen). Block 3085 ordnet der Datenstruktur einen Dateinamen zu und speichert diese in Speicher 12 (Fig. 1). Die Subroutine kehrt von Block 339 zu Block 305 in Fig. 7A zurück. Block 305 kehrt zu Block 130 in Fig. 5 zurück.
  • Es ist zu bemerken, daß, sobald eine Neuronalnetzwerkdatenstruktur erstellt wurde, diese in ein anderes Computersystem transportiert werden kann, um gelehrt zu werden und/oder abzulaufen. Das andere Computersystem kann eine ganz andere Architektur haben und mit einem ganz anderen Betriebssystem laufen als das Computersystem, das die Neuronalnetzwerkdatenstruktur erstellte. Diese Flexibilität ist möglich, da die Datenstruktur Daten enthält, die universell in verschiedenen Computersystemen benutzt werden können.
  • Da unser Benutzer sein neu erstelltes Neuronalnetzwerk schulen möchte, damit dieses Münzen identifizieren kann, bejaht er Block 130 in Fig. 5, und ruft dadurch die Teach Neural Network Subroutine in Block 400 (Fig. 8) auf. Es wird nun auf Fig. 8A Bezug genommen. Block 401 fragt den Benutzer nach dem Namen des Neuronalnetzwerks und dem Namen des Verzeichnisses, wie dies in Fig. 14 dargestellt ist. Der Benutzer gibt "COINNET" als Namen des Neuronalnetzwerks und "*CURLIB" als Verzeichnisnamen ein. Fig. 14 gibt dem Benutzer auch Gelegenheit, den Namen eines benutzerspezifischen Schnittstellenprogramms einzugeben, das er speichern kann, um ggf. die Nutzbarkeit seines besonderen Neu ronalnetzwerk zu schreiben. Außerdem wird der Benutzer gefragt, ob er möchte, daß die Schulungsergebnisse protokolliert oder angezeigt werden, und (wenn ein kundenspezifisches Schnittstellenprogramm vorhanden ist), ob er möchte, daß die Schulungsdaten automatisch aus dem Datensatz herausgenommen werden, oder schrittweise von dem Benutzer, wenn er die Taste ENTER drückt. Block 402 stellt fest, ob die Datenstruktur, die in Block 401 angegeben wurde, vorhanden ist. Andernfalls wird ein Fehler eingegeben, und der Benutzer kehrt zu Block 401 zurück. Wenn dies der Fall ist, fragt Block 403 den Benutzer nach dem Namen des Datensatzes, in dem sich die Schulungsdaten befinden. Wie Fig. 13 zeigt, gibt der Benutzer "QANWCOIN" als Datensatz ein und "COINDEMO" als Datensatzglied, in dem sich die Schulungsdaten befinden.
  • Fig. 10A zeigt die Schulungsdaten, die in unserem Beispiel benutzt werden. Es ist zu bemerken, daß die Daten in einem symbolischen (lesbaren) Format gespeichert sind, um die Nutzbarkeit zu verbessern und ein definiertes Datenbankformat zu unterstützen, z. B. SQL oder dBASEIII. Block 404 stellt fest, daß der Datensatz vorhanden ist, daher fragt Block 405 den Benutzer nach dem Namen des kundenspezifischen Schnittstellenprogramms, sofern vorhanden. Wenn im Datensatz symbolische Daten gespeichert sind, ist ein benutzerspezifisches Schnittstellenprogramm notwendig, um die symbolischen Daten (die Menschen verstehen) in numerische Daten (die Neuronalnetzwerke verstehen) zu konvertieren. In unserem Beispiel wurde in Fig. 13 (QNWGCOIN) ein kundenspezifisches Schnittstellenprogramm angegeben, und dieses Programm konvertierte die symbolischen Schulungsdaten, die in Fig. 10A abgebildet sind, in die numerische Schulungseingabedatei, die in Fig. 10B abgebildet ist, indem lediglich jedes Eingabeattribut in eine "0" oder eine "1" in einer binären Kette konvertiert wird. In unserem Beispiel stellt eine vierstellige binäre Zahl die vier möglichen Ausgabestatus dar. Wenn ein kundenspezifisches Schnittstellenprogramm angegeben wurde, das aber nicht vorhanden ist, antwortet Block 406 positiv, und die Ablaufsteuerung kehrt zu Block 405 zurück. Ansonsten ruft Block 420 die Run Model Teach Program Subroutine für dieses Modell in Fig. 8B auf. Das Model Teach Program wurde von der Build Model Teach Program Subroutine von Fig. 6C vorbereitet, wie dies erörtert wurde.
  • Es wird nun auf Fig. 8B Bezug genommen. Block 433 führt die Initialisierungsroutine aus, die von Block 233 in Fig. 6C erstellt wurde. Block 421 prüft, um festzustellen, ob ein kundenspezifisches Schnittstellenprogramm angegeben wurde. Falls ja, wie dies in unserem Beispiel der Fall ist, erhält Block 422 die Daten vom kundenspezifischen Schnittstellenprogramm (numerische Daten, die in Fig. 10B abgebildet sind). Ansonsten werden die Schulungsdaten im numerischen Format im Datensatz gespeichert, und Block 423 erhält die Daten direkt aus dem Datensatz. Block 424 führt einen Lehrschritt aus, indem er die vom Neuronalnetzwerkmodell abhängige Routine ablaufen läßt, die von Block 234 in Fig. 6C bereitgestellt wird. In unserem Beispiel werden die Werte der Daten in den Datenbereichen im Rahmen 90 eingestellt, um den Fehler zwischen den gewünschten und den tatsächlichen Netzwerkausgaben zu reduzieren. Block 425 prüft wiederum auf ein kundenspezifisches Schnittstellenprogramm. Wenn dies vorhanden ist, prüft Block 426, um festzustellen, ob der Benutzer die Werte der Daten in der Datenstruktur anzeigen lassen möchte. Wenn dies der Fall ist, wird ein kundenspezifischer Bildschirm, der von dem kundenspezifischen Schnittstellenprogramm erstellt wurde, in Block 427 angezeigt. Das Beispiel des kundenspezifischen Bildschirms ist in den Fig. 19A-19D dargestellt. Wenn kein kundenspezifisches Schnittstellenprogramm vorhanden ist, aber der Benutzer die Daten anzeigen lassen möchte, wird in Block 428 ein Standardbildschirm angezeigt. Ein Beispiel des Standardbildschirms ist in Fig. 15 abgebildet.
  • Es wird nun wieder auf Fig. 8B Bezug genommen. Block 429 prüft, um festzustellen, ob der Benutzer die Daten protokollieren las sen möchte. Falls ja, führt Block 430 die kundenspezifische Protokollierung oder die Standardprotokollierung der Daten aus. In jedem Fall prüft Block 434, um festzustellen, ob eine Epoche abgeschlossen worden ist. Eine Epoche ist abgeschlossen, wenn alle Schulungsdaten im Datensatz einmal verarbeitet wurden. Wenn nicht, kehrt die Steuerung zu Block 421 zurück, um die nächsten Schulungsdaten zu erhalten. Wenn eine Epoche abgeschlossen wurde, führt Block 435 das Ende der Epochenverarbeitungsroutine aus, die von Block 235 in Fig. 6C erstellt wurde.
  • Block 431 prüft dann, um festzustellen, ob die Anzahl von Wiederholungen, die von dem Benutzer angegeben wurde, beendet wurde. Bis dies geschieht, antwortet Block 431 verneinend, und der Fluß kehrt zu Block 421 zurück, um eine andere Wiederholung durch die Schulungsdaten auszuführen. Wenn die Schulungsperiode abgeschlossen ist, wird Block 431 bejaht. Die Subroutine kehrt von Block 439 zu Block 407 in Fig. 8A zurück. Block 407 kehrt zu Block 140 in Fig. 5 zurück.
  • Da unser Benutzer sein neu geschultes Neuronalnetzwerk ablaufen lassen möchte, um Münzen zu identifizieren, beantwortet er Block 140 mit JA in Fig. 5 und ruft so die Run Neural Network Subroutine in Block 500 (Fig. 9) auf. Alternativ kann ein Anwendungsprogramm die Run Neural Network Subroutine direkt aufrufen und somit Fig. 5 umgehen.
  • Es wird nun auf Fig. 9A Bezug genommen. Block 501 führt die Initialisierungsroutine aus, die von Block 251 in Fig. 6D erstellt wurde. Block 502 bestimmt den Namen des Neuronalnetzwerks. Block 530 ruft die Run Model Run Program Subroutine für dieses Modell von Fig. 9B auf. Das Model Run Program wurde von der Build Model Run Program Subroutine von Fig. 6D vorbereitet, wie dies erörtert wurde.
  • Es wird nun auf Fig. 9B Bezug genommen, Block 531 läßt die Eingabedaten durch das Neuronalnetzwerk ablaufen und schickt diese an die Run Neural Network Subroutine 500 zurück, wenn Block 533 zu Block 510 (Fig. 9A) zurückkehrt. Block 531 führt die Routine aus, die in den Blöcken 253 und 254 in Fig. 6D erstellt wurde.
  • Die Subroutine 500 kehrt von Block 519 zu Block 190 in Fig. 5 zurück, wo das Programm endet oder kehrt alternativ zu dem Anwendungsprogramm zurück, das es aufgerufen hat.
  • Die Fig. 19A-19D zeigen, wie das Beispiel unseres Neuronalnetzwerks zur Münzenidentifizierung korrekt einen Penny, Nickel, Dime und Quarter identifiziert hat. Fig. 20 zeigt, was geschehen würde, wenn die folgenden Eingabedaten durch das Neuronalnetzwerk laufen: BRONZE LEFT Y N N N (numerisch durch 011000 dargestellt). Wir fordern unser Netzwerk auf, eine Bronzemünze mit einem linken Profil zu identifizieren, ein Gebäude, aber keinen Adler, Flügel oder eine Fackel. Das Netzwerk nimmt an, daß diese Münze ein Nickel ist, aber die Nickelannahme errechnet nur 0,4865323. Das Neuronalnetzwerk ist am zuversichtlichsten mit einer Punktzahl, die bei etwa 1,00000 liegt. In diesem Beispiel ist es eindeutig, daß es nicht zu zuversichtlich ist, daß diese Münze ein Nickel ist. Tatsächlich gibt es keine solche Münze, die diese Attribute hat, somit hatte das Netzwerk recht, einen hohen Grad an Unsicherheit zu zeigen.
  • Obgleich diese Erfindung mit Bezug auf das bevorzugte Ausführungsbeispiel beschrieben wurde, wird es für den Fachmann klar sein, daß verschiedene Änderungen im Detail gemacht werden können, ohne daß von der Lehre der Erfindung abgewichen wird. Die Auswahl eines spezifischen Neuronalnetzwerkmodells für eine bestimmte Problemart könnte komplexer werden, wenn mehr Modelle definiert würden, aus denen die Auswahl getroffen werden kann. Der Auswahlprozeß könnte auf einer Ganzzahleingabe zusammen mit echten und binären Datentypen basieren. Die Größe der Eingabedaten könnte nach der Größe der anderen benutzerspezifischen Parameter suchen, z. B. der Fenstergröße oder der maximalen Anzahl von Zielen.

Claims (14)

1. Ein Verfahren zur Erstellung einer Neuronalnetzwerkdatenstruktur für ein Neuronalnetzwerk für eine Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme in einem Datenverarbeitungssystem, wobei die Neuronalnetzwerkbenutzeroberfläche, die einen Satz Dienstprogramme enthält, die Daten in eine Neuronalnetzwerkdatenstruktur überträgt und aus dieser überträgt, indem ein Benutzer nach einer Problemart (3002) gefragt wird, die von dem Neuronalnetzwerk gelöst werden soll und nach einer Eingabedatendatei (3004), wobei dieses Verfahren Schritte enthält, um
- ein Neuronalnetzwerkmodell auszuwählen (3005, 3006), das auf dieser Problemart und dieser Eingabedatendatei basiert;
- den Benutzer nach der Verwendungsinformation der Eingabedaten in diesem Neuronalnetzwerk zu fragen (3008); und
- eine Neuronalnetzwerkdatenstruktur (50) für das Neuronalnetzwerkmodell zu erstellen (330), das von diesem Auswahlschritt ausgewählt wird, der auf der Verwendungsinformation der Eingabedaten basiert;
wobei die Neuronalnetzwerkdatenstruktur in einer Vielzahl von spezifischen Neuronalnetzwerkmodellen abgebildet ist, die von der Neuronalnetzwerkbenutzeroberfläche unterstützt werden, um so die Neuronalnetzwerkdatenstruktur generisch zu machen, so daß auf diese von allen Dienstprogrammen in dieser Neuronalnetzwerkdatenstruktur zugegriffen werden kann.
2. Das Verfahren aus Anspruch 1, wobei diese Eingabedatendatei eine Eingabedatengröße und ein Eingabedatenformat hat.
3. Das Verfahren aus Anspruch 2, das außerdem Schritte enthält, um
eine Angabe von diesem Benutzer zu empfangen (Fig. 7C), daß diese Problemart eine Klassifizierungsproblemart (3040) ist, nachdem der Benutzer nach einer Problemart gefragt wurde; und
um zu bestimmen (3101), daß die Eingabedatengröße kleiner als ein zuvor bestimmter Schwellwert ist, nachdem der Benutzer nach einer Eingabedatendatei gefragt wurde, und um ein Back Propagation Neural Network Model auszuwählen (3105), das auf dieser Problemart und der Größe dieser Eingabedatendatei basiert;
und wobei diese Verwendungsinformation der Eingabedaten eine vom Benutzer angegebene Anzahl von Eingaben (3110) und einem vom Benutzer angegebene Anzahl von Ausgaben (3130) enthält.
4. Das Verfahren aus Anspruch 3, wobei, nachdem der Benutzer nach einer Eingabedatendatei gefragt wurde, bestimmt wird, ob die Größe der Eingabedatendatei einen zuvor bestimmten Schwellwert überschreitet, um ein Learning Vector Quantization Neural Network Model auszuwählen (3150).
5. Das Verfahren aus Anspruch 3 oder 4, wobei die Verwendungsinformation der Eingabedaten eine vom Benutzer angegebene Anzahl von Ausgaben und eine vom Benutzer angegebene Fenstergröße (3235) enthält.
6. Das Verfahren aus Anspruch 1, wobei die Problemart (Fig. 7E) ein Problem der Terminplanungsart (3050) ist, und die Verwendungsinformation der Eingabedaten eine vom Benutzer angegebene Anzahl von Aufgaben, eine vom Benutzer angege bene Anzahl von Ressourcen und eine vom Benutzer angegebene Anzahl von Einschränkungen enthält, um ein Constraint Satisfaction Neural Network Model auszuwählen (3305), um die Neuronalnetzwerkdatenstruktur für dieses Neuronalnetzwerkmodell zu erstellen.
7. Das Verfahren aus Anspruch 1, wobei die Problemart (Fig. 7F) ein Problem der Ressourcenzuordnungsart (3055) ist, und die Verwendungsinformation der Eingabedaten eine vom Benutzer angegebene Anzahl von Aufgaben, eine vom Benutzer angegebene Anzahl von Ressourcen und eine vom Benutzer angegebene Anzahl von Einschränkungen enthält, um ein Constraint Satisfaction Neural Network Modell auszuwählen (3405) und die Neuronalnetzwerkdatenstruktur für das Neuronalnetzwerkmodell zu erstellen.
8. Das Verfahren aus Anspruch 2, das außerdem Schritte enthält, um
eine Angabe von dem Benutzer zu erhalten, daß diese Problemart (Fig. 7 G) ein Datenrekonstruktionsproblem (3060) ist, nachdem der Benutzer nach der Problemart gefragt wurde; und
um zu bestimmen, daß die Eingabedatengröße ein echter Wert ist, nachdem der Benutzer nach einer Eingabedatendatei gefragt wurde; und um ein Back Propagation Neural Network Model auszuwählen (3505), das auf dieser Problemart und der Größe der Eingabedatendatei basiert;
und wobei die Verwendungsinformation der Eingabedaten eine vom Benutzer angegebene Anzahl von Eingaben (3510) und eine vom Benutzer angegebene Anzahl von Ausgaben (3530) enthält.
9. Das Verfahren aus Anspruch 2, das außerdem Schritte enthält, um
von dem Benutzer eine Angabe zu erhalten, daß diese Problemart (Fig. 7H) ein Problem der Clusteranalyseart (3065) ist, nachdem der Benutzer nach einer Problemart gefragt wurde; und
zu bestimmen (3601), daß das Eingabedatenformat ein echter Wert ist, nachdem der Benutzer nach einer Eingabedatendatei gefragt wurde; und um ein Self Organizing Feature Map Neural Network Model auszuwählen (3650), das auf dieser Problemart und der Größe der Eingabedatendatei basiert;
und wobei die Verwendungsinformation der Eingabedaten eine vom Benutzer angegebene Anzahl von Eingaben (3655) und eine vom Benutzer angegebene Anzahl Cluster enthält (3660, 3665).
10. Das Verfahren aus Anspruch 2, das außerdem Schritte enthält, um
von diesem Benutzer eine Angabe zu erhalten, daß diese Problemart (Fig. 7H) ein Problem der Clusteranalyseart (3065) ist, nachdem der Benutzer nach einer Problemart gefragt wurde; und
zu bestimmen (3601), daß das Eingabedatenformat binär ist, nachdem der Benutzer nach einer Eingabedatendatei gefragt wurde; und um ein anpassungsfähiges Resonance Neural Network Model auszuwählen (3605), das auf der Problemart und der Größe der Eingabedatendatei basiert;
und wobei diese Verwendungsinformation der Eingabedaten eine vom Benutzer angegebene Anzahl von Eingaben (3610) und eine vom Benutzer angegebene Anzahl von Ausgaben (3615) enthält.
11. Das Verfahren aus Anspruch 2, das außerdem Schritte enthält, um
von diesem Benutzer eine Angabe zu erhalten, daß diese Problemart (Fig. 7I) ein Problem des geschlossenen Pfads (3070) ist, nachdem der Benutzer nach einer Problemart gefragt wurde, und um ein Self Organized Routing Neural Network Model auszuwählen (30705);
und wobei die Verwendungsinformation der Eingabedaten eine vom Benutzer angegebene, maximale Anzahl von Zielen (3715) enthält, um die Neuronalnetzwerkdatenstruktur für das Neuronalnetzwerkmodell zu erstellen, das von diesem Auswahlschritt ausgewählt wurde, der auf der Verwendungsinformation der Eingabedaten basiert.
12. Ein Computer zur Erstellung einer Neuronalnetzwerkdatenstruktur für ein Neuronalnetzwerk für eine Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme in einem Datenverarbeitungssystem, wobei die Neuronalnetzwerkbenutzeroberfläche, die einen Satz Dienstprogramme enthält, die Daten in eine Neuronalnetzwerkdatenstruktur überträgt und aus dieser überträgt, mit Mitteln, um einen Benutzer nach einer Problemart (3002) zu fragen, die von dem Neuronalnetzwerk gelöst werden soll und Mittel, um einen Benutzer nach einer Eingabedatendatei (3004) zu fragen, wobei der Computer dadurch gekennzeichnet ist, daß er außerdem Mittel enthält, um
- ein Neuronalnetzwerkmodell auszuwählen (3005, 3006), das auf dieser Problemart und dieser Eingabedatendatei basiert;
- den Benutzer nach der Verwendungsinformation der Eingabedaten in diesem Neuronalnetzwerk zu fragen (3008); und
- eine Neuronalnetzwerkdatenstruktur (50) für das Neuronalnetzwerkmodell zu erstellen-(330), das von diesem Auswahlschritt ausgewählt wird, der auf der Verwendungsinformation der Eingabedaten basiert;
wobei die Neuronalnetzwerkdatenstruktur in einer Vielzahl von spezifischen Neuronalnetzwerkmodellen abgebildet ist, die von der Neuronalnetzwerkbenutzeroberfläche unterstützt werden, um so die Neuronalnetzwerkdatenstruktur generisch zu machen, so daß auf diese von allen Dienstprogrammen in dieser Neuronalnetzwerkdatenstruktur zugegriffen werden kann.
13. Der Computer, um eine Neuronalnetzwerkdatenstruktur zu erstellen aus Anspruch 12, wobei
die Eingabedatendatei außerdem eine Eingabedatengröße und ein Eingabedatenformat hat; und
die Mittel, um ein Neuronalnetzwerkmodell auszuwählen, das auf dieser Problemart, dem Eingabedatenformat und der Eingabedatengröße basiert.
14. Der Computer, um eine Neuronalnetzwerkdatenstruktur zu erstellen aus Anspruch 12 oder 13, wobei die Mittel, um ein Neuronalnetzwerkmodell auszuwählen, Mittel enthalten, um ein Modell aus einem Satz auszuwählen, der ein Back Propagation Neural Network Model, ein anpassungsfähiges Resonance Neural Network Model und ein Constraint Satisfaction Neural Network Model enthält.
DE69227648T 1991-04-18 1992-04-07 Verbesserte Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme Expired - Fee Related DE69227648T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/687,582 US5235673A (en) 1991-04-18 1991-04-18 Enhanced neural network shell for application programs

Publications (2)

Publication Number Publication Date
DE69227648D1 DE69227648D1 (de) 1999-01-07
DE69227648T2 true DE69227648T2 (de) 1999-07-01

Family

ID=24760988

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69227648T Expired - Fee Related DE69227648T2 (de) 1991-04-18 1992-04-07 Verbesserte Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme

Country Status (6)

Country Link
US (2) US5235673A (de)
EP (1) EP0509949B1 (de)
JP (1) JP2673144B2 (de)
BR (1) BR9201308A (de)
CA (1) CA2061012C (de)
DE (1) DE69227648T2 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463718A (en) * 1991-11-08 1995-10-31 Hitachi, Ltd. Learning method and apparatus
US5361201A (en) * 1992-10-19 1994-11-01 Hnc, Inc. Real estate appraisal using predictive modeling
US5432887A (en) * 1993-03-16 1995-07-11 Singapore Computer Systems Neural network system and method for factory floor scheduling
US5745652A (en) * 1993-10-08 1998-04-28 International Business Machines Corporation Adaptive resource allocation using neural networks
US5659666A (en) 1994-10-13 1997-08-19 Thaler; Stephen L. Device for the autonomous generation of useful information
US5799134A (en) * 1995-03-13 1998-08-25 Industrial Technology Research Institute One dimensional systolic array architecture for neural network
US6901392B1 (en) * 1995-09-04 2005-05-31 Matsushita Electric Industrial Co., Ltd. Information filtering method and apparatus for preferentially taking out information having a high necessity
US6035300A (en) * 1995-12-15 2000-03-07 International Business Machines Corporation Method and apparatus for generating a user interface from the entity/attribute/relationship model of a database
US5845271A (en) * 1996-01-26 1998-12-01 Thaler; Stephen L. Non-algorithmically implemented artificial neural networks and components thereof
US5734797A (en) * 1996-08-23 1998-03-31 The United States Of America As Represented By The Secretary Of The Navy System and method for determining class discrimination features
GB2321362A (en) * 1997-01-21 1998-07-22 Northern Telecom Ltd Generic processing capability
CA2199588A1 (en) * 1997-03-10 1998-09-10 Efrem Hoffman Hierarchical data matrix pattern recognition and identification system
US6057837A (en) * 1997-07-15 2000-05-02 Microsoft Corporation On-screen indentification and manipulation of sources that an object depends upon
US7003475B1 (en) 1999-05-07 2006-02-21 Medcohealth Solutions, Inc. Computer implemented resource allocation model and process to dynamically and optimally schedule an arbitrary number of resources subject to an arbitrary number of constraints in the managed care, health care and/or pharmacy industry
US7426551B1 (en) * 2000-05-31 2008-09-16 Mcafee, Inc. System, method and computer program product for dynamic system adaptation using contracts
US8458082B2 (en) 2001-11-13 2013-06-04 Interthinx, Inc. Automated loan risk assessment system and method
US6690913B2 (en) 2001-12-20 2004-02-10 Kabushiki Kaisha Toshiba Correction support apparatus, correction support method, correction support program, and correction support system
US6965885B2 (en) * 2002-01-22 2005-11-15 Koninklijke Philips Electronics N.V. Self-organizing feature map with improved performance by non-monotonic variation of the learning rate
CN103942922A (zh) * 2014-03-17 2014-07-23 湖南五舟检测科技有限公司 一种基于演化神经网络的尾矿安全监测方法
US11270198B2 (en) * 2017-07-31 2022-03-08 Syntiant Microcontroller interface for audio signal processing
CN109919308B (zh) * 2017-12-13 2022-11-11 腾讯科技(深圳)有限公司 一种神经网络模型部署方法、预测方法及相关设备
CN110515531A (zh) * 2019-08-28 2019-11-29 广东工业大学 一种智能辅助绘画系统
KR20230037991A (ko) * 2021-09-10 2023-03-17 삼성전자주식회사 인공지능 서비스를 제공하는 디바이스 및 그 동작 방법
US20230214629A1 (en) * 2021-12-30 2023-07-06 Microsoft Technology Licensing, Llc Transformer-based autoregressive language model selection

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142665A (en) * 1990-02-20 1992-08-25 International Business Machines Corporation Neural network shell for application programs

Also Published As

Publication number Publication date
EP0509949B1 (de) 1998-11-25
CA2061012C (en) 1999-07-13
DE69227648D1 (de) 1999-01-07
JPH0567067A (ja) 1993-03-19
US5444824A (en) 1995-08-22
CA2061012A1 (en) 1992-10-19
JP2673144B2 (ja) 1997-11-05
EP0509949A3 (en) 1993-05-26
US5235673A (en) 1993-08-10
BR9201308A (pt) 1992-12-01
EP0509949A2 (de) 1992-10-21

Similar Documents

Publication Publication Date Title
DE69227648T2 (de) Verbesserte Neuronalnetzwerkbenutzeroberfläche für Anwendungsprogramme
DE69217047T2 (de) Verbesserungen in neuronalnetzen
DE69736552T2 (de) Intelligente anwenderunterstützungsfunktion
DE69132562T2 (de) Verfahren zur automatischen Erzeugung von partiellen, differentialen Gleichungen zur Simulation
Merz Microsimulation as an instrument to evaluate economic and social programmes
US20030115164A1 (en) Neural network representation for system dynamics models, and its applications
Đurek et al. Digital maturity of higher education institution: A meta model of the analytical network process (ANP) and decision expert (DEX)
WO2009053137A2 (de) Verfahren zum computergestützten ermitteln mindestens einer eigenschaft einer haarcoloration
DE69215740T2 (de) Verfahren und Anlage zum Erleichtern von Neuronalnetzwerkbenutzung
Adelman Involving users in the development of decision-analytic aids: The principal factor in successful implementation
Novak et al. A decision support methodology for stochastic multi-criteria linear programming using spreadsheets
Porter Policy perspectives on the study of educational innovations
DE19703964C1 (de) Verfahren zur Transformation einer zur Nachbildung eines technischen Prozesses dienenden Fuzzy-Logik in ein neuronales Netz
DE69328596T2 (de) Optimierung eines Neuralnetzwerks mit Vorwärtskopplung
EP3716058A1 (de) Verfahren zum ansteuern eines geräts mit einem neuen programmcode
Bonnicksen Initial decision analysis (IDA): a participatory approach for developing resource policies
DE69032380T2 (de) Vorrichtung und Verfahren zur Fuzzy-Schlussfolgerung
DE4015791A1 (de) Neuralnetzwerk fuer farbselektionen
DE19831651C1 (de) Verfahren zum Erzeugen eines regel- und anpassbaren Netzwerkes von Modellen von Verhaltensmustern einschließlich Software-Systemen
Adamoniene et al. Presumptions of the human resources development (HRD) management
Kim The welfare state as an institutional process
Vorácek Design, properties and applications of a neural tree classifier
Sharif et al. Knowledge dependencies in fuzzy information systems evaluation
Wolski et al. Improving data management practices of researchers by using a behavioural framework
Xie et al. DeerKBS: a knowledge-based system for white-tailed deer management

Legal Events

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