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. Presentadas por investigadores de Microsoft en 2015, ResNet resolvió un cuello de botella crítico en el aprendizaje profundo conocido como el problema de la desaparición del gradiente. En las redes tradicionales, apilar más capas a menudo conducía a 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 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 visión artificial (CV) y se convirtió en un concepto fundamental para las arquitecturas modernas.
Link to this sectionEl 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 entrada a 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 obliga a las capas a aprender el "residual", o la diferencia, entre la entrada y la salida deseada. La entrada original se añade de nuevo al residual 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 llevar los residuales a cero. Esto hace que los modelos de aprendizaje profundo (DL) sean mucho más fáciles de optimizar, permitiéndoles escalar de docenas a cientos o incluso miles de capas.
Link to this sectionVariantes 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 1x1 para reducir y luego restaurar las dimensiones, haciendo que la red sea computacionalmente eficiente mientras mantiene una alta precisión.
- ResNet-101 y ResNet-152: Variantes más profundas con 101 y 152 capas, respectivamente. Se utilizan a menudo 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.
Link to this sectionAplicaciones 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 la atención sanitaria, identificar anomalías sutiles en escaneos de alta resolución es crítico. Los modelos basados en ResNet se emplean con frecuencia para detectar condiciones como la detección de tumores en imágenes médicas, donde la profundidad de la red ayuda a discernir patrones granulares en datos de resonancia magnética o TC.
- Vehículos autónomos: Los coches autónomos requieren una extracción de características fiable de las cámaras para identificar peatones, señales y obstáculos. Las ResNets a menudo sirven como backbone para 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.
Link to this sectionResNet 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. Como consecuencia, son mucho más difíciles de entrenar a profundidades comparables a ResNet y, por lo general, son más costosas computacionalmente 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 ResNets dependen de convoluciones locales. Sin embargo, las ResNets siguen siendo una base sólida y a menudo son más rápidas para conjuntos de datos más pequeños o inferencia en tiempo real.
Link to this sectionEjemplo de implementación#
Las bibliotecas de aprendizaje profundo modernas como PyTorch hacen que sea sencillo acceder a modelos ResNet preentrenados. Estos modelos son invaluables para el aprendizaje por transferencia, donde un modelo entrenado en un conjunto de datos grande como ImageNet se ajusta para una tarea específica.
El siguiente fragmento de Python demuestra cómo cargar un modelo ResNet-50 preentrenado utilizando torchvision (parte del ecosistema de PyTorch) y realizar un pase hacia adelante simple. Aunque los usuarios de la plataforma Ultralytics pueden usar a menudo YOLO26 para la detección, entender los conceptos subyacentes de backbone 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 classesLink to this sectionSignificado en la IA moderna#
Aunque arquitecturas más nuevas como YOLO26 emplean estructuras altamente optimizadas para una velocidad y precisión máximas, 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 transformers utilizados en procesamiento de lenguaje natural (NLP) y los últimos modelos de detección de objetos. Al permitir que la información fluya más libremente a través de la red, ResNet allanó el camino para los modelos profundos y complejos que impulsan la inteligencia artificial de hoy.






