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 (Modellbildung) von Informationsverarbeitung und weniger um das Nachbilden biologischer neuronaler Netze.
Inhaltsverzeichnis |
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:
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 (englisch to bias heißt hier etwa verzerren) 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 Paradigmen, da die Funktion aus vielen einfachen gleichartigen Teilen besteht. Erst in ihrer Summe wird das Verhalten kompliziert.
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:
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.
Grundsätzlich unterscheiden sich die Klassen der Netze vorwiegend durch die unterschiedlichen Netztopologien und Verbindungsarten. Beispielsweise einschichtige-, mehrschichtige-, Feedforward- oder Feedback-Netze.
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.
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.
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.
Das Unüberwachte Lernen erfolgt ausschließlich durch Eingabe der zu lernenden Muster. Das Neuronale Netz verändert sich entsprechend den Eingabemustern von selbst.
Die Hauptnachteile von KNN sind gegenwärtig