Capítulo II. REDES NEURONALES RECURRENTES, SU EFECTIVIDAD EN
II.2. Modelo de redes neuronales recurrentes para clasificación de secuencias
Existen varias topologías para redes recurrentes que se usan en la literatura para resolver diferentes problemas. Inspirados en el modelo de red recurrente de Baldi [29], se decidió el uso de redes bidireccionales dinámicas, como otro método de aprendizaje para resolver también problemas de clasificación simple. Esta topología desarrollada por Baldi, consiste de dos bloques de contexto, uno con recurrencia al pasado y otro con recurrencia al futuro. En cada tiempo t, entiéndase como pasado aquellas capas que tienen conexiones que dependen de tiempos menores que t y como futuro, aquellas que dependen de tiempos mayores que t.
Figura II.1 Topología de red recurrente bidireccional
En la Figura II.1 se muestra un ejemplo de esta topología, donde R es la cantidad de rasgos de entrada. Téngase en cuenta, que en la figura, cada una de las flechas que van de capa a capa representan conexión de todas las neuronas de la capa origen con todas las
C q-1 … … … … q+1 … R HB HF HO
neuronas de la capa destino. Las flechas discontinuas representan las conexiones en el tiempo; tal y como se describió en el capítulo anterior el operador de desplazamiento q+1 significa que la conexión viene desde un tiempo inmediato anterior, y el operador q-1 significa que la conexión viene del tiempo inmediato posterior. Justamente la bidirección está dada porque tiene recurrencia en los dos sentidos: en el tiempo t, tiene conexión hacia el tiempo t+1 (por el operador q+1) y hacia el tiempo t-1 (por el operador q-1).
Figura II.2 Despliegue de la red en tres tiempos para un problema de clasificación de secuencia, donde la clase es simple Salida 1 Salida 2 Salida 3 … … … … … … … … … … … t-1 t t+1 (AA67 … AA99) (AA34 … AA66) (AA1…AA33) Secuencia Procesamiento de la Salida
Salida=Función (salidat-1, salidat, salidat+1)
Esto puede verse más claro cuando la red se despliega en el tiempo, como se muestra en la Figura II.2, en este caso desplegada en tres tiempos. Véase que el tiempo t=2, depende del t=1 y del t=3 a la vez. En el caso t=1, que no tiene tiempo anterior, las neuronas de la parte derecha se inicializan en cero y ocurre igual en el caso de t=3, pero para las neuronas de la capa de la izquierda, pues no tiene tiempo futuro.
En la Figura II.1 se muestra una red que tiene R neuronas de entrada, C neuronas de salida y varias neuronas en las tres capas ocultas: capa de conexión hacia delante (HF), capa de conexión hacia atrás (HB) y capa de conexión con la salida (HO). Suponiendo un problema con dos clases con dos neuronas de salidas, los posibles valores serían (0,1) ó (1,0), significando positivo y negativo respectivamente.
En los problemas de clasificación se tiene una única salida, no contamos con salidas asociadas a tiempos, por eso no es típico resolver estos problemas con redes recurrentes. Sin embargo, sí se puede dividir la secuencia en subsecuencias que representen tiempos y asignar a cada tiempo la misma salida. Si se van a representar T tiempos entonces la secuencia se debe dividir en T partes, cada una asociada a un tiempo. En la Figura II.2 se muestra un ejemplo de una secuencia de entrada dividida en tres partes, una para cada tiempo.
Después de definir la entrada de los rasgos que describen la secuencia, resta definir cuál es la salida final de la red. Como se muestra en el ejemplo, la red tiene tantos valores de salida como tiempos, o sea, la salida es un vector de varios componentes (en el ejemplo, 3). La forma de representar los casos de la base de entrenamiento es la misma, y el algoritmo de entrenamiento no se altera pues la comparación de la salida de cada tiempo se compara con la salida deseada que es única. Pero dado un nuevo caso, en la predicción, se pueden obtener salidas diferentes para cada tiempo, éstas puede ser cualquier combinación de positivos y negativos, y entonces, ¿cuál es la salida final? Pueden existir diferentes variantes para llegar a una única salida a partir del vector de éstas. En este trabajo se van a tener en cuenta tres de ellas. La más fácil de concebir es seleccionar, de todas las salidas obtenidas, aquella que tenga máxima distribución de probabilidad, analizando las salidas en su variante no procesada, como el vector de probabilidades asociadas a cada valor de clase. Otra variante de salida es el promedio de las salidas y una tercera variante puede ser basada en las salidas procesadas por tiempo,
calculando la moda de ellas. En el caso de la primera variante, se está seleccionando la salida del tiempo que fue más seguro al dar la respuesta de salida. En el segundo caso se da un resultado promedio. En la tercera variante se está ofertando el valor que fue más frecuente en los diferentes tiempos, lo cual le da igual peso a todas las partes de la secuencia. Además de estas tres, se puede analizar cada una de las salidas por separado, si se conoce que para un problema en particular una parte de la secuencia tiene mayor información, se puede seleccionar la salida asociada al tiempo que representa esta parte. En la Figura II.2 se puede ver un ejemplo de la topología de la red que se propone, para tres tiempos, en su fase de despliegue, donde se puede observar con claridad como el tiempo 2 depende del 1 y del 3 para dar su salida. La tercera variante sólo puede tenerse en cuenta si la cantidad de tiempos es impar.
La topología de este tipo de red es equivalente al procesamiento de las redes MLP, pues como se ve se tienen varias capas de neuronas ocultas, para las que hay que definir la cantidad de neuronas asociadas a cada una.
Finalmente en este trabajo se usa la topología descrita de red recurrente bidireccional como muestran las figuras II.1 y II.2. Como algoritmo de entrenamiento se usó el BPTT descrito en el capítulo anterior.