Una RNN es un tipo de red neuronal diseñada para reconocer patrones en secuencias de datos, como series temporales o textos. Se caracterizan por tener conexiones que retroceden en la estructura de la red, lo que les permite mantener información de estados anteriores en la secuencia.
La relación recurrente es:
ht=σ(W⋅[ht−1,xt]+b)Donde:
Vamos a visualizar la misma red pero desenrollada en el tiempo, es decir, como una red neuronal profunda con una capa por paso de tiempo.
Memoria a corto plazo: La información puede ser transmitida de un paso en el tiempo a otro a través del estado oculto ht, lo que permite a las RNNs mantener una "memoria" de los datos anteriores en la secuencia.
Desenrollado en el tiempo: Aunque las RNNs se definen de manera recursiva, a menudo se "desenrollan" en el tiempo para su entrenamiento y visualización, tratándolas como una red neuronal profunda con una capa por paso de tiempo.
Dificultades en el entrenamiento: Las RNNs simples tienen dificultades para mantener información a largo plazo debido a los problemas como el desvanecimiento o la explosión del gradiente. Estos problemas son abordados por variantes más avanzadas, como las LSTMs y las GRUs.
https://colah.github.io/posts/2015-08-Understanding-LSTMs/
Una red LSTM, que significa "Long Short-Term Memory" o "Memoria a Largo y Corto Plazo", es un tipo de red neuronal recurrente (RNN) que se utiliza comúnmente en tareas de procesamiento de secuencias, como el procesamiento de lenguaje natural (NLP), la traducción automática, el reconocimiento de voz, la generación de texto y muchas otras aplicaciones relacionadas con datos secuenciales.
La red LSTM se desarrolló para superar algunas de las limitaciones de las RNN tradicionales, que tienen dificultades para manejar dependencias a largo plazo en las secuencias debido a problemas de desvanecimiento de gradientes. La arquitectura LSTM introduce una estructura de celdas con puertas que permite a la red aprender a retener y olvidar información a lo largo del tiempo. Las partes clave de una celda LSTM son:
Celda de memoria (Cell State): Esta es la memoria a largo plazo de la red y se propaga a lo largo de toda la secuencia. Puede almacenar información relevante de la secuencia y mantenerla a lo largo del tiempo.
Puerta del Olvido (Forget Gate): Esta puerta decide qué información de la celda de memoria anterior debe olvidarse y qué información debe mantenerse. Es una capa de red neuronal sigmoide que produce valores entre 0 y 1, donde 0 significa "olvidar completamente" y 1 significa "mantener completamente".
Puerta de Entrada (Input Gate): La puerta de entrada determina qué nueva información debe ser escrita en la celda de memoria. Similar a la puerta de olvido, consta de una capa sigmoide que produce valores entre 0 y 1 y una capa de activación (típicamente tangente hiperbólica) que genera candidatos de valores para ser escritos en la celda de memoria.
Puerta de Salida (Output Gate): La puerta de salida decide qué información de la celda de memoria se utilizará en la salida de la celda LSTM. Al igual que las puertas anteriores, consta de una capa sigmoide.
El proceso anterior se repite para cada elemento de la secuencia, lo que permite a la red LSTM modelar dependencias a largo plazo y retener información importante a través del tiempo. Las redes LSTM han demostrado ser efectivas para una amplia gama de tareas de aprendizaje profundo que involucran secuencias, y se utilizan ampliamente en la investigación y la industria del aprendizaje automático.