Künstliches neuronales Netz
Künstliche neuronale Netze (selten auch künstliche neuronale Netzwerke, 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 (Modellbildung) von Informationsverarbeitung und weniger um das Nachbilden biologischer neuronaler Netze, was eher Gegenstand der Computational Neuroscience ist.
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 KNNen finden, z.B. das High-Order-Neuron. Die Topologie eines Netzes (die Zuordnung von Verbindungen zu Knoten) 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, Löschen bestehender Verbindungen
- Ändern der Gewichtung (der Gewichte $ w_{ij} $ von Neuron i zu Neuron j)
- Anpassen der Schwellenwerte 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 on-Neuron miterledigt 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 komplex. Neuronale Netze stellen von der Berechenbarkeit her ein äquivalentes Modell zur Turingmaschine dar.[1]
Geschichtliche Entwicklung
Der Anfang der neuronalen Netze war bereits in den frühen 1940er Jahren, also fast zeitgleich mit der Geschichte der programmierbaren Computer.[2]
Anfänge
Die Anfänge gehen auf Warren McCulloch und Walter Pitts zurück. Diese beschreiben 1943 eine Art neurologisches Netz, das praktisch jede logische oder auch arithmetische Funktion berechnen kann. 1947 weisen sie darauf hin, dass ein solches Netz zur räumlichen Mustererkennung eingesetzt werden kann. 1949 formuliert Donald O. Hebb seine Hebbsche Lernregel, die in ihrer allgemeinen Form fast alle neuronalen Lernverfahren darstellt. Karl Lashley kommt 1950 zu der These, dass der Prozess der Informationsspeicherung verteilt im Gehirn realisiert wird.
Blütezeit
Im anschließenden Jahr, 1951, gelingt Marvin Minsky mit seiner Dissertationsarbeit der Bau des Neurocomputers Snark, der seine Gewichte automatisch justieren kann, jedoch nicht praktisch einsetzbar ist. 1956 treffen sich Wissenschaftler und Studenten auf dem Dartmouth Summer Research Project. Von 1957-1958 entwickeln Frank Rosenblatt und Charles Wightman den ersten erfolgreichen Neurocomputer, mit dem Namen Mark I Perceptron. Der Computer konnte mit seinem 20 x 20 Pixel großen Bildsensor bereits einfache Ziffern erkennen. Im nachfolgenden Jahr formuliert Rosenblatt das Perceptron-Konvergenz-Theorem. 1960 stellen Bernhard Widrow und Marcian E. Hoff das ADALINE (ADAptive Linear Neuron) vor.[3] Dieses Netz erreichte als erstes weite kommerzielle Verbreitung. Anwendung fand es in Analogtelefonen zur Echtzeit-Echofilterung. Das Neuronale Netz lernte mit der Deltaregel. 1961 stellte Karl Steinbuch Techniken der assoziativen Speicherung vor. 1969 gaben Marvin Minsky und Seymour Papert eine genaue mathematische Analyse des Perceptrons.[4] Sie zeigten auf, dass wichtige Probleme nicht gelöst werden können. So sind unter anderem XOR-Operatoren nicht auflösbar und es gibt Probleme in der linearen Separierbarkeit. Die Folge war ein vorläufiges Ende der Forschungen auf dem Gebiet der Neuronalen Netze, da die meisten Forschungsgelder gestrichen wurden.
Langsamer Wiederaufbau
1972 stellt Teuvo Kohonen den linearen Assoziator, ein Modell des Assoziativspeichers, vor.[5] James A. Anderson beschreibt das Modell unabhängig von Kohonen aus neuropsychologischer Sicht im selben Jahr.[6] 1973 benutzt Christoph von der Malsburg ein Neuronenmodell, das nichtlinear ist. Bereits 1974 entwickelt Paul Werbos für seine Dissertation die Backpropagation bzw. die Fehlerrückführung. Das Modell bekam aber erst später eine größere Bedeutung. Ab 1976 entwickelt Stephen Grossberg mathematisch fundierte Modelle neuronaler Netze. Zusammen mit Gail Carpenter widmet er sich auch dem Problem ein Neuronales Netz lernfähig zu halten ohne bereits gelerntes zu zerstören. Sie formulieren ein Architekturkonzept für Neuronale Netze, die Adaptive Resonanztheorie. 1982 beschreibt Teuvo Kohonen die nach ihm benannten selbstorganisierenden Karten. Im selben Jahr beschreibt John Hopfield das Modell der Hopfield-Netze. 1983 wird von Kunihiko Fukushima, S. Miyake und T. Ito das neuronale Modell Neocognitron vorgestellt. Das Modell ist eine Weiterentwicklung des 1975 entwickelten Cognitrons und dient zur Erkennung handgeschriebener Zeichen.
Renaissance
1985 veröffentlicht John Hopfield eine Lösung des Travelling Salesman Problems durch ein Hopfield-Netz. 1985 wird das Lernverfahren Backpropagation of Error als Verallgemeinerung der Delta-Regel durch die Parallel Distributed Processing-Gruppe separat entwickelt. Somit werden nicht linear separierbare Probleme durch mehrschichtige Perceptrons lösbar. Minskys Abschätzung war also widerlegt.
Aktueller Stand
Während vor allem mit der beschleunigten Entwicklung der Computertechnik in den Neunziger Jahren des letzten Jahrhunderts künstliche neuronale Netze der sogenannten zweiten Generation in Wissenschaft und Technik gut eingeführt und weit verbreitet waren, beschäftigt sich die Wissenschaft derzeit vor allem mit sogenannten Spiking neural networks (SNN) als sogenannte dritte Generation.[7]
Topologie der Verbindungsnetzwerke
In künstlichen neuronalen Netzen bezeichnet die Topologie die Struktur des Netzes. Damit ist im Allgemeinen gemeint, wie viele künstliche Neuronen sich auf wie vielen Schichten (Hidden Layers) befinden und wie diese miteinander verbunden sind. Künstliche Neuronen können auf beliebige Weise zu einem künstlichen neuronalen Netz verbunden werden. Dabei werden Neuronen bei vielen Modellen in hintereinander liegenden Schichten (engl. Layer) angeordnet und man spricht z. B. bei einem Netz mit einer trainierbaren Neuronenschicht von einem einschichtigen Netz.
Unter Verwendung eines Graphen können die Neuronen als Knoten und ihre Verbindungen als Kanten dargestellt werden. Die Eingaben werden in Teilen der Literatur auch wie Knoten behandelt.
Die hinterste Schicht des Netzes, deren Neuronenausgaben meist als einzige außerhalb des Netzes sichtbar sind, wird Ausgabeschicht (engl. output layer) genannt. Davorliegende Schichten werden dementsprechend als verdeckte Schicht (engl. hidden layer) bezeichnet.
Die Struktur des Netzwerks hängt direkt mit dem verwendeten Lernverfahren zusammen; so kann mit der Delta-Regel nur ein einschichtiges Netz trainiert werden. Dabei müssen Netze nicht zwingend homogen sein: es existieren Kombinationen aus verschiedenen Modellen um so die unterschiedlichen Vorteile zu kombinieren.
Es gibt reine feedforward-Netze, bei denen eine Schicht immer nur mit der nächsthöheren Schicht verbunden ist. Darüber hinaus gibt es Netze, in denen Verbindungen in beiden Richtungen erlaubt sind. Das Finden der passenden Netzstruktur ist meist ein Versuch-und-Irrtum-Vorgang, kann jedoch mit Hilfe Genetischer Algorithmen und Backpropagation automatisch angepasst werden.
Typische Strukturen sind:
- Einschichtiges feedforward-Netz: Einschichtige Netze mit der feedforward-Eigenschaft (engl. für vorwärts) sind die einfachsten Strukturen künstlicher neuronaler Netze. Sie besitzen lediglich eine Ausgabeschicht. Die feedforward-Eigenschaft besagt, dass Neuronenausgaben nur in Verarbeitungsrichtung geleitet werden und nicht durch eine rekurrente Kante zurück geführt werden können (azyklischer, gerichteter Graph).
- Mehrschichtiges feedforward-Netz: Mehrschichtige Netze besitzen neben der Ausgabeschicht auch verdeckte Schichten, deren Ausgabe wie beschrieben, außerhalb des Netzes nicht sichtbar sind. Verdeckte Schichten verbessern die Abstraktion solcher Netze. So kann erst das mehrschichtige Perzeptron das XOR-Problem lösen.
- Rekurrentes Netz: Rekurrente Netze besitzen im Gegensatz dazu auch rückgerichtete (rekurrente) Kanten (engl. feedback loops) und enthalten somit eine Rückkopplung. Solche Kanten werden dann häufig mit einer Zeitverzögerung versehen, sodass bei einer schrittweisen Verarbeitung die Neuronenausgaben der vergangenen Einheit wieder als Eingaben angelegt werden können. Diese Rückkopplungen ermöglichen einem Netz ein dynamisches Verhalten und statten es mit einem Gedächtnis aus.
Es existieren Theorien, die besagen, dass das Hirn in der Lage ist, auch nach der Geburt neue Neuronen zu bilden. Jedoch sind diese nicht belegt (außer durch Tests an künstlichen neuronalen Netzen). Für den Fall dass tatsächlich noch neue Neuronen gebildet werden können, würde der Nachbau durch künstliche Neuronale Netze (KNN) um ein Vielfaches erschwert. Jedoch kann auch hier ein Genetischer Algorithmus Abhilfe schaffen, indem er, ähnlich einem Moore-Automaten bestimmt, wie häufig ein Neuron aktiviert werden muss, damit sich in seiner Umgebung neue Neuronen ausbilden. Zusätzlich muss auch festgelegt werden, wie die neuen Neuronen in das vorhandene Netz integriert werden sollen. Künstliche Neuronale Netze dieser Art müssen zwangsläufig darauf verzichten, in Schichten aufgebaut zu sein. Sie benötigen eine völlig freie Struktur. Höchstens der Raum, in dem sich die Neuronen befinden dürfen, kann begrenzt sein.
Anwendung
Seine besonderen Eigenschaften machen das KNN bei allen Anwendungen interessant, bei denen kein oder 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. So können auch Fuzzy-Systeme durch eine bidirektionale Umwandlung in Neuronale Netze lernbar gestaltet werden.
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 Anwendungsgebieten von KNNs gehören:
- Regelung und Analyse von komplexen Prozessen
- Frühwarnsysteme
- Optimierung
- Zeitreihenanalyse (Wetter, Aktien etc.)
- Sprachgenerierung (Beispiel: NETtalk)
- Bildverarbeitung und Mustererkennung
- Schrifterkennung (OCR)
- Spracherkennung
- Data-Mining
- Informatik: Bei Robotik, virtuellen Agenten und KI-Modulen in Spielen und Simulationen.
- Medizinische Diagnostik, Epidemiologie und Biometrie
- Klangsynthese
- Strukturgleichungsmodell zum Modellieren von sozialen oder betriebswirtschaftlichen Zusammenhängen
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 Leistung verspricht.
2012 publizierte Google ein Experiment, bei dem ein aus 16.000 Prozessoren gebautes neuronales Netz selbständig auf das Internet zugreifen konnte. Nach einiger Zeit konzentrierte sich das Netz auf Bilder von Katzen.[8][9]
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
- Perzeptron
- Self-Organizing Maps (auch Kohonen-Netze) (SOM)
- Growing Neural Gas (GNG)
- Lernende Vektorquantisierung (LVQ)
- Boltzmann-Maschine
- Cascade Correlation Netze
- Counterpropagation Netze
- Probabilistische neuronale Netze
- Radiale Basisfunktions-Netze (RBF)
- Adaptive Resonanztheorie (ART)
- Neocognitron
- Spiking Neural Networks (SNN)
- Spezialform davon:
- Pulscodierte Neuronale Netze (PCNN)
- Time Delay Neural Networks (TDNNs)
- Rekurrente neuronale Netze (RNNs)
- Bidirektionaler Assoziativspeicher (BAM)
- Elman-Netze (auch Simple recurrent network, SRN)
- Jordan-Netze
- Oszillierendes neuronales Netz
Lernverfahren
Lernverfahren dienen dazu, ein neuronales Netz dazu zu bringen, für bestimmte Eingangsmuster zugehörige Ausgabemuster zu erzeugen. Dies geschieht grundsätzlich auf drei verschiedenen Wegen.
Überwachtes Lernen
Beim Überwachten Lernen wird dem KNN ein Eingangsmuster gegeben und die Ausgabe, die das Neuronale Netz in seinem aktuellen Zustand produziert, mit dem Wert verglichen, den es eigentlich ausgeben soll. Durch Vergleich von Soll- und Istausgabe kann auf die vorzunehmenden Änderungen der Netzkonfiguration geschlossen werden.
- Delta-Regel (auch Perzeptron-Lernregel)
- Backpropagation
- Backpropagation mit Trägheitsterm
- SuperSAB
- Quickprop
- Resilient Propagation
Bestärkendes Lernen
Es ist nicht immer möglich, zu jedem Eingabedatensatz den passenden Ausgabedatensatz zum Trainieren zur Verfügung zu haben. Zum Beispiel kann man einem Agenten, der sich in einer fremden Umgebung zurechtfinden muss - etwa einem Roboter auf dem Mars - nicht zu jedem Zeitpunkt sagen, welche Aktion jeweils die beste ist. Aber man kann dem Agenten eine Aufgabe stellen, die dieser selbstständig lösen soll. Nach einem Testlauf, der aus mehreren Zeitschritten besteht, kann der Agent bewertet werden. Aufgrund dieser Bewertung kann eine Agentenfunktion gelernt werden.
Der Lernschritt kann durch eine Vielzahl von Techniken vollzogen werden. Unter anderem können hier auch künstliche neuronale Netze zum Einsatz kommen.
Unüberwachtes Lernen
Das Unüberwachte Lernen erfolgt ausschließlich durch Eingabe der zu lernenden Muster. Das Neuronale Netz verändert sich entsprechend den Eingabemustern von selbst.
- Adaptive Resonanztheorie
- Hebbsche Lernregel
- Kohonennetze
Stochastisches Lernen
- Simulated Annealing
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 gegebenenfalls 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 beispielsweise 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 Netzspezifikation, 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 Netzarchitektur 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, Regularisierungsnetze) 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 .Wav-Datei 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.
- Die Vorbelegung der Gewichte spielt eine wichtige Rolle. Als Beispiel sei ein 3-schichtiges Feed-Forward-Netz mit einem Eingabeneuron (plus ein Bias-Neuron) und einem Ausgabeneuron und einer verdeckten Schicht mit N Neuronen (plus ein Bias-Neuron) angenommen. Die Aktivierungsfunktion des Eingabeneurons sei die Identität. Die Aktivierungsfunktion der Verdeckten Schicht sei die Tanh-Funktion. Die Aktivierungsfunktion der Ausgabeschicht sei die logistische Sigmoide. Das Netz kann maximal eine Sinusfunktion mit N lokalen Extrema im Intervall von 0 bis 1 lernen. Wenn es diese Sinusfunktion gelernt hat, kann es mit dieser Gewichtsbelegung jede beliebige Funktion - die nicht mehr lokale Extrema als diese Sinusfunktion - mit möglicherweise exponentieller Beschleunigung - lernen (unabhängig vom Lernalgorithmus). Hier sei der einfachste Backpropagation ohne Momentum verwendet. Glücklicherweise kann man die Gewichte für solch eine Sinusfunktion leicht berechnen, ohne dass das Netz das erst lernen muss: Verdeckte Schicht : i = 0..N-1, x = i % 2 == 0 ? 1 : -1 , w0i = x * pi * (N - 0.5), w1i = -x * i * pi; Ausgabeschicht : wj = 1;
Siehe auch
- Aktivierungsraum
- Maschinenlernen
- Neuronaler Schaltkreis
- Computational Neuroscience
Einzelnachweise
- ↑ http://www.math.rutgers.edu/~sontag/FTP_DIR/aml-turing.ps.gz
- ↑ http://www.dkriesel.com/index.php?id=neuronalenetze, Stand: 28. Februar 2009
- ↑ Bernhard Widrow, Marcian Hoff: Adaptive switching circuits. In: Proceedings WESCON. 1960, ZDB-ID 267416-6, S. 96–104.
- ↑ Marvin Minsky, Seymour Papert: Perceptrons. An Introduction to Computional Geometry. MIT Press, Cambridge MA u. a. 1969.
- ↑ Teuvo Kohonen: Correlation matrix memories. In: IEEE transactions on computers. C-21, 1972, ISSN 0018-9340, S. 353–359.
- ↑ James A. Anderson: A simple neural network generating an interactive memory. In: Mathematical Biosciences. 14, 1972, ISSN 0025-5564, S. 197–220.
- ↑ Thomas Natschläger: Netzwerke von „spiking“ Neuronen. Die dritte Generation von Modellen für Neuronale Netzwerke..
- ↑ Artificial Brain Learns to Watch Cat Videos auf Newster.com, abgerufen am 26. November 2012
- ↑ Google creates 'computer brain' - and it immediately starts watching cat videos on YouTube. Daily Mail, abgerufen am 26. November 2012
Literatur
- Wolfgang Ertel: Grundkurs Künstliche Intelligenz. Eine praxisorientierte Einführung. 2. überarbeitete Auflage. Vieweg + Teubner, Wiesbaden 2009, ISBN 978-3-8348-0783-0 (Computational Intelligence).
- Johann Gasteiger, Jure Zupan: Neural Networks in Chemistry and Drug Design. Wiley-VCH, Weinheim NY u. a. 1999, ISBN 3-527-29779-0.
- Simon Haykin: Neural Networks. A Comprehensive Foundation. 2. edition, international edition = Reprint. Prentice-Hall, Upper Saddle River NJ u. a. 1999, ISBN 0-13-273350-1.
- John Hertz, Anders Krogh, Richard G. Palmer: Introduction to the Theory of Neural Computation. Nachdruck. Addison-Wesley, Reading MA u. a. 1999, ISBN 0-201-51560-1 (Santa Fé Institute studies in the sciences of complexity. Lecture notes 1 = Computation and neural systems series).
- Simeon Knieling: Einführung in die Modellierung künstlich neuronaler Netzwerke. WiKu-Verlag, Duisburg 2007, ISBN 978-3-86553-192-6.
- Teuvo Kohonen: Self Organizing Maps. 3. edition. Springer, Berlin u. a. 2001, ISBN 3-540-67921-9 (Springer Series in Information Sciences 30 = Physics and Astronomy online Library).
- Burkhard Lenze: Einführung in die Mathematik neuronaler Netze. Mit C-Anwendungsprogrammen im Internet. 2. durchgesehene und überarbeitete Auflage. Logos-Verlag, Berlin 2003, ISBN 3-89722-021-0.
- André Lucas: Schätzung und Spezifikation ökonometrischer neuronaler Netze. Eul, Lohmar 2003, ISBN 3-89936-183-0 (Reihe: Quantitative Ökonomie 138), (Zugleich: Köln, Univ., Diss., 2002).
- Heinz Rehkugler, Hans Georg Zimmermann: Neuronale Netze in der Ökonomie. Grundlagen und finanzwirtschaftliche Anwendungen. Vahlen, München 1994, ISBN 3-800-61871-0.
- Günter Daniel Rey, Karl F. Wender: Neuronale Netze. Eine Einführung in die Grundlagen, Anwendungen und Datenauswertung. Huber, Bern 2008 ISBN 978-3-456-84513-5 (Psychologie Lehrbuch).
- Helge Ritter, Thomas Martinetz, Klaus Schulten: Neural Computation and Self-Organizing Maps. An Introduction. Addison Wesley, Reading MA 1992, ISBN 0-201-55442-9 (Computation and neural Systems Series).
- Raúl Rojas: Theorie der Neuronalen Netze. Eine systematische Einführung. 4. korrigierter Nachdruck. Springer, Berlin u. a. 1996, ISBN 3-540-56353-9 (Springer-Lehrbuch).
- Andreas Zell: Simulation neuronaler Netze. 4. unveränderter Nachdruck. Oldenbourg, München u. a. 2003, ISBN 3-486-24350-0.
Weblinks
- Einführung in die Grundlagen und Anwendungen neuronaler Netze
- Ein kleiner Überblick über Neuronale Netze - Grundlagenskript zu zahlreichen Arten / Lernprinzipien Neuronaler Netze, viele Abbildungen, einfach geschrieben, ca. 200 Seiten (PDF).
- Einführung in Neuronale Netze
- Geschichte der Neuronalen Netze bis 1960 (engl.)
- Tutorial zum Thema KNN
- Brain Cells Fused with Computer Chip
- Links zum Thema Neuronale Netze im Open Directory Project
- Gute Einführung in neuronale Netze (engl.)
Implementierungen und Simulationspakete
- ANNSI - Simulator für Künstliche Neuronale Netze
- Emergent, Rewrite des bekannten PDP++
- SNNS - Stuttgarter Neuronale-Netze-Simulator
- FANN-Bibliothek – fast artificial 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
- MemBrain - Graphischer Neuronale-Netze-Editor und -Simulator für Windows
- auto-nng - Automatischer Neuronale-Netze-Generator für BSD / Linux
- NeuroBox - .NET-Bibliothek inkl. Quellcode zur Simulation neuronaler Netze
- ANN for PHP 5.x - PHP-Implementierung eines neuronalen Netzes