16. Introducción a las redes convolucionales (CNN)

16.1 Introducción

Con este tema comienza una nueva etapa del curso. Hasta ahora trabajamos principalmente con visión por computadora clásica: imágenes como matrices, espacios de color, filtros, bordes, histogramas y transformaciones geométricas. Todo eso sigue siendo importante, pero ahora damos un paso más hacia el aprendizaje profundo.

Las redes convolucionales, conocidas como CNN por Convolutional Neural Networks, son una de las ideas más influyentes en la historia moderna de la visión por computadora. Su aparición permitió que las máquinas dejaran de depender tanto de características diseñadas manualmente y empezaran a aprender representaciones visuales directamente desde los datos.

En este tema veremos por qué surgieron, cuál es su intuición principal, cómo procesan imágenes y por qué resultaron mucho más adecuadas que las redes totalmente conectadas para tareas visuales.

16.2 ¿Por qué no alcanza una red densa tradicional?

Una red neuronal totalmente conectada puede, en teoría, recibir los píxeles de una imagen como entrada. Sin embargo, este enfoque presenta problemas importantes cuando trabajamos con imágenes reales:

  • La cantidad de parámetros crece demasiado rápido.
  • Se pierde la estructura espacial natural de la imagen.
  • El modelo no aprovecha la relación local entre píxeles cercanos.
  • El entrenamiento se vuelve costoso e ineficiente.

Por ejemplo, una imagen pequeña de 224 x 224 x 3 ya contiene más de 150 mil valores. Conectar cada uno de ellos densamente con una capa grande produce una cantidad enorme de pesos.

El gran problema de las redes densas en imágenes no es solo el tamaño. También es que tratan los píxeles como una lista plana y desaprovechan la organización espacial del contenido visual.

16.3 La idea central de una CNN

La idea principal de una CNN es muy elegante: en lugar de conectar cada píxel con cada neurona, se aplican pequeños filtros locales que recorren la imagen buscando patrones. De este modo, el modelo aprende a detectar características visuales de forma jerárquica.

Esos patrones pueden ser:

  • Bordes simples.
  • Texturas.
  • Esquinas.
  • Partes de objetos.
  • Estructuras más abstractas.

Esto permite explotar la estructura bidimensional de la imagen y reutilizar los mismos filtros en distintas posiciones.

16.4 ¿Qué significa “convolucional”?

El término “convolucional” proviene de la operación de convolución. En este contexto, una convolución consiste en aplicar un pequeño filtro o kernel que se desplaza sobre la imagen y calcula respuestas locales.

La idea se parece mucho a los filtros clásicos que ya vimos en procesamiento de imágenes. La diferencia es que, en una CNN, esos filtros no son diseñados a mano por el programador, sino aprendidos automáticamente durante el entrenamiento.

Este punto es decisivo: la red aprende qué patrones visuales son útiles para resolver la tarea.

16.5 Intuición visual del aprendizaje jerárquico

Una CNN aprende de forma jerárquica. Las primeras capas suelen detectar patrones simples. Las capas intermedias combinan esos patrones en estructuras más complejas. Las capas profundas construyen representaciones cada vez más abstractas.

En una tarea de clasificación de imágenes, por ejemplo:

  • Las primeras capas pueden detectar líneas y bordes.
  • Las siguientes pueden detectar texturas o formas básicas.
  • Más adelante pueden aparecer partes de objetos, como ojos, ruedas o contornos.
  • Las capas finales integran toda esa información para decidir la clase.

Esta construcción progresiva es una de las razones por las que las CNN funcionan tan bien en visión.

16.6 Entrada de una CNN

La entrada de una CNN suele ser una imagen representada como un tensor. Si la imagen es en color, esto incluye ancho, alto y canales.

Por ejemplo, una imagen RGB de 224 x 224 puede representarse como:

224 x 224 x 3

o, según el framework, como un tensor reordenado en otra convención de dimensiones. Lo importante es recordar que la imagen entra manteniendo su estructura espacial, no como un vector completamente plano desde el principio.

16.7 Filtros y mapas de características

Cuando una capa convolucional aplica un filtro sobre la imagen, produce una nueva salida llamada mapa de características o feature map. Este mapa indica en qué regiones de la entrada el patrón aprendido aparece con mayor intensidad.

Si un filtro detecta bordes verticales, por ejemplo, su mapa de características será fuerte en las regiones donde ese tipo de borde esté presente.

Una misma capa suele tener muchos filtros. Por eso produce múltiples mapas, cada uno especializado en un patrón distinto.

16.8 Reutilización espacial de filtros

Una propiedad clave de las CNN es que los mismos pesos del filtro se reutilizan en toda la imagen. Esto se llama compartición de pesos.

Gracias a esto:

  • La cantidad de parámetros es mucho menor que en una red densa.
  • El modelo puede detectar un patrón sin importar exactamente dónde aparezca.
  • Se aprovecha la naturaleza repetitiva de estructuras visuales locales.

Esta es una de las razones técnicas más importantes del éxito de las CNN.

16.9 Localidad receptiva

Otra idea central es la localidad. Cada neurona de una capa convolucional no mira toda la imagen, sino solo una pequeña región local de la entrada. Esa región se conoce como campo receptivo local.

Esto tiene mucho sentido en imágenes, porque los patrones visuales relevantes suelen aparecer primero a pequeña escala: bordes, esquinas, texturas y transiciones locales.

16.10 Capas típicas de una CNN

Aunque existen muchas arquitecturas, una CNN clásica suele combinar varios tipos de capas:

  • Capas convolucionales.
  • Funciones de activación.
  • Capas de pooling.
  • Capas totalmente conectadas al final.

En este tema nos enfocamos en la intuición general. Más adelante veremos con detalle cada componente.

16.11 Papel de la activación

Después de una convolución, suele aplicarse una función de activación no lineal, como ReLU. Esto permite que la red aprenda relaciones complejas y no quede limitada a transformaciones puramente lineales.

La secuencia típica es:

  • Convolución.
  • Activación.
  • Tal vez pooling.

Este patrón se repite muchas veces a lo largo de la red.

16.12 Pooling como compresión controlada

Las capas de pooling reducen la dimensión espacial de los mapas de características. Esto ayuda a:

  • Disminuir costo computacional.
  • Resumir información local.
  • Ganar cierta robustez frente a pequeñas traslaciones.

Aunque estudiaremos pooling en el tema 18, conviene mencionarlo aquí porque forma parte del flujo clásico de una CNN.

16.13 De mapas de características a decisión final

A medida que la red avanza, los mapas de características se vuelven más abstractos y menos parecidos a la imagen original. Finalmente, la información extraída se combina para producir una salida, como una clase o una probabilidad.

Por ejemplo:

  • “Esta imagen es un perro”.
  • “Esta radiografía es anormal”.
  • “Esta imagen contiene un automóvil”.

La red no memoriza píxeles individuales. Aprende representaciones internas que le permiten generalizar.

16.14 Ventajas de las CNN frente a redes densas

Las redes convolucionales ofrecen ventajas muy importantes para visión por computadora:

  • Menor cantidad de parámetros.
  • Mejor aprovechamiento de la estructura espacial.
  • Capacidad de detectar patrones locales útiles.
  • Mayor escalabilidad a imágenes reales.
  • Excelente rendimiento en tareas visuales complejas.

Estas ventajas explican por qué se volvieron la base de gran parte de la visión profunda moderna.

16.15 Relación con el procesamiento clásico

Es interesante notar que las CNN no surgen de la nada. Conceptualmente, retoman ideas que ya vimos en visión clásica:

  • Uso de filtros locales.
  • Convolución sobre la imagen.
  • Importancia de bordes y texturas.
  • Representaciones progresivamente más ricas.

La gran diferencia es que los filtros ya no son definidos manualmente, sino aprendidos automáticamente desde datos.

Una CNN puede entenderse como una generalización aprendida de muchas ideas del procesamiento de imágenes clásico.

16.16 ¿Qué aprende una CNN realmente?

Una CNN aprende parámetros de filtros y pesos internos que minimizan el error de la tarea para la que fue entrenada. En otras palabras, aprende qué patrones visuales son útiles para clasificar, detectar o segmentar correctamente.

En las primeras capas, esos patrones suelen ser relativamente interpretables. En capas profundas, las representaciones son mucho más abstractas y difíciles de visualizar directamente.

16.17 ¿Por qué necesitan muchos datos?

Aunque las CNN son más eficientes que redes densas para imágenes, siguen teniendo una gran capacidad de modelado. Eso significa que pueden aprender relaciones complejas, pero también que necesitan suficientes ejemplos para generalizar bien.

