Presentación de redes neuronales recurrentes (RNN)

Una red neuronal recurrente es un tipo de red neuronal artificial (ANN) y se utiliza en áreas de aplicación del procesamiento del lenguaje natural (PNL) y el reconocimiento de voz. Un modelo RNN está diseñado para reconocer las características secuenciales de los datos y, posteriormente, utilizar los patrones para predecir el próximo escenario.

Funcionamiento de redes neuronales recurrentes

Cuando hablamos de redes neuronales tradicionales, todas las salidas y entradas son independientes entre sí, como se muestra en el siguiente diagrama:

Pero en el caso de redes neuronales recurrentes, la salida de los pasos anteriores se alimenta a la entrada del estado actual. Por ejemplo, para predecir la siguiente letra de cualquier palabra, o para predecir la siguiente palabra de la oración, es necesario recordar las letras anteriores o las palabras y almacenarlas en alguna forma de memoria.

La capa oculta es la que recuerda cierta información sobre la secuencia. Un ejemplo simple de la vida real con el que podemos relacionar RNN es cuando vemos una película y, en muchos casos, estamos en condiciones de predecir lo que sucederá a continuación, pero qué pasa si alguien se une a la película y se le pide que prediga qué va a suceder después? ¿Cuál será su respuesta? Él o ella no tendrá ninguna pista porque no están al tanto de los eventos anteriores de la película y no tienen ningún recuerdo al respecto.

A continuación se muestra una ilustración de un modelo RNN típico:

Los modelos RNN tienen una memoria que siempre recuerda lo que se hizo en los pasos anteriores y lo que se ha calculado. Se realiza la misma tarea en todas las entradas y RNN usa el mismo parámetro para cada una de las entradas. Como la red neuronal tradicional tiene conjuntos independientes de entrada y salida, son más complejos que RNN.

Ahora intentemos comprender la red neuronal recurrente con la ayuda de un ejemplo.

Digamos que tenemos una red neuronal con 1 capa de entrada, 3 capas ocultas y 1 capa de salida.

Cuando hablamos de otras o las redes neuronales tradicionales, tendrán sus propios conjuntos de sesgos y pesos en sus capas ocultas como (w1, b1) para la capa oculta 1, (w2, b2) para la capa oculta 2 y (w3, b3 ) para la tercera capa oculta, donde: w1, w2 y w3 son los pesos y, b1, b2 y b3 son los sesgos.

Dado esto, podemos decir que cada capa no depende de ninguna otra y que no pueden recordar nada sobre la entrada anterior:

Ahora, lo que hará un RNN es lo siguiente:

  • Las capas independientes se convertirán en la capa dependiente. Esto se hace proporcionando los mismos sesgos y pesos a todas las capas. Esto también reduce el número de parámetros y capas en la red neuronal recurrente y ayuda a RNN a memorizar la salida anterior al enviar la salida anterior como entrada a la próxima capa oculta.
  • En resumen, todas las capas ocultas se pueden unir en una sola capa recurrente, de modo que los pesos y el sesgo sean los mismos para todas las capas ocultas.
    Entonces, una red neuronal recurrente se verá más o menos así:

Ahora es el momento de lidiar con algunas de las ecuaciones para un modelo RNN.

  • Para calcular el estado actual,

h t= f (h t-1, x t ),

Dónde:

x t es el estado de entrada
h t-1 es el estado anterior,
h t es el estado actual.

  • Para calcular la función de activación

h t= tanh (W hh h t-1 +W xh x t ),

Dónde:
W xh es el peso en la neurona de entrada,

W hh es el peso en la neurona recurrente.

  • Para calcular la salida:

Y t =W hy h t.

Dónde,
Y t es la salida y,
¿Por qué es el peso en la capa de salida?

Pasos para entrenar una red neuronal recurrente

  1. En las capas de entrada, la entrada inicial se envía con todas las mismas funciones de peso y activación.
  2. Usando la entrada actual y la salida de estado anterior, se calcula el estado actual.
  3. Ahora el estado actual h t se convertirá en h t-1 para el segundo paso de tiempo.
  4. Esto continúa repitiéndose para todos los pasos y para resolver cualquier problema en particular, puede continuar tantas veces para unir la información de todos los pasos anteriores.
  5. El paso final se calcula luego por el estado actual del estado final y todos los demás pasos anteriores.
  6. Ahora se genera un error calculando la diferencia entre la salida real y la salida generada por nuestro modelo RNN.
  7. El paso final es cuando ocurre el proceso de retropropagación en el que el error se retropropaga para actualizar los pesos.

Ventajas de las redes neuronales recurrentes

  1. RNN puede procesar entradas de cualquier longitud.
  2. Un modelo RNN está modelado para recordar cada información a lo largo del tiempo, lo cual es muy útil en cualquier predictor de series de tiempo.
  3. Incluso si el tamaño de entrada es mayor, el tamaño del modelo no aumenta.
  4. Los pesos se pueden compartir a través de los pasos de tiempo.
  5. RNN puede usar su memoria interna para procesar la serie arbitraria de entradas, que no es el caso con las redes neuronales de alimentación directa.

Desventajas de las redes neuronales recurrentes

  1. Debido a su naturaleza recurrente, el cálculo es lento.
  2. El entrenamiento de modelos RNN puede ser difícil.
  3. Si estamos usando relu o tanh como funciones de activación, se vuelve muy difícil procesar secuencias que son muy largas.
  4. Propenso a problemas como la explosión y la desaparición de gradiente.

Conclusión

En este artículo, hemos aprendido otro tipo de red neuronal artificial llamada red neuronal recurrente, nos hemos centrado en la diferencia principal que hace que RNN se destaque de otros tipos de redes neuronales, las áreas donde se puede usar ampliamente, como en el reconocimiento de voz y PNL (procesamiento del lenguaje natural). Además, hemos respaldado el funcionamiento de los modelos y funciones RNN que se utilizan para construir un modelo RNN robusto.

Artículos recomendados

Esta es una guía de redes neuronales recurrentes. Aquí discutimos la introducción, cómo funciona, los pasos, las ventajas y las desventajas de RNN, etc. También puede consultar nuestros otros artículos sugeridos para obtener más información:
  1. ¿Qué son las redes neuronales?
  2. Marcos de aprendizaje automático
  3. Introducción a la inteligencia artificial
  4. Introducción a Big Data Analytics
  5. Implementación de redes neuronales

Categoría: