¿Cuál es la diferencia entre red neuronal de alimentación directa y LSTM ? ¿En qué se diferencian en su arquitectura?

Respuesta

Una red neuronal de retroalimentación se ve así:

entrada -> capa oculta 1 -> capa oculta 2 -> … -> capa oculta k -> salida.

Cada capa puede tener un número diferente de neuronas, pero esa es la arquitectura .

Una LSTM (celda de memoria a largo-corto plazo) es un tipo especial de nodo dentro de una red neuronal. Se puede colocar en una red neuronal de alimentación directa, y generalmente es . Cuando eso sucede, la red neuronal feedforward se denomina LSTM (¡confuso!).

Entonces, ¿cómo funciona un LSTM? Echa un vistazo a mi respuesta aquí: Forget Layer in a Recurrent Neural Network (RNN) –

tl; dr: una celda LSTM tiene tres puertas, cada una de las cuales se usa para modular su entrada de alguna manera: una puerta de entrada, una puerta de olvido y una puerta de salida. Tiene una «memoria» y una salida que son modificadas por las puertas. Es decir, dentro de una sola celda LSTM:

(input estado de celda anterior) -> (input & olvidar puertas) -> (actualizar estado de celda)

(input & estado de celda anterior & estado de celda actualizado) -> (puerta de salida)

Puede apilar estas celdas en muchas configuraciones diferentes. Por lo tanto, no existe una «red LSTM» única, sino un conjunto de muchas arquitecturas posibles que se pueden construir a partir de estos nodos básicos.

¡Espero que empieces!

Comentarios

  • Muchas gracias por su respuesta, pero ¿pueden agregar algunas imágenes para mejorar mi comprensión de la arquitectura?
  • ¿Qué pasa con la propagación hacia atrás en la red de alimentación hacia adelante? ¿Ocurre en feed forward network
  • Hola @codezcar, hay imágenes del LSTM en mi respuesta que vinculé. Para una red neuronal feedforward, una imagen está aquí: medium.com/random-techpark/… Sí, tú puede usar la propagación hacia atrás para encontrar los pesos óptimos en cualquier tipo de red neuronal (feed forward, LSTM, GRU, … ¡cualquier cosa!).

Respuesta

Como mencionó Philipp, las redes con ciclos de retroalimentación ayudan a modelar el tiempo en los datos.

Le recomendamos que consulte esto para obtener una descripción general de varias arquitecturas NN: https://i.stack.imgur.com/LgmYv.png

Respuesta

Las redes de retroalimentación son redes donde cada nodo está conectado solo con nodos de la siguiente capa. No tienen conexiones «circulares». Los datos solo pueden viajar de la entrada a la salida sin bucles. Por ejemplo, el perceptrón de capa simple o el perceptrión de múltiples capas. Las redes neuronales convolucionales también son redes de alimentación directa

En oposición a que son redes neuronales recurrentes. LSTM es una de esas. Estas RNN también se pueden conectar «lateralmente». Lo que significa que sus datos pueden viajar no solo hacia adelante a la siguiente capa, sino también a otros nodos en la misma capa o hacia atrás. Desde una arquitectura punto de vista que significa que, aunque tiene una red con tal vez solo una capa oculta, obtiene «profundidad» al agregar bucles a los nodos en esa capa. Por lo general, estos representan «tiempo» en los datos.

Esta imagen muestra lo que quiero decir con «profundidad» a través de ciclos de retroalimentación: https://en.wikipedia.org/wiki/Recurrent_neural_network#/media/File:Recurrent_neural_network_unfold.svg

Aunque técnicamente es uno nodo en su arquitectura de capa, se vuelve más y más profundo cuanto más bucles agregue

Respuesta

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

  • ¿Por qué / cuándo usaríamos un LSTM sobre una red neuronal de alimentación hacia adelante (FFNN)?
  • ¿Cuáles son los pros y los contras de los LSTM y cómo se comparan con FFNN?
  • ¿En qué se diferencian de las redes neuronales recurrentes tradicionales (RNN)?

Feed Forward Neural Networks (FFNN)

Consideremos primero un FFNN estándar con arquitectura: Hacia la imagen de ciencia de datos: * Contar manualmente el número de parámetros en modelos de aprendizaje profundo *

Como probablemente sepa, este FFNN toma tres entradas, las procesa usando la capa oculta y produce dos salidas. Podemos expandir esta arquitectura para incorporar más capas ocultas, pero el concepto básico aún se mantiene: las entradas entran, se procesan en una dirección y se generan al final.

