Neuronale Netze

Selbstverständlich ist das Gehirn selbst ein neuronales Netz, aber es ist viel zu komplex, um zu verstehen, was da so vorgeht. Deshalb versucht man, die Strukturen, die sich das Gehirn zu Nutze macht, in künstlichen neuronalen Netzen nachzubilden. Statt Neuronen verwendet man in diesen Nachbildungen drei unterschiedliche Einheiten, Eingabe-, versteckte und Ausgabeeinheiten.

In der Regel setzt sich das künstliche neuronale Netz dann aus mindestens drei Schichten zusammen. Der Eingabeschicht, die äußere Reize aufnimmt, sie entspricht den Sinneszellen, die z. B. Temperatur oder Berührung registrieren. Dann folgen eine oder mehrere versteckte Schichten, in denen durch die Verschaltung untereinander eine Verarbeitung der Eingangsignale stattfindet. Und schließlich kommt die Ausgabeschicht, welche die Ergebnisse der Verarbeitung präsentiert.

In einfachen Netzen werden die Signale immer nur an die nächste Schicht weitergegeben, aber es gibt auch neuronale Netze mit komplexeren Verknüpfungen und es kann Einheiten geben, die auch direkt oder indirekt auf sich selbst zurückwirken. Und natürlich kann es auch Netzwerke geben, bei denen jede Einheit mit jeder anderen verbunden ist, das stellt dann allerdings besondere Voraussetzungen an die Wechselwirkungen der Einheiten untereinander. So lassen sich komplexe Netzwerke aufbauen, mit denen man hofft, dem natürlichen Vorbild nahe zu kommen. Die einzelnen Einheiten geben dabei lediglich Informationen weiter und verarbeiten diese nicht selbst, diese Verarbeitung kommt durch das Zusammenwirken des Netzwerks zu Stande und wird bestimmt von der Gewichtung der Verbindungen der einzelnen Einheiten. Im Gehirn entspricht das den Verbindungen der Neuronen untereinander, also der Stärke der Synapsenverbindung zwischen zwei Neuronen und natürlich der Verschaltung der Neuronen oder Einheiten untereinander.

Den Verbindungen werden unterschiedliche Gewichte zugeordnet. Sie können positiv sein, dann verstärkt ein ankommendes Signal die Wahrscheinlichkeit, dass die nächste Einheit das Signal weitergibt, negativ, dann sinkt die Weitergabewahrscheinlichkeit, oder null, dann wird kein Einfluss ausgeübt.

Um die Informationsverarbeitung zu beeinflussen, muss man nun die Gewichte der Verbindungen anpassen, was dem Lernvorgang in dem Netzwerk entspricht.

Ob das künstliche Neuron dann tatsächlich feuert, hängt damit von verschiedenen Faktoren ab, von der Anzahl der Signale, die es erreichen, von den Gewichtungen der Verbindungen und der Aktivitätsschwelle, ab der die Einheit selbst anfängt, aktiv zu werden. Dabei ist es in heutigen Netzen nicht unbedingt so, dass eine Einheit entweder aktiv wird und ein Signal weitergibt oder still bleibt, wie bei natürlichen Neuronen kann ihre Aktivität geregelt werden, sodass sie mehr oder weniger häufig feuern. In der Regel definiert man eine Obergrenze, damit sich das System nicht aufschaukeln kann. Man spricht hier von Aktivitätslevel, dass durch ganz unterschiedliche Kurven wiedergegeben werden kann, bei einem linearen Verlauf ist die Weitergabe proportional zur Eingabe, es kann aber auch einfach einen Schwellenwert geben, ab welchem die Einheit anfängt aktiv zu werden, und viele weitere Kurven sind denkbar.

Baut man ein neuronales Netzwerk, liefert es natürlich nicht von vornherein vernünftige Ergebnisse, wie ein logischer Schaltkreis in einem Computer. Das künstliche Netzwerk muss erst trainiert werden, dabei werden die Gewichte angepasst, bis man bei gegebener Eingabe die gewünschte Ausgabe erzielt. Der Lernvorgang kann gesteuert werden, indem man die Gewichte manuell anpasst, es ist aber auch möglich das Netzwerk selbst lernen zu lassen, wobei Zustände automatisch gefördert werden, die dem gewünschten Output nahe kommen.

