Clarificar las redes neuronales recurrentes

Sep 20 2020

Estoy empezando a aprender y comprender las redes neuronales recurrentes. Por lo que puedo imaginar, sus múltiples redes neuronales de alimentación hacia adelante con una neurona en cada capa colocadas una al lado de la otra, y conectadas de izquierda a derecha, donde cada neurona está conectada no solo con la neurona debajo de ella, sino con la que está en la izquierda de la vez anterior. No estoy seguro de si es una forma correcta de pensarlo, pero hasta ahora es mi primera impresión.

Sin embargo, algunas cosas no están claras.

  1. Por lo que entendí, se supone que la salida final de cada paso de tiempo predice la entrada del siguiente paso de tiempo. ¿Es esto cierto? ¿Qué pasa si solo quisiera mostrar a la red dos imágenes de, por ejemplo, un caballo y, dependiendo de ellas, predecir qué distancia recorrió y en qué dirección? es posible?

  1. En la ilustración de arriba hay $A_0$. ¿De donde? Asumiría que se necesitan al menos dos pasos de tiempo para hacer una predicción, por lo que, en mi opinión, un$x_0$falta en el lado izquierdo del diagrama. Estoy en lo cierto?

  2. He estado leyendo un artículo que dice "Entrenemos un LSTM de 2 capas con 512 nodos ocultos". ¿Significa dos capas de activaciones y 512 pasos de tiempo?

Respuestas

1 YuseqYaseq Sep 22 2020 at 22:09

Por lo que puedo imaginar, sus múltiples redes neuronales de alimentación hacia adelante con una neurona en cada capa colocadas una al lado de la otra, y conectadas de izquierda a derecha, donde cada neurona está conectada no solo con la neurona debajo de ella, sino con la que está en la izquierda de la vez anterior.

Realmente no. Cada cuadro cian en su imagen representa exactamente la misma celda. Ahora bien, esta celda puede ser muchas cosas, solo eche un vistazo a la celda LSTM (h y c representan su A) pero también puede ser una red que toma$A_i$ y $X_{i+1}$ como entrada y devoluciones $A_{i+1}$ y $Y_{i+1}$ como salida.

  1. Puede ser cierto si la RNN intenta predecir, por ejemplo, una serie de tiempo. Para entrenar una red de este tipo, proporcionaría la serie como una entrada de entrenamiento y la misma serie de tiempo pero en el siguiente paso como una salida (por lo que trataría de predecir$X_{i+1}$ Residencia en $\forall_{j \in [1;i)} X_{j}$. Pero en general no es cierto. La salida puede estar en un formato completamente diferente y representar algo completamente diferente exactamente como en su ejemplo. En tu ejemplo tu$X_i$ es un fotograma i-ésimo codificado y $Y_i$ es lo que la red cree que es la distancia que ha recorrido el caballo hasta el i-ésimo cuadro.
  2. $A_0$es el estado inicial de la RNN. Lo que es exactamente depende de la arquitectura exacta utilizada, pero es común establecerlo todo en ceros. Necesitamos este estado de inicio porque, como mencioné, se usa la misma celda en cada paso recurrente, por lo que debe haber algo que proporcionar como estado de red al principio. No hay$X_0$desaparecido. Además, no hay nada que le impida hacer una predicción basada en una secuencia de longitud 1. Es solo que no es útil usar un RNN en tal situación.
  3. La cantidad de pasos de tiempo que se toman depende de los datos, no de la red. Puede utilizar la misma red en una secuencia de longitud 512, 2 y 2 millones. Es por eso que se usan comúnmente para resolver problemas de diferente duración, como el reconocimiento de voz. Los LSTM tienen pesos como los de una red neuronal normal. Puede pensar en estos 512 nodos ocultos como el tamaño de una capa oculta en la celda. Usar dos capas de LSTM significa usar dos LSTM con 512 nodos y usar la salida del primero como entrada del segundo. La salida del segundo LSTM es la salida de LSTM de 2 capas.