zum Directory-modus

Neuronale Netze - komplett

Arten von Verbindungsnetzwerken

Üblicherweise wird das Verbindungsnetzwerk der Zellen in einer Matrixschreibweise angegeben. In der hier verwendeten Darstellung bedeutet w i j eine Verbindung von Zelle i nach Zelle j . Man beachte, dass dies in der Literatur teilweise auch genau die umgekehrte Bedeutung hat.

In der Schreibweise W = w i j gilt dann: ein Eintrag in der Matrix W mit

  • w i = 0 gibt an, dass keine Verbindung zwischen i und j existiert,
  • w i < 0 gibt an, dass Neuron i seinen Nachfolger j durch ein Gewicht der Stärke w i j hemmt,
  • w i > 0 gibt an, dass Neuron i seinen Nachfolger j durch ein Gewicht der Stärke w i j anregt.

In der Implementierung in einem Software-Simulator wird häufig eine Speicherung der Verbindungsgewichte gewählt, bei der nur tatsächlich vorhandene Gewichte Speicherplatz benötigen, z.B. eine Zeigerstruktur, bei der jedes Neuron eine verkettete Liste aller Eingangsgewichte besitzt, von denen jedes wiederum einen Zeiger auf das Neuron besitzt, von dem die Verbindung ausgeht. Diese Art der Implementierung über sogenannte rückwärtsgerichtete Adjazenzlisten hat sich auf Workstations weitgehend durchgesetzt. Bei einer Realisierung als Matrix benötigt ein Netz mit n Neuronen nämlich immer Speicherplatz der Größe n 2 . Dies ist besonders für feedforward-Netze mit mehreren Ebenen eine große Verschwendung.

Folgende Topologien neuronaler Netze kommen besonders häufig in Simulationen vor:

Netze ohne Rückkopplung (feedforward-Netze)

Bei diesen Netzen existiert kein Pfad, der von einem Neuron direkt oder über zwischengeschaltete Neuronen wieder zu dem Neuron zurückführt. Mathematisch ist die Topologie des Netzes also ein azyklischer Graph. In unserer Matrixdarstellung ist daher nur die obere Dreiecksmatrix mit Werten ungleich Null besetzt.

Ebenenweise verbundene feedforward-Netze:
Diese Netze sind in mehrere Ebenen (Schichten) eingeteilt. Es gibt nur Verbindungen von einer Schicht zur nächsten. Ein derartiges Netz ist in (Abb. 1) a dargestellt.
Allgemeine feedforward-Netze (mit shortcut connections):
Bei diesen Netzen gibt es neben den Verbindungen zwischen aufeinanderfolgenden Ebenen auch solche, die Ebenen überspringen, d.h. die direkt von einem Neuron in Ebene k zu einem Neuron in Ebene k + i mit i > 1 verlaufen (siehe (Abb. 1) b). Für manche Aufgaben wie das 2-Spiralen-Problem sind diese shortcut connections notwendig.

Netze mit Rückkopplungen

Netze mit Rückkopplungen unterteilt man meistens in die Klassen der Netze mit direkten Rückkopplungen (direct feedback), Netze mit indirekten Rückkopplungen (indirect feedback) und Netze mit Rückkopplungen innerhalb einer Schicht (lateral feedback) und vollständig verbundene Netze.

