👤 Portfolio 🧠 CNN 💬 LLM 🎮 Playground

¿Cómo ve una red neuronal?

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

  1. ¿Qué es una CNN?
  2. Historia y evolución
  3. Componentes de una CNN
  4. ¿Por qué funcionan tan bien?
  5. Aplicaciones reales
  6. Limitaciones y retos
  7. Referencias fundamentales

¿Qué es una CNN?

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.

¿Por qué no bastan las redes densas (MLP)?

  • Explosión de parámetros: una imagen de 224×224 RGB tiene 150.528 valores. Una sola capa densa de 1.000 neuronas requeriría 150 millones de pesos.
  • Sin invarianza espacial: si un gato aparece desplazado unos píxeles, la red lo trata como una entrada completamente distinta.
  • Sin explotación de localidad: los patrones visuales (bordes, texturas) son locales; las capas densas no están diseñadas para aprovechar eso.
  • Sobreajuste: tantos parámetros con pocos datos llevan inevitablemente al sobreajuste.

La solución CNN: tres ideas clave

  • Conexiones locales: cada neurona solo "mira" una pequeña región de la entrada (campo receptivo).
  • Pesos compartidos: el mismo filtro se aplica en toda la imagen, reduciendo drásticamente el número de parámetros.
  • Jerarquía de características: las capas iniciales detectan bordes, las intermedias formas, las finales objetos completos.

Historia y evolución

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.

1989
Backprop en CNNs (LeCun et al.)

Yann LeCun demuestra que la retropropagación puede entrenar redes convolucionales para reconocer dígitos escritos a mano.

1998
LeNet-5

Primera CNN con arquitectura moderna (conv → pool → conv → pool → FC). Desplegada por bancos de EE.UU. para leer cheques.

2006
Deep Belief Networks (Hinton)

El "Deep Learning Renaissance": preentrenamiento no supervisado que permite entrenar redes profundas estables por primera vez.

2009
ImageNet dataset

Fei-Fei Li publica ImageNet: 14 millones de imágenes, 21.000 categorías. Nace el benchmark que cambiaría el campo.

2012
AlexNet (ImageNet LSVRC)

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.

2014
VGGNet & GoogLeNet (Inception)

VGG muestra que la profundidad importa (16-19 capas). Inception introduce los módulos paralelos y reduce el coste computacional.

2015
ResNet (conexiones residuales)

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%).

2016
YOLO (detección en tiempo real)

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.

2019
EfficientNet

Tan & Le proponen escalar redes de forma sistemática (profundidad, anchura, resolución) logrando el mejor ratio precisión/FLOPs del momento.

2020+
Vision Transformers (ViT) & era híbrida

Los Transformers irrumpen en visión. Modelos híbridos CNN+Transformer y arquitecturas como ConvNeXt demuestran que las CNN siguen siendo competitivas.

Componentes de una CNN

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.

⬛

Capa Convolucional

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.

Output = Input ★ Kernel + bias
📈

Función de Activación

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.

ReLU(x) = max(0, x)
🔲

Capa de Pooling

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.

MaxPool(W) = max(W)
⚖️

Batch Normalization

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.

x̂ = (x − μ) / √(σ² + ε)
🎲

Dropout

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).

h' = h · Bernoulli(1−p)
🔗

Capa Totalmente Conectada

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.

y = W · x + b
📊

Softmax

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.

σ(z)ᵢ = eᶻⁱ / Σⱼ eᶻʲ

¿Por qué funcionan tan bien?

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.

01

Invarianza a la traslación

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.

02

Jerarquía de abstracciones

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.

03

Eficiencia paramétrica

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.

04

Transferibilidad

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.

Aplicaciones reales

Las CNN son la tecnología subyacente de una enorme variedad de sistemas de IA que ya forman parte de la vida cotidiana.

🏥

Diagnóstico médico

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.

🚗

Conducción autónoma

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.

🔒

Seguridad y vigilancia

Reconocimiento facial, detección de intrusos, control de acceso biométrico, análisis de comportamiento anómalo en cámaras de seguridad.

📱

Cámara inteligente

Detección de rostros para enfoque, modos retrato, reconocimiento de escenas, realidad aumentada, mejora de imágenes con IA y Super Resolution.

🌾

Agricultura de precisión

Detección de enfermedades en cultivos mediante drones, conteo automático de plantas, estimación de rendimiento y clasificación de fruta por calidad.

🏭

Control de calidad industrial

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.

Limitaciones y retos

A pesar de su éxito, las CNN tienen limitaciones importantes que motivan líneas activas de investigación.

💾

Datos etiquetados

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.

⚡

Coste computacional

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.

🎭

Ejemplos adversariales

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.

🔍

Caja negra

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.

📐

Sesgo en datos

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.

🌀

Relaciones espaciales globales

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.

Contenidos

  1. La arquitectura completa
  2. La convolución en acción
  3. Funciones de Activación
  4. Demo de Pooling
  5. Paradigmas de Visión Artificial
  6. Una imagen, capa a capa

La arquitectura completa

