Inmersión profunda en las Unidades Recurrentes con Puertas (GRU) Entendiendo las Matemáticas detrás de las RNN

Inmersión profunda en las GRU Entendiendo las Matemáticas detrás de las RNN

La Unidad Recurrente con Puerta (GRU, por sus siglas en inglés) es una versión simplificada de la Memoria a Corto Plazo de Longitud Variable (LSTM, por sus siglas en inglés). Veamos cómo funciona en este artículo.

Foto de Laila Gebhard en Unsplash

Este artículo explicará el funcionamiento de las unidades recurrentes con puerta (GRUs). Dado que las GRUs se pueden entender fácilmente si tenemos conocimiento previo de la Memoria a Corto Plazo de Longitud Variable (LSTMs), recomiendo encarecidamente aprender sobre las LSTMs de antemano. Puedes consultar mi artículo sobre LSTMs.

De las RNNs básicas a las LSTMs: Una guía práctica para la Memoria a Corto Plazo de Longitud Variable | por Shivamshinde | Ene, 2023 | VoAGI

Las unidades recurrentes con puerta, también conocidas como GRUs, son una versión simplificada de las unidades de Memoria a Corto Plazo de Longitud Variable (LSTM). Ambas se utilizan para que nuestra red neuronal recurrente retenga información útil durante más tiempo. Ambas son igualmente buenas. El rendimiento de ambas variará según el caso de uso. Para un caso de uso, las LSTMs pueden funcionar mejor y para otro caso las GRUs pueden funcionar mejor, tendremos que probar ambas y luego utilizar la que tenga un rendimiento más alto para nuestro entrenamiento de modelo real.

Sin embargo, hay algunas ventajas de utilizar GRUs en tu red.

  1. Como veremos en este artículo, las GRUs tienen dos puertas, lo que las hace más rápidas de entrenar. Esto es útil cuando tienes menos memoria y capacidad de procesamiento.
  2. También obtienen excelentes resultados en conjuntos de datos pequeños.

Ahora entendamos cómo funcionan las GRUs.

Observa el significado de los símbolos en los siguientes diagramas:

Significado de las variables en las siguientes ecuaciones

Wxz, Wxr, Wxg son las matrices de pesos de cada una de las tres puertas para su conexión con el vector de entrada x(t).

Whz, Whr, Whg son las matrices de pesos de cada una de las tres puertas para su conexión con el estado anterior h(t-1).

bz, br, bg son los términos de sesgo para cada una de las tres puertas.

Información básica sobre las GRUs

A nivel alto, las GRUs se pueden considerar como una versión mejorada de las unidades RNN simples con el mismo número de entradas y salidas. Sin embargo, la estructura interna de las GRUs es ligeramente diferente.

A diferencia de las LSTMs, las GRUs tienen solo un vector de estado. Se podría decir que los vectores de largo plazo y corto plazo se combinan en uno solo en el caso de las GRUs.

Las GRUs están compuestas por tres bloques. Ellos son:

  1. Bloque RNN básico, g(t)
  2. Una puerta que se encarga de olvidar información inútil y recordar la nueva información importante, z(t)
  3. Una puerta que determina qué parte del estado anterior se debe utilizar como entrada, r(t)

Las GRUs toman dos entradas. Ellos son:

  1. Estado anterior de la celda, h(t-1)
  2. Entrada de datos de entrenamiento, x(t)

La celda de la GRU produce dos términos de salida. Ellos son:

  1. Estado actual de la celda, h(t)
  2. Predicción para la celda actual, y(t)

Ahora, entendamos cómo se calcula cada una de las salidas utilizando las entradas.

Calculando el estado actual de la celda

Básicamente, el estado de la celda se encuentra mediante la suma de dos cantidades. La primera cantidad nos dice cuánto se debe olvidar del estado anterior. Y la segunda cantidad nos dice cuánto se debe recordar de la entrada de datos de entrenamiento.

Entendamos la primera cantidad.

