Im ersten Teil der Reihe zu den künstlichen neuronalen Netzen haben wir uns die Grundlagen dieses Konzeptes – konkret: die Funktionsweise der künstlichen Neuronen – angeschaut; im zweiten Teil haben wir gesehen, wie mit Hilfe der künstlichen Neuronen ein real existierender von-Neumann-Rechner nachgebaut werden könnte. Im heutigen Artikel soll es nun darum gehen, wie künstliche Neuronen am besten vernetzt werden, um bestimmte Aufgaben, etwa zur Mustererkennung, geeignet lösen zu können.
Die Neuronen in einem echten Gehirn sind mit zahlreichen anderen Neuronen ihrer Umgebung verbunden, sind also relativ stark miteinander vernetzt. Bei der Verwendung künstlicher neuronaler Netze hat sich dagegen gezeigt, dass eine zu starke und “ungeordnete” Vernetzung der künstlichen Neuronen zur Lösung vieler Probleme nicht geeignet ist (über das “Warum” kann man nun diskutieren – ich würde ja darauf tippen, dass es unter anderem daran liegt, dass künstliche neuronale Netze über viel weniger Neuronen als echte Gehirne verfügen und dass die Abläufe eines echten Gehirns nur in Teilen nachgebildet werden). Daher ist es üblich, KNNs in einer eher strukturierten Form aufzubauen (wenngleich es auch Projekte gibt, die versuchen, sich dem Aufbau eines echten Gehirns etwas mehr anzunähern – mit viel mehr Neuronen dann natürlich).
Die übliche Form eines künstlichen neuronalen Netzes ist die Schichtenarchitektur; die künstlichen Neuronen werden dabei, wie es der Name sagt, in verschiedenen Schichten (engl. Layer) hintereinander angeordnet. Eine wichtige Schicht ist dabei die letzte, die sogenannte Ausgabeschicht (engl. output layer): die Ausgabesignale der Neuronen dieser Schicht werden “nach außen geleitet”, sie bilden gewissermaßen die Ausgabe des KNN (im echten Gehirn wären sie mit den Neuronen vergleichbar, welche Impulse auf vom Gehirn wegführende Nerven leiten). Die restlichen Schichten des KNN sind im Allgemeinen verborgen und werden daher als verdeckte Schichten (engl. hidden layer) bezeichnet. Die folgende Abbildung zeigt ein einfaches zweischichtiges Netz mit einer verdeckten Schicht und der Ausgabeschicht; zudem verfügt es über 3 mögliche Eingaben, die an die Neuronen der verdeckten Schicht angelegt werden:
Sehr gebräuchliche Netztypen sind die einschichtigen und die zweischichtigen Netze. Das widerspricht vielleicht etwas der Erwartung, dass neuronale Netze doch eigentlich etwas komplexes sind und daher möglichst viele Schichten haben sollten; in der Praxis hat sich aber für viele Aufgaben gezeigt, dass derart “einfach” aufgebaute Netze vollkommen genügen, um die gestellten Aufgaben zu lösen.
Sind die Neuronen einer Schicht alle nur mit denjenigen der darauffolgenden Schicht verbunden, spricht man von einem Feedforward-Netz. Ein derartiges Netz ist relativ einfach zu programmieren, hat jedoch einen “Nachteil” (Nachteil in Anführungszeichen, da er in der Praxis nicht immer von Bedeutung ist): Signale werden in derartigen Netzen immer “vorwärts” (daher der Name) von einer Schicht in die nächste gegeben; einmal “errechnete” Informationen werden also weitergegeben und sind dann verloren.
In der Praxis ist das nicht immer von Bedeutung, da genügend Probleme auch ohne die Speicherung von Informationen gelöst werden können. Ab und zu ist es aber doch nötig, dem Netz eine Art von Gedächtnis zu geben. Das Vorgehen hierfür ist ähnlich zu dem, welches ich bereits im letzten Artikel bei der Speicherung von Bits mit Hilfe von Neuronen erläutert habe: es werden zusätzlich zu den vorwärtsgerichteten auch rückwärtsgerichtete Kanten, also Kanten zurück auf ein Neuron selber, auf ein Neuron der gleichen Schicht oder sogar auf Neuronen vorheriger Schichten, eingeführt. Derartige Netze werden folgerichtig als rekurrente Netze bezeichnet und stellen eine Möglichkeit dar, Informationen zu speichern (sie haben also eine Art Gedächtnis), aber auch, zeitlich ausgedehnte Eingaben zu verarbeiten und darin Muster zu erkennen. Obiges Netz erweitert um alle drei Arten von rückwärtsgerichteten Kanten könnte also so aussehen:
Besitzt jedes Neuron eine Verbindung zu jedem anderen Neuron, so spricht man übrigens von einem vollständig vernetzten oder verbundenem KNN.
Kommentare (9)