Netze mit direkten Rückkopplungen (direct feedback):
Diese Netze erlauben es, dass ein Neuron seine eigene Aktivierung über eine Verbindung von seinem Ausgang zu seinem Eingang verstärkt oder abschwächt. Diese Verbindungen bewirken oft, dass Neuronen die Grenzzustände ihrer Aktivierungen annehmen, weil sie sich selbst verstärken oder hemmen. Ein derartiges Netz ist in (Abb. 1) c dargestellt.
Netze mit indirekten Rückkopplungen (indirect feedback):
Bei diesen Netzen gibt es eine Rückkopplung von Neuronen höherer Ebenen zu Neuronen niederer Ebenen. Diese Art der Rückkopplung ist nötig, will man eine Aufmerksamkeitssteuerung auf bestimmte Bereiche von Eingabeneuronen oder auf bestimmte Eingabemerkmale durch das Netz erreichen. Ein solches Netz ist in (Abb. 1) d angegeben.
Netze mit Rückkopplungen innerhalb einer Schicht (lateral feedback):
Netze mit Rückkopplungen innerhalb derselben Schicht werden oft für Aufgaben eingesetzt, bei denen nur ein Neuron in einer Gruppe von Neuronen aktiv werden soll. Jedes Neuron erhält dann hemmende (inhibitorische) Verbindungen zu anderen Neuronen und oft noch eine aktivierende (excitatorische) direkte Rückkopplung von sich selbst. Das Neuron mit der stärksten Aktivierung (der Gewinner) hemmt dann die anderen Neuronen, daher heißt eine solche Topologie auch winner takes all-Netzwerk (siehe (Abb. 1) e).In einer Software-Implementierung werden winner takes all-Netze häufig einfach durch eine (biologisch unplausible) Maximumsuche der Aktivierungen aller entsprechenden Neuronen realisiert. Das am stärksten aktivierte Neuron wird auf seinen maximalen Wert gesetzt und alle anderen Neuronen auf Null. Damit spart man die n 2 Gewichte, die Wartezeit, bis sich ein Neuron als Gewinner etabliert hat und vermeidet Probleme der Stabilität solcher rekurrenter Netze (mögliche Oszillationen).
Vollständig verbundene Netze:
Vollständig verbundene Netze haben Verbindungen zwischen allen Neuronen. Sie sind insbesondere als Hopfield-Netze bekannt geworden. Bei diesen gibt es allerdings noch zwei Restriktionen: die Verbindungsmatrix muss symmetrisch sein und die Diagonale darf nur Nullen enthalten. Ein derartiges Netz ist in (Abb. 1) f dargestellt.
Abb.1
Beispiel-Topologien und ihre Verbindungsmatrizen.

Teilbild a):
feedforward, ebenenweise verbunden
Teilbild b):
feedforward mit shortcut connections
Teilbild c):
direkte Rückkopplung
Teilbild d):
indirekte Rückkopplung
Teilbild e):
laterale Rückkopplung (ohne direkte Rückkopplungen)
Teilbild f):
vollständig verbunden ohne direkte Rückkopplungen

Man beachte, dass normalerweise die Eingabeneuronen nicht lateral verbunden sind und auch keine direkten Rückkopplungen besitzen. Eine Ausnahme davon machen nur vollständig verbundene Netze.

Hinweise zur Matrixschreibweise

Die in der Literatur uneinheitliche Verwendung der Matrixschreibweise hat zur Folge, dass fast alle Formeln je nach Schreibweise unterschiedlich aussehen. Zur Vereinfachung der Erklärung sei für diesen Abschnitt angenommen, dass alle Schwellenwerte gleich Null sind.

Schreibweise a):
w i j a ist das Gewicht der Verbindung von Zelle i zu Zelle j nach Schreibweise a). Dann schreibt sich für o j : o j t + 1 = f i o i t w i j a O a t = o 1 t o n t W a = w 1 1 a w 1 n a w n 1 a w n n a Mit dem transponierten Zeilenvektor O a t der Ausgaben der Vorgängerzellen in Gleichung und der Matrix W a der Verbindungsgewichte in Gleichung ergibt sich die Schreibweise: O a t + 1 = f O a t W a O a t + 1 = f o 1 t o n t w 1 1 a w 1 n a w n 1 a w n n a O a t + 1 = f i o i a t w i 1 a f i o i a t w i n a Man beachte, dass der Zeilenvektor O a t von links mit der Matrix W a multipliziert wird.
2. Schreibweise b):
w j i b ist das Gewicht der Verbindung von Zelle i zu Zelle j nach Schreibweise b. Dann gilt: o j t + 1 = f i w j i b o i t O b t = O a t T = o 1 t o n t W b = w 1 1 b w 1 n b w n 1 b w n n b = w 1 1 a w n 1 a w 1 n a w n n a T Mit dem Spaltenvektor der Ausgaben in Gleichung und der Matrix W b der Verbindungsgewichte in Gleichung , wobei ein Gewicht jetzt eine andere Bedeutung hat, nämlich w j i b = w i j a , ergibt sich folgende Schreibweise: O b t + 1 = f W b O b t O b t + 1 = f w 1 1 b w 1 n b w n 1 b w n n b o 1 t o n t O b t + 1 = f i w 1 i b o i t i w n i b o i t O b t + 1 = f i w 1 i b o i t f i w n i b o i t Man beachte, dass jetzt der Spaltenvektor O b t von rechts mit der Matrix W b multipliziert wird. Diese verschiedenen Darstellungsformen (neben unterschiedlichen Bezeichnungen für die Variablen) sorgen häufig für Missverständnisse. In diesem Kurs wird immer die erste Darstellungsform (Schreibweise a) verwendet, wenn nichts anderes explizit angegeben wird.

