Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Gated Recurrent Unit (GRU)

Una unidad recurrente con compuertas (GRU) es una célula recurrente cuyas compuertas de actualización y reinicio controlan qué recuerda. Incluye sus ecuaciones, la comparación entre GRU y LSTM, y código.

Una unidad recurrente con compuertas (GRU) es una celda de red neuronal recurrente (RNN) que procesa una secuencia paso a paso y utiliza dos compuertas aprendidas, una de actualización y otra de reinicio, para decidir cuánta memoria conservar y cuánta sobrescribir en cada paso. Kyunghyun Cho y sus colegas la presentaron en 2014 en un codificador-decodificador RNN para la traducción automática. Las compuertas permiten que los gradientes fluyan a lo largo de muchos pasos temporales, por lo que una GRU aprende dependencias de más largo alcance que una RNN simple, afectada por el problema del desvanecimiento del gradiente. La GRU es una variante simplificada de la red de memoria a corto y largo plazo (LSTM), con un estado oculto en lugar de dos y tres bloques de pesos en lugar de cuatro, y se utiliza para el análisis de series temporales, el habla y otros datos secuenciales.

Cómo funciona una GRU#

En cada paso temporal t, una GRU combina la entrada actual xₜ con su estado oculto anterior hₜ₋₁. Dos compuertas utilizan la función sigmoide para generar valores entre 0 y 1 para cada elemento del estado:

  • Compuerta de reinicio: rₜ = σ(Wᵣxₜ + Uᵣhₜ₋₁ + bᵣ) decide cuánto del estado anterior se utiliza al proponer contenido nuevo. Los valores cercanos a 0 permiten que la celda ignore su historial, lo que resulta útil en límites como el inicio de una frase nueva.
  • Compuerta de actualización: zₜ = σ(W_z xₜ + U_z hₜ₋₁ + b_z) decide cuánto se conserva del estado anterior. Los valores cercanos a 1 copian el estado anterior casi sin cambios, lo que permite que la información perdure durante intervalos largos.
  • Estado candidato: h̃ₜ = tanh(Wxₜ + U(rₜ ⊙ hₜ₋₁) + b) propone contenido nuevo a partir de la entrada y del historial escalado por el reinicio, y utiliza tanh para mantener los valores entre −1 y 1.
  • Estado nuevo: hₜ = (1 − zₜ) ⊙ h̃ₜ + zₜ ⊙ hₜ₋₁ combina el estado candidato con el anterior, elemento a elemento.

Cuando la compuerta de actualización se mantiene cerca de 1, el estado nuevo es casi una copia del anterior y el gradiente retrocede por esa copia con poco decaimiento. Esta vía aditiva cumple la misma función que el estado de celda de una LSTM. Las ecuaciones anteriores siguen el artículo original, donde zₜ pondera el estado anterior; algunos textos intercambian las funciones de zₜ y 1 − zₜ, lo que describe la misma celda. La nn.GRU de PyTorch utiliza la misma combinación, pero aplica la compuerta de reinicio después de la multiplicación matricial, como rₜ ⊙ (Uhₜ₋₁ + b), una variante muy utilizada del estado candidato.

GRU en PyTorch#

El fragmento siguiente ejecuta una GRU sobre una secuencia de vectores de características, como las características por fotograma de un vídeo, y compara su tamaño con el de una LSTM del mismo ancho:

import torch
from torch import nn

# A sequence of 64-dim features from 5 video frames: (batch, time, features)
frames = torch.randn(1, 5, 64)

# A GRU with a 128-dim hidden state, and an LSTM of the same size for comparison
gru = nn.GRU(input_size=64, hidden_size=128, batch_first=True)
lstm = nn.LSTM(input_size=64, hidden_size=128, batch_first=True)

# outputs holds the hidden state at every step; h_n is the final state
outputs, h_n = gru(frames)
print(f"Outputs: {tuple(outputs.shape)}, final state: {tuple(h_n.shape)}")

# GRU weights cover 3 blocks (reset, update, candidate); LSTM weights cover 4
gru_params = sum(p.numel() for p in gru.parameters())
lstm_params = sum(p.numel() for p in lstm.parameters())
print(f"GRU: {gru_params:,} parameters, LSTM: {lstm_params:,} parameters")

Imprime Outputs: (1, 5, 128), final state: (1, 1, 128) y GRU: 74,496 parameters, LSTM: 99,328 parameters. La GRU devuelve un estado de 128 dimensiones por fotograma, además del estado final, que resume toda la secuencia para un clasificador posterior, y necesita exactamente tres cuartas partes de los parámetros de la LSTM.

GRU, LSTM y Transformers#

  • LSTM: Mantiene un estado de celda separado junto al estado oculto y utiliza tres compuertas (entrada, olvido y salida). La GRU combina ambos estados y elimina la compuerta de salida, por lo que se entrena más rápido en cada paso y tiene menos parámetros. En una comparación empírica de Junyoung Chung y sus colegas de 2014, las GRU igualaron a las LSTM en la modelización de música polifónica y señales de habla y, en la práctica, ninguna supera sistemáticamente a la otra en todas las tareas.
  • RNN simple: Sobrescribe todo su estado en cada paso sin utilizar compuertas, por lo que sus gradientes se desvanecen o explotan en secuencias largas y le cuesta conectar acontecimientos separados por intervalos prolongados.
  • Transformer: Procesa en paralelo todas las posiciones de una secuencia mediante atención, lo que acelera mucho el entrenamiento en GPU y permite gestionar mejor el contexto de largo alcance; por eso los Transformers sustituyeron a las redes recurrentes en la mayoría de las tareas lingüísticas. Una GRU conserva un estado de tamaño constante y un coste constante por paso, independientemente de la longitud de la secuencia, lo que sigue siendo adecuado para audio en streaming, datos de sensores y dispositivos pequeños.

Aplicaciones#

  • Flujo óptico: RAFT, ganador del premio al mejor artículo de ECCV 2020, refina su estimación del flujo durante muchas iteraciones con una GRU convolucional, una GRU en la que las multiplicaciones matriciales se sustituyen por convoluciones, de modo que su estado es un mapa de características.
  • Mantenimiento predictivo y previsión: Las GRU procesan flujos de datos de vibración, temperatura o demanda, y predicen fallos o valores futuros, a menudo en hardware integrado donde es importante que el modelo sea pequeño.
  • Habla y audio: Los modelos de audio en el dispositivo utilizan GRU porque procesan el audio fotograma a fotograma con poca memoria fija. El supresor de ruido RNNoise ejecuta sus capas GRU en tiempo real en una CPU convencional.
  • Reconocimiento de acciones: Una GRU procesa una secuencia de características o puntos clave por fotograma y genera una etiqueta de acción para el clip. YOLO26, en modo de seguimiento, asigna a cada persona un ID persistente entre fotogramas, lo que genera las secuencias por persona de cuadros delimitadores o puntos clave de pose que clasifica una GRU de este tipo.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático