Red Neuronal Recurrente (RNN): La estructura de una red neuronal artificial es relativamente simple y se refiere principalmente a la multiplicación de matrices. Durante el primer paso, las entradas se multiplican por pesos inicialmente aleatorios, y sesgo, transformados con una función de activación y los valores de salida se utilizan para hacer una predicción. Este paso da una idea de lo lejos que está la red de la realidad.
Red neuronal clásica | Red neuronal recurrente |
Los vectores de entrada producen vectores de salida | Tratan datos secuenciales de forma eficiente |
No mezclan información entre ejecuciones | Recuerdan las salidas anteriores como entrada |
Tratan una secuencia de datos de una sola vez | Pueden tratar secuencias muy largas, elemento a elemento |
El entrenamiento de una red neuronal recurrente debe prolongarse para cada paso temporal, lo que es muy costoso en tiempo de proceso y memoria RAM. Esto se simplifica “desenrollando” la red en tantas capas como pasos temporales o de datos se dispone en la secuencia temporal de entrenamiento, como si fuese una red no recurrente (feed-forward). Cada capa desenrollada tiene los mismos pesos para acelerar el proceso.
Como cuanto más larga sea la secuencia temporal a analizar, mayor será el número de capas debe desenrollar, puede aparecer el problema de desvanecimiento de gradiente (vanishing gradient). Esto se soluciona incorporando capas de tipo LSTM o GRU que permiten el backpropagation through time conectando eventos que aparezcan muy alejados en los datos de entrada, sin que su peso se diluye entre las capas.