Una CNN aprende a detectar patrones visuales de forma jerárquica: bordes → texturas → formas → objetos. Aquí puedes ver exactamente cómo funciona cada operación, paso a paso y con tu propia imagen.
Contenidos
Una Red Neuronal Convolucional (CNN, del inglés Convolutional Neural Network) es un tipo de red neuronal profunda especialmente diseñada para procesar datos con estructura de cuadrícula, como imágenes. A diferencia de las redes densas tradicionales, las CNN explotan la estructura espacial de los datos: aprenden filtros locales que detectan patrones independientemente de su posición en la imagen.
Las CNN han evolucionado desde experimentos teóricos en los años 80 hasta convertirse en la columna vertebral de la visión artificial moderna.
Yann LeCun demuestra que la retropropagación puede entrenar redes convolucionales para reconocer dígitos escritos a mano.
Primera CNN con arquitectura moderna (conv → pool → conv → pool → FC). Desplegada por bancos de EE.UU. para leer cheques.
El "Deep Learning Renaissance": preentrenamiento no supervisado que permite entrenar redes profundas estables por primera vez.
Fei-Fei Li publica ImageNet: 14 millones de imágenes, 21.000 categorías. Nace el benchmark que cambiaría el campo.
Krizhevsky, Sutskever y Hinton ganan ILSVRC con un error top-5 del 15,3% (vs 26,2% del segundo). Las CNN se imponen definitivamente. Introdujo ReLU y dropout.
VGG muestra que la profundidad importa (16-19 capas). Inception introduce los módulos paralelos y reduce el coste computacional.
He et al. presentan las conexiones de salto (skip connections) que permiten entrenar redes de 152 capas. Error top-5 del 3,57%, superando a humanos (5,1%).
Redmon et al. presentan You Only Look Once: detección de objetos a 45 FPS en una sola pasada, unificando localización y clasificación.
Tan & Le proponen escalar redes de forma sistemática (profundidad, anchura, resolución) logrando el mejor ratio precisión/FLOPs del momento.
Los Transformers irrumpen en visión. Modelos híbridos CNN+Transformer y arquitecturas como ConvNeXt demuestran que las CNN siguen siendo competitivas.
Una CNN moderna combina varios tipos de capas especializadas. Cada una cumple un rol distinto en la transformación y abstracción de la información visual.
Aplica filtros aprendibles (kernels) sobre la entrada mediante operaciones de convolución. Detecta patrones locales: bordes, gradientes, texturas. Parámetros clave: tamaño del kernel, número de filtros, stride, padding.
Introduce no linealidad. Sin ella, apilar capas lineales es equivalente a una sola capa lineal. ReLU (max(0,x)) es la más común por su eficiencia; variantes como Leaky ReLU y GELU resuelven el problema de neuronas muertas.
Reduce las dimensiones espaciales preservando la información más relevante. Max Pooling toma el valor máximo en cada ventana (invarianza local). Average Pooling calcula la media. Reduce parámetros y aporta robustez a traslaciones.
Normaliza las activaciones de cada capa por mini-batch: media cero y varianza unitaria. Acelera el entrenamiento, permite learning rates más altos y actúa como regularizador suave. Introducida en 2015 por Ioffe y Szegedy.
Durante el entrenamiento, desactiva aleatoriamente una fracción p de neuronas en cada forward pass. Previene el sobreajuste forzando a la red a aprender representaciones redundantes. En inferencia, todas las neuronas están activas (pesos escalados).
Tras las capas convolucionales, el mapa de características se aplana y se pasa por capas densas que combinan las características globales para la clasificación final. Contienen la mayor parte de los parámetros de la red.
Capa de salida para clasificación multiclase. Convierte el vector de logits en una distribución de probabilidad: valores positivos que suman 1. Usada junto con la pérdida de entropía cruzada durante el entrenamiento.
Las CNN no son mágicas: su efectividad en imágenes se explica por cuatro propiedades fundamentales que explotan la estructura inherente de los datos visuales.
Un detector de bordes entrenado en la esquina superior izquierda funciona igual en cualquier otra posición. El pooling refuerza esta propiedad, haciendo que la red sea robusta a pequeños desplazamientos del objeto en la imagen.
Las primeras capas detectan bordes y gradientes; las intermedias, formas y texturas; las profundas, partes de objetos y semántica. Esta jerarquía imita cómo funciona la corteza visual primaria (V1, V2, V4, IT) en mamíferos.
El reparto de pesos hace que un filtro de 3×3×3 (27 parámetros) genere un mapa de activación completo independientemente del tamaño de la imagen. ResNet-50 tiene 25 millones de parámetros frente a los 138M de VGG-16 con mejor precisión.
Los filtros aprendidos en ImageNet (bordes, texturas, formas) son útiles para casi cualquier tarea visual. El transfer learning permite adaptar una CNN preentrenada a un nuevo dominio con muy pocos datos, reduciendo el coste de entrenamiento en órdenes de magnitud.
Las CNN son la tecnología subyacente de una enorme variedad de sistemas de IA que ya forman parte de la vida cotidiana.
Detección de tumores en radiografías, clasificación de lesiones dérmicas, análisis de retinas. CNN como DenseNet alcanzan precisión de radiólogo en algunas patologías.
Detección de peatones, señales y carriles en tiempo real. Sistemas como Tesla Autopilot procesan múltiples cámaras a alta frecuencia con redes convolucionales optimizadas.
Reconocimiento facial, detección de intrusos, control de acceso biométrico, análisis de comportamiento anómalo en cámaras de seguridad.
Detección de rostros para enfoque, modos retrato, reconocimiento de escenas, realidad aumentada, mejora de imágenes con IA y Super Resolution.
Detección de enfermedades en cultivos mediante drones, conteo automático de plantas, estimación de rendimiento y clasificación de fruta por calidad.
Inspección visual automatizada en líneas de producción: detección de defectos superficiales, verificación de ensamblaje y clasificación de piezas a alta velocidad.
A pesar de su éxito, las CNN tienen limitaciones importantes que motivan líneas activas de investigación.
Requieren grandes volúmenes de datos etiquetados para alcanzar alto rendimiento. El etiquetado manual es costoso y lento. El aprendizaje semisupervisado y self-supervised (SimCLR, DINO) mitigan parcialmente este problema.
Entrenar modelos grandes requiere semanas en clusters de GPUs y consume energía equivalente a vuelos transatlánticos. Técnicas como cuantización, pruning y distilación de conocimiento buscan reducir este coste.
Perturbaciones imperceptibles al ojo humano (pocos píxeles modificados) pueden engañar completamente a una CNN de alta precisión. Un problema crítico en aplicaciones de seguridad.
Es difícil entender exactamente qué aprenden las capas internas. Técnicas de explicabilidad (Grad-CAM, LIME, SHAP) ayudan parcialmente, pero la interpretabilidad sigue siendo un reto abierto.
Una CNN aprende los sesgos presentes en los datos de entrenamiento. Si el dataset no es representativo, el modelo heredará y amplificará esos sesgos, con consecuencias graves en aplicaciones sensibles.
Las CNN capturan patrones locales bien, pero les cuesta modelar relaciones espaciales de largo alcance. Los Vision Transformers (ViT) con atención global complementan esta debilidad.
Los artículos que definieron el campo. Lectura recomendada para entender la evolución de las CNN desde sus bases.
Contenidos
Una CNN es una secuencia de bloques que transforman la imagen en predicciones. Pulsa cada bloque para entenderlo.
Un filtro (kernel) de 3×3 se desliza por la imagen multiplicando y sumando valores. Cada filtro detecta un patrón diferente.
El filtro Sobel X detecta cambios bruscos de intensidad en dirección horizontal (es decir, bordes verticales). Multiplica los píxeles de la izquierda por -1 y los de la derecha por +1. Donde hay borde, la diferencia es grande; donde hay zona uniforme, casi cero.
Las funciones de activación introducen no linealidad en la red. Sin ellas, apilar capas sería equivalente a una sola transformación lineal. Haz clic en cada función para ver su curva y fórmula.
El pooling reduce las dimensiones espaciales conservando la información esencial. Edita los valores del mapa de entrada y observa cómo cambia la salida 2×2 según el tipo de pooling.
Las CNN se adaptan a distintas tareas de visión. Los tres paradigmas principales difieren en qué respuesta produce la red para una misma imagen de entrada.
La red asigna una etiqueta global a toda la imagen. Salida: vector de probabilidades sobre C clases. No localiza el objeto.
La red localiza y clasifica múltiples objetos. Salida: bounding boxes (x, y, w, h) + clase + confianza para cada instancia detectada.
La red asigna una clase a cada píxel individual. Produce un mapa de segmentación del mismo tamaño que la imagen de entrada.
Convoluciones reales aplicadas a una imagen real (sin modelos externos). Haz clic en cualquier mapa de activación para inspeccionarlo.
Contenidos
YOLO fue mi primer contacto serio con la IA aplicada. No como un ejercicio académico, sino entrenando modelos reales, mirando las métricas evolucionar en directo y viendo cómo una red era capaz de detectar objetos en tiempo real. Aquí intento explicar por qué es tan revolucionario y cómo funciona por dentro.
De 45 FPS en 2016 a ser el estándar de detección en tiempo real. Un campo que ha avanzado más rápido que cualquier otra arquitectura de visión.
El paper original que lo cambia todo. Una única red procesa la imagen completa y predice cajas y clases en un solo paso. 45 FPS en GPU, algo impensable hasta entonces.
Incorpora anchor boxes aprendidos del dataset, batch normalization y entrenamiento multi-escala. Capaz de detectar más de 9.000 clases combinando COCO e ImageNet.
Nuevo backbone Darknet-53 con conexiones residuales. Predice en 3 escalas distintas (13×13, 26×26, 52×52) para detectar objetos de cualquier tamaño. El que más usé en producción.
CSP connections, PANet feature pyramid, Mosaic augmentation. El foco se desplaza del diseño de arquitectura hacia los trucos de entrenamiento que explotan mejor los datos.
Anchor-free, cabeza desacoplada, una sola librería unificada para detección, segmentación, clasificación y pose estimation. El estándar de la industria hoy.
YOLO añade una cabeza de detección sobre el backbone CNN para predecir cajas y clases en una sola pasada por la imagen. Selecciona cada paso para visualizarlo.
YOLO divide la imagen en una rejilla de 13×13 celdas. Cada celda es responsable de detectar objetos cuyo centro cae en ella.
Cada celda predice B=3 cajas ancla de distintos tamaños (alta, ancha, cuadrada). Los anclas son proporciones aprendidas del dataset.
Para cada ancla se predice: offset (x,y), escala (w,h), confianza de objeto, y probabilidad de cada clase.
Múltiples celdas pueden detectar el mismo objeto. NMS elimina duplicados conservando solo la caja con mayor confianza por objeto.
El 255 viene de: 3 anclas × (5 + 80 clases) = 3 × 85 = 255.
Para cada celda de la rejilla y cada ancla, se predicen 4 coordenadas de caja + 1 confianza + 80 probabilidades de clase (COCO dataset).
En total: 13 × 13 × 3 = 507 cajas candidatas, de las cuales NMS filtra las definitivas.
A medida que la imagen avanza por las capas de la CNN, la representación se vuelve más abstracta y semántica. Las primeras capas detectan bordes; las últimas, conceptos.
Comportamientos sorprendentes, errores documentados y fenómenos contraintuitivos que revelan cómo piensan —y cómo fallan— las redes neuronales convolucionales.
En 2015, Ian Goodfellow demostró que añadir un patrón de ruido matemáticamente calculado —indetectable para el ojo humano— puede cambiar la predicción de una CNN de «panda» (57,7%) a «gibón» (99,3%). La imagen resultante es píxel a píxel idéntica para cualquier persona.
Esto funciona porque las CNNs no entienden «gato» o «panda»: aprenden a clasificar optimizando una función matemática sobre píxeles. El ruido adversarial se construye aplicando el gradiente de esa función en dirección contraria —en lugar de reducir el error, lo amplifica hacia otra clase—, ajustando cada píxel con precisión para activar exactamente las neuronas que la red asocia con «gibón».
En términos simples: la red ve números, no imágenes. Igual que puedes confundir a una calculadora con decimales específicos, el ruido adversarial «suma» exactamente los valores de píxel que necesita para cambiar de opinión, sin que el ojo humano note la diferencia. Este hallazgo impulsó el campo de la robustez adversarial y hoy es un requisito de seguridad en sistemas de visión críticos como el reconocimiento facial o los vehículos autónomos.
📄 Goodfellow et al., ICLR 2015Cuando los investigadores crearon versiones «estilizadas» de imágenes de ImageNet intercambiando sus texturas, las CNNs mantenían la precisión pero perdían la capacidad de guiarse por la forma. En redes estándar, la textura influye en aproximadamente el 80% de las decisiones de clasificación.
El experimento con el gato relleno de textura de elefante lo demuestra: los humanos ven un gato (la forma domina), la CNN ve un elefante (la textura domina). ¿Por qué aprende textura en lugar de forma? Porque durante el entrenamiento la textura era suficiente para acertar: cada imagen de elefante tenía piel arrugada, cada imagen de gato tenía pelaje suave. La red aprendió el atajo más fácil, no la solución más robusta.
En términos prácticos: si fotografías un objeto con luz diferente, un fondo distinto o una cámara nueva, la distribución de texturas cambia y el modelo puede fallar aunque el objeto sea idéntico. Es la razón por la que los modelos entrenados en laboratorio a menudo se degradan al desplegarse en el mundo real.
📄 Geirhos et al., ICLR 2019Al visualizar qué había aprendido la primera capa de AlexNet (2012) tras entrenar con 1,2 millones de imágenes, los investigadores encontraron algo inesperado: la red había desarrollado filtros orientados a bordes en múltiples ángulos y frecuencias, matemáticamente idénticos a los campos receptivos de las células simples del córtex visual V1, documentados en neurociencia desde los años 60.
Nadie programó estos filtros: emergieron solos del descenso por gradiente. ¿Por qué ocurre esto? Las imágenes naturales tienen una estructura estadística concreta: los bordes orientados son las unidades más frecuentes e informativas. El descenso por gradiente, buscando la representación más eficiente, converge en los mismos detectores de bordes que la evolución biológica desarrolló en millones de años. No es coincidencia: es la solución matemáticamente óptima para comprimir información visual.
En términos simples: es como si dos personas, sin comunicarse, inventaran el mismo abecedario porque es la forma más eficiente de representar los sonidos. La evolución y el gradiente llegaron a la misma respuesta por caminos completamente distintos. Esto también implica que los primeros niveles de una CNN son reutilizables entre tareas —de ahí el poder del transfer learning.
📄 Zeiler & Fergus, ECCV 2014La imagen viral de 2016 reveló una vulnerabilidad real: chihuahuas y magdalenas comparten color beige/marrón, formas redondeadas, pequeños puntos oscuros (ojos vs. chips de chocolate) y fondos blancos. Sin contexto adicional, las CNNs no superan fácilmente el ~60% de precisión en esta tarea.
Técnicamente, el problema es que en el espacio de representaciones aprendido por la red, los vectores de «chihuahua» y «magdalena» son similares: mismo color promedio, misma distribución de formas, mismo tipo de fondo. La red no tiene acceso a información contextual como «¿tiene cuello?» o «¿está en una cocina?», que sí usaría un humano de forma automática.
Es un recordatorio directo de que la precisión de un modelo depende de la calidad y diversidad del dataset, no solo de la arquitectura. Un modelo puede «acertar» por las razones equivocadas si las clases no están bien separadas en el espacio de características. La solución pasa por aumentación de datos, variación de fondos y, sobre todo, definir bien qué hace que una clase sea distinta de otra.
🎨 Karen Zack, karenzack.comUn modelo con alta precisión en el test set cometía un error sistemático: cualquier animal en fondo nevado era clasificado como lobo. Al aplicar LIME para visualizar qué regiones de la imagen influían en la decisión, la red señalaba el fondo nevado, no el animal.
Las fotos de lobos provenían de fotografía de fauna salvaje (entornos nevados); las de huskies eran domésticas. La red aprendió esa correlación porque era la más fácil de explotar para maximizar la precisión en el dataset, no porque fuera la señal correcta. Esto se llama correlación espuria: una variable que predice bien en los datos de entrenamiento pero no en el mundo real.
Lo más peligroso: el modelo podía tener un 95% de precisión en el test set y ser completamente inútil en producción. Alta precisión no es sinónimo de haber aprendido bien. La lección del campo es clara: siempre hay que auditar por qué una red acierta, no solo cuántas veces acierta. Herramientas de IA explicable (XAI) como LIME o SHAP existen precisamente para detectar este tipo de fallos antes de desplegar un modelo.
📄 UC Irvine, 2017Un modelo entrenado con el dataset ISIC de lesiones cutáneas asoció la presencia de una regla milimétrica —usada en fotografía clínica para medir lesiones— con malignidad. Las fotos de lesiones malignas eran tomadas en contextos profesionales (con regla), mientras que las benignas raramente incluían este elemento.
Técnicamente, el modelo aprendió una variable proxy: la regla aparecía de forma sistemática en imágenes malignas porque los dermatólogos siguen protocolos clínicos distintos según su sospecha inicial (las lesiones preocupantes se documentan con mayor rigor). El modelo no podía separar la lesión de su contexto fotográfico, así que usó el elemento más consistente: la regla.
El error puede ir en ambas direcciones: una lesión benigna fotografiada con regla podía clasificarse como maligna (falso positivo), y un melanoma real fotografiado sin regla podía pasar desapercibido (falso negativo). Este caso impulsó el desarrollo de guías de calidad de datos para IA médica en la FDA y en la UE, y es hoy referencia en cualquier curso de ética en inteligencia artificial.
📄 Physics World, 2019El cuento de advertencia más antiguo de la IA: el Pentágono entrenó una red neuronal para detectar tanques enemigos camuflados en el bosque. El sistema logró un 100% de aciertos en laboratorio. Al probarlo en campo real, falló por completo. El motivo: todas las fotos de tanques se habían tomado en días nublados; todas las del bosque vacío, en días soleados. La IA se convirtió en un detector de nubes.
Técnicamente es el mismo problema de siempre: correlación espuria en el dataset. La variable que mejor predecía la clase en los datos de entrenamiento no era el tanque, sino las condiciones de luz. La red no tenía forma de saberlo —optimizó lo que se le pidió— pero nadie auditó qué había aprendido realmente.
La historicidad del caso es debatida: no existe un paper original que lo documente y podría ser una leyenda urbana de los años 80. Pero eso no lo hace menos útil: si nunca ocurrió, es porque todavía no ha ocurrido con ese nombre. El problema que ilustra es completamente real, como demuestran los casos del lobo, la regla y el caballo de Pascal.
📄 Gwern, "The Neural Net Tank Urban Legend"Un modelo entrenado para clasificar tipos de embarcaciones funcionaba con gran precisión, salvo en dos casos extremos: si le mostrabas un barco encallado en la arena o en un astillero seco, no veía ningún barco; si le mostrabas el mar vacío con una línea de horizonte perfecta, clasificaba la imagen como "barco".
La causa es el sesgo de textura llevado al extremo: el agua azul y la línea recta del horizonte eran estadísticamente más consistentes en todas las fotos de entrenamiento que la propia geometría del casco de un barco. La red aprendió que el contexto del objeto era más discriminativo que el objeto en sí. Para la IA, el mar era el barco.
Esto ilustra un principio general: los modelos aprenden lo que más varía sistemáticamente entre clases, no necesariamente lo que tiene sentido conceptual. Si los barcos siempre aparecen en agua y los coches nunca, la red aprende "agua = barco" sin necesitar entender qué es un barco.
📄 ResearchGate — boats below the horizon lineEn 2019, investigadores que evaluaban un clasificador de animales descubrieron que el mapa de calor del modelo para un caballo concreto apuntaba sistemáticamente a la esquina inferior izquierda de la imagen, no al animal. Lo llamaron el "caballo de Pascal". La razón: una parte significativa de las fotos de caballos del dataset PASCAL VOC procedía de un sitio web de hípica que incluía una pequeña marca de agua de derechos de autor en esa esquina.
La red aprendió que marca de agua de hípica = caballo. Al añadir esa misma marca de agua a una foto de un coche, el modelo lo clasificaba como caballo. La imagen del coche no había cambiado en nada relevante para un humano, pero para la red el elemento decisivo estaba en la esquina.
Este efecto se llama "Clever Hans", en referencia a un caballo alemán de principios del siglo XX que aparentaba resolver operaciones aritméticas pero en realidad leía el lenguaje corporal de su entrenador. El paralelismo es exacto: el modelo da la respuesta correcta, pero por una razón completamente distinta a la esperada. Sin herramientas de IA explicable (XAI), este fallo es invisible.
📄 Lapuschkin et al., Nature Communications 2019