Introducción a las Redes Neuronales Convolucionales (CNN)
Las redes neuronales convolucionales son una arquitectura fundamental en el campo de la inteligencia artificial y la informática, especialmente para el procesamiento de imágenes y datos espaciales. En este curso exploraremos los conceptos clave que aparecen en el cuestionario, proporcionando explicaciones detalladas, ejemplos y buenas prácticas para que puedas dominar su uso en proyectos reales.
1. Padding en capas convolucionales: valid vs same
El padding consiste en añadir filas y columnas de ceros (u otro valor) alrededor de la entrada antes de aplicar la operación de convolución. Su objetivo principal es controlar la dimensión de la salida.
- Valid padding (también llamado "sin padding") no agrega ceros. Cada posición del kernel debe estar completamente dentro de la imagen original, lo que reduce la dimensionalidad de la salida.
- Same padding añade la cantidad mínima de ceros necesaria para que la salida tenga la misma altura y anchura que la entrada (cuando el stride es 1). En algunos casos, si el stride es mayor a 1, la salida puede mantenerse igual o incluso incrementarse ligeramente.
Ejemplo práctico: una imagen de 28×28 píxeles con un kernel 3×3 y stride 1. Con valid el resultado será 26×26, mientras que con same seguirá siendo 28×28.
2. Función de la capa de pooling después de la convolución
El pooling (agrupamiento) se emplea para reducir la resolución espacial de los mapas de características y para extraer la información más representativa.
- Disminuye el número de parámetros y la carga computacional.
- Introduce invariancia a pequeñas traslaciones y deformaciones.
- Ayuda a prevenir el sobreajuste al resumir la información dominante.
Los dos tipos más comunes son max pooling y average pooling. En la práctica, el max pooling suele ser preferido porque conserva la característica más destacada dentro de cada ventana, mejorando la robustez del modelo.
3. Cálculo de la dimensión de salida con stride y sin padding
Para determinar el tamaño de la salida de una capa convolucional se usa la fórmula:
Salida = floor((Entrada - Tamaño del kernel) / Stride) + 1
Aplicando la fórmula al caso del cuestionario: entrada 5×5, kernel 3×3, stride 2 y sin padding (valid).
Salida = floor((5 - 3) / 2) + 1 = floor(2 / 2) + 1 = 1 + 1 = 2. Por lo tanto, la salida es de 2×2.
4. Rol de la capa totalmente conectada (Fully Connected) al final de una CNN
Después de varias capas de convolución y pooling, los mapas de características se aplanan (flatten) y se alimentan a una o más capas totalmente conectadas. Estas capas:
- Aprenden combinaciones no lineales de características de alto nivel.
- Realizan la clasificación o regresión final, asignando probabilidades a cada clase.
- Actúan como un clasificador tradicional (por ejemplo, una red neuronal densa) sobre la representación extraída por la parte convolucional.
En resumen, la capa FC traduce la información espacial y de textura en decisiones de categoría.
5. Concepto de channel y su relación con los kernels
En una CNN, un channel (canal) representa una dimensión de profundidad de la entrada o de los mapas de características. En una imagen RGB, por ejemplo, hay tres canales: rojo, verde y azul.
Cuando se aplica una convolución, cada filtro (kernel) tiene una profundidad igual al número de canales de la entrada. Por tanto, si la entrada tiene C canales, cada kernel será de tamaño K×K×C. Cada filtro produce un único mapa de características, y el número total de filtros determina cuántos mapas se generan.
Ejemplo: una capa con 32 filtros 3×3 sobre una entrada de 3 canales (RGB) tendrá 32 × (3×3×3) = 864 pesos entrenables, sin contar los sesgos.
6. Max pooling vs average pooling: ¿por qué se prefiere el primero?
El max pooling selecciona el valor máximo dentro de cada ventana, mientras que el average pooling** calcula la media.
- El max pooling tiende a preservar la característica más salientemente activada, lo que ayuda a la red a enfocarse en patrones críticos como bordes o texturas.
- Reduce el ruido al descartar valores menores que no representan la información principal.
- En la práctica, mejora la capacidad de generalización y la robustez frente a pequeñas variaciones en la imagen.
Por estas razones, la mayoría de los arquitecturas modernas (VGG, ResNet, Inception) utilizan max pooling como operación de reducción espacial.
7. Riesgos de añadir demasiadas capas convolucionales sin datos suficientes
Incrementar la profundidad de una CNN sin aumentar el tamaño del conjunto de entrenamiento conlleva varios problemas:
- Sobreajuste (overfitting): la red aprende patrones específicos del conjunto de entrenamiento y pierde capacidad de generalizar.
- Mayor coste computacional y consumo de memoria, lo que puede ralentizar el entrenamiento y requerir hardware más potente.
- Posible desvanecimiento del gradiente en arquitecturas muy profundas, dificultando la convergencia.
Para mitigar estos efectos se pueden aplicar técnicas como regularización (dropout, weight decay), data augmentation o usar arquitecturas con conexiones residuales.
8. Cálculo de pesos entrenables en un kernel 3×3×1 aplicado a una entrada 4×4×3
Cuando la entrada tiene 3 canales y el kernel tiene profundidad 1, el kernel debe operar sobre cada canal por separado. Cada filtro 3×3×1 contiene 9 pesos. Si se desea procesar los 3 canales simultáneamente, se necesitan 3 filtros idénticos (uno por canal), lo que resulta en 9 pesos por canal, totalizando 27 pesos entrenables (sin contar los sesgos).
Conclusión
Este curso ha cubierto los conceptos esenciales de las redes neuronales convolucionales que aparecen en el cuestionario: tipos de padding, función del pooling, cálculo de dimensiones, papel de las capas totalmente conectadas, significado de los canales, elección entre max y average pooling, riesgos de sobre‑entrenamiento y cálculo de parámetros. Dominar estos fundamentos te permitirá diseñar, entrenar y optimizar modelos CNN más eficientes y precisos.
Recuerda que la práctica constante, la experimentación con diferentes arquitecturas y la aplicación de técnicas de regularización son claves para avanzar en el campo de la inteligencia artificial aplicada al procesamiento de imágenes.