DE102008058016A1 - System und Verfahren zur rechnerbasierten Analyse großer Datenmengen - Google Patents

System und Verfahren zur rechnerbasierten Analyse großer Datenmengen Download PDF

Info

Publication number
DE102008058016A1
DE102008058016A1 DE102008058016A DE102008058016A DE102008058016A1 DE 102008058016 A1 DE102008058016 A1 DE 102008058016A1 DE 102008058016 A DE102008058016 A DE 102008058016A DE 102008058016 A DE102008058016 A DE 102008058016A DE 102008058016 A1 DE102008058016 A1 DE 102008058016A1
Authority
DE
Germany
Prior art keywords
neurons
neuron
training
weights
network
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.)
Withdrawn
Application number
DE102008058016A
Other languages
English (en)
Inventor
Ansgar Dr. Dorneich
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.)
OPTIMINING GMBH, DE
Original Assignee
OPTIMINIG GmbH
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 OPTIMINIG GmbH filed Critical OPTIMINIG GmbH
Priority to DE102008058016A priority Critical patent/DE102008058016A1/de
Priority to PCT/EP2009/008247 priority patent/WO2010057642A1/de
Priority to EP09827247A priority patent/EP2396752A2/de
Priority to PCT/IB2009/008055 priority patent/WO2010058299A2/de
Publication of DE102008058016A1 publication Critical patent/DE102008058016A1/de
Withdrawn 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/10Pre-processing; Data cleansing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2137Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps

Abstract

Für ein Computersystem zur Datenanalyse soll die Trainingszeit durch technische Vorkehrungen signifikant reduziert werden; außerdem soll der benötigte Speicherbedarf durch den Einsatz technischer Maßnahmen nennenswert sinken. Dazu wird ein elektronisches Datenverarbeitungssystem zur Analyse von Daten vorgeschlagen, mit wenigstens einem Analyse-Rechner, wobei der Analyse-Rechner dazu eingerichtet und programmiert ist, ein selbst adaptierendes Neuronen-Netz zu implementieren, das mit einer Vielzahl Datensätzen mit vielen Merkmalen einem Training zu unterziehen ist, bei dem den Neuronen des Neuronen-Netzes anfängliche Neuronengewichte zuzuordnen sind, den Neuronen des Neuronen-Netzes Neuronengewichte zuzuordnen sind, die aus einer Vielzahl der Datensätze mit ihren vielen Merkmalen zu gewinnen sind, ein Training mehrere Trainingsphasen umfasst, und wobei jede Trainingsphase eine bestimmte Anzahl Trainingsdurchläufe aufweist, wobei zu Beginn jeder Trainingsphase entweder Neuronen in das Neuronen-Netz einzufügen sind, deren Neuronengewichte sich mindestens teilweise aus Gewichten vorhandener Neuronen ergeben, oder Neuronen aus dem Neuronen-Netz zu entfernen sind und die Neuronengewichte der verbleibenden Neuronen mindestens teilweise mit Teilen der Gewichte der entfernten Neuronen zu gewichten ist.

