¿Qué significa que LSTM sea multicapa?

tl; dr En una sola capa RNN, la salida se produce al pasarla a través de un único estado oculto que no logra capturar la estructura jerárquica (temporal) de una secuencia. Con un RNN de varias capas, se captura dicha estructura que da como resultado un mejor rendimiento.

Compare RNN con una red neuronal profunda (como CNN) para el reconocimiento de imágenes. A través de la investigación de visualización, sabemos que cada capa en la red captura la estructura. Por ejemplo, las capas iniciales encuentran bordes en una imagen o identifican el color de la imagen. Las capas posteriores se basan en esto para una estructura compleja, como encontrar intersección de bordes o sombras de colores. La capa final reúne todo esto para identificar el objeto en la imagen.

En un RNN de una sola capa, tiene un estado oculto que hace todo el trabajo. Entonces está abrumado. Si está modelando una secuencia como el texto, entonces los parámetros están aprendiendo que ‘a’ es más probable que siga a ‘c’ que ‘o’. Sin embargo, al introducir varias capas, ofrece el RNN para capturar la estructura. La primera capa podría aprender que algunos caracteres son vocales y otros son consonantes. La segunda capa se basaría en esto para aprender que es más probable que una vocal siga una consonante.

Hermans y Schrauwen (2013) es una excelente lectura para más detalles.

Es más fácil pensar en LSTM como una función que asigna un par de vectores (estado, entrada) a un par de vectores (estado, salida), y esos vectores generalmente tienen la misma dimensionalidad. Lo que realmente sucede dentro depende de los parámetros aprendidos por la célula.

Cuando tiene varias celdas apiladas, es lo mismo que una aplicación secuencial de varias funciones del mismo tipo pero con diferentes parámetros. No es tan diferente de un perceptrón multicapa. El propósito de usar células RNN multicapa es aprender distribuciones condicionales más sofisticadas (como en la traducción automática neural (Bahdanau et al. 2014)).

Tome el procesamiento RNN un paso de tiempo como ejemplo primero, el RNN multicapa es lo mismo que un CNN multicapa. La salida de RNN se utiliza como entrada para la siguiente capa de RNN.

Para el RNN que procesa múltiples pasos de tiempo, en cada paso de tiempo, el RNN multicapa es lo mismo que un CNN multicapa. La salida de RNN en cada paso de tiempo se usa como la entrada a la siguiente capa de RNN en ese paso de tiempo.

Una nota es que, por lo general, la salida de RNN en cada paso de tiempo es el estado oculto de RNN que luego se utiliza como entrada recurrente para el siguiente paso de tiempo. Por lo tanto, la entrada de la siguiente capa RNN es la misma que la entrada recurrente a la capa RNN actual en el siguiente paso de tiempo.

En general, los modelos RNN actuales solo se pueden apilar en 2 o 3 capas. En 3 capas, el rendimiento puede disminuir. Esto se debe generalmente al problema de desaparición del gradiente en RNN.

Puede consultar el modelo reciente IndRNN (Building A Longer and Deeper RNN), que aborda el problema de la desaparición y la explosión del gradiente. Para este modelo, se pueden usar varias capas. Específicamente, se usa un IndRNN de 21 capas en los experimentos. IndRNN muestra un mejor rendimiento que los RNN y LSTM tradicionales.

Mientras que otros ya han dado buenas respuestas y referencias apropiadas a esta pregunta, solo quería agregar un pequeño punto de implementación de LSTM apilados (que la gente puede pasar por alto a veces). Si está apilando LSTM, normalmente permite que la primera capa LSTM produzca toda la secuencia de salida (no solo la salida final). Esta secuencia de salida se alimenta como entrada a la siguiente capa LSTM. El mismo procedimiento se aplicaría si deseamos apilar más capas LSTM. En Keras (Capas recurrentes – Documentación de Keras), para permitir que una capa LSTM produzca la secuencia completa, se requiere agregar el parámetro “return_sequences = True”.

Nada especial aquí: solo significa que trata los LSTM como una capa (por ejemplo, una capa tiene 128 LSTM de ancho) y luego toma una segunda capa (digamos, otras 128 unidades LSTM) como la capa ‘siguiente’. Esto solo significa que toma la salida de la capa 1 y la asigna a la entrada de la capa 2 (ya sea directamente, o más comúnmente, usando sigmoid en la parte superior de una transformación matricial como una red de alimentación directa estándar).

Por las mismas razones por las que las redes profundas / estrechas pueden ser más eficientes que las redes poco profundas / anchas, a menudo es útil (en áreas como el modelado de idiomas) tener múltiples capas de LSTM de tamaño moderado en lugar de una capa de LSTM que es muy ancha.

Significa que hay múltiples capas ocultas con unidades LSTM. Las unidades LSTM tienen conexiones recurrentes, es decir, la salida de una unidad LSTM vuelve como entrada a la unidad. En el caso de LSTM multicapa, existen múltiples capas LSTM con conexiones recurrentes entre las unidades en la misma capa, y conexiones de alimentación directa entre unidades en una capa LSTM y la capa LSTM por encima. La siguiente figura muestra el LSTM multicapa (tomado de [1], cada bloque LSTM se refiere a una capa oculta con unidades LSTM).

Una propiedad interesante de los LSTM multicapa es que permite realizar un procesamiento jerárquico en tareas temporales difíciles y capturar de forma más natural la estructura de las secuencias [2].

Referencias

  1. http: //static.googleusercontent
  2. http://papers.nips.cc/paper/5166

More Interesting

¿Cuál es la diferencia entre aprendizaje supervisado y aprendizaje de refuerzo?

¿Cuál es el mayor error sobre la IA entre las masas en general?

Con la superinteligencia acercándose rápidamente con el avance continuo en el aprendizaje profundo, ¿estamos subconscientemente preparándonos para la extinción?

¿Qué podrían ser posibles aplicaciones de aprendizaje de refuerzo profundo en la industria aparte de la robótica?

¿Qué tecnologías y productos se basan actualmente en el aprendizaje profundo y las arquitecturas de redes neuronales profundas?

¿Qué algoritmos de aprendizaje automático pueden producir una función de puntuación para medir la "similitud" entre dos objetos?

¿Cuál es el vocabulario completo para la red neuronal de convolución?

¿Ha habido alguna investigación sobre la creación de una red neuronal artificial física?

¿Por qué la gente me llama gay si soy heterosexual?

¿Por qué el Servicio Meteorológico Nacional no usa inteligencia artificial para predecir el clima?

¿Alguien puede dar una idea sobre un chatbot de salud basado en IA?

¿Qué modelo de red neuronal es eficiente para la predicción del mercado de valores mediante el análisis de sentimientos? ¿Y qué herramienta / biblioteca usar?

¿Es posible emular el patrón de habla de una persona a partir de una oración / párrafo simple como se muestra en Misión Imposible 3?

Cómo usar el aprendizaje automático

¿Cuán innovador es el reciente experimento que supuestamente muestra autoconciencia en los robots NAO?