Residual Networks (ResNet)
Explora el poder de las redes residuales (ResNet). Aprende cómo las conexiones de salto resuelven el problema del desvanecimiento de gradientes para hacer posible el deep learning en visión artificial.
Las redes residuales, conocidas habitualmente como ResNets, son un tipo específico de arquitectura de red neuronal artificial (ANN) diseñada para permitir el entrenamiento de redes extremadamente profundas. Presentadas por investigadores de Microsoft en 2015, las ResNet resolvieron un cuello de botella crítico del aprendizaje profundo conocido como el problema del gradiente desvanecido. En las redes tradicionales, apilar más capas solía provocar la saturación o degradación del rendimiento porque la señal necesaria para actualizar los pesos del modelo se desvanecía al propagarse hacia atrás por las capas. ResNet introdujo las «conexiones de salto» (o conexiones residuales), que permiten que los datos eviten una o más capas y fluyan directamente hacia las etapas de procesamiento posteriores. Esta innovación demostró que las redes más profundas podían entrenarse eficazmente, lo que dio lugar a avances significativos en la visión artificial (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 una correspondencia directa entre la entrada y la salida. A medida que las redes se hacen más profundas, aprender esta correspondencia directa resulta cada vez más difícil.
ResNet cambia este enfoque formulando el objetivo de aprendizaje de otra manera. En lugar de esperar que cada conjunto de capas aprenda toda la correspondencia subyacente, el bloque residual obliga a las capas a aprender el «residual», es decir, la diferencia entre la entrada y la salida deseada. A continuación, la entrada original se vuelve a añadir al residual aprendido mediante una conexión de salto. Este cambio estructural implica que, si una correspondencia identidad (pasar la entrada sin modificar) es óptima, la red puede aprender fácilmente a llevar los residuales a cero. Esto hace que los modelos de aprendizaje profundo (DL) sean mucho más fáciles de optimizar y permite escalarlos desde docenas hasta cientos o incluso miles de capas.
Principales variantes arquitectónicas#
Desde su creación, varias variantes de ResNet se han convertido en referencias estándar en la comunidad de la IA.
- ResNet-50: Una versión de 50 capas que utiliza un diseño de «cuello de botella». Este diseño emplea convoluciones 1x1 para reducir y después restaurar las dimensiones, lo que hace que la red sea eficiente desde el punto de vista computacional y mantenga una precisión elevada.
- ResNet-101 y ResNet-152: Variantes más profundas con 101 y 152 capas, respectivamente. Suelen utilizarse cuando los recursos computacionales permiten una mayor complejidad para capturar mapas de características más detallados.
- ResNeXt: Una evolución de ResNet que introduce una dimensión de «cardinalidad» y divide 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 habitual para una amplia variedad de tareas visuales.
- Análisis de imágenes médicas: En el ámbito sanitario, es fundamental identificar anomalías sutiles en escáneres de alta resolución. Los modelos basados en ResNet se emplean con frecuencia para detectar afecciones, como la detección de tumores en imágenes médicas, donde la profundidad de la red ayuda a discernir patrones detallados en datos de MRI o CT.
- Vehículos autónomos: Los vehículos autónomos necesitan una extracción fiable de características a partir de las imágenes de las cámaras para identificar peatones, señales y obstáculos. Las ResNet suelen actuar como red troncal de los sistemas de detección de objetos en aplicaciones de IA en la automoción, ya que proporcionan las características visuales detalladas necesarias para una navegación segura.
ResNet frente a otras arquitecturas#
Para comprender su utilidad específica, resulta útil distinguir ResNet de otras arquitecturas populares.
- ResNet frente a VGG: Las redes VGG (Grupo de geometría visual) también son CNN profundas, pero carecen de conexiones residuales. Por ello, son mucho más difíciles de entrenar con profundidades comparables a las de ResNet y, por lo general, requieren más recursos computacionales debido a sus grandes capas totalmente conectadas.
- ResNet frente a Inception: Las redes Inception se centran en la anchura y utilizan filtros de varios tamaños dentro de la misma capa para capturar características a distintas 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 globalmente, las ResNet se basan en convoluciones locales. Sin embargo, las ResNet siguen siendo una referencia sólida y suelen ser más rápidas para conjuntos de datos pequeños o para la inferencia en tiempo real.
Ejemplo de implementación#
Las bibliotecas modernas de aprendizaje profundo, como PyTorch, facilitan el acceso a modelos ResNet preentrenados. Estos modelos son muy valiosos para el aprendizaje por transferencia, en el que un modelo entrenado con un conjunto de datos grande, como ImageNet, se ajusta para una tarea específica.
El siguiente fragmento de Python muestra cómo cargar un modelo ResNet-50 preentrenado mediante torchvision (parte del ecosistema de PyTorch) y realizar una pasada hacia delante sencilla. Aunque los usuarios de la plataforma Ultralytics suelen utilizar YOLO26 para la detección, comprender conceptos subyacentes de las redes troncales, como ResNet, es fundamental para una 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 classesImportancia en la IA moderna#
Aunque las arquitecturas más recientes, como YOLO26, emplean estructuras altamente optimizadas para maximizar la velocidad y la precisión, los principios del aprendizaje residual siguen estando muy extendidos. El concepto de las conexiones de salto es ahora un componente estándar en muchas redes avanzadas, incluidos los Transformers 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 por la red, ResNet allanó el camino para los modelos profundos y complejos que impulsan la inteligencia artificial actual.









