# Elman-Netz

Ein Elman-Netz, auch Simple recurrent network (SRN), zu deutsch Einfaches rekurrentes Netz, ist ein einfaches künstliches neuronales Netz, das durch vorhandene Rückkopplungen von Kanten zwischen den künstlichen Neuronen in der Lage ist, zeitliche Abhängigkeiten von Eingaben implizit zu verarbeiten. Benannt ist diese Netz-Architektur nach Jeffrey L. Elman, der diese Struktur 1990 vorschlug.
Ein künstliches neuronales Netz ist ein Modell aus der Neuroinformatik, das durch biologische neuronale Netze motiviert ist. Künstliche neuronale Netze können Aufgaben erlernen und werden häufig dort eingesetzt, wo eine explizite Modellierung eines Problems schwierig oder unmöglich ist. Beispiele sind die Gesichts- und Spracherkennung.

## Einschränkungen einfacher Modelle

Viele Modelle künstlicher neuronaler Netze besitzen entweder keine Möglichkeit zeitliche Abhängigkeiten von Eingabedaten zu verarbeiten oder benötigen dazu eine Historie von Eingaben durch ein Eingabefenster. Ein Time Delay Neural Network ist so ein Netz, das durch die Verwendung gefensterter Eingaben die zeitliche Komponente eines Datenstroms explizit darstellt.
Die parallele Präsentation von Eingaben verschiedener Zeitpunkte bringt verschiedene Einschränkungen mit sich. So ist ein Fenster mit konstanter Länge ungeeignet für Signale, die eine variable zeitliche Länge aufweisen. Dies ist unter anderem bei der Spracherkennung hinderlich, da Wörter aus einer unterschiedlichen Länge von Silben bestehen. Aus der Sichtweise der biologischen Abstraktion fehlt eine biologische Motivation für das parallele Anlegen von Eingabedaten verschiedener Zeitschritte.

## Struktur

Um diese Probleme zu umgehen, schlägt Elman eine einfache Struktur vor, die mittels Rückkopplungen ein zeitliches Gedächtnis besitzt. Dabei hat das Netz zwei Schichten von Neuronen, eine verdeckte Schicht und eine Ausgabeschicht. Die Ausgaben der verdeckten Schicht werden in den sogenannten „Kontextzellen“ gespeichert. Zu jedem Neuron der verdeckten Schicht existiert dazu eine Zelle, welche die vergangene Ausgabe des Neurons speichert. Die Kante enthält dazu die konstante Gewichtung von 1.
Die Neuronen der verdeckten Schicht enthalten als Eingabe die Eingabedaten sowie ihre vergangenen Ausgaben über die Kontextzellen. In seiner Arbeit zeigt Elman, dass diese Netzwerkstruktur dadurch implizit in der Lage ist auch längere Eingabeströme zeitlich invariant zu verarbeiten. Die Ausgabeschicht nimmt dabei lediglich die Abbildung der internen Repräsentierung der verdeckten Neuronen vor.
Elman-Netze werden z. B. mittels Backpropagation trainiert. Die rückwärts gerichteten Kanten (Rückkopplungen) werden dabei nicht angepasst.

## Beispielhafte Anwendung

Das folgende einfache Beispiel ist aus der Arbeit von Elman entnommen. Die Eingabe besteht aus Blöcken von jeweils drei binären Werten.
Dem Netz wird zunächst in den beiden ersten Zeitschritten jeweils ein zufällig gewählter, binärer Wert als Eingabe präsentiert. Die dritte Eingabe ist dann das Ergebnis der XOR-Verknüpfung angewendet auf die beiden vorherigen Eingaben.
Die Aufgabe des Netzes ist es nun, die jeweils nächste zu erwartende Eingabe vorauszusagen. Dies kann es für die zweite zufällige Eingabe erreichen, indem es zusammen mit der Eingabe des ersten Zeitschrittes die Eingabe des dritten Zeitschrittes berechnet. Um dieses Verhalten zu erreichen, wird die Eingabe um einen Zeitschritt nach vorn versetzt und als Zielwert (siehe Backpropagation) eingelernt.
| Eingabe: | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | ... |
| Zielwert: | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | ? | ... |
Es zeigt sich, dass der Erkennungsfehler bei dem jeweiligen zweiten Wert abnimmt. Das Netz erlernt also die XOR-Verknüpfung und kann dort, wo es möglich ist, den Wert berechnen. Mit Hilfe der vorausgegangenen Eingaben kann das Netz also die nächste Eingabe vorausbestimmen.

## Hierarchisches Elman-Netz

Als Verallgemeinerung zweischichtiger Elman-Netze existieren „hierarchische Elman-Netze“. Sie können mehr als zwei Schichten besitzen und enthalten zusätzliche Rückkopplungen in den einzelnen Kontextzellen.