Kurzbeschreibung
Parameter Funktionsweise Ein/Ausgänge Limitierungen Querverweise Beispiele
 | Kurzbeschreibung
Das TDNN-Modul stellt Methoden zum überwachten Training und
zur Anwendung vorwärts gerichteter Neuronaler Netze bereit. Time-Delay-Neural-Nets
sind dynamische Netzparadigmen, die zur Erfassung und Verarbeitung von Zeitreihen
verwendet werden. Mehrlagige Perzeptren (MLP) mit einem statischen Systemverhalten können
als Spezialfall von TDNN angesehen werden. Das Modul bietet verschiedene Lernalgorithmen
zum Trainieren der Netze, die alle auf Gradientenabstiegsverfahren basieren. |
 | Parameter
 | Netzstruktur:
 | Neuronen: Anzahl der Neuronen in
den jeweiligen Schichten.
Neben der Ein- und Ausgabeschicht sind maximal zwei verdeckte Neuronenschichten erlaubt.
Soll keine verdeckte Schicht verwendet werden sind die Neuronen in beiden verdeckten
Schichten auf 0 zu setzen. Soll genau eine verdeckte Schicht verwendet werden, muß die
Anzahl der gewünschten Neuronen in Verdeckt1 eingetragen werden, und der Wert in
Verdeckt2 auf 0 gesetzt werden. |
 | Delays: Hier wird die Verzögerung
zwischen den Neuronenschichten angegeben.
Bei Verwendung von n Schichten sind jeweils die n-1 -ten Verzögerungen zu setzen, der
Rest wird ignoriert.
Ein Verzögerungswert von 1 bedeutet dabei, daß nur jeweils die aktuelle Ausgabe der
Vorgängerneuronen von Bedeutung ist. |
 | Aktivierung: Die verwendete