Una CNN es una secuencia de bloques que transforman la imagen en predicciones. Pulsa cada bloque para entenderlo.

🖼️ Input 416×416×3
→
🔲 Conv 416×416×32
→
⚡ ReLU 416×416×32
→
⬇️ MaxPool 208×208×32
→
🔲 Conv 208×208×64
→
⬇️ MaxPool 104×104×64
→
🧠 Backbone 13×13×512
→
🎯 Head 13×13×255

La convolución en acción

Un filtro (kernel) de 3×3 se desliza por la imagen multiplicando y sumando valores. Cada filtro detecta un patrón diferente.

Velocidad:

🖼️ Imagen de entrada

Posición: –
Kernel 3×3
Pulsa Play para
iniciar la animación
↓
Resultado

✨ Feature map (salida)

Tamaño: –

¿Qué está pasando?

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.

Funciones de Activación

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.

ReLU
max(0, x)
La más utilizada. Simple, eficiente y reduce el problema del gradiente desvaneciente. Puede producir "neuronas muertas" (salida siempre 0).
Leaky ReLU
x > 0 ? x : αx
Soluciona las neuronas muertas dejando pasar un pequeño gradiente negativo (α ≈ 0.01) cuando x < 0.
Sigmoid
1 / (1 + e⁻ˣ)
Comprime la salida a (0,1). Usada en clasificación binaria. Sufre del gradiente desvaneciente en redes profundas.
Tanh
(eˣ − e⁻ˣ) / (eˣ + e⁻ˣ)
Salida en (−1, 1), centrada en cero. Mejor que sigmoid para capas ocultas, pero sigue sufriendo gradiente desvaneciente.
GELU
x · Φ(x)
Usada en Transformers y modelos modernos. Más suave que ReLU, pondera la entrada por su probabilidad acumulada gaussiana.
Rango mostrado: x ∈ [−4, 4]

Demo de Pooling

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.

Entrada 4×4
→
Salida 2×2 (ventana 2×2, stride 2)
6
4
3
4
Max Pooling: toma el valor máximo de cada ventana 2×2 (preserva las activaciones más fuertes).

Paradigmas de Visión Artificial

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.

Clasificación

La red asigna una etiqueta global a toda la imagen. Salida: vector de probabilidades sobre C clases. No localiza el objeto.

Arquitecturas: AlexNet, VGG, ResNet, EfficientNet

Detección de objetos

La red localiza y clasifica múltiples objetos. Salida: bounding boxes (x, y, w, h) + clase + confianza para cada instancia detectada.

Arquitecturas: YOLO, Faster R-CNN, SSD, DETR

Segmentación semántica

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.

Arquitecturas: U-Net, DeepLab, FCN, SegFormer

Una imagen, capa a capa

Convoluciones reales aplicadas a una imagen real (sin modelos externos). Haz clic en cualquier mapa de activación para inspeccionarlo.

Imagen: Perro Gato Ciudad Ciudad 2
Imagen de entrada
Kernel activo
Mapa de salida
Sobel H
Detecta bordes horizontales. Responde donde hay un cambio brusco de intensidad de arriba a abajo.

Contenidos

  1. El detector que lo cambió todo
  2. La evolución de YOLO
  3. De features a detecciones: YOLO
  4. Lo que ve la red en cada capa

El detector que lo cambió todo

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.

¿Por qué importa?

🚗
Conducción autónoma
Detecta peatones, vehículos y señales en milisegundos para tomar decisiones en tiempo real.
🏭
Control de calidad
Inspección visual de defectos en cadenas de producción a velocidades imposibles para el ojo humano.
🔒
Seguridad y vigilancia
Detección de intrusiones, aforos en tiempo real, control de acceso biométrico.
⚕️
Medicina
Localización de tumores en imágenes médicas, detección de anomalías en radiografías.
🌾
Agricultura
Detección de plagas, conteo de cultivos y monitoreo de campos desde drones.
⚽
Deporte y análisis
Seguimiento de jugadores y balón, análisis táctico automático en retransmisiones.

La evolución de YOLO

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.

2016
v1 (Redmon et al.)

You Only Look Once

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.

45 FPSGrid 7×720 clases PASCAL
2017
v2 (YOLO9000)

Better, Faster, Stronger

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.

67 FPSAnchor boxes9000 clases
2018
v3 (Darknet-53)

Detección multi-escala

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.

3 escalasDarknet-5380 clases COCO
2020
v4 / v5

Técnicas modernas de entrenamiento

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.

CSP backbonePANetMosaic aug.
2023
v8 (Ultralytics)

State of the art actual

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.

Anchor-freeDetect + Seg + PoseSOTA

De features a detecciones: YOLO

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.

01 (Grid)

División en rejilla S×S

YOLO divide la imagen en una rejilla de 13×13 celdas. Cada celda es responsable de detectar objetos cuyo centro cae en ella.

02 (Anchor Boxes)

Cajas ancla predefinidas

Cada celda predice B=3 cajas ancla de distintos tamaños (alta, ancha, cuadrada). Los anclas son proporciones aprendidas del dataset.

03 (Predicción)

Salida por celda

