Residual Networks (ResNet)
Explora el poder de las redes residuales (ResNet). Aprende cómo las conexiones de salto resuelven el problema de la desaparición del gradiente para permitir el aprendizaje profundo en visión artificial.
Las redes residuales, conocidas ampliamente como ResNets, son un tipo específico de arquitectura de red neuronal artificial (ANN) diseñada para permitir el entrenamiento de redes extremadamente profundas. Introducidas por investigadores de Microsoft en 2015, ResNet resolvió un cuello de botella crítico en el aprendizaje profundo conocido como el problema del gradiente desvaneciente. En las redes tradicionales, apilar más capas a menudo provocaba la saturación o degradación del rendimiento porque la señal necesaria para actualizar los pesos del modelo se desvanecía a medida que se propagaba hacia atrás a través de las capas. ResNet introdujo "conexiones de salto" (o conexiones residuales), que permiten que los datos omitan una o más capas y fluyan directamente a las etapas de procesamiento posteriores. Esta innovación demostró que las redes más profundas podían entrenarse de manera eficaz, lo que dio lugar a avances significativos en la visión por computador (CV) y se convirtió en un concepto fundamental para las arquitecturas modernas.
El concepto central: aprendizaje residual#
La característica definitoria de una ResNet es el "bloque residual". En una red neuronal convolucional (CNN) estándar, cada capa intenta aprender un mapeo directo de la entrada a la salida. A medida que las redes se vuelven más profundas, aprender este mapeo directo se vuelve cada vez más difícil.
ResNet cambia este enfoque al formular el objetivo de aprendizaje de manera diferente. En lugar de esperar que cada pila de capas aprenda todo el mapeo subyacente, el bloque residual fuerza a las capas a aprender el "residuos" —o la diferencia— entre la entrada y la salida deseada. La entrada original se vuelve a sumar al residuo aprendido a través de una conexión de salto. Este cambio estructural implica que si un mapeo de identidad (pasar la entrada sin cambios) es óptimo, la red puede aprender fácilmente a empujar los residuos a cero. Esto hace que los modelos de aprendizaje profundo (DL) sean mucho más fáciles de optimizar, lo que les permite escalar desde decenas hasta cientos o incluso miles de capas.
Variantes clave de la arquitectura#
Desde su creación, varias variaciones de ResNet se han convertido en puntos de referencia estándar en la comunidad de IA.
- ResNet-50: Una versión de 50 capas que utiliza un diseño de "cuello de botella". Este diseño utiliza convoluciones de 1x1 para reducir y luego restaurar las dimensiones, lo que hace que la red sea eficiente desde el punto de vista computacional mientras mantiene una alta precisión.
- ResNet-101 y ResNet-152: Variantes más profundas con 101 y 152 capas, respectivamente. A menudo se utilizan cuando los recursos computacionales permiten una mayor complejidad para capturar mapas de características más intrincados.
- ResNeXt: Una evolución de ResNet que introduce una dimensión de "cardinalidad", dividiendo el bloque residual en múltiples rutas paralelas, lo que mejora la eficiencia y el rendimiento.
Aplicaciones en el mundo real#
La robustez de las arquitecturas ResNet las ha convertido en una opción preferente para una amplia gama de tareas visuales.
- Análisis de Imágenes Médicas: En el sector sanitario, identificar anomalías sutiles en escaneos de alta resolución es fundamental. Los modelos basados en ResNet se emplean frecuentemente para detectar afecciones como la detección de tumores en imágenes médicas, donde la profundidad de la red ayuda a discernir patrones de grano fino en datos de resonancia magnética o tomografía computarizada.
- Vehículos Autónomos: Los coches autónomos requieren una extracción de características confiable a partir de las fuentes de las cámaras para identificar peatones, señales y obstáculos. Las ResNet a menudo sirven como el esqueleto para los sistemas de detección de objetos en aplicaciones de IA en automoción, proporcionando las ricas características visuales necesarias para una navegación segura.
ResNet frente a otras arquitecturas#
Es útil distinguir ResNet de otras arquitecturas populares para entender su utilidad específica.
- ResNet frente a VGG: Las redes VGG (Visual Geometry Group) también son CNN profundas pero carecen de conexiones residuales. En consecuencia, son mucho más difíciles de entrenar a profundidades comparables a las de ResNet y, por lo general, son más caras desde el punto de vista computacional debido a sus grandes capas totalmente conectadas.
- ResNet frente a Inception: Las redes Inception se centran en la anchura, utilizando filtros de múltiples tamaños dentro de la misma capa para capturar características a diferentes escalas. ResNet se centra en la profundidad. Las arquitecturas modernas como Inception-ResNet combinan ambos conceptos.
- ResNet frente a Vision Transformer (ViT): Mientras que los ViT utilizan mecanismos de autoatención para procesar imágenes de forma global, las ResNet dependen de convoluciones locales. Sin embargo, las ResNet siguen siendo una sólida línea de base y suelen ser más rápidas para conjuntos de datos más pequeños o para la inferencia en tiempo real.
Ejemplo de implementación#
Modern deep learning libraries like PyTorch make it simple to access pre-trained ResNet models. These models are invaluable for transfer learning, where a model trained on a large dataset like ImageNet is fine-tuned for a specific task.
El siguiente fragmento de Python demuestra cómo cargar un modelo ResNet-50 preentrenado utilizando torchvision (parte del ecosistema de PyTorch) y realizar un paso hacia adelante simple. Aunque los usuarios de la Ultralytics Platform a menudo pueden utilizar YOLO26 para la detección, comprender los conceptos subyacentes del esqueleto como ResNet es crucial para la personalización avanzada.
import torch
import torchvision.models as models
# Load a pre-trained ResNet-50 model
resnet50 = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)
resnet50.eval() # Set model to evaluation mode
# Create a dummy input tensor (batch_size, channels, height, width)
input_tensor = torch.randn(1, 3, 224, 224)
# Perform a forward pass to get predictions
with torch.no_grad():
output = resnet50(input_tensor)
print(f"Output shape: {output.shape}") # Expect [1, 1000] for ImageNet classesSignificado en la IA moderna#
Aunque las arquitecturas más nuevas como YOLO26 emplean estructuras altamente optimizadas para obtener la máxima velocidad y precisión, los principios del aprendizaje residual siguen siendo omnipresentes. El concepto de conexiones de salto es ahora un componente estándar en muchas redes avanzadas, incluidos los transformadores utilizados en el procesamiento del lenguaje natural (NLP) y los últimos modelos de detección de objetos. Al permitir que la información fluya con mayor libertad a través de la red, ResNet allanó el camino para los modelos profundos y complejos que impulsan la inteligencia artificial de hoy en día.