Ersetzung der Schwellenwerte durch ein on-Neuron

In den meisten Modellen neuronaler Netze haben die Neuronen einen Schwellenwert (bias), der die Schwelle angibt, ab der ein Neuron (stark) aktiv ist. Mathematisch gibt er die Stelle der größten Steigung monoton wachsender Aktivierungsfunktionen an. Im biologischen Äquivalent entspricht er der Reizschwelle, die benötigt wird, bis das Neuron feuert. In Simulationen kann dieser Schwellenwert unterschiedlich realisiert werden, entweder als Parameter in den Neuronen, der in die Aktivierungsfunktion eingeht, oder über eine Technik mit Gewichten und einem sogenannten on-Neuron.

Netz mit Schwellenwerten in den Neuronen:
Ein kleines Beispielnetz mit Schwellenwerten in den Neuronen ist in (Abb. 2) angegeben. Die Netzeingabe net j t und Aktivierung a j t + 1 eines Neurons j ergibt sich nach den bekannten Formeln: net j t = i o i t w i j a j t + 1 = f a j t net j t Θ j Dies ist die übliche Spezialisierung der allgemeineren Formel: a j t + 1 = f act a j t net j t θ j Ein Nachteil bei dieser Implementierung ist, dass die Schwellenwerte der Neuronen üblicherweise auch durch Lernverfahren trainiert werden müssen. Verwendet man beispielsweise Backpropagation als Lernverfahren, so sollten die Schwellenwerte in ähnlicher Weise modifiziert werden wie die Gewichte. Damit hat man ein etwas aufwändiger programmiertes (aber nicht langsameres) Programm als in der alternativen Implementierung.
Netz ohne Schwellenwerte, aber mit on-Neuron
Die gleiche Funktionalität kann man erhalten, wenn man ein einzelnes zusätzliches on-Neuron verwendet, dessen Ausgabe immer den Wert 1 hat und dieses on-Neuron mit allen Neuronen, die Schwellenwerte besitzen, über Gewichte verbindet. Das negative Gewicht w 0 j von dem on-Neuron 0 zu Neuron j entspricht dann genau dem Schwellenwert j . Mathematisch sieht das so aus, dass die Netzeingabe bereits den Schwellenwert-Term enthält und die Aktivierungsfunktion ohne Schwellenwert rechnen kann.Diese Implementierung hat den Nachteil, dass die Zahl der Gewichte etwas höher ist. Es werden die Schwellenwerte als zusätzliche Gewichte benötigt. Störend ist aber hier vor allem, dass diese Gewichte die graphische Darstellung von Netzen erheblich unübersichtlicher machen. Außerdem ist es ein weiterer Schritt weg von einer biologisch motivierten Simulation. Die Vorteile dieser Technik sind die einfachere mathematische Beschreibung und die einfachere Realisierung der Lernregeln, die nicht mehr den Sonderfall der Schwellenwerte berücksichtigen müssen.
Abb.2
Ersetzung der Schwellenwerte durch ein on-Neutron

Netzwerk mit Schwellenwerten (links) und äquivalentes Netzwerk mit on-Neutron (rechts)

Seite 13 von 33