Künstliches neuronales Netz
aus Wikipedia, der freien Enzyklopädie
Künstliche neuronale Netze (kurz: KNN, engl. artificial neural network – ANN) sind Netze aus künstlichen Neuronen. Sie sind ein Zweig der künstlichen Intelligenz und prinzipieller Forschungsgegenstand der Neuroinformatik. Der Ursprung der künstlichen neuronalen Netze liegt ebenso, wie bei den künstlichen Neuronen, in der Biologie. Man stellt sie den natürlichen neuronalen Netzen gegenüber, welche Nervenzellvernetzungen im Gehirn und im Rückenmark bilden. Insgesamt geht es aber um eine Abstraktion von Informationsverarbeitung und weniger um das Nachbilden biologischer neuronaler Netze.
Inhaltsverzeichnis |
[Bearbeiten] Beschreibung
Künstliche neuronale Netze basieren meist auf der Vernetzung vieler McCulloch-Pitts-Neuronen oder leichter Abwandlungen davon. Grundsätzlich können auch andere künstliche Neuronen Anwendung in KNNs finden, z.B. das High-Order-Neuron. Die Topologie eines Netzes muss abhängig von seiner Aufgabe gut durchdacht sein. Nach der Konstruktion eines Netzes folgt die Trainingsphase, in der das Netz "lernt". Theoretisch kann ein Netz durch folgende Methoden lernen:
- Entwicklung neuer Verbindungen, bzw löschen bestehender Verbindungen
- Anpassen der Gewichte wij von Neuron i zu Neuron j
- Anpassen der Schwellwerte der Neuronen
- Hinzufügen oder löschen von Neuronen
Außerdem verändert sich das Lernverhalten, bei Veränderung der Aktivierungsfunktion der Neuronen oder der Lernrate des Netzes. Praktisch gesehen "lernt" ein Netz hauptsächlich durch Modifikation der Gewichte der Neuronen. Eine Anpassung des Schwellwertes kann hierbei durch ein BIAS-Neuron "nebenbei" mit erledigt werden. Dadurch sind KNNs in der Lage, komplizierte nichtlineare Funktionen über einen „Lern”-Algorithmus, der durch iterative oder rekursive Vorgehensweise aus vorhandenen Eingangs- und gewünschten Ausgangswerten alle Parameter der Funktion zu bestimmen versucht, zu erlernen. KNNs sind dabei eine Realisierung des konnektionistischen Paradigmas, da die Funktion aus vielen einfachen gleichartigen Teilen besteht. Erst in ihrer Summe wird das Verhalten kompliziert.
[Bearbeiten] Anwendung
Seine besonderen Eigenschaften machen das KNN bei allen Anwendungen interessant, bei denen kein bzw. nur geringes explizites (systematisches) Wissen über das zu lösende Problem vorliegt. Dies sind z.B. die Texterkennung, Bilderkennung und Gesichtserkennung, bei denen einige Hunderttausend bis Millionen Bildpunkte in eine im Vergleich dazu geringe Anzahl von erlaubten Ergebnissen überführt werden müssen.
Auch in der Regelungstechnik kommen KNN zum Einsatz, um herkömmliche Regler zu ersetzen oder ihnen Sollwerte vorzugeben, die das Netz aus einer selbst entwickelten Prognose über den Prozessverlauf ermittelt hat.
Die Anwendungsmöglichkeiten sind aber nicht auf techniknahe Gebiete begrenzt: Bei der Vorhersage von Veränderungen in komplexen Systemen werden KNNs unterstützend hinzugezogen, z.B. zur Früherkennung sich abzeichnender Tornados oder aber auch zur Abschätzung der weiteren Entwicklung wirtschaftlicher Prozesse.
Zu den Anwendungebieten von KNNs gehören:
- Regelung und Analyse von komplexen Prozessen
- Frühwarnsystemen
- Optimierung
- Zeitreihenanalyse (Wetter, Aktien etc.)
- Sprachgenerierung (Beispiel: NETtalk)
- Bildverarbeitung und Mustererkennung
- Informatik: Bei Robotik, virtuellen Agenten und KI-Modulen in Spielen und Simulationen.
- Chartanalyse von Börsenkursen
- Klangerzeugung
[Bearbeiten] Biologische Motivation
Während das Gehirn zur massiven Parallelverarbeitung in der Lage ist, arbeiten die meisten heutigen Computersysteme nur sequentiell (bzw. partiell parallel eines Rechners). Es gibt jedoch auch erste Prototypen neuronaler Rechnerarchitekturen, sozusagen den neuronalen Chip, für die das Forschungsgebiet der künstlichen neuronalen Netze die theoretischen Grundlagen bereitstellt. Dabei werden die physiologischen Vorgänge im Gehirn jedoch nicht nachgebildet, sondern nur die Architektur der massiv parallelen Analog-Addierer in Silizium nachgebaut, was gegenüber einer Software-Emulation eine bessere Performance verspricht.
[Bearbeiten] Klassen und Typen von KNN
Grundsätzlich unterscheiden sich die Klassen der Netze vorwiegend durch die unterschiedlichen Netztopologien und Verbindungsarten. Beispielsweise einschichtige-, mehrschichtige-, Feedforward- oder Feedback-Netze.
- McCulloch-Pitts-Netze
- Lernmatrix
- Hopfield-Netze
- Perzeptron
- Self-Organizing Maps (auch Kohonen Netze) (SOM)
- Learning Vector Quantization (LVQ)
- Bidirektionaler Assoziativspeicher (BAM)
- Boltzmann-Maschine
- Cascade Correlation Netze
- Counterpropagation Netze
- Probabilistische Neuronale Netze
- Radiale Basisfunktions Netze (RBF)
- Adaptive Resonanztheorie (ART)
- Neocognitron
- Pulscodierte Neuronale Netze (PCNN)
- Time Delay Neural Networks (TDNNs)
- Rekurrente Neuronale Netze (RNNs)
- Elman-Netze (auch Simple recurrent network, SRN)
[Bearbeiten] Lernverfahren
[Bearbeiten] Allgemeine Probleme
Die Hauptnachteile von KNN sind gegenwärtig
- Das Trainieren von KNN (im Terminus der Statistik: Das Schätzen der im Modell enthaltenen Parameter) führt in der Regel zu hochdimensionalen, nichtlinearen Optimierungsproblemen. Die prinzipielle Schwierigkeit bei der Lösung dieser Probleme besteht in der Praxis häufig darin, dass man nicht sicher sein kann, ob man das globale Optimum gefunden hat oder nur ein lokales. Obgleich in der Mathematik eine Fülle relativ schnell konvergierender lokaler Optimierungsverfahren entwickelt wurden (beispielsweise Quasi-Newton-Verfahren: BFGS, DFP usw.), finden auch diese selten optimale Lösungen. Eine zeitaufwändige Näherung an die globale Lösung erreicht man ggf. durch die vielfache Wiederholung der Optimierung mit immer neuen Startwerten.
- Es müssen Trainingsdaten gesammelt oder manuell erzeugt werden. Dieser Vorgang kann sehr schwierig sein, da man verhindern muss, dass das Netz Eigenschaften der Muster lernt, die zwar auf dem Trainingsset mit dem Ergebnis in irgendeiner Weise korreliert sind, die aber in anderen Situationen nicht zur Entscheidung herangezogen werden können. Wenn bspw. die Helligkeit von Trainingsbildern bestimmte Muster aufweist, dann 'achtet' das Netz unter Umständen nicht mehr auf die gewünschten Eigenschaften, sondern klassifiziert die Daten nur noch aufgrund der Helligkeit.
- Bei Anwendung einer ‚heuristischen‘ – nicht statistischen – Vorgehensweise bei der Netzwerkspezifikation, neigen KNN dazu, die Trainingsdaten einfach auswendig zu lernen (Überanpassung). Wenn dies geschieht, können sie nicht mehr auf neue Daten verallgemeinern. Um Überanpassung zu vermeiden, muss die Netzwerkarchitektur sehr ‚vorsichtig‘ gewählt werden. Dieses Problem existiert auch bei vielen anderen statistischen Verfahren und wird als ‚bias-variance trade-off‘ bezeichnet. Seit einigen Jahren werden häufig verbesserte Verfahren (Boosting, Support-Vector-Maschinen, Regularisierungsnetzwerke) eingesetzt, die diesem Problem begegnen.
- Die Kodierung der Trainingsdaten muss problemangepasst und nach Möglichkeit redundanzfrei gewählt werden. In welcher Form die zu lernenden Daten dem Netz präsentiert werden, hat einen großen Einfluss auf die Lerngeschwindigkeit, sowie darauf, ob das Problem überhaupt von einem Netz gelernt werden kann. Gute Beispiele hierfür sind Sprachdaten, Musikdaten oder auch Texte. Das einfache Einspeisen von Zahlen, beispielsweise einer Wavdatei für Sprache, führt selten zu einem erfolgreichen Ergebnis. Je präziser das Problem allein durch die Vorverarbeitung und Kodierung gestellt wird, desto erfolgreicher kann ein KNN dieses verarbeiten.
[Bearbeiten] Literatur
- A. Lucas: Schätzung und Spezifikation ökonometrischer neuronaler Netze. ISBN 3-89936-183-0
- T. Kohonen: Self Organizing Maps. ISBN 3-540-67921-9
- A. Zell: Simulation neuronaler Netze. ISBN 3-486-24350-0
- Raúl Rojas: Theorie der Neuronalen Netze. ISBN 3-540-56353-9
- B. Lenze: Einführung in die Mathematik neuronaler Netze. ISBN 3-89722-021-0
- H. Rehkugler, H.G. Zimmermann: Neuronale Netze in der Ökonomie. ISBN 3-800-61871-0
- S. Haykin: Neural Networks: A Comprehensive Foundation. ISBN 0-13-273350-1
- J. Gasteiger, J. Zupan: Neural Networks in Chemistry and Drug Design ISBN 3-527-29779-0
[Bearbeiten] Weblinks
- Einführung in die Grundlagen und Anwendungen neuronaler Netze
- Tutorial zum Thema KNN
- Ein kleiner Überblick über Neuronale Netze (D. Kriesel) - Grösstes kostenloses Skriptum (knapp 200 Seiten, PDF, 4.6MB) in Deutsch zu Neuronalen Netzen. Sehr reich Illustriert und anschaulich. Kapitel über Perceptrons, Backpropagation, Radiale Basisfunktionen, Rückgekoppelte Netze, Self Organizing Maps, Hopfield Netze u.v.m.
- Brain Cells Fused with Computer Chip
- Links zum Thema „Neuronale Netze“ im Open Directory Project
[Bearbeiten] Implementierungen und Simulationspakete
- SNNS - Stuttgarter Neuronale-Netze-Simulator
- FANN-Bibliothek – fast artifical neural network: http://fann.sourceforge.net/
- Lightweight neural network: http://lwneuralnet.sourceforge.net/
- KNN-Implementierungen auf linux-related.de
- EpsiloNN neuronale Beschreibungssprache der Universität Ulm
- Java Object Oriented Neural Engine
- MemBrain - Graphischer Neuronale-Netze-Editor und -Simulator für Windows
- auto-nng - Automatischer Neuronale-Netze-Generator für BSD / Linux
[Bearbeiten] Siehe auch
Aktivierungsraum, Neuroinformatik, Neuronales Netz, Konnektionismus, Parallel Distributed Processing, Neuronaler Schaltkreis