Este concepto está muy bien explicado por otros artículos, por lo que no entraré en muchos más detalles.La conclusión clave es:

La condición principal que separa a FFNN de las arquitecturas recurrentes es que las entradas a una neurona deben provenir 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 la restricción impuesta a FFNN ya no se aplica:

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

Una encuesta sobre la aplicación de redes neuronales recurrentes al modelado de lenguaje estadístico

A menudo verá que esta arquitectura a menudo se «enrolla» en una unidad recurrente como la siguiente:

Artículo mediano: Todo lo que necesita saber sobre las redes neuronales recurrentes

Las unidades «enrolladas» que puede ver en los diagramas de arquitectura pueden ser engañosamente pequeño. Cuando los desenrolla, la red a menudo será bastante profunda.

RNN Wikipedia

Memoria a corto y largo plazo (LSTM)

Los LSTM son un tipo especial de RNN que están diseñados para abordar el problema del gradiente de desaparición / explosión.

Cuando entrena a un RNN tradicional, la red a menudo sufre de gradientes que se desvanecen / explotan: ¡desenrollar una unidad recurrente da como resultado una red muy profunda! Si pasa por el algoritmo de retropropagación utilizando arquitecturas RNN tradicionales, las capas anteriores serán cada vez menos significativas a medida que nos propaguemos a través de la red. Esto hace que los RNN tradicionales sean propensos a olvidar información, en particular datos que aparecen muchos pasos de tiempo antes de la hora actual.

Un ejemplo de celda LSTM se ilustra como tal:

Arquitectura de celda LSTM

Esta estructura es similar a la unidad tradicional desenrollada RNN, pero la diferencia clave con 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:

  • puerta de entrada controla la datos que ingresan a la celda
  • puerta de olvido controla hasta qué punto los datos permanecen dentro de la celda
  • puerta de salida controla la salida de la celda a través de la función de activación

Esta publicación de Github IO es una excelente introducción a los conceptos básicos de los LSTM. También hace un trabajo increíble al explicar la intuición detrás de las matemáticas de un LSTM.

LSTM Wikipedia

Propiedades y un ejemplo de caso de uso de RNN

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

Exploremos un ejemplo:

Quizás esté usando una red para predecir la siguiente palabra en una oración. Supongamos que recibe las entradas:

Muerta de hambre, Alice conduce a la tienda más cercana para comprar [predicción]

Una red neuronal recurrente podría olvidar la primera palabra «muriendo de hambre» mientras que un LSTM idealmente lo propagaría. Por lo tanto, un LSTM usaría el contexto que escuchó anteriormente en la oración para adivinar «comida», mientras que un RNN podría adivinar cualquier cosa que se compre en una tienda, particularmente si se da una oración larga o múltiples.

Los mecanismos de activación que permiten este tipo de memoria se explica bien por @StatsSorceress aquí: Olvidar la capa en una red neuronal recurrente (RNN) –

Los RNN están diseñados para manejar secuencias. Esto se puede usar para analizar videos (secuencias de imágenes), escritura / habla (secuencias de palabras) , etc.

Los LSTM están diseñados para permitir que la información importante persista en el tiempo. Los RNN a menudo se «olvidan» con el tiempo.

Los FFNN son sistemas sin memoria; después de procesar alguna entrada, olvidan todo sobre esa entrada. Digamos, por ejemplo, entrenamos un FFNN que toma 5 palabras como entradas y predice la siguiente salida. Este modelo recibiría la entrada del ejemplo anterior:

la tienda más cercana para comprar [predicción] .

Esto claramente está perdiendo contexto, y obtendría un resultado pobre.

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

La respuesta es sí, pero este método es ineficaz y, a menudo, poco práctico. Digamos, por ejemplo, que necesitamos recordar el contexto de un párrafo completo hacia atrás. ¡Necesitaríamos un FFNN muy grande! Además, ¿cómo sabemos cuántas palabras de vuelta queremos como contexto? ¿20 sería suficiente? 30? 100? La arquitectura LSTM elimina estos problemas por completo al permitir que la red administre una memoria transitoria. Este problema se ve agravado por los desafíos del procesamiento de video porque cada cuadro requerirá significativamente más entradas que las tareas de PNL.

Sin embargo, tenga en cuenta que las unidades LSTM son inherentemente más complejas computacionalmente que las unidades de un FFNN, por lo que entrenarlas a menudo es más difícil y lleva más tiempo. A pesar de estas desventajas, su éxito en los desafíos de datos temporales claramente justifica su uso sobre FFNN.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *