Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Red Neuronal Recurrente (RNN)

Explora cómo las redes neuronales recurrentes (RNN) procesan datos secuenciales utilizando la memoria. Aprende sobre las arquitecturas RNN, las aplicaciones NLP y PyTorch .

Una red neuronal recurrente (RNN) es un tipo de red neuronal artificial diseñada específicamente para reconocer patrones en secuencias de datos, como texto, genomas, escritura a mano o palabras habladas. A diferencia de las redes tradicionales de avance que asumen que todas las entradas (y salidas) son independientes entre sí, las RNN conservan una forma de memoria. Esta memoria interna les permite procesar entradas con una comprensión de la información previa, lo que las hace especialmente adecuadas para tareas en las que el contexto y el orden temporal son fundamentales. Esta arquitectura imita la forma en que los humanos procesan la información: leer una frase, por ejemplo, requiere recordar las palabras anteriores para comprender la actual.

Cómo funcionan las RNN

La innovación fundamental de una RNN es su estructura de bucle. En una red feedforward estándar, la información fluye en una sola dirección: de la entrada a la salida. Por el contrario, una RNN tiene un bucle de retroalimentación que permite que la información persista. A medida que la red procesa una secuencia, mantiene un «estado oculto», un vector que actúa como la memoria a corto plazo de la red. En cada paso temporal, la RNN toma la entrada actual y el estado oculto anterior para producir una salida y actualizar el estado oculto para el siguiente paso.

Esta capacidad de procesamiento secuencial es esencial para el procesamiento del lenguaje natural (NLP) y el análisis de series temporales. Sin embargo, las RNN estándar suelen tener dificultades con secuencias largas debido al problema del gradiente desaparecido, por el cual la red olvida las entradas anteriores a medida que la secuencia crece. Esta limitación llevó al desarrollo de variantes más avanzadas, como las redes de memoria a corto y largo plazo (LSTM) y las unidades recurrentes con compuerta (GRU), que introducen mecanismos para regular mejor el flujo de información durante períodos más largos.

Aplicaciones en el mundo real

Las redes neuronales recurrentes han transformado muchas industrias al permitir que las máquinas comprendan datos secuenciales. Aquí hay dos ejemplos destacados:

  1. Traducción automática: Servicios como Google dependían en gran medida de arquitecturas basadas en RNN (concretamente, modelos de secuencia a secuencia) para convertir texto de un idioma a otro. La red lee toda la frase de entrada (por ejemplo, en English) y construye un vector de contexto, que luego utiliza para generar la salida traducida (por ejemplo, en francés) palabra por palabra, asegurando la coherencia gramatical.
  2. Predicción de texto y autocorrección: cuando escribes en un smartphone, el teclado sugiere la siguiente palabra más probable. Esto suele funcionar gracias a un modelo de lenguaje entrenado con RNN. El modelo analiza la secuencia de palabras que ya has escrito para predecir la siguiente palabra más probable, lo que mejora la velocidad y la precisión del usuario. Una lógica similar se aplica a los sistemas de reconocimiento de voz que transcriben el audio hablado a texto.

RNN frente a CNN y transformadores

Es útil distinguir las RNN de otras arquitecturas importantes. Una red neuronal convolucional (CNN) está diseñada principalmente para datos espaciales, como imágenes, procesando cuadrículas de píxeles para identificar formas y objetos. Por ejemplo, Ultralytics utiliza una potente red CNN para la detección de objetos en tiempo real. Mientras que una CNN destaca en «¿qué hay en esta imagen?», una RNN destaca en «¿qué pasa a continuación en este vídeo?».

Más recientemente, la arquitectura Transformer ha sustituido en gran medida a las RNN para muchas tareas complejas de PLN. Los Transformers utilizan un mecanismo de atención para procesar secuencias completas en paralelo en lugar de secuencialmente. Sin embargo, las RNN siguen siendo muy eficaces para aplicaciones específicas de streaming de baja latencia y recursos limitados, y son más fáciles de implementar en dispositivos periféricos para la predicción de series temporales simples .

Ejemplo de PyTorch

Aunque las tareas modernas de visión por computadora suelen basarse en CNN, los modelos híbridos pueden utilizar RNN para analizar características temporales extraídas de fotogramas de vídeo. A continuación se muestra un ejemplo sencillo y ejecutable que utiliza PyTorch para crear una capa RNN básica que procesa una secuencia de datos.

import torch
import torch.nn as nn

# Define a basic RNN layer
# input_size: number of features in the input (e.g., 10 features per time step)
# hidden_size: number of features in the hidden state (memory)
# batch_first: input shape will be (batch, seq, feature)
rnn = nn.RNN(input_size=10, hidden_size=20, num_layers=1, batch_first=True)

# Create a dummy input: Batch size 1, Sequence length 5, Features 10
input_seq = torch.randn(1, 5, 10)

# Forward pass through the RNN
# output contains the hidden state for every time step
# hn contains the final hidden state
output, hn = rnn(input_seq)

print(f"Output shape: {output.shape}")  # Expected: torch.Size([1, 5, 20])
print(f"Final hidden state shape: {hn.shape}")  # Expected: torch.Size([1, 1, 20])

Retos y perspectivas

A pesar de su utilidad, las RNN se enfrentan a obstáculos computacionales. El procesamiento secuencial inhibe la paralelización, lo que hace que el entrenamiento sea más lento en comparación con los transformadores en GPU. Además, la gestión del problema de la explosión del gradiente requiere un cuidadoso ajuste de los hiperparámetros y técnicas como el recorte del gradiente.

No obstante, las RNN siguen siendo un concepto fundamental en el aprendizaje profundo (DL). Son esenciales para comprender la evolución de la inteligencia artificial (IA) y siguen utilizándose ampliamente en sistemas sencillos de detección de anomalías para sensores de IoT. Para los desarrolladores que crean procesos complejos, como la combinación de modelos de visión con predictores de secuencias, la gestión de conjuntos de datos y los flujos de trabajo de formación son cruciales. Ultralytics simplifica este proceso, ya que ofrece herramientas para gestionar datos e implementar modelos de manera eficiente en diversos entornos.

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora