Quiero discutir algunas intuiciones de alto nivel detrás de las redes LSTM. Aquí hay algunas preguntas para ayudar a explorar los aspectos del por qué:

  • ¿Por qué/cuándo utilizaríamos una LSTM en lugar de una red neuronal de avance (FFNN)?
  • ¿Cuáles son los pros y los contras de las LSTM y cómo se comparan con las FFNN?
  • ¿En qué se diferencian de las redes neuronales recurrentes (RNN) tradicionales?

Redes neuronales de avance (FFNN)

Consideremos primero una FFNN estándar con arquitectura:Hacia la imagen de la ciencia de datos: *Contando a mano el número de parámetros en los modelos de aprendizaje profundo*

Como probablemente sabes, esta FFNN toma tres entradas, las procesa usando la capa oculta y produce dos salidas. Podemos ampliar esta arquitectura para incorporar más capas ocultas, pero el concepto básico sigue siendo el mismo: las entradas entran, se procesan en una dirección y salen al final.

Este concepto está muy bien explicado en otros artículos, así que no entraré en mucho más detalle. La clave es:

La condición principal que separa las FFNN de las arquitecturas recurrentes es que las entradas a una neurona deben proceder de la capa anterior a esa neurona.

FFNN Wikipedia

Redes Neuronales Recurrentes (RNN)

Las redes neuronales recurrentes son matemáticamente bastante similares a los modelos FFNN. Su principal diferencia es que ya no se aplica la restricción impuesta a las FFNN:

Las entradas a una neurona pueden proceder de cualquier otra capa.

Un estudio sobre la aplicación de las redes neuronales recurrentes al modelado estadístico del lenguaje

A menudo verás que esta arquitectura suele estar «enrollada» en una unidad recurrente como la siguiente:

Artículo medio: Todo lo que necesitas saber sobre las Redes Neuronales Recurrentes

Las unidades «enrolladas» que puedes ver en los diagramas de arquitectura pueden ser, por tanto, engañosamente pequeñas. Cuando se desenrollan, la red suele ser bastante profunda.

RNN Wikipedia

Memoria a Largo Plazo (LSTM)

Las LSTMs son un tipo especial de RNN que están diseñadas para abordar el problema del gradiente de fuga/explosión.

Cuando se entrena una RNN tradicional, la red a menudo sufre de gradientes de fuga/explosión: ¡desenrollar una unidad recurrente resulta en una red muy profunda! Si se recorre el algoritmo de retropropagación utilizando arquitecturas RNN tradicionales, las primeras capas serán cada vez menos significativas a medida que nos propagamos por la red. Esto hace que las RNN tradicionales sean propensas a olvidar información, en particular los datos que aparecen muchos pasos de tiempo antes del tiempo actual.

Un ejemplo de célula LSTM se ilustra así:

Arquitectura de célula LSTM

Esta estructura es similar a la unidad desenrollada de la RNN tradicional, pero la diferencia clave con la LSTM son las puertas: puerta de entrada, puerta de salida y puerta de olvido. La función de estas puertas está bien descrita por sus nombres:

  • La puerta de entrada controla los datos que entran en la célula
  • La puerta de olvido controla la medida en que los datos permanecen dentro de la célula
  • La puerta de salida controla la salida de la célula a través de la función de activación

Este post de github IO es una gran introducción a los fundamentos de las LSTM. También hace un trabajo increíble de explicar la intuición detrás de las matemáticas de un LSTM.

LSTM Wikipedia

Propiedades y un ejemplo de uso de RNN

Los bucles de retroalimentación prestan las redes neuronales recurrentes mejor a los desafíos temporales. El tiempo se tiene en cuenta en su arquitectura:

Exploremos un ejemplo:

Tal vez usted está utilizando una red para predecir la siguiente palabra en una frase. Digamos que se le dan las entradas:

Muerta de hambre, Alicia se dirige a la tienda más cercana para comprar

Una red neuronal recurrente podría olvidar la primera palabra «muerta de hambre» mientras que una LSTM la propagaría idealmente. Por lo tanto, una LSTM utilizaría el contexto que escuchó previamente en la frase para adivinar «comida» mientras que una RNN podría adivinar cualquier cosa que se compre en una tienda, sobre todo teniendo en cuenta una frase larga o varias frases.

Los mecanismos de gating que permiten este tipo de memoria los explica muy bien @StatsSorceress aquí: Forget Layer in a Recurrent Neural Network (RNN) –

Las RNN están diseñadas para manejar secuencias. Esto puede ser utilizado para analizar el vídeo (secuencias de imágenes), la escritura / habla (secuencias de palabras), etc.

LSTMs están diseñados para dejar que la información importante persisten en el tiempo. Las RNN suelen «olvidarse» con el tiempo.

Las RNF son sistemas sin memoria; después de procesar alguna entrada, olvidan todo lo relacionado con esa entrada. Digamos, por ejemplo, que entrenamos una FFNN que toma 5 palabras como entrada y predice la siguiente salida. Este modelo recibiría entonces la entrada del ejemplo anterior:

la tienda más cercana para comprar.

Esto es claramente perder el contexto, y obtendríamos un resultado pobre.

Ahora, podrías preguntarte, ¿qué pasaría si hiciéramos una FFNN que tomara muchas entradas para que incluyera la palabra «hambre» en sus entradas? En otras palabras, ¿no podríamos aumentar el número de entradas de una FFNN para representar suficientemente los datos anteriores?

La respuesta es sí, pero este método es ineficiente y a menudo poco práctico. Digamos, por ejemplo, que necesitamos recordar el contexto de todo un párrafo atrás. ¡Necesitaríamos una FFNN muy grande! Además, ¿cómo sabemos cuántas palabras queremos recordar como contexto? ¿Serán suficientes 20? 30? 100? La arquitectura LSTM elimina por completo estos problemas al dejar que la red gestione una memoria transitoria. Este problema se ve agravado por los retos del procesamiento de vídeo, ya que cada fotograma requerirá un número de entradas significativamente mayor que las tareas de PNL.

No obstante, hay que tener en cuenta que las unidades LSTM son intrínsecamente más complejas desde el punto de vista computacional que las unidades de una FFNN, por lo que entrenarlas suele ser más difícil y lleva más tiempo. A pesar de estas desventajas, su éxito en los retos de datos temporales justifica claramente su uso sobre las FFNN.

Articles

Deja una respuesta

Tu dirección de correo electrónico no será publicada.