Time_Delay_Neural_Network
Time_Delay_Neural_Network

== Struktur ==
Um dem Netzwerk eine zeitlich invariante Verarbeitung zu erlauben, werden bei einem TDNN die Eingaben mehrerer Zeitpunkte zugleich angelegt. Die Verwendung mehrerer Schichten von Neuronen unterstützt die Erkennung unabhängig vom zeitlichen Auftreten im Eingabestrom.
Die Eingaben werden bei einem TDNN in einer Matrix angeordnet. Eine Spalte kann dabei mehrere Werte enthalten und entspricht einem Zeitschritt. Bei jeder neuen Eingabe werden die Spalten der vergangenen Eingaben um einen Schritt verschoben, wobei die älteste Eingabe herausfällt.
Die Eingabematrix wird dann an eine verdeckte Schicht gereicht, die aus einer Matrix von Neuronen besteht. Jede dortige Spalte von Neuronen erhält dabei nur eine Auswahl (Fenster) der Eingaben. Dieses Fenster wird für die nächsten Spalten der Neuronenmatrix um jeweils einen Schritt verschoben. Die Fensterbreite ist dabei frei wählbar, muss aber für die gewünschte Invarianz geeignet bestimmt werden. Es können mehrere, hintereinander angeordnete verdeckte Schichten existieren. Die Ausgabeschicht erhält schließlich das komplette Zeitfenster der vorhergehenden verdeckten Schicht.
Eingelernt werden können sie mit dem Backpropagation-Verfahren.
Da die zur jeweiligen ersten Spalte, der verdeckten Schichten, zeitlich verschobenen Neuronen jeweils gleiche Eingaben aus vorherigen Zeitschritten erhalten und damit die gleiche Verarbeitung vornehmen, sollen auch die Gewichte mit den Neuronen der ersten Spalte übereinstimmen. Dazu wird das Lernverfahren so abgeändert, dass Neuronen verschiedener Zeitschritte die gleiche Änderung erfahren, welche über den Mittelwert der Gewichtsänderungen bestimmt wird.
Bei der Berechnung der Neuronenaktivierungen kann dabei eine Neuberechnung der zeitlich verschobenen Neuronen entfallen und stattdessen auf die Aktivierungen vorheriger Zeitschritte zurückgegriffen werden.