Introducción a Resnet
Las redes neuronales convolucionales (CNN) han transformado el campo de la visión por ordenador, permitiendo abordar con éxito complejas tareas de procesamiento e interpretación de imágenes. Entre las arquitecturas más significativas, ResNet (Red Residual) destaca por su capacidad para gestionar redes profundas de forma eficiente. Presentada por Kaiming He en 2015, ResNet ha tenido un gran impacto en el sector gracias a su innovadora estructura basada en conexiones residuales, que facilitan el flujo de información dentro de la red.
Uso de modelos preentrenados
Aprendizaje por transferencia
Uno de los enfoques más habituales cuando se trabaja con arquitecturas complejas y conjuntos de datos con recursos limitados es el aprendizaje por transferencia. Este enfoque consiste en utilizar un modelo preentrenado en un gran conjunto de datos y adaptarlo después a una nueva tarea. ResNet50, por su capacidad para captar características complejas de las imágenes, es especialmente adecuada para el aprendizaje por transferencia. El concepto de ajuste fino se basa en reutilizar los pesos de un modelo preentrenado y adaptar sus capas finales al nuevo problema. Este enfoque reduce significativamente el tiempo de entrenamiento, especialmente cuando los datos disponibles para la nueva tarea son limitados. Para el ajuste fino de ResNet50, congelamos la mayoría de las capas preentrenadas (para que no se actualicen durante el entrenamiento) y sólo entrenamos las capas finales o nuevas adiciones, como una capa de clasificación específica para el nuevo conjunto de datos.
Arquitectura de ResNet – en breve
ResNet introduce el concepto de aprendizaje residual, que facilita el entrenamiento de redes muy profundas. La idea principal es el uso de conexiones de salto, es decir, conexiones que eluden una o más capas convolucionales y añaden la salida directamente a una capa posterior. Esta estructura ayuda a preservar los gradientes durante la retropropagación (la parte que permite optimizar los parámetros de la red para que la salida del modelo se acerque lo más posible al resultado deseado), mitigando el problema de la desaparición de gradientes ( vanishing gradient ).
Bloques residuales
El corazón de ResNet es el bloque residual, que puede representarse como:


donde

es la entrada,

representa una transformación no lineal aplicada por una serie de capas convolucionales, y

es la salida final del bloque. Esta conexión directa entre entrada y salida ayuda a la red a retener información
crucial y acelera la convergencia durante el entrenamiento.
Skip Connections: Una profundización
Las conexiones de salto son uno de los aspectos clave que hacen que ResNet sea especialmente potente. En un modelo de red neuronal tradicional, la información pasa por todas las capas de la red, sin posibilidad de “saltarse” las capas intermedias. Sin embargo, en ResNet, las conexiones de salto permiten que parte de la información eluda una o varias capas convolucionales y se añada directamente al resultado final de una capa más profunda. *** Translated with www.DeepL.com/Translator (free version) ***
Las conexiones de salto son útiles por dos razones principales:
- Mejora del flujo de gradiente: En las redes neuronales profundas, el gradiente puede disminuir exponencialmente a medida que se retropropaga, especialmente en las primeras capas de la red. Este fenómeno se conoce como el problema del gradiente evanescente. Las conexiones de salto permiten que los gradientes pasen directamente a través de las capas sin atenuarse significativamente, lo que mejora el aprendizaje en redes muy profundas.
- Facilitación del entrenamiento: las conexiones de salto ayudan a la red a centrarse en tareas de alto nivel y evitar tener que memorizar detalles menos relevantes, lo que facilita una mejor generalización. Sin la presencia de estas conexiones, las redes muy profundas pueden sufrir un efecto de “saturación” del aprendizaje, en el que los pesos tienden a no cambiar o convergen con demasiada lentitud.
ResNet: arquitectura y funcionamiento
1. Estructura de los bloques residuales
Un bloque ResNet consta de varias capas convolucionales, seguidas de funciones de normalización y activación. La estructura básica de un bloque ResNet incluye:
-
-
- Convolución 3×3 (
): captura características espaciales locales.
- Normalización por lotes (BN): normaliza la salida para mejorar la estabilidad del entrenamiento.
- ReLU (Rectified Linear Unit): introduce la no linealidad.
- Suma con la entrada original (conexión de salto): permite el flujo directo de información.
El funcionamiento matemático de un bloque residual puede expresarse como:
donde:
es la entrada del bloque,
representa la transformación no lineal aplicada por el conjunto de operaciones (Conv, BN, ReLU),
es la salida del bloque, que suma
con la entrada original.
Más detalladamente,

puede expresarse como:

donde:

y

son los pesos de las capas convolucionales,

es la función de activación ReLU. Si las dimensiones de entrada y salida no coinciden, se utiliza una transformación lineal mediante una convolución

:

donde

es una matriz de transformación.
2. Ciclo de vida de ResNet
El ciclo de vida de la arquitectura ResNet comprende varias fases:
2.1. Preparación del modelo
-
- Definición de la arquitectura (número de bloques residuales, tamaño de los filtros, etc.).
- Inicialización de los pesos.
2.2. Entrenamiento
-
- Paso hacia delante: propagación de la entrada a través de la red.
- Cálculo de la función de pérdida.
- Retropropagación: actualización de los pesos mediante el algoritmo de descenso de gradiente (SGD o Adam).
- Uso de conexiones de salto para mejorar el flujo de gradiente.
2.3. Validación y pruebas
-
- Evaluación del rendimiento con datos no vistos.
- Posible ajuste fino de los hiperparámetros.
2.4. Inferencia
-
- Utilización del modelo entrenado para hacer predicciones sobre nuevos datos.
3. ResNet-50: Estructura específica
ResNet-50 es una versión específica de ResNet con 50 niveles, organizados del siguiente modo:
- Una primera capa convolucional (
, stride 2)
- Un max-pooling (
)
- 4 bloques residuales con (3, 4, 6, 3) sub-bloques cada uno
- Una capa final totalmente conectada para la clasificación
La profundidad de la red permite captar características jerárquicas avanzadas, lo que hace que ResNet50 sea eficaz para tareas complejas de visión artificial.
ResNet50 es una de las variantes más utilizadas porque ofrece un buen equilibrio entre profundidad y eficiencia computacional. Su arquitectura consta de:
- Una capa convolucional inicial seguida de max-pooling.
- 16 bloques cuello de botella organizados en cuatro grupos.
- Un average pooling e un fully connected layer finale.
Bloques de cuello de botella
A diferencia de los bloques residuales estándar, los bloques cuello de botella utilizan una secuencia de tres convoluciones con tamaños de núcleo (1×1, 3×3, 1×1):
- 1×1 Conv– Reducción de la dimensionalidad.
- 3×3 Conv – Procesamiento de características.
- 1×1 Conv – Restablecer la dimensionalidad.
Esta configuración permite mantener el número de parámetros manejable incluso en arquitecturas profundas.
Ventajas de ResNet y ResNet50
- Mitigación de gradientes de fuga: gracias a las conexiones de salto, los gradientes pueden fluir sin degradarse.
- Mayor profundidad sin aumentar la complejidad computacional: los bloques cuello de botella mejoran la eficiencia en comparación con los bloques residuales estándar.
- Alto rendimiento en ImageNet y otros conjuntos de datos: ResNet50 se utiliza ampliamente para clasificación, segmentación y reconocimiento de objetos.
- Transferencia de aprendizaje: ResNet50 preentrenada en ImageNet se utiliza a menudo para el ajuste fino en diversas aplicaciones.
Aplicaciones de ResNet50
ResNet50 se utiliza en numerosos contextos, entre ellos:
- Reconocimiento de imágenes: clasificación de objetos en conjuntos de datos como ImageNet.
- Diagnóstico médico: identificación de patologías a partir de imágenes médicas.
- Vigilancia y seguridad: reconocimiento facial y análisis de vídeo.
- Vehículos autónomos: identificación de señales de tráfico y obstáculos.

Problemas y límites de ResNet
Complejidad computacional:
A pesar de las importantes ventajas que ofrece ResNet50, como la reducción del riesgo de gradiente de fuga debido a las conexiones de salto, no deja de ser un modelo muy profundo y complejo. Su profundidad implica una cantidad considerable de operaciones computacionales. Esto puede suponer un obstáculo en dispositivos con recursos limitados, como los dispositivos móviles o integrados. Los tiempos de inferencia pueden ser lentos, y el uso de grandes memorias puede resultar problemático en aplicaciones que requieren una respuesta rápida.
Sobreajuste en presencia de pocos datos:
Aunque las conexiones de salto de ResNet mejoran la capacidad de aprendizaje y la generalización, el modelo puede sufrir de sobreajuste cuando hay pocos datos disponibles. Esto es especialmente cierto si el conjunto de datos no es lo suficientemente diverso o representativo. En estos casos, la arquitectura profunda puede aprender a “almacenar” los datos de entrenamiento en lugar de generalizar. Una solución eficaz para contrarrestar el sobreajuste es el uso del aumento de datos, que permite aumentar la variedad de los datos de entrenamiento modificando las imágenes (por ejemplo, mediante rotaciones, zooms o traslaciones). Este enfoque permite mejorar la robustez del modelo sin necesidad de recoger nuevos datos. *** Translated with www.DeepL.com/Translator (free version) ***
Conclusión
ResNet y sus variantes, en particular ResNet50, han transformado el campo de la visión por ordenador. Gracias a su innovadora arquitectura con conexiones residuales, estas redes permiten entrenar modelos profundos sin toparse con los problemas típicos de las CNN tradicionales. Su eficacia y precisión las convierten en herramientas esenciales para una amplia gama de aplicaciones.