| Neuronale Netze: Planung | |||||||||||||
2. PlanungSie finden hier einige, eigentlich selbstverständliche Bemerkungen, die bei der Planung jedes Projekts zu berücksichtigen sind, sowie Aspekte, die bei der Planung von neuronalen Netzen im Besonderen zu beachten sind.
2.1 EinführungIn sehr vielen Fällen besteht die Aufgabe eines neuronalen Netzes darin, bestimmte Ausgabedaten aus gegebenen Eingabedaten zu berechnen. Der Zusammenhang zwischen Ein- und Ausgabedaten muß eindeutig sein, d.h. einem vorgegebenen Satz von Eingabedaten wird genau ein Satz von Ausgabedaten zugeordnet. Anders ausgedrückt: Es gibt eine Funktion, die die Eingabedaten auf die Ausgabedaten abbildet. Diese Funktion soll von dem neuronalen Netz gelernt werden. Dazu wird das neuronale Netz mit einer Menge von vollständigen Datensätzen, bestehend aus Ein- und Ausgabedaten trainiert. Ferner benötigt man eine Testmenge von vollständigen Datensätzen, um zu überprüfen, wie gut das neuronale Netz die gesuchte Funktion gelernt hat. Da man in der Regel nur eine endliche Menge von Trainings- und Testdaten zur Verfügung hat, kann die Funktion nur approximativ gelernt werden. Das trainierte neuronale Netz liefert eine Funktion, die die gesuchte Funktion mehr oder weniger gut approximiert. Da die gesuchte Funktion aber ohnehin nicht eindeutig festliegt, spielt diese Einschränkung keine wesentliche Rolle. Eine wesentliche Aufgabe bei der Arbeit mit neuronalen Netzen besteht aber darin, die Fehler der Ausgabedaten, die das neuronale Netz liefert, zuverlässig abzuschätzen. Dieser Aspekt wird in Anwendungen leider häufig vernachlässigt. Wir werden auf die Fehlerabschätzung im Abschnitt Fehler ausführlich eingehen.
Da die Funktion, die das neuronale Netz lernen soll, zumindest in praktischen Anwendungen unbekannt ist, ist eine genaue Planung des Vorgehens nötig. Einige Hinweise, was dabei zu beachten ist, werden im folgenden gegeben. Zuerst muß die Problemstellung festgelegt werden. Folgende Fragen sind zu klären:
2.2 ProblemstellungBei der Problemstellung sind alle möglichen Methoden in Betracht zu ziehen, die zu einer Lösung des Problems führen können. Häufig ist die Simulation durch ein neuronales Netz nur eine Möglichkeit von vielen. In vielen Fällen sind bestimmte Gesetzmäßigkeiten bekannt, die für ein zu simulierendes System gelten. In einem neuronalen Netz lassen sich solche Gesetzmäßigkeiten in der Regel nicht implementieren. Ein neuronales Netz ist dann eventuell keine optimale Simulationsmöglichkeit und andere Verfahren liefern bessere Resultate. Andererseits kann ein neuronales Netz benutzt werden, um Regeln oder Gesetzmäßigkeiten abzuleiten. Wir kommen im Abschnitt Regeln darauf zurück. Sind umgekehrt Gesetzmäßigkeiten bekannt, können diese benutzt werden, um die Konsistenz des neuronalen Netzes zu überprüfen.
2.3 ZielvorgabenGerade bei der Simulation mit neuronalen Netzen ist die genaue Definition der Ziele wichtig. Ohne zu wissen, welche Aufgaben ein neuronales Netz erfüllen soll, ist eine Programmierung eines solchen oft reine Spielerei. Ein neuronales Netz kann zudem keine Information erzeugen, die nicht schon in versteckter Form in den Eingabedaten vorhanden ist. Das gilt natürlich für jede Modellierung eines Systems. Gerade bei der Anwendung neuronaler Netze wird dieser Aspekt aber gerne übersehen.
2.4 ResourcenNeuronale Netze sind meist leicht zu programmieren und können auf allen heute gängigen Rechnern laufen. Die Anforderungen an die Hardware sind in der Regel durch die Komplexität des Problems gegeben. Einschränkungen bestehen nur dann, wenn man sich von vornherein auf spezielle Software festlegt, die ihrerseits spezielle Anforderungen an die Hardware stellt. Eine solche Festlegung ist aber meist nicht notwendig und sollte nur dann vorgenommen werden, wenn mit dem Produkt schon positive Erfahrungen gemacht wurden. Ein wichtiger Punkt ist aber die Stabilität der Installation: Gerade bei langfristigen Projekten ist darauf zu achten, daß Hardware und Software hinreichend stabil sind und die Software leicht auf neue Hardware portierbar ist.
Die Programmierung eines neuronalen Netzes kann entweder direkt in einer Programmiersprache geschehen, für die dann ein Compiler vorhanden sein muß, oder sie kann mit Hilfe eines Programms vorgenommen werden, das speziell für die Simulation von neuronalen Netzen geschrieben wurde. Solche neural network simulators sind in großer Zahl auf dem Markt erhältlich. Beide Methoden haben unterschiedliche Vor- und Nachteile. Ein spezielles Simulationsprogramm erfordert in der Regel keine oder nur geringe Programmierkenntnisse, es ist oft mit einer intuitiv zu bedienenden, graphischen Oberfläche ausgestattet und enthält schon eine große Vielzahl von möglichen Optionen. Es erlaubt eine rasche Implementierung eines neuronalen Netzes, und die Implementierung ist in der Regel flexibel. Änderungen an dem Netz sind leicht durchzuführen. Ein Nachteil ist, daß diese Programme unter Umständen deutlich mehr Speicherplatz und Rechenzeit benötigen, als ein direkt programmiertes neuronales Netz. Auch bei der direkten Programmierung kann man häufig auf fertige Bibliotheken zurückgreifen. Ein oft nützliches Vorgehen besteht darin, das Netz zunächst mit einem Simulationsprogramm zu entwickeln und zu testen und anschließend in einer gängigen Programmiersprache ein entsprechendes Programm zu schreiben.
Arbeitet man mit einem fertigen Simulationsprogramm, so sind vor der Anschaffung folgende Punkte zu klären:
2.5 PersonalEin Projekt, in dem mit einem neuronalen Netz gearbeitet werden soll, bedarf einer Reihe spezieller Qualifikationen. In der Regel kann ein solches Projekt nicht ohne einen Spezialisten für neuronale Netze durchgeführt werden.
Der Projektmanager sollte immer darauf achten, daß Zwischenziele im vorgegebenen Zeitrahmen erreicht werden und veranschlagte Kosten nicht überstiegen werden. Dazu muß er eine gewisse Erfahrung im Umgang mit neuronalen Netzen haben, um Probleme frühzeitig zu erkennen. Neuronale Netze sind extrem flexibel und daher für sehr unterschiedliche Projekte einsetzbar. Man kann insbesondere auch noch dann brauchbare Resultate erhalten, wenn andere Methoden nicht anwendbar sind. Andererseits ist die Verwendung von neuronalen Netzen in vielen Bereichen ein recht neues Verfahren. Ein Erfolg ist also nicht garantiert. Es besteht immer die Gefahr, daß die vorhandenen Daten für die Simulation nicht ausreichen und das Projekt damit kein Resultat liefert. Ein mit neuronalen Netzen erfahrener Projektmanager kann die Effektivität des Verfahrens beurteilen, Schwierigkeiten rechtzeitig erkennen und das Projekt gegebenenfalls stoppen.
2.6 ProjektkostenDie Projektkosten setzen sich wie üblich aus Personalkosten, Kosten für Hard- und Software, Kosten für die Datenerhebung und sonstigen Projektkosten zusammen. Ein wichtiger Aspekt bei neuronalen Netzen ist, das sie oft lange Rechenzeiten benötigen. Die Kosten für die Rechenzeit sind daher in der Regel recht hoch.
2.7 DokumentationWichtig ist, daß jeder Schritt ausführlich dokumentiert wird. Da die Entwicklung eines neuronalen Netzes oft experimentell verläuft, spielt die Dokumentation eine wichtige Rolle. Nur in einem gut dokumentierten Projekt kann man schnell eine gute Implementierung eines neuronalen Netzes erreichen. Die Dokumentation ist vergleichbar mit dem Laborjournal in einem experimentell arbeitenden Labor.
Die Dokumentation soll zudem die Einarbeitung neuer Mitarbeiter erleichtern. Insbesondere bei lang laufenden Projekten, oder bei Projekten, an denen unterschiedliche Firmen oder Institute beteiligt sind, ist es günstig, die Dokumentation in einem nicht-proprietären Standard-Format abzulegen. Beispielsweise bietet es sich an, XML für die Dokumentation zu verwenden und für jeden einzelnen Schritt eine Dokumenttyp-Definition (DTD) festzulegen. Diese Vorgehensweise erlaubt es zum einen, Standards für die Dokumentation festzulegen und einzuhalten, zum anderen, die Dokumentation in unterschiedlichen Formaten zur Verfügung zu stellen.
Eine besonders wichtige Rolle spielt die Dokumentation für die spätere Kontrolle des neuronalen Netzes im laufenden Betrieb.
|
|
|
Copyright (c) Andreas Mielke 1999-2010. Letzte Änderung: 04.03.2011. info@andreas-mielke.de |