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. Insgesammt geht es aber um eine Abstraktion von Informationsverarbeitung und weniger um das nachbilden biologischer neuronaler Netze.

Künstliche neuronale Netze basieren meist auf der Vernetzung vieler McCulloch-Pitts-Neuronen. Grundsätzlich können auch ander künstliche Neuronen Anwendung in KNN's finden, z.B. das High-Order-Neuron. Die Topologie eines Netzes muß abhängig von seiner Aufgabe gut durchdacht sein. Nach der Konstruktion eines Netzes folgt die Trrainingsphase, in der das Netz "lernt". Theoretisch kann ein Netz durch folgende Methodn lernen:
- Entwicklung neuer Verbindungen, bzw löschen bestehender Verbindungen
- Anpassen der Gewichte 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ächlisch durch modifikation der Gewichte der Neuronen. Dadurch sind KNN's 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. KNN's sind dabei eine Realisierung des konnektionistischen Paradigmas, da die Funktion aus vielen einfachen gleichartigen Teilen besteht. Erst in ihrer Summe wird das Verhalten kompliziert.
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. Folgende Aufgaben könne von KNN's erledigt werden:
- Regelung und Analyse von komplexen Prozessen
- Frühwarnsystemen
- Optimierung
- Zeitreihenanalyse (Wetter, Aktien etc.)
- Sprachgenerierung (Beispiel: NETtalk)
- Mustererkennung
- Klangerzeugung
Biologische Motivation
Während das Gehirn zur massiven Parallelverarbeitung in der Lage ist, arbeiten die meisten heutigen Computersysteme nur sequentiell bzw. partiell parallel (sog. Von-Neumann-Architektur 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.
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
- Perzeptron
- Self-Organizing Maps (auch Kohonen Netze) (SOM)
- Lernmatrix
- Bidirektionaler Assoziativspeicher (BAM)
- Hopfield-Netze
- Boltzmann-Maschine
- Cascade Correlation Netze
- Counterpropagation Netze
- Probabilistische Neuronale Netze
- Radiale Basisfunktions Netze (RBF)
- ART (kNN)
- Neocognitron
- Pulscodierte Neuronale Netze (PCNN)
- Elman-Netze
- Time Delay Neural Networks (TDNNs)
- Rekurrente Neuronale Netze (RNNs)
Lernverfahren
Schwierigkeiten
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 wurde (beispielsweise Quasi-Newton Verfahren: BFGS, DFP usw.), finden auch diese in der Regel nur suboptimale 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 (Overfitting). Wenn dies geschieht, können sie nicht mehr auf neue Daten verallgemeinern. Um Overfitting 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.
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
Weblinks
- Einführung in die Grundlagen und Anwendungen neuronaler Netze
- Einführung in Neuronale Netze
- Skript rund ums Neuronale Netz
- Tutorial zum Thema KNN
- Ein kleiner Überblick über Neuronale Netze: Studentische Arbeit (PDF) von D. Kriesel. Motiviert und erklärt verschiedene Netze, Lernverfahren und ein wenig Mathematik hinter den Lernverfahren.
- Brain Cells Fused with Computer Chip
- Linkkatalog zum Thema Neuronale Netze bei curlie.org (ehemals DMOZ)
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
Siehe auch
Aktivierungsraum, Neuroinformatik, Neuronales Netz, Konnektionismus, Parallel Distributed Processing, Neuronaler Schaltkreis