Insbesondere für das selbstständige Lernen muss man Regeln festlegen, welche die Gewichtung der Verbindung bestimmen. Die einfachste Regel besagt, dass die Gewichtung erhöht wird, wenn die Verbindung immer wieder genutzt wird. Eine andere verstärkt die Gewichtung, wenn die Ausgabe zu niedrig liegt und reduziert die Gewichtung, wenn sie zu sehr ansteigt. Obwohl die erste Regel dem natürlichen Prozess wahrscheinlich am nächsten kommt, sind sie in künstlichen Netzen nur sinnvoll, wenn man keine versteckten Schichten verwendet. Eine weitere Methode, die ohne versteckte Schichten auskommt, besteht darin, nach dem Konkurrenzprinzip vorzugehen, wobei dem Netzwerk verschiedene Eingaben präsentiert werden. Gewinner hierbei ist die Ausgabeeinheit, welche den größten Input erhält.

Für komplexere Netzwerke braucht man deshalb auch andere Lernregeln, wie zum Beispiel die Backpropagation. Hier wird zunächst die Verarbeitung einer Eingabe beobachtet und wenn die Ausgabe eine vorgegebene Fehlerschwelle überschreitet, lässt man das Signal rückwärts durch das Netzwerk laufen und passt die Gewichtungen an. Dieser Vorgang kann mehrfach wiederholt werden, bis das Ergebnis unterhalb der Fehlertoleranz liegt. Diese Vorgehensweise hat aber nichts mehr mit dem natürlichen Lernverhalten im Gehirn zu tun. Tatsächlich gibt es in größeren Netzen so viele Parameter - Gewichtingen und Aktivitätsschwellen - dass praktisch jedes Verhalten simulierbar wird, unabhängig davon, ob ein biologischer Zusammenhang besteht oder nicht.

Die Möglichkeiten, das menschliche Gehirn mittels neuronaler Netze zu begreifen, sind aufgrund dieser Lernregeln natürlich immer noch begrenzt, aber das Gehirn ist auch noch um einige Größenordnungen komplexer als die bisher realisierten künstlichen Netze. Trotzdem gibt es verschiedene Anwendungsbereiche, die den praktischen Einsatz von neuronalen Netzen interessant erscheinen lassen. Ihr Vorteil liegt vor allem in der parallelen Verarbeitung der Eingangsignale, und das selbst dann, wenn diese nicht ganz vollständig sind. Darüber hinaus ist eine Information nicht in einem bestimmten Punkt des Netzwerks gespeichert, sondern in der Verteilung der Gewichte, was ebenfalls die Toleranz gegen Ausfälle und Fehler erhöht.

Neben dem Versuch, die Informationsverarbeitung im Gehirn zu verstehen, gibt es auf Grund dieser Vorteile inzwischen verschiedene Anwendungen, die versuchen, künstliche neuronale Netze einzusetzen, um gegebene Problemstellungen zu bewältigen. Ihre Stärken spielen sie beispielsweise in der Medizin aus, wenn es darum geht, große Datenmengen zu analysieren und versteckte Zusammenhänge aufzuzeigen oder Krankheitsverläufe vorherzusagen. In der Krebsvorsorge gibt es Versuche, neuronale Netze auf Röntgen- oder Ultraschallbilder anzusetzen, um dem Arzt bei der Diagnose zu unterstützen.

In der Wirtschaft versucht man ebenfalls neuronale Netze einzusetzen, wenn große Datenmengen parallel verarbeitet werden sollen, z. B. um das Kreditrisiko einzuschätzen oder Trends in Entwicklungen von Unternehmen oder Aktienkursen vorherzusagen.

Selbst wenn das Verständnis der Funktionsweise des menschlichen Gehirns durch die Forschung an neuronalen Netzen noch nicht den Durchbruch gebracht hat, ist es doch ein vielversprechender Ansatz, der zudem viele weitere Anwendungsmöglichkeiten nach sich gezogen hat.


Kommentare, Fragen und Anmerkungen (Forum)

<

Leider keine Einträge. [sad]

Mehr zum Thema:

Neuronale Netze

Einführung in neuronale Netze

NeuroDimension - Neural Network Software

"Simulation neuronaler Netze", Andreas Zell