Time Delay Neural Network (TDNN)

CONSTRUCCION DE LA RED

La construcción de esta red es específica en el SNNS, pues proporciona una herramienta para crearla, sin tener que crear una red genérica, definiendo automáticamente las variables y las estructuras de conexión necesarias en la red TDNN. Las conexiones lógicas no se representan en los displays y no se pueden modificar con el editor gráfico. Cualquier modificación en las neuronas después de la creación de la red, puede dar lugar a un comportamiento erróneo o fallo del sistema.

Los pasos a seguir para crear la conexión recurrente es la siguiente:

1.- En la ventana principal, se pulsa en “BIGNET”, escogiendo la opción “time_delay”.

2.- Se establecen las capas con sus correspondientes retardos. Para realizar este paso es necesario conocer el significado de cada uno de los campos que presenta la ventana de “Bignet” para esta red.

           No of feature units: número de neuronas que tendrá la capa, pero en la coordenada X, es decir, viendo la capa como una matriz, será el número de columnas.

           Total delay length: son los retardos máximos que serán permitidos por cada neurona de la capa. Siguiendo el símil anterior, ahora especificamos el número máximo de filas.

      Para esto se usará una red de una capa de entrada de 1 neurona con un retardo total de 7, una capa oculta de 2 neuronas con un retardo total de 3 y una capa oculta de una neurona sin retardos. La decisión de la topología no es aleatoria, sino que está determinada por los retardos establecidos en las neuronas de una capa, ya que condicionará el retardo total de las neuronas en capa anterior. Pero esto se verá con más claridad al explicar la conexión entre capas.

3.- Una vez creadas las capas, se establece la conexión entre capas para fijar los retardos de cada neurona. En este caso los retardos requeridos son 5 para la capa oculta y 3 para la capa de salida. Estos retardos son los que condicionan el retardo total que se ha establecido al crear las capas. Para aclarar esto, se describirán los siguientes puntos:

- el retardo especificado para la capa de salida es 3, por lo que cada neurona deberá estar conectada a 3 neuronas de cada columna de la capa oculta, por lo que el retardo total en la capa oculta tendrá que ser 3, ya que solo hay una neurona en la capa de salida.

- el retardo especificado para la capa oculta es 5, por lo que cada neurona deberá estar conectada a 5 neuronas de cada columna de la capa de entrada, pero manteniendo el orden establecido por  la fila que ocupa, es decir, las neuronas de la fila 1 de la capa oculta se conectan con las neuronas de la fila 1 a 5 de la capa de entrada, las de la fila 2 con las de las filas de 2 a 6, y las de la fila 3 con las de las filas de 3 a 7. Así se ve que el retardo total en la capa de entrada es 7.

Los campos del SNNS son:

            1st feat. Unit: siempre con valor 1 1.

            Width: aquí se determinan las neuronas (el número de columnas de la capa) de la capa fuente (source) y destino (target) involucradas en la conexión a crear.

            Delay length: es el retardo que se requiere.

            4.- Se crea la red.

 

1.-

 

2.1-

 

2.2-

                            3.1-

                           

3.2-

 

4.-

 

Esta es la red resultante del proceso anterior. Como se puede observar, las conexiones entre las neuronas de las distintas son como anteriormente se ha descrito, aunque las conexiones de la fila 2 de la capa oculta no se muestran para ver que estas neuronas están conectadas a las neuronas de las filas 2 a 6. Solamente muestra las conexiones correspondientes a las neuronas de las primeras filas de cada capa.

Se ve claramente como la neurona de la capa de salida está conectada con todas las neuronas de las 3 primeras filas de la capa oculta y las conexiones de la primera fila de la capa oculta con todas las neuronas de las 5 primeras filas de la capa de entrada.

 

 

CONFIGURACION DE LA RED

Funciones de Aprendizaje

 

La función de aprendizaje TimeDelayBackprop usa el  algoritmo Batch backpropagation  explicado en las funciones de aprendizaje del Perceptron, por lo que no hay nada que decir a mayores en esta red.

 

Funciones de Actualización

 

La función de actualización TimeDelay_Order se utiliza para propagar patrones en una red TDNN. Es un comportamiento análogo a la función  Topological_Order, pero reconocimiento las conexiones  lógicas.

 

 

 

 

Función de Activación

Para redes TDNN se usa una nueva función de activación, la función Act_TD_Logistic. Es similar a la función lógica regular Act_Logistic de activación, pero teniendo en cuenta las conexiones especiales. La fórmula matemática es la siguiente:

dónde oj ahora incluye también las unidades del precursor a lo largo de acoplamientos lógicos.

A continuación se describirá el proceso para cambiar esta función.

1.- En la ventana “display” elegimos las neuronas para cambiarles la activación con el ratón, pulsando el botón izquierdo del ratón y arrastrando.

2.- Manteniendo pulsada  la tecla “CRTL” se pulsa el botón izquierdo del ratón sobre la ventana y aparece un menú en la ventana sobre el que situamos el cursor sobre “Units”.

3.- Se repite el proceso anterior para acceder al siguiente menú, el que se situará el cursor sobre “Set”.

4.- Repitiendo, en el nuevo menú se escoge la opción “Function”.

5.- En el nuevo menú se escoge la opción “Activation func”.

6.- Hecho lo anterior aparece una ventana con las funciones de activación, de las cuales se elige “Act_TD_Logistic” y se pulsa “done” para que se establezca el cambio.

 

1.-

2.-

3.-

4.-

5.-

6.-

 

 

Función de Inicialización

 

La función de inicialización es la que se toma por defecto en las redes cuando no se especifica nada, la función “Randomize_Weights”, explicada anteriormente con el Perceptron.