Meine Merkliste
my.bionity.com  
Login  

Künstliches neuronales Netz



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

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.

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
    • Schrifterkennung (OCR)
    • Spracherkennung
    • Data-Mining
  • Informatik: Bei Robotik, virtuellen Agenten und KI-Modulen in Spielen und Simulationen.
  • Klangerzeugung

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.

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.

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 neuronalen Netz 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.

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.

Allgemeine Probleme

Die Hauptnachteile von KNN sind gegenwärtig

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Siehe auch

Literatur

  • Simon Haykin: Neural Networks: A Comprehensive Foundation. ISBN 0-13-273350-1.
  • Andreas Zell: Simulation neuronaler Netze. ISBN 3-486-24350-0.
  • Simeon Knieling: Einführung in die Modellierung künstlich neuronaler Netzwerke. WiKu-Verlag, Duisburg 2007, ISBN 978-3-86553-192-6.
  • Raúl Rojas: Theorie der Neuronalen Netze. ISBN 3-540-56353-9.
  • A. Lucas: Schätzung und Spezifikation ökonometrischer neuronaler Netze. ISBN 3-89936-183-0
  • Teuvo Kohonen: Self Organizing Maps. ISBN 3-540-67921-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
  • Johann Gasteiger, J. Zupan: Neural Networks in Chemistry and Drug Design ISBN 3-527-29779-0
  • Helge Ritter, Thomas Martinetz, Klaus Schulten: Neural Computation and Self-Organizing Maps: An Introduction. Addison Wesley - Verlag (Februar 1992) ISBN 0201554429
  • John A. Hertz, Richard G. Palmer, Anders Krogh: Introduction to the Theory of Neural Computation - Westview Press; New Edition (January 1, 1991) ISBN 0201515601
  • 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 Netzwerke (engl.)

Implementierungen und Simulationspakete

  • Emergent, Rewrite des bekannten PDP++
  • 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
 
Dieser Artikel basiert auf dem Artikel Künstliches_neuronales_Netz aus der freien Enzyklopädie Wikipedia und steht unter der GNU-Lizenz für freie Dokumentation. In der Wikipedia ist eine Liste der Autoren verfügbar.
Ihr Bowser ist nicht aktuell. Microsoft Internet Explorer 6.0 unterstützt einige Funktionen auf ie.DE nicht.