Aktivierungsfunktion in allen Neuronen.
Es stehen folgende drei Aktivierungsfunktionen zur Verfügung:
Name |
Funktion |
Wertebereich |
f '(0) |
Logistische Aktivierung (logist) |
f(x) = 1/( 1+e^(-x) ) |
]0 , 1[ |
0.25 |
Tangens Hyperbolicus (htan) |
f(x) = tanh(x) |
]-1 , 1[ |
1.0 |
Schnelle Aktivierung (fast) |
f(x) = x/( 1 + |x| ) |
]-1 , 1[ |
1.0 |
|
 | Gewichte rücksetzen: Alle
gespeicherten Gewichte zwischen Neuronen werden initialisiert.
|
|
 | Lernen:
 | Load: Lädt früher erlernte Gewichte |
 | Save: Speichert ermittelte Gewichte |
 | Algorithmus: Der zum Trainieren des Netzes verwendete
Algorithmus. Es stehen die Algorithmen temporal Backpropagation
(Backprop),
temporal Resilient Backpropagation (R-Prop),
temporal Quickpropagation (Quick Prop) und
temporal Quick Resilient Backpropagation (QRProp) zur Auswahl.
Die Funktionsweise der Algorithmen Backpropagation,
Quickpropagation und Resilient Backpropagation kann z.B in Zell Andreas, Simulation
Neuronaler Netze, Addison-Wesley 1994 nachgelesen werden. Quick Resilient
Backpropagation wird z.B. in Rojas R., Neural Networks, A Systematic Introduction,
Springer-Verlag 1996 beschrieben.
Die Erweiterung dieser für statische MLP's ausgelegten Algorithmen auf TDNN's
(Namenszusatz temporal) kann z.B. in Sick Bernhard, Dissertationsarbeit Universität
Passau, 1999 nachgeschlagen werden. |
 | Synchrones Lernen: Eine Eingabe in
das Netz wird erst dann bearbeitet, nachdem der letzte Schritt vom Lernprozeß verarbeitet
wurde.
Dadurch gehen beim Trainieren des Netzes keine Eingaben verloren. |
 | Schnelle Initialisierung:
Beim Lesen der ersten Eingabe wird diese sooft nacheinander durch das Netz propagiert, bis
sämtliche Verzögerungspuffer in den Neuronen mit diesem Startwert gefüllt sind.
Dadurch kann vermieden werden, daß die Ausgabe des Netzes am Anfang recht zufällig ist.
|
 | Priorität: Hier kann die
Priorität des nebenläufigen Lernprozeßes eingestellt werden. |
 | Puffer: Anzahl der
zusätzlichen Puffer in den Neuronen beim nebenläufigen Lernen.
Bei einer niedrigen Priorität des Lernprozeßes und starker Auslastung des Rechners kann
es passieren, daß der Lernprozeß beim Trainieren des Netzes nicht mit dem Hauptprozeß
beim Durchpropagieren der Eingabe mithalten kann. In diesem Fall kann der Lernprozeß um
die hier eingetragenen Schritte zurückfallen, bevor er neu gestartet werden muß.
Bei jedem Neustart des Lernprozeßes während der Hauptprozeß läuft, muß der
Lernprozeß vollständig initialisiert werden (im Gegensatz zur schnellen Initialisierung,
siehe oben), so daß der hier eingetragene Wert immer mindestens so groß wie die
Gesamtverzögerung des Netzes sein sollte. |
 | Epochenlänge: Länge einer
Epoche, oder Null.
Wird hier ein Wert n ungleich 0 angegeben, bedeutet dies, daß nach jeweils n Schritten
eine Epoche für den Lernalgorithmus endet.
Wird hier 0 angegeben, wird das Ende einer Epoche durch ein Ende eines Pakets
signalisiert. |
|
 | Die Bedeutung der Parameter der
Lernalgorithmen ist durch die Namensgebung direkt aus der Funktionsweise des Algorithmus
ersichtlich, und wird hier nicht genauer erklärt. Die Parameter sind i.a. allerdings
deutlich kleiner zu wählen, als bei ihren statischen Äquivalenten, besonders bei
zunehmender Komplexität der Netzstruktur.
Folgende Parameter sind für den jeweiligen Algorithmus von Bedeutung:
 | Automatisch stoppen: Die
Lernphase wird beendet, wenn die Änderungen an den Ausgängen unter einer bestimmten
Schwelle liegen. |
 | Abwechselndes Training:
|
 | temporal Backpropagation:
 | Lernfaktor |
|
 | temporal Resilient Backpropagation
und temporal Quick Resilient Backpropagation:
 | Schritt + |
 | Schritt t- |
 | Max |
 | Min |
 | Init |
|
 | temporal Quickpropagation:
 | Lernfaktor |
 | Decay |
 | max. Wachstum |
|
|
|
 | Funktionsweise
Das TDNN-Modul kennt zwei Betriebszustände. Zum einen
den sog. Normalzustand, und einen Trainingsmodus. Welcher Modus aktiv ist, wird über den
Eingang Training On/Off festgelegt.
Im Normalzustand nimmt das Netz die Eingabe Net Input entgegen,
propagiert sie durch das Netz, und stellt die Ausgabe am Ausgang Net Output
wieder zur Verfügung. Der Eingang Desired Output kann hier frei bleiben,
über den Ausgang Error werden keine Werte ausgegeben.
Im Trainingsmodus wird zusätzlich ein nebenläufiger Prozeß gestartet, der das Training
des Netzes übernimmt. Dazu werden über den Eingang Desired Output die
Trainingsmuster eingelesen. In diesem Modus ist der Eingang Desired Output
obligatorisch, über den Ausgang Error wird dann nach jeder Epoche der
Fehlerwert ausgegeben.
Die Übergabe der Werte an das Netz und damit die einzelnen Neuronen geschieht blockweise.
Die Blocklänge am Eingang Net Input muß deshalb so groß sein wie die
Anzahl der Eingangsneuronen, und die Blocklänge am Eingang Desired Output
so groß wie die Anzahl der Ausgagsneuronen.
Gleiches gilt für die Ausgabe Net Output des Netzes. |
 | Ein-/Ausgänge
|
Eingänge |
|
|
Net Input |
TYPEINFO {TypeInfo} DOUBLE[] {TIME_DOMAIN} |
Netzeingabe |
Desired Output |
TYPEINFO {TypeInfo} DOUBLE[] {TIME_DOMAIN} |
Trainingsmuster |
Training On/Off |
TYPEINFO {TypeInfo} SWORD[1]{BIN} |
aktiviert (1) / deaktiviert (0) den
Trainingsmodus |
Load Weights |
TYPEINFO {TypeInfo} SWORD[1]{BIN} |
Lädt die Gewichte aus der im
Eigenschafsdialog angegebenen
Datei |
Save Weights |
TYPEINFO {TypeInfo} SWORD[1]{BIN} |
Speichert die Gewichte in die im
Eigenschafsdialog angegebene
Datei |
Reset Weights |
TYPEINFO {TypeInfo} SWORD[1]{BIN} |
Setzt die Gewichte auf zufällige
kleine Werte zwischen -1 und 1 |
Ausgänge |
|
|
Net Output |
TYPEINFO {TypeInfo} DOUBLE[] {TIME_DOMAIN} |
Netzausgabe |
Error |
TYPEINFO {TypeInfo} DOUBLE[1] {SCALAR} |
Der Fehler als quadratische Summe des
Netzes während der letzten Epoche |
|