Para cada ancla se predice: offset (x,y), escala (w,h), confianza de objeto, y probabilidad de cada clase.

txoffset x
tyoffset y
twescala w
thescala h
objconfianza
C₁…C₈₀clases
04 (NMS)

Non-Maximum Suppression

Múltiples celdas pueden detectar el mismo objeto. NMS elimina duplicados conservando solo la caja con mayor confianza por objeto.

El tensor de salida: 13 × 13 × 255

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.

YOLOv1 (2016)
Primera red en hacer detección en un solo paso. 45 FPS. Grid 7×7.
YOLOv3 (2018)
Detección multi-escala en 3 grids (13, 26, 52). Mejor detección de objetos pequeños.
YOLOv8 (2023)
Anchor-free, cabeza desacoplada, state-of-the-art en velocidad/precisión.

Lo que ve la red en cada capa

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.

Entrada
224×224×3
Imagen original normalizada. Tres canales RGB.
→
Conv 1
112×112×64
Bordes orientados, gradientes de color. La red aprende filtros tipo Gabor.
→
Conv 2–3
56×56×128
Texturas, esquinas, cruces de bordes. Combinaciones de los detectores anteriores.
→
Conv 4–5
28×28×256
Partes de objetos: ruedas, ojos, ventanas. La espacialidad se reduce pero la riqueza semántica aumenta.
→
Conv 6+
13×13×512
Activaciones semánticas de alto nivel. Cada neurona responde a conceptos completos como "cara" o "rueda".
→
Salida YOLO
13×13×255
Tensor de predicciones: posición, tamaño, confianza y clase por cada celda y ancla.

Lo que las CNNs no te cuentan

Comportamientos sorprendentes, errores documentados y fenómenos contraintuitivos que revelan cómo piensan —y cómo fallan— las redes neuronales convolucionales.

🐼
+ε =
🦍
01

Ejemplos adversariales

🐱
Humano: gato
CNN: elefante
02

Sesgo de textura

Filtros capa 1
03

Primera capa

🐶
🧁
🧁
🐶
04

¿Chihuahua o magdalena?

🐺
nieve = lobo
🐕
husky → lobo ✗
05

El lobo que veía nieve

🔬
CNN→
📏
⚠️
06

La CNN que diagnosticaba midiendo

☁️
🪖 detectado
☀️
🪖 invisible
07

El tanque que detectaba nubes

🚢
arena → nada ✗
mar → barco ✗
08

El mar que era un barco

🐴©
caballo ✓
🚗©
coche → caballo ✗
09

El caballo de Pascal

🐼
57.7% panda
Imagen original
+ε·
░▒▓▒░
▒░▓░▒
▓▒░▒▓
░░▒▓░
ε = 0.007 · invisible
=
🐼
99.3% gibón
Imagen adversarial
01 · Ejemplos adversariales

Engañando a la red con ruido invisible

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 2015
🐱 +
textura de elefante
👤
Humano
ve la FORMA
✓ gato
🤖
CNN
ve la TEXTURA
✗ elefante
02 · Sesgo de textura

¿Texturas o formas? Tú y la IA no estáis de acuerdo

Cuando 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 2019
Córtex V1 (cerebro)
≈
AlexNet capa 1
03 · Primera capa

La IA inventó los mismos filtros que el ojo humano

Al 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 2014
🐶
🧁
Color
🟡
🟡
Forma
⭕
⭕
Puntos oscuros
● ●
● ●
Fondo
⬜
⬜
Para la CNN: estadísticamente indistinguibles
04 · Confusión de clase

¿Chihuahua o magdalena?

La 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.com
🐺
80% nieve
🐕
20% nieve
Composición del dataset de entrenamiento
🐕❄️
husky + nieve → lobo ✗
🐺🌿
lobo + pradera → perro ✗
05 · Sobreajuste

El lobo que aprendió a ver nieve

Un 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, 2017
🔬📏
Maligno (training)
siempre con regla
🔬
Benigno (training)
sin regla
Red aprende: 📏 = cáncer
🔬📏
Lesión benigna + regla → maligno ✗
06 · Sesgo de dataset

La CNN que diagnosticaba midiendo

Un 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, 2019
🪖
☁️ ☁️ ☁️
100% fotos
🌳
☀️ ☀️ ☀️
100% fotos
Dataset de entrenamiento
Red aprende: ☁️ = tanque · ☀️ = bosque
🪖☀️
tanque + sol → bosque ✗
🌳☁️
bosque + nubes → tanque ✗
07 · El mito fundacional

El tanque que aprendió a detectar nubes

El 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"
🚢🌊
barco en agua → ✓
🚢🏖️
barco en arena → ✗
🌊
mar vacío → "barco" ✗
Para la red: 🌊 + horizonte = barco
08 · Sesgo de contexto

El mar que era un barco

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 line
🐴
© hipica.com
→ caballo ✓
🚗
© hipica.com
→ caballo ✗
Red aprende: © hipica.com = caballo
El mapa de calor señalaba la esquina, no el animal
09 · El efecto Clever Hans

El caballo de Pascal

En 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