Por eso suelen beneficiarse de:

  • Datasets grandes.
  • Data augmentation.
  • Regularización.
  • Modelos preentrenados.

Más adelante veremos que en muchos problemas reales no se entrena una CNN grande desde cero, sino que se parte de modelos ya entrenados.

16.18 Aplicaciones de las CNN

Las CNN no se usan solo para clasificación de imágenes. También son la base de muchas tareas visuales modernas:

  • Clasificación.
  • Detección de objetos.
  • Segmentación.
  • Reconocimiento facial.
  • Estimación de pose.
  • Super-resolución.
  • Análisis médico por imágenes.

Esto demuestra que su importancia excede ampliamente el problema de “decir qué hay en una foto”.

16.19 Limitaciones y desafíos

A pesar de su potencia, las CNN también presentan desafíos:

  • Requieren bastante computación para entrenarse.
  • Pueden sobreajustarse si hay pocos datos.
  • No siempre son fáciles de interpretar.
  • Pueden ser sensibles a sesgos presentes en el dataset.
  • Su diseño y ajuste de hiperparámetros no siempre es trivial.

Por eso su uso efectivo no depende solo de la arquitectura, sino también de buenos datos, evaluación rigurosa y entrenamiento adecuado.

16.20 Intuición paso a paso en un ejemplo simple

Supongamos que queremos clasificar imágenes de gatos y perros:

  1. La imagen entra como una matriz de píxeles.
  2. La primera capa convolucional detecta patrones básicos.
  3. Capas posteriores combinan esos patrones en estructuras más complejas.
  4. La red resume toda esa información.
  5. La capa final produce una probabilidad para cada clase.

Al entrenarse con muchos ejemplos, la red aprende qué combinaciones internas distinguen mejor a un gato de un perro.

16.21 Una CNN no “entiende” como un humano

Es importante evitar una idea equivocada: aunque las CNN logren resultados impresionantes, eso no significa que comprendan la escena del mismo modo que una persona. Su funcionamiento se basa en patrones estadísticos aprendidos a partir de ejemplos.

Aun así, para tareas visuales bien definidas pueden alcanzar rendimientos extraordinariamente altos y muy útiles en la práctica.

16.22 Relación con PyTorch

En la segunda mitad del curso utilizaremos PyTorch para construir y entrenar CNN. Esa biblioteca nos permitirá definir capas convolucionales, funciones de activación, optimizadores y todo el flujo de entrenamiento.

Por ahora lo importante es comprender la lógica conceptual. Luego llevaremos esas ideas al código.

16.23 De aquí en adelante

Este tema funciona como puerta de entrada. A partir de ahora profundizaremos en los componentes que hacen funcionar a una CNN:

  • Capas convolucionales.
  • Pooling.
  • Arquitecturas clásicas.
  • Datasets de imágenes.
  • Construcción y entrenamiento en PyTorch.

Es decir, empezamos la transición desde la intuición general hacia la implementación práctica.

16.24 Qué debes recordar de este tema

  • Las CNN surgieron para procesar imágenes de forma más eficiente que las redes densas tradicionales.
  • Aprovechan la estructura espacial de la imagen mediante filtros locales.
  • Las convoluciones producen mapas de características que detectan patrones visuales.
  • Los filtros se aprenden automáticamente durante el entrenamiento.
  • La compartición de pesos reduce parámetros y mejora escalabilidad.
  • Las CNN aprenden representaciones jerárquicas: de bordes simples a conceptos más abstractos.
  • Son la base de gran parte de la visión por computadora moderna.

16.25 Conclusión

Las redes convolucionales representan el puente entre el procesamiento clásico de imágenes y la visión por computadora basada en aprendizaje profundo. Su gran aporte fue demostrar que una máquina puede aprender automáticamente filtros visuales útiles a partir de datos, en lugar de depender por completo de características diseñadas manualmente.

Comprender la intuición detrás de una CNN es más importante que memorizar detalles aislados. Si entendemos por qué aprovechan la estructura espacial, por qué usan filtros y cómo construyen representaciones jerárquicas, estaremos listos para estudiar su funcionamiento con mayor profundidad.

En el próximo tema veremos las capas convolucionales en profundidad, donde analizaremos más de cerca cómo opera una convolución y qué parámetros controlan su comportamiento.