Description

  • Hintergrund
  • Derzeit verfügbare, kostengünstige Computerprogramme zur Datenanalyse (zum Beispiel DataCockpit® 1.04) sind in der Analyse nennenswert langsamer als konkurrierende Data Mining Workbenches (SPSS und andere), können nur erheblich kleinere Datenmengen verarbeiten, und haben andere Nachteile (sie sind als monolithischer Block programmiert, sie sind in ihrer Architektur und Datenbehandlung ungeeignet zur Client-Server-Architektur, etc.).
  • Ein etabliertes Verfahren zur Segmentierung von Daten (,Clustering') sowie zur Vorhersage ist das Verfahren der ,Selbstorganisierenden Merkmalskarten', englisch SOM (,self organizing maps'). Zur Segmentierung oder zur Vorhersage werden in diesem Verfahren die Daten auf ein ein-, zwei- drei-, oder mehrdimensionales selbstadaptierendes Neuronen-Netz abgebildet. [T. Kohonen. Self-Organization and Associative Memory, vol. 8 of Springer Series in Information Science, 3rd edition, Springer-Verlag, Berlin, 1989].
  • Bei der SOM-basierten Datenanalyse werden das sogenannte ,Kohonen Clustering' und die sogenannte SOM-Karten-Analyse unterschieden. Das Kohonen Clustering arbeitet nur mit sehr wenigen Neuronen, typischerweise zwischen etwa 4 und etwa 20 Neuronen. Jedes dieser Neuronen repräsentiert einen ,Cluster', also eine homogene Gruppe von Datensätzen. Diese Technik wird vor allem zur Datensegmentierung eingesetzt und ist in vielen Data Mining Softwarepaketen implementiert, zum Beispiel in SPSS Clementine oder IBM DB2 Warehouse (siehe zum Beispiel Ch. Ballard et al., Dynamic Warehousing: Data Mining Made Easy, IBM Redbook, 2007).
  • Die SOM-Karten-Analyse benutzt demgegenüber relativ große Neuronennetze von zum Beispiel 30 bis 40 Neuronen zur Datenanalyse. Hierbei werden homogene Datensegmente durch lokale Gruppen von Neuronen mit ähnlichen Merkmalsausprägungen repräsentiert. SOM-Karten werden zur Datenexploration, Segmentierung, Vorhersage, Simulation und Optimierung verwendet (siehe zum Beispiel R. Otte, V. Otte, V. Kaiser, Data Mining für die industrielle Praxis, Hanser Verlag, München, 2004).
  • Als Beispiele für weiteren technologischen Hintergrund seien die EP 97 11 56 54.2 und die EP 97 12 0787.3 genannt.
  • Um eine umfangreiche, auf einem Computer zusammengetragene Datensammlung – zum Beispiel Produktionsdaten aus einer Fertigungsanlage mit etwa 104 bis 1010 Datensätzen und etwa 3 bis 1000 Merkmalen pro Datensatz – zu analysieren und ggf. die Ergebnisse der Analyse in den Fertigungsablauf zurückfließen zu lassen, werden die vorhandenen Datensätze immer wieder einem lernenden und sich selbst adaptierenden Neuronen-Netz präsentiert.
  • Dabei kann es sich um Produktionsdaten in der Maschinenbau-, Chemie-, Automobil-, Zuliefererindustrie handeln: Zum Beispiel 10 Millionen produzierte Einheiten, 10 nominale Komponenten- und Produktionslinien-Informationen, 10 binäre Komponenten- und Ausstattungsinformationen, 10 numerische Produktionsdaten (gemessene Toleranzdaten, Sensordaten, erfasste Produktionszeiten, Maschinendaten, ...) Ziel der SOM-Analyse ist hier die Qualitätssicherung, Fehlerquellenanalyse, Frühwarnung, Produktionsprozess-Optimierung.
  • Ein anderes Beispiel wären Kundendaten in Einzelhandels-, Finanz- oder Versicherungsunternehmen: 10 Millionen Kunden, 10 nominale demografische Merkmale (Familienstand, Berufsgruppe, Region, Wohnungstyp, ...), 10 binäre Merkmale über Interessen und in Anspruch genommene Dienstleistungen/Produkte (Geschlecht; besitzt Kreditkarte; betreibt Online-Banking, ...), 10 numerische Merkmale (Jahreseinkommen, Alter, Jahresumsatz, Kreditwürdigkeit, ...). Ziel der SOM-Analyse ist hier die Kundensegmentierung, die Vorhersage von Kundenwert, Kreditwürdigkeit, Schadensrisiko, ... sowie die Optimierung von Marketingkampagnen.
  • Jedes Neuron des sich selbst adaptierenden Neuronen-Netzes hat so viele Signaleingänge, wie jeder der einzelnen Datensätze Merkmale hat. Hat das Neuronen-Netz die Daten ,gelernt', können mit dem trainierten Neuronen-Netz unter Anderem folgende Aufgaben abgearbeitet werden:
    • • Visuelle interaktive Datenexploration: Interaktives Entdecken von interessanten Untergruppen, Korrelationen zwischen Merkmalen und allgemeinen Zusammenhängen mit Hilfe von verschiedenen Visualisierungen der Daten, welche aus selbstorganisierenden Merkmalskarten erzeugt werden.
    • • Segmentierung: Einteilen der gesamten Daten in homogene Gruppen.
    • • Vorhersage: Vorhersage von bisher unbekannten Merkmalsausprägungen in einzelnen Datensätzen.
    • • Simulation: Wie würden sich gewisse Merkmalsausprägungen eines Datensatzes wahrscheinlich ändern, wenn bestimmte andere Merkmalsausprägungen gezielt geändert würden?
    • • Optimierung: Wenn für eine Teilmenge der Merkmale bestimmte optimale Ausprägungen erreicht werden sollen, wie sollten dann die übrigen Merkmalsausprägungen gewählt werden?
  • Bestehende Methoden und Implementierungen SOM-Karten-basierter Datenanalyse benötigen für deren kommerzielle Einsetzbarkeit derzeit zu lange Trainingszeiten der Neuronen-Netze. Diese Trainingszeiten übersteigen diejenigen anderer Data Mining Techniken auf denselben Daten um etwa das Hundertfache und behindern die Anwendung derartiger existierender Software-Pakete auf viele existierende Datensammlungen und Fragen mit der gegenwärtig zur Verfügung stehenden Rechnerleistung.
  • Um zum Beispiel mit der Software DataCockpit® ein SOM-Netzwerk von 30·40 Neuronen auf einer großen Datenbank von 60.000.000 Datensätzen mit 100 Merkmalen zu trainieren, müsste ein Server mit ein bis zwei 3 GHz Intel® CPUs und 64 GigaByte RAM) etwa 2–3 Monate ununterbrochen rechnen – dies wäre in der Praxis völlig inakzeptabel.
  • Technisches Problem
  • So besteht die technische Anforderung, diese Trainingszeit durch technische Vorkehrungen signifikant zu reduzieren, um die Auswertung großer Datenmengen in kurzer Zeit zu ermöglichen. Beispielweise soll die Rechenzeit für das obengenannte Beispiel auf ca. 100 Stunden oder weniger verringert werden.
  • Kurzbeschreibung
  • Zur Problemlösung wird ein elektronisches Datenverarbeitungssystem zur Analyse von Daten mit wenigstens einem Analyse-Rechner vorgeschlagen, wobei der Analyse-Rechner dazu eingerichtet und programmiert ist, ein selbst adaptierendes Neuronen-Netz zu implementieren. Das Neuronen-Netz wird mit einer Vielzahl Datensätze mit vielen Merkmalen einem Training unterzogen, bei dem den Neuronen des Neuronen-Netzes aus der Vielzahl der Datensätze mit ihren vielen Merkmalen zu gewinnende Neuronengewichte zuzuordnen sind. Ein Training kann mehrere Trainingsphasen umfassen, wobei jede Trainingsphase eine bestimmte Anzahl Trainingsdurchläufe aufweist, und wobei zu Beginn jeder Trainingsphase entweder Neuronen in das Neuronen-Netz einzufügen sind, deren Neuronengewichte sich mindestens teilweise aus Gewichten vorhandener Neuronen ergeben, oder Neuronen aus dem Neuronen-Netz zu entfernen sind und die Neuronengewichte der verbleibenden Neuronen mindestens teilweise mit Teilen der Gewichte der entfernten Neuronen zu gewichten sind.
  • Weiter wird ein Verfahren zum Trainieren eines Neuronen-Netzes vorgeschlagen, das folgende Schritte umfasst:
    • • Speichern der Anzahl der Merkmale (Spalten) in den Trainingsdaten in einem ersten Wert.
    • • Ausführen der folgenden Schritte für alle Änderungen der Neuronen-Netz-Größe: – Speichern der Anzahl der Neuronen im Netz in einem zweiten Wert, – Speichern von initialen Neuronengewichten in einem zweidimensionalen ersten Feld, wobei sich eine erste Dimension des Feldes nach dem ersten Wert und eine zweite Dimension des Feldes nach dem zweiten Wert bestimmt, – Ausführen der folgenden Schritte für alle Iterationsschritte:
    • • Ausführen der folgenden Schritte für alle Datensätze oder eine Teilmenge der Trainingsdatensätze:
    • • Reservieren eines zweiten Feldes für das Speichern von Distanzen zwischen dem aktuellen Trainingsdatensatz und allen Neuronen,
    • • Setzen aller Werte in diesem zweiten Feld auf einen einheitlichen initialen Wert,
    • • Setzen eines Wertes für eine minimale Distanz auf einen vorbestimmten Wert, der so groß gewählt ist, dass er sicher größer ist als alle tatächlichen Distanzen zwischen dem aktuellen Trainingsdatensatz und jedem Neuron des Neuronennetzes,
    • • Ausführen der folgenden Schritte für alle Merkmale, die im aktuellen Datensatz einen validen Merkmalswert haben: – Ausführen des folgenden Schrittes für alle Neuronen:
    • • Addieren des Distanzwertes zwischen dem Neuronengewicht, das an einer durch den ersten Wert und den zweiten Wert bestimmten Stelle des ersten Feldes gespeichert ist, und dem validen Merkmalswert zu einem Wert an einer durch den zweiten Wert bestimmten Stelle des zweiten Feldes,
    • • Ausführen der folgenden Schritte für alle Neuronen, für die der an der durch den zweiten Wert bestimmten Stelle des zweiten Feldes gespeicherte Wert kleiner ist als der Wert für die minimale Distanz: – Setzen der minimalen Distanz auf den Wert, der an der durch den zweiten Wert bestimmten Stelle des zweiten Feldes gespeichert ist, – Setzen des aktuellen Neurons als bestes Neuron,
    • • Ausführen der folgenden Schritte für alle Merkmale m, die im aktuellen Trainingsdatensatz einen validen Wert haben: – Verschieben derjenigen in dem ersten Feld gespeicherten Neuronengewichte des besten Neurons, welche Merkmalen entsprechen, die im aktuellen Trainingsdatensatz valide Werte haben, in Richtung auf die entsprechenden validen Merkmalswerte des aktuellen Trainingsdatensatzes, und – Verschieben derjenigen in dem ersten Feld gespeicherten Neuronengewichte gewisser Nachbarneuronen des besten Neurons, welche Merkmalen entsprechen, die im aktuellen Trainingsdatensatz valide Werte haben, in Richtung auf die entsprechenden validen Merkmalswerte des aktuellen Trainingsdatensatzes.
  • Die erste Schleife über alle Merkmale kann durch mehrere Schleifen ersetzt werden. Eine der Schleifen kann über numerische Merkmale, eine Schleife kann über binäre Merkmale und/oder eine Schleife kann über textuelle Merkmale iterieren.
  • Das erste Feld kann so angelegt sein, dass es aus einer dem ersten Wert entsprechenden Anzahl lückenloser Folgen von je einer dem zweiten Wert entsprechenden Anzahl numerischer Feldzellen besteht.
  • Die Distanzen zwischen den Neurongewichten und den Merkmalswerten des aktuellen Trainingsdatensatzes können quadratische Distanzen sein.
  • Die Trainingsdaten können vor zu Beginn des Verfahrens komprimiert und indiziert werden, wobei textuelle Werte durch ganzzahlige Wert-Indices und/oder Fließkomma-Werte in diskrete Intervalle diskretisiert werden.
  • Bei einer Vergrößerung des Neuronen-Netzes (Expansionsschritt) können die Gewichte der neu eingefügten, Neuronen durch lineare, kubische oder sonstige Interpolation bestimmt werden, falls es sich um innere Neuronen handelt und/oder die Gewichte der neu eingefügten Neuronen können durch Extrapolation bestimmt werden, falls es sich um Randneuronen handelt.
  • Bei einer Verkleinerung (Reduktionsschritt) des Neuronen-Netzes kann jedes Neuron mehrere benachbarte vorhandene Neuronen ersetzen und in jedem seiner Neuronengewichte den Mittelwert der entsprechenden Neuronengewichte der ersetzten Neuronen erben.
  • Die Neuronen-Netz-Größe kann zu Beginn jeder Trainingsphase entweder durch ein Einfügen von Neuronen in das Neuronen-Netz, deren Neuronengewichte sich mindestens teilweise aus Gewichten vorhandener Neuronen ergeben, vergrößert werden (Expansionsschritt) oder das Neuronen-Netz kann durch ein Entfernen von Neuronen aus dem Neuronen-Netz verkleinert werden (Reduktionsschritt), wobei die Neuronengewichte der verbleibenden Neuronen bei dem Entfernen mindestens teilweise mit Teilen der Gewichte der entfernten Neuronen zu gewichten sind.
  • Alle Distanzen zwischen der vorbestimmten Anzahl Neuronen und dem aktuellen Trainingsdatensatz können quadratische Distanzen sein oder die Distanzen können jeweils ein Distanzmaß aufweisen, das die Eigenschaften einer Metrik hat.
  • Für jede Trainingsphase kann zumindest eine Auswahl der Datensätze verwendet werden, um die Neuronengewichte der Neuronen des Neuronen-Netzes zu gewichten, wobei für jede Trainingsphase abhängig von der aktuellen Größe des Neuronen-Netzes eine unterschiedliche Anzahl von Trainingsdurchläufen für das Training der Neuronen mit den Merkmalen gewählt werden kann, wobei die Trainingsdurchläufe so oft auszuführen sind, bis die maximale vorgegebene Anzahl von Trainingsdurchläufen erreicht ist, oder das Training insofern konvergiert als dass sich die Merkmalsgewichte der Neuronen nicht mehr wesentlich ändern.
  • Weiter kann vorgesehen sein, dass zwischen zwei Trainingsphasen, für die Neuronen in das Netz einzufügen sind, wenigstens eine Trainingsphase auszuführen ist, für die Neuronen aus dem Netz zu entfernen sind. Diese Vorgehensweise führt zu einem sehr schnellen Konvergieren der Werte, mithin zum Ende des Trainings.
  • In einer weiteren Ausführungsform kann das Entfernen eines Neurons so geschehen, dass bei dem Entfernen des Neurons nur die unmittelbar an das zu entfernende Neuron angrenzenden verbleibenden Neuronen neu zu gewichten sind, oder die verbleibenden Neuronen mittels einer linearen oder kubischen oder Exponential-Spline-Interpolation oder einer sonstigen Interpolationsvorschrift unter Einbeziehung mehrerer Nachbarneuronen neu zu gewichten sind.
  • Die Neuronen des Neuronen-Netzes können als Knoten einer mehrdimensionalen, zum Beispiel zweidimensionalen Matrix anzuordnen sein. In einem solchen Fall können beim Entfernen oder Einfügen von Neuronen aus dem/in das Neuronen-Netz aus der Matrix Zeilen oder Spalten zu entfernen/einzufügen sein.
  • Die Gewichte aller Neuronen für ein bestimmtes Merkmal können dabei so strukturiert sein, dass sie in einem zusammenhängenden Speicherbereich eines Analyse-Rechners zu speichern sind.
  • Die anfänglichen Neuronengewichte der Neuronen des Neuronen-Netzes können durch ein heuristisches Verfahren zu bestimmen sein. Das Verfahren kann so gestaltet sein, dass die Merkmale vor dem Start des Trainings lediglich einmal gelesen werden müssen und lediglich einmal auf numerische Merkmale zu transformieren sind. Die Merkmale können vor dem Training als Trainingsdaten komprimiert zu speichern sein.
  • Ein Analyse-Rechner kann eine Initialkonfiguration des Neuronen-Netzes und Trainings-Parameter erstellen und die Initialkonfiguration und die Trainings-Parameter an mindestens einen weiteren Analyse-Rechner versenden. Die Initialkonfiguration des Neuronen-Netzes und die Training-Parameter können von dem mindestens einen weiteren Analyse-Rechner eingelesen werden.
  • Der Analyse-Rechner kann für alle Trainingsphasen und/oder für alle Trainingsläufe die Neuronengewichte und oder eine Lernrate und/oder einen Radius und/oder die Anzahl von Iterationsschritten an mindestens einen weiteren Analyse-Rechner versenden. Der mindestens eine weitere Analyse-Rechner kann die von dem Analyse-Rechner versandten Informationen einlesen und für die eingelesene Anzahl von Trainingsläufen jeweils Distanzen zwischen einer Vielzahl von Neuronen berechnen, ein Gewinnerneuron ermitteln, das Gewinnerneuron jeweils in einer Liste speichern und die Liste nach der Anzahl von Iterationsschritten an den Analyse-Rechner senden. Der Analyse-Rechner kann dann die Liste der Gewinnerneuronen von dem mindestens einen weiteren Analyse-Rechner empfangen und darauf basierend die Gewichte der Gewinnerneuronen und ihrer Nachbarn modifizieren.
  • Die Trainingsdaten können von dem Analyse-Rechner in Daten-Objekte aufgeteilt werden und die Daten-Objekte an mindestens einen weiteren Analyse-Rechner versendet werden, wobei die Daten-Objekte vor dem Versenden so dimensioniert werden können, dass sie vollständig in den Arbeitsspeicher des mindestens einen weiteren Analyse-Rechner passen.
  • Zur Bestimmung der Distanzen zwischen den Neuronen und dem aktuellen Trainingsdatensatz kann das Verfahren so gestaltet sein, dass in seinem rechenzeitintensivsten Teil nur auf lückenlose Folgen von Speicherfeldern zugegriffen wird.
  • Zur Bestimmung der Distanzen zwischen den Neuronen und dem aktuellen Trainingsdatensatz können lange Schleifen über höchstens 2 Speicherfeld-Variablen verwendet werden.
  • Für jedes nominale Merkmal in den Trainingsdaten können vorkommende Nominalwerte in einem Verzeichnis gespeichert werden, in dem jedem Merkmalswert ein vorläufiger Index zuordnet wird und das zusätzlich die Vorkommenshäufigkeit eines Merkmals zählt, und jeder Nominalwert kann durch den vorläufigen Index ersetzt werden.
  • Das erstellte Verzeichnis kann nach Vorkommenshäufigkeit sortiert sein, einer Anzahl häufiger Werte kann jeweils ein neuer Index zugeordnet werden und die vorläufigen Indices können durch die neuen Indices ersetzt werden.
  • Kurzbeschreibung der Zeichnungen
  • 1 zeigt ein elektronisches Datenverarbeitungssystem zur Analyse von Daten.
  • 2 zeigt schematisch einen Expansionschritt des Mehrgitterverfahrens.
  • 3 zeigt schematisch einen Reduktionsschritt des Mehrgitterverfahrens.
  • 4 zeigt einen ersten Teil der Technik, der dem Verfahren zugrunde liegt.
  • 5 zeigt einen zweiten Teil der Technik, der dem Verfahren zugrunde liegt.
  • 6 zeigt eine Variante der Technik aus 1.
  • Ausführliche Beschreibung
  • Die vorgeschlagene Ausgestaltung hat die technische Wirkung, die Effizienz und die Sicherheit der Datenanalyse zu erhöhen. Eine weitere technische Wirkung besteht darin, die Anforderungen an die erforderlichen Computerressourcen gegenüber der herkömmlichen Vorgehensweise zu senken. Schließlich wird die Datenübertragungsgeschwindigkeit und die anschließende Datenverarbeitung positiv beeinflusst.
  • Dies ermöglicht effiziente Analysen und Auswertungen, z. B. Neuronen-Netz-Analysen auf Analyse-Servern mit relativ wenig Hauptspeicher (RAM). Demgegenüber kann zum Beispiel die bisherige Implementierung der DataCockpit-Software softwaretechnisch bedingt nur Daten bis etwa 200–400 Megabytes Größe verarbeiten. Dies sind Einschränkungen, die eine SOM-Karten-basierte Datenanalyse basierend auf dieser herkömmlichen oder damit vergleichbarer Softwaretechnik deutlich benachteiligen. Somit werden hier technische Maßnah men beschrieben, welche die Vorteile der SOM-Karten-basierten Datenanalyse für größere Datenmengen auf kleineren Rechnern zur Verfügung stellen.
  • Unter Bezugnahme auf 1 dient ein elektronisches Datenverarbeitungssystem zur Analyse von Daten. Das elektronische Datenverarbeitungssystem hat einen Analyse-Server 10 und einen oder mehrere Vor-Ort-Client-Rechner 12. Der Analyse-Server ist zum Beispiel ein PC mit mehreren 3 GHz Intel® CPUs und 64 GigaByte RAM als Hauptspeicher. Darin ist ein selbst adaptierendes Neuronen-Netz als Datenobjekt zu implementieren, das auf eine große Datenbank mit einer Vielzahl Datensätzen mit vielen Merkmalen zu trainieren ist. Der Vor-Ort-Client-Rechner 12 ist dazu eingerichtet und programmiert, ihm zugeführte Daten einer Datenvorverarbeitung und/oder einer Datenkompression zu unterziehen, bevor die Daten über ein elektronisches Netzwerk 14, zum Beispiel das Internet, an den Analyse-Server 10 gesendet werden. Der Analyse-Server 10 ist außerdem dazu eingerichtet und programmiert, mit den empfangenen, vorverarbeiteten/komprimierten Daten das selbst adaptierende Neuronen-Netz zu trainieren, indem die Daten dem sich selbst adaptierenden Neuronen-Netz wiederholt präsentiert werden und anschließend eine Analyse durchzuführen um ein selbst adaptierende Neuronen-Netz-Modell zu erstellen. Der Analyse-Server bewirkt anschließend ein Versenden des selbst adaptierenden Neuronen-Netz-Modells von dem Analyse-Server 10 an den Vor-Ort-Client-Rechner 12 ebenfalls über das Netzwerk 14. Der Vor-Ort-Client-Rechner 12 ist schließlich dazu eingerichtet und programmiert, die Daten des selbst adaptierenden Neuronen-Netz-Modells einer Dekomprimierung zu unterziehen.
  • Beim Training der SOM-Netze wird von einem heuristisch gewählten Startzustand des Netzes ausgegangen, der dann iterativ verbessert wird, bis das Lernverfahren konvergiert. Bei SOM-Netzen sind für verschiedene Arten von Fragestellungen unterschiedliche Netzgrößen geeignet.
  • Relativ kleine Netze von 10 bis 100 Neuronen sind ausreichend, um die Grobstrukturen und Cluster in den Daten herauszuarbeiten, und um zunächst einmal die heuristische Anfangslösung in diejenigen Bereiche des Datenraumes zu bewegen, die überhaupt mit Datenpunkten gefüllt sind. In einem Datenraum mit zum Beispiel 50 Merkmalen mit je 4 Ausprägungen von Produktionsdaten gibt es bereits 450 ≈ 1030 Punkte, die im Prinzip von Datensätzen besetzbar sind. Wenn es aber nur 107 oder weniger Datensätze gibt, ist nur einer von 1023 möglichen Punkten im Datenraum tatsächlich von einem Datensatz besetzt. Ein großer Teil der Lerniterationen wird dabei verwendet, die Gewichte der Neuronen zunächst in die Nähe von mit Daten besetzten Regionen im Datenraum zu verschieben.
  • Um zum Beispiel feine Unterschiede innerhalb großer Datencluster richtig wiederzugeben, oder um nur selten vorkommende Merkmalsausprägungen richtig zu repräsentieren sind große SOM-Netze erforderlich.
  • Hier setzt der hier vorgeschlagene Mehrgitter-Ansatz ein. Dabei werden auf einem kleinen Netz mit vergleichsweise wenig Rechenaufwand – und daher in kurzer Zeit und/oder mit geringen Hardware-Resourcen – die besetzten Neuronen in die interessanten Regionen des Datenraums umgelagert; auf einem derart „verdichteten” Netz werden dann die Feinadjustierungen des SOM-Netzes vorgenommen. Mit weniger Neuronen zu starten bietet dabei einen zweifachen Geschwindigkeitsvorteil. Die Rechenzeit pro Iteration ist proportional zur Neuronenzahl. Außerdem ist aber auch die Konvergenzgeschwindigkeit bei weniger Neuronen schneller, weil jedem Neuron mehr Datensätze zugeordnet werden, so dass jedes Neuron pro Iteration mehr ,Anstöße' bekommt, welche seine Eigenschaften (Gewichte) in der gewünschten Richtung verändern.
  • Bei der praktischen Ausführung eines SOM-Expansionsschrittes ist es möglich, die ,Maschenweite' des Netzes zu halbieren. Dabei wird zum Beispiel bei einem als zweidimensionale Matrix organisierten Netz zwischen je zwei benachbarte Neuronen in x-Richtung mittig ein weiteres Neuron eingesetzt. Anschließend wird zwischen je zwei (alte oder neu eingefügte) in y-Richtung benachbarte Neuronen mittig ein weiteres Neuron in das SOM-Netzwerk eingesetzt. Die Gewichte der neu eingefügten Neuronen können dabei als Interpolation der Gewichte der beiden bestehenden Nachbarneuronen gewählt werden.
  • Im einfachsten Fall kann dies eine lineare Interpolation sein, bei der jedes Merkmalsgewicht des neuen Neurons der Mittelwert des entsprechenden Merkmalgewichts der beiden Nachbarneuronen ist. Anstelle der linearen Interpolation kann auch eine Spline-Interpolation (kubische oder Exponentialsplines) unter Einbeziehung mehrerer Nachbarneuronen erfolgen.
  • Um auch die Randneuronen des existierenden Netzes auf beiden Seiten durch neu eingefügte Neuronen zu flankieren, können die Gewichte der neuen Randneuronen zum Beispiel mittels linearer Extrapolation berechnet werden. Dabei kann das extrapolierte Gewicht des neuen Randneurons := 3/2·(Gewicht des nächsten Nachbarn) – 1/2·(Gewicht des übernächsten Nachbarn) betragen. Dies ist in 1 gezeigt, wobei die neu hinzugefügten Neuronen schraffiert dargestellt sind.
  • Bei der Extrapolation binärer oder nominaler Merkmalswerte wird außerdem sichergestellt, dass die extrapolierten Werte nicht den erlaubten Wertebereich von 0 bis 1 verlassen.
  • Zur Umkehrung der Netz-Expansion bietet es sich an, die ,Maschenweite' des Netzes zu verdoppeln, indem jedes zweite Neuronenreihe in x- und y-Richtung aus der Matrix entfernt wird. Vor der Entfernung werden dabei die in den zu entfernenden Neuronen enthaltenen Informationen den Neuronen zugeführt, die im aus dem Entfernen jeder zweiten Neuronenreihe resultierenden Netz enthalten sein werden. Dabei erbt das neue Netz die Eigenschaften jedes Neurons des alten Netzes mit derselben Gewichtung. Zu entfernende Neuronen mit 4 nächsten verbleibenden Nachbarn (in x- und y-Richtung) geben ihre Eigenschaften mit einen Wertungsfaktor von 1/4 an jeden der vier verbleibenden Nachbarn ab. Zu entfernende Neuronen mit 2 nächsten verbleibenden Nachbarn vererben ihre Eigenschaften mit Wertungsfaktoren von 1/2 and diese beiden Nachbarn. Verbleibende Neuronen vererben sich ihre eigenen Eigenschaften mit dem Wertungsfaktor 1. 2 zeigt schematisch einen Reduktionsschritt. Die zu entfernenden Neuronen sind in 2 schraffiert dargestellt.
  • Bei dem vorgestellten Mehrgitterverfahren kann zum Beispiel ein Gitterexpansionsschema eingesetzt werden, das nicht nur vom gröbsten zum feinsten Gitter voranschreitet, sondern dabei mindestens einmal von einer bereits erreichten feinen Gitterstufe zur nächstgröberen Gitterstufe zurückkehrt. Der technische Vorteil dieser Vorgehensweise besteht darin, dass eine gleichmäßige, raschere Konvergenz sämtlicher Lösungsvektoren erzielt wird. Der Rechenaufwand nimmt beim SOM-Netz bis zur Erreichung von Konvergenz bei jeder Gittervergröberung sogar überlinear ab. Daher bewirken bei der SOM-Expansion in allen Expansionsstufen außer der letzten viele Iterationen und auch das zwischenzeitliche Zurückgehen zur nächstgröberen Stufe praktisch keine Rechenzeitverlängerung. Die Gesamt-Rechenzeit wird fast ausschließlich von der letzten, feinsten Expansionsstufe bestimmt.
  • Die vorgesehenen Iterationen pro Expansionsschritt können dabei Obergrenzen darstellen. Sofern das jeweilige SOM-Netz schon vorher so weit auskonvergiert ist, dass nur noch minimale Änderungen an den Neuronen auftreten, kann die jeweilige Stufe schon vorzeitig beendet werden.
  • In einer Beispielimplementierung, die im folgenden näher erläutert wird, wird eine Art von Gitterexpansionsschritt implementiert, welche die Halbierung der Maschen weite und das Hinzufügung neuer Randneuronen (Extrapolation) beinhaltet. Es werden SOM-Karten mit offenen Randbedingungen implementiert. Dies bedeutet, dass eine Variante des SOM-Netzes angeboten wird, bei der jedes Neuron am linken Rand nicht der rechte Nachbar eines Neurons am rechten Rand ist und jedes Neuron am unteren Rand nicht der obere Nachbar eines Neurons am oberen Rand ist.
  • Zu beachten ist, dass SOM-Netze nur numerische Merkmalen mit Wertebereichen zwischen 0 und 1 verarbeiten. Vor dem eigentlichen Start des SOM-Trainings werden die Originaldaten deshalb einmal gelesen, und die Originalmerkmale werden auf rein numerische, normalisierte Merkmale transformiert.
  • Die Beispielimplementierung besteht aus mindestens einer Hilfsklasse und mindestens einer Hauptklasse.
  • Eine Klasse ,SOMParameters' ist eine Hilfsklasse, die alle Parameter des SOM-Algorithmus aus einer Parameterdatei lesen und einzeln zur Verfügung stellen kann.
  • Eine Klasse ,SOMTraining' ist eine Hauptklasse, die nach Zuweisung eines Parameter-Objekts und einer oder mehrerer Datenverarbeitungsobjekte unter Durchführung mehrerer Netzexpansionsschritte ein SOM-Netz trainiert und das trainierte Netz in eine Datei ausgeben kann.
  • Figure 00120001
  • Figure 00130001
  • Figure 00140001
  • Die Klasse ,SOMTraining' ist eine Hauptklasse der Implementierung mit Netzexpansion. Die Klasse trainiert nach Zuweisung eines Parameter-Objekts und einer oder mehrerer Datenverarbeitungsobjekte unter Durchführung mehrerer Netzexpansionsschritte ein SOM-Netz (Methode trainSOM()) und gibt das trainierte Netz in eine Datei aus.
  • Die Klasse ,SOMTraining' enthält vier interne Methoden, welche zur Netzexpansion und -reduktion dienen:
    Eine Methode ,initializeNeighborhood()' stellt für eine gegebene Neuronennetzgröße die Topologie- und Nachbarschaftsinformationen zusammen. Dadurch kann ermittelt werden, welches Neuron ist mit welcher Distanz zu welchem Neuron benachbart ist.
  • Eine zweite Methode ,initializeSOMNetwork()' wählt mittels einer Heuristik Startwerte für die Neuronengewichte des kleinsten, gröbsten SOM-Netzes.
  • Eine dritte Methode ,expandSOMNetwork()' führt einen Netz-Expansionsschritt von nx·ny Neuronen auf (2nx + 1)·(2ny + 1) Neuronen durch.
  • Eine vierte Methode ,shrinkSOMNetwork()' führt einen Netz-Reduktionsschritt von (2nx + 1)·(2ny + 1) Neuronen auf nx·ny Neuronen durch.
  • Alle vorstehend genannten Methoden mit Ausnahme der Methode ,trainSOM()' werden im folgenden ausführlich dargestellt. Die Methode ,trainSOM()' wird weiter unten in ihrer Implementierung dargestellt.
  • Figure 00150001
  • Figure 00160001
  • Figure 00170001
  • Figure 00180001
  • Die Funktion inverseErf(double c) ist eine hier nicht in der kompletten Implementierung aufgelistete Funktion. Diese Funktion berechnet die inverse Gaußsche Fehlerfunktion erf–1(c). Das heißt, die Funktion berechnet die Intervallbreite w zu einer gegebenen Konfidenz c (mit 0 ≤ c < 1), so dass das Integral der Gaußschen Glockenkurvenfunktion G(x) = 1/(√(2n)s)e(x-m)²/(2s²) über dem Intervall [m – w*s, m + w*s] genau den Wert c annimmt.
  • Spezielle Werte von erf–1(c) sind:
    • • erf–1(0.0) = 0.0
    • • erf–1(0.683) = erf–1(Wahrscheinlichkeit für x, in [m – 1·s, m + 1·s] zu liegen) = 1.0
    • • erf–1(0.953) = erf–1(Wahrscheinlichkeit für x, in [m – 2·s, m + 2·s] zu liegen) = 2.0
    • • erf–1(0.997) = erf–1(Wahrscheinlichkeit für x, in [m – 3·s, m + 3·s] zu liegen) = 3.0
    • • erf–1(c → 1) → ∞
  • Die Methode SOMTraining::initializeSOMNetwork():
    Figure 00190001
    Figure 00200001
  • Die Methode SOMTraining::expandSOMNetwork():
    Figure 00200002
    Figure 00210001
    Figure 00220001
    Figure 00230001
    Figure 00240001
    Figure 00250001
    Figure 00260001
    Figure 00270001
    Figure 00280001
    Figure 00290001
  • Hierbei werden in jedem Iterationsschritt und für jeden Datensatz alle Neuronen des Netzes durchlaufen, und für jedes Neuron wird der euklidische Abstand zwischen seinen Gewichten und den normalisierten Merkmalswerten des Datensatzes berechnet. Anschließend wird das Neuron mit dem niedrigsten Abstand bestimmt, und dieses und seine Nachbarneuronen werden in ihren Gewichten in Richtung auf den Datensatz angepasst. Die kursiv oder fett geschriebenen Teile des Pseudocodes sind die rechenzeit-kritischen Teile; in der fett geschriebenen, innersten Schleife über alle normalisierten Merkmale wird die meiste Rechenzeit verbraucht.
  • Ein Korrekturfaktor Wertigkeitsfaktor[m] kommt dadurch zustande, dass aus einem ursprünglichen nominalen Merkmal mehrere normalisierte Merkmale entstanden sind, nämlich so viele wie das ursprüngliche Merkmal valide (gültige) Werte hat. Wenn diese Zahl N ist, dann müssen alle N normalisierten Merkmale, die aus diesem Merkmal entstanden, mit dem Wertigkeitsfaktor 1/N multipliziert werden. Normalisierte numerische und binäre Merkmale haben dagegen den Wertigkeitsfaktor 1. Diese Maßnahme dient dazu, den Gesamteinfluss eines nominalen Feldes auf das SOM-Netz durch die Normalisierung nicht größer werden zu lassen als den eines numerischen oder binären Merkmals.
  • Beispielsweise enthält ein Datenbestand aus Produktionsdaten 10 Millionen Datensätze und jeder Datensatz enthält 10 numerische, 10 binäre und 10 nominale Merkmale. Die nominalen Merkmale enthalten jeweils 10 verschiedene Werte. Dieser Datenbestand benötigt etwa (107*(10*8 + 10*1 + 10*16) Bytes Speicherplatz, also etwa 2.5 Gigabytes. In der Praxis bekannte Beispiele für solche Daten sind Produktionsdaten in der Maschinenbau-, Chemie-, Automobil-, Zuliefererindustrie, oder Kundendaten in Einzelhandels-, Finanz- oder Versicherungsunternehmen.
  • Aus den 30 ursprünglichen Merkmalen werden nach einer Normalisierung 120 normalisierte Merkmale. Der in vorgestellte Algorithmus benötigt daher bei 200 Iterationen und 30*40 Neuronen etwa die folgende Anzahl an Elementaroperationen (=CPU-Taktzyklen): 200*107* 30*40*(120*15 + 20) = 4.37*1015.
  • Der Ausdruck in Klammern kommt dadurch zustande, dass innerhalb der 120 Mal durchlaufenen Schleife über alle normalisierten Merkmale 11 Elementaroperationen durchgeführt wurden: 4 Berechnungen (+, –, *, *), 4 Feldzugriffe ([]), ein Vergleich (<), eine Verzweigung (Wenn), sowie eine Schleifenzählererhöhung und Abbruchprüfung. In der Schleife wird auf drei verschiedene Felder sowie eine skalare Größe zugegriffen: Gewicht_n[m], d[m], Wertigkeitsfaktor[m] und Distanz_d_n. Auf modernen CPUs ist der Zugriff auf einen Feldwert [m] innerhalb eines Taktzyklus möglich. Den Feldwert unvorbereitet aus dem Speicher zu lesen kostet jedoch mindestens 4–5 Taktzyklen. Im vorliegenden Fall eignen sich zwar die drei Feldzugriffe prinzipiell für das Pipelining-Verfahren, da der Zugriff auf jedes Feld streng sequentiell erfolgt (d. h. im Schleifendurchlauf m an der Stelle m), aber mit dem gleichzeitigen Bereithalten von 3 verschiedenen Feldwerten aus drei verschiedenen langen Feldern, plus einem Skalar, dürfte die Pipelining-Heuristik überfordert sein, so dass für mindestens einen der Feldzugriffe eine Zugriffsdauer von 4–5 Taktzyklen angenommen werden muss. Zusammen mit den 11 Elementaroperationen führt das zu dem Wert von 15 Taktzyklen pro Schleifendurchlauf. Die zusätzlichen 20 Taktzyklen in dem Ausdruck in Klammern werden für den Programmcode außerhalb der innersten Schleife und für das Initialisieren und Starten der Schleife selbst, welches ca. 10 Taktzyklen erfordert, benötigt.
  • Auf einen PC mit einer 2 GHz Intel CPU werden ca. 25 Tage benötigt, um 4.37*1015 Taktzyklen abzuarbeiten.
  • Eine Rechenzeit von 25 Tagen ist für die Praxis inakzeptabel lang, so dass mit dem gegenwärtigen Stand der Technik die SOM-Analyse in vielen wichtigen Einsatzgebiete selbst für nur moderat große Datenquellen nicht eingesetzt werden kann.
  • Einige Faktoren wie die Anzahl Datensätze und die Anzahl Neuronen sind vorgegeben und daher keiner Optimierung zugänglich. Auch die Tatsache, dass 4 Schleifen benötigt werden (über die Iterationen, die Datensätze, die Neuronen, die Merkmale) kann nicht verändert werden. Beschleunigungsansätze müssen daher bei den anderen Termen in dem Produkt 200*107*30*40*(120*15 + 20) ansetzen:
    Der Faktor ,Für Konvergenz benötigte Anzahl an Iterationen' (200) kann durch den Mehrgitter-Ansatz reduziert werden. Eine Reduktion des Rechenaufwandes um etwa einen Faktor 4 ist durch die vorgeschlagene Technik möglich.
  • Bei dem Faktor ,Anzahl normalisierter Merkmale' (120) kann die innerste Schleife durch eine Umstellung der Anweisungen nur über die 30 ursprünglichen Merkmale laufen.
  • Bei dem Faktor ,Taktzyklen pro innerstem Schleifendurchlauf' (15) kann eine Algorithmus- und Speicherstruktur-Umstellung helfen, durch die zum Beispiel die Wenn-Abfrage aus der innersten Schleife herausgeholt werden kann. Außerdem kann in der innersten Schleife die Anzahl an verschiedenen durchlaufenen Feldern von 3 auf 2 reduziert werden.
  • Bei dem Faktor ,Aufwand rund um die innerste Schleife und Schleifeninitialisierung' (20) ist es vorteilhaft, die Schleifenreihenfolge zu vertauschen. Bei Daten mit wenigen Merkmalen und/oder vorwiegend numerisch und/oder binären Merkmalen kann die innerste Schleife oft nur aus 5–10 Durchläufen bestehen. Das ist numerisch ungünstig. Hoher Rechendurchsatz wird durch lange innerste Schleifen ermöglicht.
  • Folgend wird eine neue Technik vorgestellt, welche gegenüber den bekannten Ansätzen eine erhebliche Verbesserung darstellt und die den Mehrgitteransatz umsetzt. Die vorgeschlagene Vorgehensweise ist nachstehend in Pseudocode-Form wiedergegeben. Die Zeilenummern sind Kommentarmarken und dienen der Erläuterung mit Bezug auf den vorstehend erläuterten bekannten Ansatz. Die Funktionsweise ist schematisch in den 3 und 4 gezeigt.
    Figure 00320001
    Figure 00330001
    • Zu (1): Die beiden innersten Schleifen sind gegenüber der bisherigen Technik vertauscht. Daher wird keine skalare Variable benötigt, um die über alle Merkmale aufsummierte quadratische Distanz zwischen Neuron und Datensatz zu speichern, sondern lediglich ein Feld von der Länge ,Anzahl Neuronen'.
    • Zu (2): Die Schleife läuft über die Anzahl numerischer Merkmale. Durch einen Schleifentausch gegenüber der bisherigen Technik können die drei Merkmalstypen getrennt behandelt werden, was die Performanz der neuen Technik gegenüber der bisherigen zusätzlich steigert. Zudem verringert dies die Komplexität der innersten Schleife.
    • Zu (3): In der bisherigen Technik resultiert die Prüfung auf Vorhandensein des Merkmalswerts im Datensatz in einer Verlangsamung, welche in der innersten Schleife mindestens 3 Taktzyklen benötigt. In der neuen Technik ist dieselbe Prüfung erheblich beschleunigt, da sie außerhalb einer inneren Schleife stattfindet und eventuell das Durchlaufen dieser Schleife unnötig macht.
    • Zu (4): Der aktuelle Merkmalswert aus dem Datensatz ist eine Invariante der innersten Schleife. Der Feldzugriff kann einmalig außerhalb der Schleife erfolgen. Dies Taktzyklen ein und reduziert gleichzeitig die Anzahl an verschiedenen Feldern, mit denen in der innersten Schleife gearbeitet werden muss, von 3 auf 2. Die Pipelining-Heuristik der CPU kann so die Feldwerte der verbleibenden beiden Felder schneller bestimmen.
    • Zu (5): Ein Aspekt der neuen Technik ist, dass sie auf Grund einer umorganisierten Speicherstruktur der Neuronengewichte effizienter funktioniert. In bisherigen SOM-Implementierungen werden alle Gewichte eines Neurons in einem zusammenhängenden Speicherbereich gespeichert. Bei der bisherigen Technik werden die Merkmalsgewichte eines einzelnen Neurons im Speicher „verstreut” gespeichert und die Gewichte aller Neuronen für ein bestimmtes Merkmal in einem zusammenhängenden Speicherbereich abgelegt.
    • Zu (6), (7): Die innerste Schleife ist für eine effiziente Zahlenverarbeitung durch eine CPU umgestaltet. Wegen der Länge der Schleife (≥ 1000, unabhängig von der Datencharakteristik) fällt der Schleifen-Overhead und der gesamte Rechenaufwand außerhalb der Schleife nicht ins Gewicht. Außerdem ist der Code innerhalb der Schleife sehr einfach gehalten und besteht nur aus einem parallelen sequentiellen Durchlaufen zweier Gleitkommazahl-Felder und wenigen elementaren Gleitkommaoperationen auf den Feldwerten. Auf Vektorrechner-Architekturen lässt sich die Schleife gut vektorisieren, wodurch die gesamte Schleife in einigen wenigen Taktzyklen anstelle von mehreren tausend Taktzyklen abgearbeitet werden kann.
    • Zu (8): Die Behandlung der binären Merkmalswerte innerhalb der Schleife über alle binäre Merkmale impliziert, dass ein ,true'- oder 1-Wert in einer komprimierten Speicherung den Wertindex 0 hat, ein ,false' oder 0-Wert den Index 1. Ein Neuronengewicht von x (0 ≤ x ≤ 1) besagt, dass das Neuron mit der Wahrscheinlichkeit x den ,true'- oder 1-Wert erwartet.
    • Zu (9), (10): Die Schleife läuft über die Anzahl ursprünglicher nominaler Merkmale. Da aber die Matrix der Neuronengewichte immer noch mehrere verschiedene Gewichte pro nominalem Merkmal enthält, muss der zum aktuellen Merkmalswert-Index d[m] des ursprünglichen Merkmals m gehörende normalisierte Merkmalsindex in (10) unter Benutzung eines Hilfsfeldes berechnet werden. Dieses Hilfsfeld, normalisierter_Index[m], kann die Position (Index) desjenigen normalisierten Merkmals bestimmen, welches dem Wert mit Index 0 des ursprünglichen Merkmals m entspricht. Wenn zu diesem Index noch d[m] dazugezählt wird, wird der korrekte Index des zum ursprünglichen Merkmal m und dessen Wertindex d[m] gehörenden normalisierten Merkmals erzeugt.
    • Zu (11): Durch die Vorarbeiten in (9) und (10) ist auch im Fall nominaler Merkmale die innerste Schleife über alle Neuronen einfach. Insbesondere wird kein korrigierender merkmalabhängiger Wertigkeitsfaktor mehr benötigt, da nur noch ein Schleifendurchlauf und Distanzbeitrag für jedes nominale Merkmal berechnet werden.
    • Zu (12): Das Ermitteln des Neurons mit der geringsten quadratischen Distanz zum Datensatz geschieht jetzt an einer Stelle außerhalb zweier innerer Schleifen, so dass der hierfür aufgebrachte Rechenaufwand nicht ins Gewicht fällt.
  • Bei den Distanzen, die berechnet und verwendet werden, muss es sich nicht um quadratische Distanzen handeln. Wichtig ist vielmehr nur, dass die Distanzen jeweils die Eigenschaften einer Metrik aufweisen. Eine Metrik ist dabei eine mathematische Funktion, die je zwei Elementen eines Raums einen nicht negativen reellen Wert zuordnet, der als Abstand der beiden Elemente voneinander aufgefasst werden kann.
  • Im Vergleich zu den Betrachtungen für die bisherige Technik und unter der Annahme, dass 5% aller Merkmalswerte in den Daten nicht vorhanden oder ungültig sind, ergibt sich mit dem neuen Algorithmus folgende Abschätzung über die benötigten Taktzyklen: 200*107*(3*9.5*(15 + 1200*6) + 200 + 1200*4 + 10000) = 4.4*1014.
  • Es folgt eine Erläuterung einiger Bestandteile der Berechnung:
    • • 200: Geschätzter Aufwand für das Null-Setzen des Feldes der Distanzen zum Beispiel durch schnelles Speicherblock-Kopieren sowie für alle anderen Nicht-Schleifen-Operationen, die einmal pro Datensatz ausgeführt werden.
    • • 1200*4: die abschließende Schleife (12) zur Ermittlung des besten Neurons.
    • • 3: Die drei Merkmalstypen werden nacheinander abgearbeitet.
    • • 9.5: Je Merkmalstyp gibt es 10 Merkmale zu durchlaufen. Falls der Merkmalswert im qaktuellen Datensatz fehlt – was mit 5% Wahrscheinlichkeit der Fall ist, muss der weitere Code nicht durchlaufen werden – siehe Bedingung (3).
    • • 15: Aufwand für das Vorbereiten und Starten der Schleifen über alle Neuronen ((4), (5), (6)).
    • • 1200*6: 6 Taktzyklen pro Schleifendurchlauf über die Neuronen (7): zwei sequentielle Feldzugriffe, drei elementare Rechenoperationen (+, –, *), eine Schleifenzählerinkrementierung.
    • • 10000: Abschätzung des benötigten Aufwands, um das Gewinnerneuron und dessen Nachbarn in ihren Gewichten zu modifizieren.
  • Damit sinkt die Rechenzeit für das Beispiel von ca. 25 Tagen auf ca. 2.5 Tage, also um etwa den Faktor 10.
  • Wenn zusätzlich der Mehrgitteransatz angewendet wird und diese technische Maßnahme einen Beschleunigungsfaktor von 4 ergibt, dann beträgt die Rechenzeit es obigen Beispiels ca. 14 Stunden. Das heißt, eine Analyse kann z. B. in einer Nacht durchgeführt werden und das Ergebnis in den Produktionsprozess bereits am nächsten Tag zurückgekoppelt werden.
  • Im obigen Beispiel hat die Tatsache, dass ein Drittel der Merkmale nominale Merkmale sind, die relativ viele unterschiedliche Werte haben, einen Faktor 4 zum Gesamtfaktor von 40 beigetragen. Für rein numerische und binäre Daten sinkt der Geschwindigkeitsgewinn zu nächst auf etwa den Faktor 10–12. Allerdings tritt dann oft ein weiterer technischer Effekt auf: die Schleife über alle normalisierten Merkmale ist bei Fehlen nominaler Merkmale recht kurz: etwa 5–20 Durchlaufe. Dadurch nimmt der im bisherigen Vorgehen vorhandene Overhead rund um die innerste Schleife einen beträchtlichen Teil der Rechenzeit ein. Dieser Negativeffekt der kurzen inneren Schleife entfällt in der neuen Technik, so dass der Geschwindigkeitsgewinn insgesamt auf den Faktor 15 oder mehr steigt.
  • Somit ist durch die vorgeschlagene Technik eine Verbesserung um einen Faktor zwischen etwa 15 (Daten ohne nominale Merkmale) und bis zu 100 (rein nominale Daten mit vielen Werten pro Merkmal) zu erwarten. Die bisher durchgeführten Vergleichsrechnungen zwischen der hier vorgeschlagenen Technik und dem Stand der Technik in Form der Implementierung DataCockpit 1.03 bestätigen dies.
  • Die neue Technik kann in einer Pseudocode-Formulierung auch wie folgt dargestellt werden:
    • • Definiere m := Anzahl der Merkmale (Spalten) in den Trainingsdaten
    • • Für alle Änderungen der Neuronen-Netz-Größe – Definiere n := Anzahl der Neuronen im Netz (z. B. ca. 100–1000) – Schreibe die Neuronengewichte in ein 2-dimensionales nummerisches Feld namens ,Gewichte' mit den Dimensionen m und n. – Für alle Iterationsschritte (z. B. ca. 10–200)
    • • Für alle Datensätze oder eine Teilmenge der Trainingsdatensätze (z. B. 10000 – alle)
    • • Definiere ds := Index (Position) des aktuellen Datensatzes in der gewählten Teilmenge
    • • Allokiere eine Feldvariable ,Distanzen' der Länge n, welche die Distanzen zwischen dem aktuellen Datensatz und sämtlichen Neuronen enthalten wird. Setze alle Anfangswerte in diesem Feld auf 0.
    • • Definiere eine nummerische Variable minimum_Distanz und setze sie auf einen sehr großen Wert, zum Beispiel den maximal darstellbaren Fließkomma-Zahlenwert.
    • • Für alle Merkmale m, die im Datensatz ds einen validen Wert w[m] haben – Für alle Neuronen n Addiere die Distanz zwischen Gewichte[m][n] und w[m] zum Feldelement Distanzen[n].
    • • Für alle Neuronen n, für die gilt: Distanzen[n] < minimum_Distanz – minimum_Distanz := Distanzen[n] – bestes Neuron := n
    • • Für alle Merkmale m, die im Datensatz ds einen validen Wert w[m] haben – Verschiebe die Gewichte, Gewichte[m][bestes_Neuron], und die Gewichte bestimmter Nachbar-Neuronen von bestes_Neuron, Gewichte[m][nachbar_Neuron] in Richtung auf w[m].
  • Die im Ablaufplan erste Schleife über alle Merkmale kann durch mehrere Schleifen ersetzt werden, von denen jede nur über einen Teil aller Merkmale iteriert. So kann zum Beispiel eine Schleife über numerische, eine Schleife über binäre und/oder eine Schleife über textuelle Merkmale iterieren. Dies kann vorteilhaft sein, weil die Art der Distanzberechnung zwischen Gewichte[m][n] und w[m] für verschiedene Merkmalstypen verschieden definiert sein kann und man sich zeitraubende Verzweigungen (Wenn-Dann-Abfragen) in der innersten, rechenzeitintensivsten, Schleife sparen kann.
  • Das Feld der Neuronengewichte, im obigen Ablaufplan ,Gewichte' genannt, kann insbesondere so implementiert sein, dass es aus m lückenlosen Folgen von je n numerischen Feldzellen besteht. Dies ist besonders effizient, weil alle Rechenzeitintensiven inneren Schleifen, die auf Gewichte[m][n] zugreifen, dann über eine lückenlose Folge von Speicheradressen iterieren. Diese Zugriffsweise ist für modere CPUs mit Pipelining-Architektur optimal. Unter Umständen können so sogar mehrere Feldzugriffe in einem CPU-Taktzyklus durchgeführt werden (,Vektorisierung'). Auch die Distanzen können durch Anwendung dieses Prinzips besonders gut durch mindestens einen auf einer Pipelining-Architektur basierenden Rechner berechnet werden.
  • Die Distanzberechnung zwischen den Neurongewichten und den Merkmalsausprägungen des aktuellen Trainingsdatensatzes kann zum Beispiel über die minimale quadratische Distanz (euklidische Distanz) erfolgen. Es können aber auch beliebige andere Distanzmaße zur Anwendung kommen.
  • Die Trainingsdaten könnten vor dem Eintritt in obigen Ablaufplan komprimiert und indiziert worden sein, um schneller auf sie zugreifen zu können. Eine solche Vorverarbeitung kann zum Beispiel textuelle Werte durch ganzzahlige Wert-Indizes ersetzen oder Fließkomma-Werte in diskrete Intervalle diskretisieren.
  • Die vorgestellte Speicher- und Kontrollflussorganisation wird in der Beispielimplementierung, zusammen mit dem Mehrgitteransatz, in der Methode ,trainSOM()' der bereits vorgestellten Klasse ,SOMTraining' implementiert.
  • Die Methode SOMTraining::trainSOM():
    Figure 00380001
    Figure 00390001
    Figure 00400001
    Figure 00410001
    Figure 00420001
    Figure 00430001
  • Mit der vorgestellten Technik zur Datenvorbereitung und SOM-Analyse können mit preiswerter, allgemeinverfügbarer Hardware in vertretbarer Zeit SOM-Analysen für Daten bis zur Größe von etwa 10–20 GB erstellt werden, selbst wenn diese Rechner lediglich über einen CPU-Kern verfügen.
  • Darüber hinaus erlaubt die vorgestellte Technik auch, den SOM-Analyseprozess zu parallelisieren, um noch bessere Antwortzeiten zu erreichen. Für die Parallelisierung der vorgestellten Technik eignen sich besonders die folgenden Ansätze:
    • • Vektorrechner
    • • SMP-Rechner (Shared-Memory-Parallelism)
    • • MPP-Rechner (Massiv Parallele Shared-Nothing Architekturen)
    • • Vernetzte Rechner-Cluster aus mehreren Analyse-Rechnern (10, 20)
  • Vektorrechner sind Computer mit einer CPU, welche aber über mehrere Vektorregister für z. B. 128, 256 oder 512 Fließkommazahlen verfügen (z. B. die SX-Supercomputer-Reihe von NEC). Mit Hilfe dieser Vektorregister können elementare numerische Operationen zwischen Zahlenfeldern (Vektoren) in einem Taktzyklus erledigt werden. Die vorgestellte SOM-Trainingstechnik ist so gestaltet, dass numerische Berechnungen abgearbeitet werden müssen, bei denen der Hauptteil der Rechenarbeit im Innern langer Schleifen in Form von elementaren Rechenoperationen zwischen numerischen Feldern und skalaren Werten anfällt und bei denen die Berechnungen eines Schleifendurchlaufs nicht von den Ergebnissen vorheriger Schleifendurchläufe abhängen. Daher kann die vorgestellte Technik praktisch unverändert auf Vektorrechnern eingesetzt werden und wird dort einen beinahe linearen Geschwindigkeitszuwachs (um einen Faktor 100–200) liefern.
  • Auch moderne ,MultiCore'-Rechnerarchitekturen wie Intel Mehrkern-Prozessoren oder Cell-Prozessoren von IBM können bereits durch Parallelverarbeitung einen Geschwindigkeitszuwachs erzielen.
  • Auf einem Parallelrechner mit verteiltem Speicher bzw. auf einem Netzwerk von Rechnern kann die vorgestellte SOM-Trainingstechnik mit Hilfe eines Message Passing Interfaces wie zum Beispiel MPI I oder MPI II parallelisiert werden.
  • Die folgende Modifikation ist eine Möglichkeit, dies zu erreichen. Die Codezeilen mit [Master:] am Anfang werden nur vom Master- oder Koordinator-Prozess durchlaufen, alle anderen Codezeilen von allen parallelen Prozessen:
    Figure 00440001
  • Hier erfolgt das Anpassen des SOM-Netzes nicht mehr synchron (d. h. sofort nach dem Ermitteln des Gewinnerneurons für einen Datensatz), sondern asynchron. Die einzelnen Slave-Prozesse ermitteln die Gewinner-Neuronen für eine bestimmte Anzahl an Datensätzen und melden die Identifikatoren dieser Neuronen an den Master-Prozess zurück. Dieser sammelt die Gewinnerlisten aller Slave-Prozesse ein, führt dann alle Modifikationen der Neuronengewichte durch und sendet das neue SOM-Netz an die Slave-Prozesse zurück.
  • Um die Asynchronität nicht beliebig groß werden zu lassen, sieht die oben dargestellte Technik vor, die Slave-Prozesse nicht ihren gesamten Datenbestand abarbeiten zu lassen, bevor sie die Gewinnerlisten an den Master-Prozess schicken, sondern immer nur eine bestimmte Anzahl Datensätze (z. B. 10000, 100000 oder 1 Million). Dadurch wird trotz der Asynchronität mehrmals innerhalb einer Iteration das jeweils neueste SOM-Netz an alle Prozesse kommuniziert und als Grundlage der weiteren Berechnungen genutzt.
  • Der Kommunikationsbedarf zwischen den einzelnen Prozessen ist dabei so gering, dass diese Art der Parallelisierung sogar auf einem Netzwerk von Computern funktioniert, welche nur über eine Intra- oder Internetverbindung von DSL-Qualität (6 MBits/sec) verbunden sind.
  • Mit dem oben dargestellten Prozess ist für eine kleine Anzahl von parallelen Prozessen ein annähernd linearer Geschwindigkeitsgewinn mit der Prozess-Anzahl möglich. Bei einer größeren Anzahl paralleler Prozesse konvergiert der Geschwindigkeitsgewinn gegen einen konstanten Faktor zwischen 20 und 30.
  • Wenn diese Limitierung der Geschwindigkeitssteigerung von etwa 20–30 überwunden werden soll, kann der Algorithmus z. B. so modifiziert werden, dass die Slave-Prozesse schon auf Basis der nächsten Datensatz-Tranche arbeiten, während der Master-Prozess noch mit Hilfe der gesammelten Gewinnerlisten der vorherigen Tranche das SOM-Netz modifiziert. Dies bedeutet, dass die Slave-Prozesse immer auf dem zweitaktuellsten Netz anstelle des aktuellsten Netzes ihre Gewinnerneuronen bestimmen.
  • Es ist dabei klar, dass die Prozesse (Slave- und Master-Prozess) auf verschiedenen Analyse-Rechnern (10, 20) ausgeführt werden können, die z. B. durch ein Netzwerk oder andere Datenverbindung (14) miteinander verbunden sind. Dabei arbeitet mindestens ein Analyse-Rechner (10), der den mindestens einen Master-Prozess ausführt, mit mindestens einem weiteren Analyse-Rechner (20) zusammen, auf dem mindestens ein Slave-Prozess ausgeführt wird. Dies ist schematisch in 6 dargestellt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • - EP 97115654 [0005]
    • - EP 97120787 [0005]
  • Zitierte Nicht-Patentliteratur
    • - T. Kohonen. Self-Organization and Associative Memory, vol. 8 of Springer Series in Information Science, 3rd edition, Springer-Verlag, Berlin, 1989 [0002]
    • - Ch. Ballard et al., Dynamic Warehousing: Data Mining Made Easy, IBM Redbook, 2007 [0003]
    • - R. Otte, V. Otte, V. Kaiser, Data Mining für die industrielle Praxis, Hanser Verlag, München, 2004 [0004]

Claims (42)

  1. Ein elektronisches Datenverarbeitungssystem zur Analyse von Daten, mit – wenigstens einem Analyse-Rechner (10), wobei – der Analyse-Rechner (10) dazu eingerichtet und programmiert ist, ein selbst adaptierendes Neuronen-Netz zu implementieren, das mit einer Vielzahl Datensätzen mit vielen Merkmalen einem Training zu unterziehen ist, bei dem – den Neuronen des Neuronen-Netzes anfängliche Neuronengewichte zuzuordnen sind, – den Neuronen des Neuronen-Netzes Neuronengewichte zuzuordnen sind, die aus der Vielzahl der Datensätze mit ihren vielen Merkmalen zu gewinnen sind, – ein Training mehrere Trainingsphasen umfasst, und wobei jede Trainingsphase eine bestimmte Anzahl Trainingsdurchläufe aufweist, wobei – zu Beginn jeder Trainingsphase entweder – Neuronen in das Neuronen-Netz einzufügen sind, deren Neuronengewichte sich mindestens teilweise aus Gewichten vorhandener Neuronen ergeben, oder – Neuronen aus dem Neuronen-Netz zu entfernen sind und die Neuronengewichte der verbleibenden Neuronen mindestens teilweise mit Teilen der Gewichte der entfernten Neuronen zu gewichten sind.
  2. Das elektronische Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass für jede Trainingsphase zumindest eine Auswahl der Datensätze verwendet wird um die Neuronengewichte der Neuronen des Neuronen-Netzes zu gewichten, wobei für jede Trainingsphase abhängig von der aktuellen Größe des Neuronen-Netzes eine unterschiedliche Anzahl von Trainingsdurchläufen für das Training der Neuronen mit den Merkmalen gewählt wird, die so oft auszuführen sind, bis die maximale vorgegebene Anzahl der Trainingsdurchläufe erreicht ist, oder das Training insofern konvergiert als dass sich die Merkmalsgewichte der Neuronen nicht mehr wesentlich ändern.
  3. Das elektronische Datenverarbeitungssystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass zwischen zwei Trainingsphasen, für die Neuronen in das Netz einzufügen sind, wenigstens eine Trainingsphase auszuführen ist, für die Neuronen aus dem Netz zu entfernen sind.
  4. Das elektronische Datenverarbeitungssystem nach einem der Ansprüche 1–3, dadurch gekennzeichnet, dass bei dem Entfernen eines Neurons nur die unmittelbar an das zu entfernende Neuron angrenzenden verbleibenden Neuronen neu zu gewichten sind, oder die verbleibenden Neuronen mittels einer linearen oder kubischen oder Exponential-Spline- Interpolation oder einer sonstigen Interpolationsvorschrift unter Einbeziehung mehrerer Nachbarneuronen neu zu gewichten sind.
  5. Das elektronische Datenverarbeitungssystem nach einem der Ansprüche 1–4, dadurch gekennzeichnet, dass die Neuronen des Neuronen-Netzes als Knoten einer mehrdimensionalen, vorzugsweise zweidimensionalen Matrix anzuordnen sind.
  6. Das elektronische Datenverarbeitungssystem nach dem vorherigen Anspruch, dadurch gekennzeichnet, dass beim Entfernen oder Einfügen von Neuronen aus dem/in das Neuronen-Netz aus der Matrix Zeilen oder Spalten zu entnehmen/einzufügen sind.
  7. Das elektronische Datenverarbeitungssystem nach einem der Ansprüche 1–6, dadurch gekennzeichnet, dass die Gewichte aller Neuronen für ein bestimmtes Merkmal in einem zusammenhängenden Speicherbereich des Analyse-Rechners (10) zu speichern sind.
  8. Das elektronische Datenverarbeitungssystem nach einem der Ansprüche 1–7, dadurch gekennzeichnet, dass die anfänglichen Neuronengewichte der Neuronen des Neuronen-Netzes durch ein heuristisches Verfahren zu bestimmen sind.
  9. Das elektronische Datenverarbeitungssystem nach einem der Ansprüche 1–8, dadurch gekennzeichnet, dass die Merkmale vor dem Start des Trainings einmal gelesen und die Originalmerkmale auf rein numerische normalisierte Merkmale transformiert werden.
  10. Das elektronische Datenverarbeitungssystem nach einem der Ansprüche 1–9, dadurch gekennzeichnet, dass die Merkmale vor dem Training als Trainingsdaten komprimiert zu speichern sind.
  11. Das elektronische Datenverarbeitungssystem nach einem der Ansprüche 1–10, dadurch gekennzeichnet, dass der Analyse-Rechner (10) eine Initialkonfiguration des Neuronen-Netzes und Trainings-Parameter erstellt und die Initialkonfiguration und die Trainings-Parameter an mindestens einen weiteren Analyse-Rechner (20) versendet.
  12. Das elektronische Datenverarbeitungssystem nach dem vorherigen Anspruch, dadurch gekennzeichnet, dass die Initialkonfiguration des Neuronen-Netzes und die Training-Parameter von dem mindestens einen weiteren Analyse-Rechner (20) eingelesen werden.
  13. Das elektronische Datenverarbeitungssystem nach einem der Ansprüche 1–12, dadurch gekennzeichnet, dass – der Analyse-Rechner (10) für alle Trainingsphasen und/oder für alle Trainingsläufe die Neuronengewichte und/oder eine Lernrate und/oder einen Radius und/oder die Anzahl von Iterationsschritten an den mindestens einen weiteren Analyse-Rechner (20) versendet, – der mindestens eine weitere Analyse-Rechner (20) die von dem Analyse-Rechner (10) versandten Informationen einliest und für die eingelesene Anzahl Trainingsläufe jeweils Distanzen zwischen den Trainingsdatensätzen und den Gewichten für die Neuronen berechnet, ein Gewinnerneuron ermittelt, das Gewinnerneuron jeweils in einer Liste speichert und die Liste nach der Anzahl von Iterationsschritten an den Analyse-Rechner (10) sendet, und – der Analyse-Rechner (10) die Liste der Gewinnerneuronen von dem mindestens einen weiteren Analyse-Rechner (20) empfängt und darauf basierend die Gewichte der Gewinnerneuronen und ihrer Nachbarn modifiziert.
  14. Das elektronische Datenverarbeitungssystem nach einem der Ansprüche 1–13, dadurch gekennzeichnet, dass die Trainingsdaten von dem Analyse-Rechner (10) in Daten-Objekte aufgeteilt werden und die Daten-Objekte an den mindestens einen weiteren Analyse-Rechner (20) versendet werden, wobei die Daten-Objekte vor dem Versenden so zu dimensionieren sind, dass sie vollständig in den Arbeitsspeicher des mindestens einen weiteren Analyse-Rechner (20) passen.
  15. Ein Verfahren zum Trainieren eines Neuronen-Netzes mit den Schritten: • Speichern der Anzahl der Merkmale (Spalten) in den Trainingsdaten in einem ersten Wert, • Ausführen der folgenden Schritte für alle Änderungen der Neuronen-Netz-Größe: – Speichern der Anzahl der Neuronen im Netz in einem zweiten Wert, – Speichern von initialen Neuronengewichten in einem zweidimensionalen ersten Feld, wobei sich eine erste Dimension des Feldes nach dem ersten Wert und eine zweite Dimension des Feldes nach dem zweiten Wert bestimmt, – Ausführen der folgenden Schritte für alle Iterationsschritte: • Ausführen der folgenden Schritte für alle Datensätze oder eine Teilmenge der Trainingsdatensätze: • Reservieren eines zweiten Feldes für das Speichern von Distanzen zwischen dem aktuellen Trainingsdatensatz und allen Neuronen, • Setzen aller Werte in diesem zweiten Feld auf einen einheitlichen initialen Wert, • Setzen eines Wertes für eine minimale Distanz auf einen vorbestimmten Wert, der so groß gewählt ist, dass er sicher größer ist als alle tatächlichen Distanzen zwischen dem aktuellen Trainingsdatensatz und jedem Neuron des Neuronennetzes, • Ausführen der folgenden Schritte für alle Merkmale, die im aktuellen Datensatz einen validen Merkmalswert haben: – Ausführen des folgenden Schrittes für alle Neuronen: • Addieren des Distanzwertes zwischen dem Neuronengewicht, das an einer durch den ersten Wert und den zweiten Wert bestimmten Stelle des ersten Feldes gespeichert ist, und dem validen Merkmalswert zu einem Wert an einer durch den zweiten Wert bestimmten Stelle des zweiten Feldes, • Ausführen der folgenden Schritte für alle Neuronen, für die der an der durch den zweiten Wert bestimmten Stelle des zweiten Feldes gespeicherte Wert kleiner ist als der Wert für die minimale Distanz: – Setzen der minimalen Distanz auf den Wert, der an der durch den zweiten Wert bestimmten Stelle des zweiten Feldes gespeichert ist, – Setzen des aktuellen Neurons als bestes Neuron, • Ausführen der folgenden Schritte für alle Merkmale m, die im aktuellen Trainingsdatensatz einen validen Wert haben: – Verschieben derjenigen in dem ersten Feld gespeicherten Neuronengewichte des besten Neurons, welche Merkmalen entsprechen, die im aktuellen Trainingsdatensatz valide Werte haben, in Richtung auf die entsprechenden validen Merkmalswerte des aktuellen Trainingsdatensatzes, und – Verschieben derjenigen in dem ersten Feld gespeicherten Neuronengewichte gewisser Nachbarneuronen des besten Neurons, welche Merkmalen entsprechen, die im aktuellen Trainingsdatensatz valide Werte haben, in Richtung auf die entsprechenden validen Merkmalswerte des aktuellen Trainingsdatensatzes.
  16. Das Verfahren nach Anspruch 15, dadurch gekennzeichnet, dass die Neuronen-Netz-Größe zu Beginn jeder Trainingsphase entweder – durch ein Einfügen von Neuronen in das Neuronen-Netz, deren Neuronengewichte sich mindestens teilweise aus Gewichten vorhandener Neuronen ergeben, das Neuronen-Netz vergrößert wird oder – durch ein Entfernen von Neuronen aus dem Neuronen-Netz das Neuronen-Netz verkleinert wird, wobei die Neuronengewichte der verbleibenden Neuronen bei dem Entfernen mindestens teilweise mit Teilen der Gewichte der entfernten Neuronen zu gewichten sind.
  17. Das Verfahren nach Anspruch 15 oder 16, dadurch gekennzeichnet, dass die Merkmale numerische, boolesche und/oder nominale Merkmale sind und die Art der Distanzberechnung für jede der Merkmalsarten auf unterschiedliche Weise geschieht.
  18. Das Verfahren nach einem der Ansprüche 15–17, dadurch gekennzeichnet, dass die erste Schleife über alle Merkmale durch mehrere Schleifen ersetzt wird.
  19. Das Verfahren nach einem der Ansprüche 15–18, dadurch gekennzeichnet, dass eine Schleife über numerische Merkmale und/oder eine Schleife über binäre Merkmale und/oder eine Schleife über textuelle Merkmale iteriert.
  20. Das Verfahren nach einem der Ansprüche 15–18, dadurch gekennzeichnet, dass das erste Feld so angelegt ist, dass es aus einer dem ersten Wert entsprechenden Anzahl lückenloser Folgen von je einer dem zweiten Wert entsprechenden Anzahl numerischer Feldzellen besteht.
  21. Das Verfahren nach einem der Ansprüche 15–20, dadurch gekennzeichnet, dass die Distanzen zwischen den Neurongewichten und den Merkmalswerten des aktuellen Trainingsdatensatzes quadratische Distanzen sind.
  22. Das Verfahren nach einem der Ansprüche 15–21, dadurch gekennzeichnet, dass die Trainingsdaten vor zu Beginn des Verfahrens komprimiert und indiziert werden, wobei textuelle Werte durch ganzzahlige Wert-Indices und/oder Fließkomma-Werte in diskrete Intervalle diskretisiert werden.
  23. Das Verfahren nach einem der Ansprüche 15–22 dadurch gekennzeichnet, dass bei einer Vergrößerung des Neuronen-Netzes die Gewichte der neu eingefügten Neuronen durch lineare, kubische oder sonstige Interpolation bestimmt wird, falls es sich um innere Neuronen handelt und/oder die Gewichte der neu eingefügten Neuronen durch Extrapolation bestimmt werden, falls es sich um Randneuronen handelt.
  24. Das Verfahren nach einem der Ansprüche 15–23, dadurch gekennzeichnet, dass bei einer Verkleinerung des Neuronen-Netzes jedes Neuron mehrere benachbarte vorhandene Neuronen ersetzt und in jedem seiner Neuronengewichte den Mittelwert der entsprechenden Neuronengewichte der ersetzten Neuronen erbt.
  25. Das Verfahren nach einem der Ansprüche 15–24, dadurch gekennzeichnet, dass die minimale Distanz zwischen dem Neuron und dem aktuellen Trainingsdatensatz die minimale quadratische Distanz ist oder die Distanz ein Distanzmaß aufweist, das die Eigenschaften einer Metrik hat.
  26. Das Verfahren nach einem der Ansprüche 15–25, dadurch gekennzeichnet, dass für jede Trainingsphase zumindest eine Auswahl der Trainingsdatensätze verwendet werden um die Neuronengewichte der Neuronen des Neuronen-Netzes zu gewichten, wobei für jede Trainingsphase abhängig von der aktuellen Größe des Neuronen-Netzes eine unterschiedliche Anzahl von Trainingsdurchlaufen für das Training der Neuronen mit den Merkmalen gewählt wird, die so oft auszuführen sind, bis die maximale vorgegebene Anzahl von Trainingsdurchläufen erreicht ist, oder das Training insofern konvergiert als dass sich die Merkmalsgewichte der Neuronen nicht mehr wesentlich ändern.
  27. Das Verfahren nach einem der Ansprüche 15–26, dadurch gekennzeichnet, dass zwischen zwei Trainingsphasen, für die Neuronen in das Netz einzufügen sind, wenigstens eine Trainingsphase auszuführen ist, für die Neuronen aus dem Netz zu entfernen sind.
  28. Das Verfahren nach einem der Ansprüche 15–27, dadurch gekennzeichnet, dass, bei dem Entfernen eines Neurons nur die unmittelbar an das zu entfernende Neuron angrenzenden verbleibenden Neuronen neu zu gewichten sind, oder die verbleibenden Neuronen mittels einer linearen oder kubischen oder Exponential-Spline-Interpolation oder einer sonstigen Interpolationsvorschrift unter Einbeziehung mehrerer Nachbarneuronen neu zu gewichten sind.
  29. Das Verfahren nach einem der Ansprüche 15–28, dadurch gekennzeichnet, dass die Neuronen des Neuronen-Netzes als Knoten einer mehrdimensionalen, vorzugsweise zweidimensionalen Matrix anzuordnen sind.
  30. Das Verfahren nach Anspruch 29, dadurch gekennzeichnet, dass beim Entfernen oder Einfügen von Neuronen aus dem/in das Neuronen-Netz aus der Matrix Zeilen oder Spalten zu entnehmen/einzufügen sind.
  31. Das Verfahren nach einem der Ansprüche 15–30, dadurch gekennzeichnet, dass die Gewichte aller Neuronen für ein bestimmtes Merkmal in einem zusammenhängenden Speicherbereich eines Analyse-Rechners (10) zu speichern sind.
  32. Das Verfahren nach einem der Ansprüche 15–31, dadurch gekennzeichnet, dass die anfänglichen Neuronengewichte der Neuronen des Neuronen-Netzes durch ein heuristisches Verfahren zu bestimmen sind.
  33. Das Verfahren nach einem der Ansprüche 15–32, dadurch gekennzeichnet, dass die Merkmale vor dem Start des Trainings einmal gelesen und die Merkmale lediglich einmal auf numerische Merkmale transformiert werden.
  34. Das Verfahren nach einem der Ansprüche 15–33, dadurch gekennzeichnet, dass die Merkmale vor dem Training als Trainingsdaten komprimiert zu speichern sind.
  35. Das Verfahren nach einem der Ansprüche 15–34, dadurch gekennzeichnet, dass der Analyse-Rechner (10) eine Initialkonfiguration des Neuronen-Netzes und Trainings-Parameter erstellt und die Initialkonfiguration und die Trainings-Parameter an mindestens einen weiteren Analyse-Rechner (20) versendet.
  36. Das Verfahren nach einem der Ansprüche 15–35, dadurch gekennzeichnet, dass die Initialkonfiguration des Neuronen-Netzes und die Trainings-Parameter von dem mindestens einen weiteren Analyse-Rechner (20) eingelesen werden.
  37. Das Verfahren nach einem der Ansprüche 15–36, dadurch gekennzeichnet, dass – der Analyse-Rechner (10) für alle Trainingsphasen und/oder für alle Trainingsläufe die Neuronengewichte und/oder eine Lernrate und/oder einen Radius und/oder die Anzahl von Iterationsschritten an den mindestens einen weiteren Analyse-Rechner (20) versendet, – der mindestens eine weitere Analyse-Rechner (20) die von dem Analyse-Rechner (10) versandten Informationen einliest und für die eingelesene Anzahl Trainingsläufe jeweils Distanzen zwischen den Trainingsdatensätzen und den Gewichten für die Neuronen berechnet, ein Gewinnerneuron ermittelt, das Gewinnerneuron jeweils in einer Liste speichert und die Liste nach der Anzahl von Iterationsschritten an den Analyse-Rechner (10) sendet, und – der Analyse-Rechner (10) die Liste der Gewinnerneuronen von dem mindestens einen weiteren Analyse-Rechner (20) empfängt und darauf basierend die Gewichte der Gewinnerneuronen und ihrer Nachbarn modifiziert.
  38. Das Verfahren nach einem der Ansprüche 15–37, dadurch gekennzeichnet, dass die Trainingsdaten von dem Analyse-Rechner (10) in Daten-Objekte aufgeteilt werden und die Daten-Objekte an den mindestens einen weiteren Analyse-Rechner (20) versendet werden, wobei die Daten-Objekte vor dem versenden so zu dimensionieren sind, dass sie vollständig in den Arbeitsspeicher des mindestens einen weiteren Analyse-Rechner (20) passen.
  39. Das Verfahren nach einem der Ansprüche 15–38, dadurch gekennzeichnet, dass zur Bestimmung der Distanzen zwischen den Neuronen und dem aktuellen Trainingsdatensatz im rechenzeitintensivsten Teil des Verfahrens nur auf lückenlose Folgen von Speicherfeldern zugegriffen wird.
  40. Das Verfahren nach Anspruch 39, dadurch gekennzeichnet, dass zur Bestimmung der Distanzen zwischen den Neuronen und dem aktuellen Trainingsdatensatz lange Schleifen über höchstens 2 Speicherfeld-Variablen verwendet werden.
  41. Das Verfahren nach einem der Ansprüche 15–40, dadurch gekennzeichnet, dass für jedes nominale Merkmal in den Trainingsdaten vorkommende Nominalwerte in einem Verzeichnis gespeichert werden, in dem jedem Merkmalswert ein vorläufiger Index zuordnet wird und das zusätzlich die Vorkommenshäufigkeit eines Merkmals zählt, und jeder Nominalwert durch den vorläufigen Index ersetzt wird.
  42. Das Verfahren nach Anspruch 41, dadurch gekennzeichnet, dass das erstellte Verzeichnis nach Vorkommenshäufigkeit sortiert ist, einer Anzahl häufiger Werte jeweils ein neuer Index zugeordnet wird und die vorläufigen Indices durch die neuen Indices ersetzt werden.
DE102008058016A 2008-11-19 2008-11-19 System und Verfahren zur rechnerbasierten Analyse großer Datenmengen Withdrawn DE102008058016A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102008058016A DE102008058016A1 (de) 2008-11-19 2008-11-19 System und Verfahren zur rechnerbasierten Analyse großer Datenmengen
PCT/EP2009/008247 WO2010057642A1 (de) 2008-11-19 2009-11-19 System und verfahren zur rechnerbasierten analyse grosser datenmengen
EP09827247A EP2396752A2 (de) 2008-11-19 2009-11-19 System und verfahren zur rechnerbasierten analyse grosser datenmengen
PCT/IB2009/008055 WO2010058299A2 (de) 2008-11-19 2009-11-19 System und verfahren zur rechnerbasierten analyse grosser datenmengen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008058016A DE102008058016A1 (de) 2008-11-19 2008-11-19 System und Verfahren zur rechnerbasierten Analyse großer Datenmengen

Publications (1)

Publication Number Publication Date
DE102008058016A1 true DE102008058016A1 (de) 2010-11-04

Family

ID=41566194

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008058016A Withdrawn DE102008058016A1 (de) 2008-11-19 2008-11-19 System und Verfahren zur rechnerbasierten Analyse großer Datenmengen

Country Status (3)

Country Link
EP (1) EP2396752A2 (de)
DE (1) DE102008058016A1 (de)
WO (2) WO2010058299A2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020133089A1 (de) 2020-01-24 2021-07-29 Technisat Digital Gmbh Anordnung zur Heimautomation sowie Vorrichtung und Verfahren
DE102020202869A1 (de) 2020-03-06 2021-09-09 Robert Bosch Gesellschaft mit beschränkter Haftung Vorverarbeitungsverfahren zur Bereitstellung homogener Datenblöcke

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018113790A1 (zh) * 2016-12-23 2018-06-28 北京中科寒武纪科技有限公司 一种人工神经网络运算的装置及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0829809A1 (de) 1996-09-16 1998-03-18 ABBPATENT GmbH Verfahren zur Prozessvisualisierung
EP0845720A1 (de) 1996-12-02 1998-06-03 ABBPATENT GmbH Verfahren zur Analyse und Darstellung von transienten Prozessvorgängen
US20030142094A1 (en) * 2002-01-24 2003-07-31 The University Of Nebraska Medical Center Methods and system for analysis and visualization of multidimensional data
US20060161814A1 (en) * 2003-07-09 2006-07-20 Carl Wocke Method and system of data analysis using neural networks

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729662A (en) * 1995-06-07 1998-03-17 Rozmus; J. Michael Neural network for classification of patterns with improved method and apparatus for ordering vectors
DE102008027605B4 (de) * 2008-06-10 2010-04-08 Optiming Gmbh System und Verfahren zur rechnerbasierten Analyse großer Datenmengen

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0829809A1 (de) 1996-09-16 1998-03-18 ABBPATENT GmbH Verfahren zur Prozessvisualisierung
EP0845720A1 (de) 1996-12-02 1998-06-03 ABBPATENT GmbH Verfahren zur Analyse und Darstellung von transienten Prozessvorgängen
US20030142094A1 (en) * 2002-01-24 2003-07-31 The University Of Nebraska Medical Center Methods and system for analysis and visualization of multidimensional data
US20060161814A1 (en) * 2003-07-09 2006-07-20 Carl Wocke Method and system of data analysis using neural networks

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Ch. Ballard et al., Dynamic Warehousing: Data Mining Made Easy, IBM Redbook, 2007
R. Otte, V. Otte, V. Kaiser, Data Mining für die industrielle Praxis, Hanser Verlag, München, 2004
T. Kohonen. Self-Organization and Associative Memory, vol. 8 of Springer Series in Information Science, 3rd edition, Springer-Verlag, Berlin, 1989
Wikipedia: "Selbstorganisierende Karte", archivierter Artikel vom 17.11.2006, S. 1-5, und für die Bilddarstellung aktueller Artikel, S. 1-5, mit weitgehend identischem Text *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020133089A1 (de) 2020-01-24 2021-07-29 Technisat Digital Gmbh Anordnung zur Heimautomation sowie Vorrichtung und Verfahren
DE102020202869A1 (de) 2020-03-06 2021-09-09 Robert Bosch Gesellschaft mit beschränkter Haftung Vorverarbeitungsverfahren zur Bereitstellung homogener Datenblöcke

Also Published As

Publication number Publication date
EP2396752A2 (de) 2011-12-21
WO2010057642A1 (de) 2010-05-27
WO2010058299A2 (de) 2010-05-27
WO2010058299A3 (de) 2011-11-24

Similar Documents

Publication Publication Date Title
DE102018111905A1 (de) Domänenspezifische Sprache zur Erzeugung rekurrenter neuronaler Netzarchitekturen
DE102018221413A1 (de) Effektive baustein-ausgestaltung für tiefe konvolutionelle neuronale netzwerke unter verwendung einer suche
DE102017109239A1 (de) Computerimplementiertes verfahren, computerlesbares medium und heterogenes rechnersystem
DE112016001796T5 (de) Feinkörnige bildklassifizierung durch erforschen von etiketten von einem bipartiten graphen
DE60004507T2 (de) Schnelle gruppierung durch spärlich bestückte datensätze
DE102008048478A1 (de) Probenermittlungsstrategie unter Verwendung genetischer Algorithmen bei der Optimierung eines technischen Entwurfs
DE102012216029A1 (de) Ein skalierbares anpassungsfähiges map-reduce-rahmenwerk mit verteilten daten
DE102008027605A1 (de) System und Verfahren zur rechnerbasierten Analyse großer Datenmengen
DE112004001214T5 (de) Schnelles Merkmalsauswahlverfahren und System zur Maximalentropiemodellierung
DE112019004261T5 (de) Analyse und Korrektur der Lieferketten-Gestaltung durch maschinelles lernen
EP3736817A1 (de) Überprüfung und/oder verbesserung der konsistenz von datenkennzeichnungen bei der medizinischen bildverarbeitung
DE112019005048T5 (de) Hyperparameteroptimierungsverfahren, -vorrichtung und -programm
DE102021127244A1 (de) Künstliche Intelligenz Optimierungsplattform
DE102020133266A1 (de) Technologien zur Verfeinerung von stochastischen Ähnlichkeitssuchekandidaten
EP2854045B1 (de) Verfahren und System zum Bewerten von erhobenen Messwerten eines Systems
DE102021200012A1 (de) Optimierte quantisierung für neuronale netze mit verringerter auflösung
DE112012005087T5 (de) Verfahren, Einheit und Computerprogramm zum Visualisieren von Risikoabschätzwerten in Ereignisfolgen
DE102008058016A1 (de) System und Verfahren zur rechnerbasierten Analyse großer Datenmengen
DE102021109138A1 (de) Ausführung von abfrageplänen
DE112021000627T5 (de) Dynamische erkennung und korrektur von datenqualitätsproblemen
DE102020209853A1 (de) Vorrichtung und system für das lernen unüberwachter geordneter darstellung mit einem residual-variational-autoencoder
DE112020002892T5 (de) Aktives lernen für den datenabgleich
CN116992334A (zh) 面向学术网络节点分类方法和装置
EP3736749A1 (de) Verfahren und vorrichtung zur ansteuerung eines geräts mit einem datensatz
Ali et al. Improving accuracy of missing data imputation in data mining

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: OPTIMINING GMBH, 82319 STARNBERG, DE

R081 Change of applicant/patentee

Owner name: OPTIMINING GMBH, DE

Free format text: FORMER OWNER: OPTIMINIG GMBH, 82319 STARNBERG, DE

Effective date: 20110209

R082 Change of representative

Representative=s name: HOESSLE PATENTANWAELTE PARTNERSCHAFT, 70173 STUTTG

Representative=s name: HOESSLE PATENTANWAELTE PARTNERSCHAFT, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110601

Effective date: 20110531