Diagrama de la Primera Parte

Como se puede ver en el diagrama anterior, z(t) toma el estado anterior y los datos de entrenamiento como entrada. Actúa como una compuerta de olvido aquí. El valor de la compuerta z(t) determina qué parte del estado anterior debe ser olvidada en este paso de tiempo. El estado anterior y la entrada de entrenamiento se multiplican por sus pesos correspondientes y se suma el sesgo a su suma. Después de aplicar una función sigmoide a esta suma, obtendremos el valor de z(t). La multiplicación elemento a elemento del estado anterior y el valor de z(t) nos da la primera cantidad que necesitamos para calcular el estado del paso de tiempo actual. La primera cantidad se muestra en color verde en el diagrama anterior.

Ecuación de la Primera Cantidad

Entendamos la segunda cantidad.

Diagrama de la Segunda Parte

El valor de z(t) se calcula como se explicó en el cálculo de la primera cantidad. Pero aquí (1 – z(t)) actúa como una compuerta de entrada. La celda RNN básica g(t) toma dos entradas. Son

  1. Entrada de datos de entrenamiento, x(t)
  2. Multiplicación elemento a elemento de r(t) y el estado anterior, h(t-1)

El cálculo para encontrar r(t) es el mismo que el de z(t) excepto por los pesos y sesgos utilizados en el cálculo. El valor de r(t) nos dice qué parte del estado anterior debe ser dada como entrada a la celda RNN simple g(t).

Ambas entradas de g(t) se multiplican por sus pesos correspondientes y luego se suma el término de sesgo a su suma. Luego, este valor de suma final se pasa a la función tangente hiperbólica, dándonos el valor de g(t).

Ahora, la multiplicación elemento a elemento de g(t) con (1 – z(t)), también conocida como compuerta de entrada, nos dará la segunda cantidad requerida para calcular el estado del paso de tiempo actual. La segunda cantidad se muestra en color verde en el diagrama anterior.

Ahora que hemos encontrado ambas cantidades, su suma nos dará el estado del paso de tiempo actual.

Cálculo del Paso Actual y la Predicción

En las celdas GRU, el valor del estado actual es igual a la predicción. Por lo tanto, dado que ya hemos calculado el estado actual, también hemos calculado la predicción para el paso de tiempo actual.

Estado Actual o Predicción Actual

Hasta ahora hemos visto las diferentes partes que componen el GRU completo para entenderlo mejor. Entonces, combinemos todas las partes que hemos visto hasta ahora.

Diagrama Completo del GRU

Este es el diagrama completo de la red GRU.

Espero que te guste el artículo. Los diagramas del artículo los he dibujado a mano. Espero que sean lo suficientemente intuitivos (y no demasiado desordenados) para entender claramente el GRU. Si tienes algún comentario sobre el artículo, por favor házmelo saber. Además, si te gustó el artículo, por favor aplaude.

Conéctate conmigo en

LinkedIn

Sitio web

Escríbeme a [email protected]

¡Que tengas un excelente día!

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Investigación

El sistema de IA puede generar proteínas novedosas que cumplan con los objetivos de diseño estructural.

Estas proteínas ajustables podrían ser utilizadas para crear nuevos materiales con propiedades mecánicas específicas,...

Inteligencia Artificial

Google Research explora ¿Puede la retroalimentación de IA reemplazar la entrada humana para un aprendizaje por refuerzo efectivo en modelos de lenguaje grandes?

La retroalimentación humana es esencial para mejorar y optimizar los modelos de aprendizaje automático. En los último...

Ciencia de Datos

10 Preguntas más frecuentes sobre listas en Python en Stack Overflow

Stack Overflow es una mina de oro de información donde puedes encontrar miles de preguntas y respuestas en software, ...

Inteligencia Artificial

Innovaciones autónomas en un mundo incierto

Jonathan How y su equipo en el Laboratorio de Controles Aeroespaciales desarrollan algoritmos de planificación que pe...