Generado con IA · Supuesto práctico

Red neuronal para clasificación de imágenes: del perceptrón multicapa a la CNN

Caso único con preguntas Informática Comunidad Valenciana
Descargar:
Supuesto práctico generado por la IA de OposicionesIA, con su orientación y solución modelo más abajo. Dentro de la plataforma, además, puedes resolverlo y recibir una corrección con rúbrica y nota.

Red neuronal para clasificación de imágenes: del perceptrón multicapa a la CNN

Contexto

En el módulo Sistemas de Aprendizaje Automático de un curso de especialización en IA y Big Data de la Comunitat Valenciana, el alumnado debe construir un clasificador de imágenes que distinga el estado de equipos de un taller (por ejemplo: «correcto», «cable suelto», «componente dañado») a partir de fotografías de 64×64 píxeles en color, con un dataset propio de 6.000 imágenes etiquetadas.

Trabajan con Python 3.12, TensorFlow/Keras 2.16 en Colab con acceso a GPU. Un primer equipo plantea aplanar cada imagen (64×64×3 = 12.288 entradas) y alimentar un perceptrón multicapa (MLP) totalmente conectado; un segundo equipo propone una red neuronal convolucional (CNN). Tras entrenar 50 épocas, el MLP estanca su exactitud de validación en torno al 61 % mientras la CNN supera el 89 %.

Cuestiones

1. Estructura de la neurona y la red. Describe el funcionamiento de una neurona artificial (suma ponderada, sesgo y función de activación) y la arquitectura de un MLP. Justifica el papel de las funciones de activación ReLU en las capas ocultas y softmax en la capa de salida para este problema de clasificación multiclase, indicando cuántas neuronas debe tener la capa de salida.

2. Entrenamiento. Explica el proceso de propagación hacia adelante y de retropropagación (backpropagation) con descenso de gradiente. Define y relaciona los conceptos de época, lote (batch) y tasa de aprendizaje, y razona qué problemas provoca una tasa de aprendizaje demasiado alta o demasiado baja.

3. Por qué la CNN supera al MLP. Justifica técnicamente por qué la CNN obtiene mejores resultados que el MLP en imágenes: explica las capas convolucionales (filtros, campos receptivos locales, compartición de pesos) y las capas de pooling, y por qué reducen drásticamente el número de parámetros frente a una red densa equivalente.

4. Control del sobreajuste en redes profundas. El equipo de la CNN observa que la pérdida de entrenamiento sigue bajando mientras la de validación empieza a subir. Propón al menos tres técnicas de regularización propias de redes neuronales (dropout, parada temprana o early stopping, aumento de datos o data augmentation) y explica cómo cada una mitiga el sobreajuste.

5. Comparación con métodos clásicos. Compara las redes neuronales profundas con los métodos clásicos de ML (árboles, SVM, k-NN) trabajados en el módulo en términos de idoneidad, necesidad de datos, interpretabilidad y coste computacional/energético. Indica en qué situaciones de un centro educativo sería más razonable elegir un método clásico que una red profunda.

Orientación cómo resolverlo por tu cuenta

Este supuesto es conceptual-técnico de deep learning: no exige programar un modelo entero, sino demostrar dominio teórico aplicado al dataset concreto (imágenes 64×64×3, 6.000 muestras, 3 clases, Keras 2.16). Marco curricular: módulo Sistemas de Aprendizaje Automático del Curso de Especialización en IA y Big Data (RD 279/2021).

Cuestión 1. Recuerda el modelo de neurona: combinación lineal z = \sum_i w_i x_i + b seguida de activación no lineal. Encadena neuronas en capas (entrada → ocultas → salida) para definir el MLP. Justifica ReLU por evitar el desvanecimiento del gradiente y su coste barato; softmax por convertir logits en distribución de probabilidad que suma 1. El número de neuronas de salida lo fija el enunciado: cuenta las clases. Error típico: poner sigmoide en multiclase o confundir nº de salidas con nº de capas.

Cuestión 2. Ordena: forward (cálculo de la predicción y de la pérdida, p. ej. categorical cross-entropy) → backward (regla de la cadena, gradientes) → actualización de pesos. Define época (pasada completa al dataset), batch (subconjunto por paso) y learning rate (tamaño del paso). Razona LR alto = divergencia/oscilación; LR bajo = convergencia lenta y mínimos locales. No confundas época con iteración.

Cuestión 3. Aquí está el núcleo: explica convolución (filtros, campos receptivos locales, compartición de pesos), invariancia translacional y pooling. La clave del «por qué gana» es el conteo de parámetros: estima los del MLP (12.288 entradas × neuronas) frente a los pocos de un filtro compartido. Demuéstralo con números aproximados.

Cuestión 4. Relaciona cada síntoma (val_loss sube, train_loss baja) con la regularización: dropout, early stopping y data augmentation. Explica el mecanismo de cada una, no solo nómbralas.

Cuestión 5. Compara redes profundas vs. clásicos (árboles, SVM, k-NN) en idoneidad, datos, interpretabilidad y coste/energía. Cierra con criterio docente: cuándo en un centro conviene un método clásico (pocos datos, interpretabilidad, sin GPU).

Solución modelo respuesta completa — intenta resolverlo antes de mirar

Cuestión 1. Estructura de la neurona y de la red

Neurona artificial. Es la unidad de cómputo básica inspirada en la neurona biológica. Recibe un vector de entradas x = (x_1, \ldots, x_n), cada una con un peso asociado w_i, calcula una suma ponderada y le añade un término independiente llamado sesgo (bias) b:

z = w_1 x_1 + w_2 x_2 + \cdots + w_n x_n + b = \sum_i w_i x_i + b = w^\mathsf{T} x + b

A continuación aplica una función de activación no lineal \varphi que produce la salida de la neurona:

a = \varphi(z)
  • Los pesos w_i modulan la importancia de cada entrada (se aprenden durante el entrenamiento).
  • El sesgo b desplaza la función de activación, permitiendo activarse aunque todas las entradas sean nulas; aporta un grado de libertad equivalente a la ordenada en el origen.
  • La función de activación introduce la no linealidad, imprescindible: sin ella, apilar capas equivaldría a una única transformación lineal (composición de lineales es lineal) y la red no podría modelar fronteras de decisión complejas.

Arquitectura del MLP (perceptrón multicapa). Es una red feedforward totalmente conectada organizada en capas:

  1. Capa de entrada: un nodo por característica. Aquí, al aplanar la imagen 64×64×3 → 12.288 entradas.
  2. Capas ocultas: una o varias capas densas (cada neurona conectada a todas las de la capa anterior) con activación ReLU. Son las que aportan capacidad de representación jerárquica.
  3. Capa de salida: produce la predicción. En clasificación multiclase tiene tantas neuronas como clases, con activación softmax.

La información fluye en una sola dirección (entrada → salida) sin ciclos; es un aproximador universal de funciones dada suficiente anchura/profundidad.

Papel de ReLU en las capas ocultas. ReLU (Rectified Linear Unit) se define como:

\mathrm{ReLU}(z) = \max(0, z)

Se prefiere porque:

  • Mitiga el desvanecimiento del gradiente: su derivada es 1 para z>0 (constante), frente a sigmoide/tanh cuyo gradiente se satura cerca de 0 y frena el aprendizaje en redes profundas.
  • Coste computacional mínimo: un simple umbral, sin exponenciales.
  • Induce esparsidad: anula las activaciones negativas, lo que mejora la eficiencia y la separabilidad de representaciones.

Papel de softmax en la capa de salida. Para un problema multiclase de etiqueta única (cada imagen es exactamente «correcto», «cable suelto» o «componente dañado»), softmax convierte los logits z = (z_1, \ldots, z_K) en una distribución de probabilidad:

\mathrm{softmax}(z)_i = \frac{e^{z_i}}{\sum_j e^{z_j}}

Garantiza que cada salida \in (0,1) y que todas suman 1, de modo que se interpretan como probabilidades a posteriori de cada clase. Se combina con la pérdida entropía cruzada categórica (categorical cross-entropy) y se predice la clase de mayor probabilidad (argmax).

Número de neuronas de la capa de salida. El enunciado define 3 estados («correcto», «cable suelto», «componente dañado») → la capa de salida debe tener exactamente 3 neuronas (una por clase), con activación softmax. (No se usa sigmoide+1 neurona, propia de clasificación binaria, ni más neuronas de las clases existentes.)


Cuestión 2. Entrenamiento

Propagación hacia adelante (forward pass). Se introduce un lote de imágenes y la señal atraviesa la red capa a capa: cada capa calcula z = W^\mathsf{T} x + b y a = \varphi(z), pasando su salida a la siguiente. La capa softmax final produce la distribución de probabilidad \hat{y}. Se compara con la etiqueta real y mediante la función de pérdida (entropía cruzada categórica):

L = -\sum_i y_i \cdot \log(\hat{y}_i)

que cuantifica el error de la predicción.

Retropropagación (backpropagation). Es el algoritmo eficiente para calcular el gradiente de la pérdida respecto a cada peso y sesgo aplicando la regla de la cadena del cálculo diferencial. El error se propaga desde la salida hacia atrás capa por capa, obteniendo \partial L/\partial w_{ij} y \partial L/\partial b_i reutilizando las derivadas ya calculadas en las capas posteriores (evita recalcular).

Descenso de gradiente. Conocidos los gradientes, los parámetros se actualizan en la dirección que reduce la pérdida (sentido opuesto al gradiente):

w \leftarrow w - \eta \cdot \frac{\partial L}{\partial w} \qquad b \leftarrow b - \eta \cdot \frac{\partial L}{\partial b}

donde \eta es la tasa de aprendizaje. En la práctica se usa descenso de gradiente estocástico por mini-lotes (SGD) o variantes adaptativas como Adam (que ajusta tasas por parámetro con momentos del gradiente).

Conceptos y su relación:

  • Lote (batch): subconjunto de muestras procesado en un único paso de actualización de pesos. Compromiso entre el ruido del SGD puro (batch=1) y el coste del batch completo; tamaños típicos: 32, 64, 128.
  • Iteración: una actualización de pesos = procesar un batch.
  • Época: una pasada completa por todo el dataset de entrenamiento. Si hay 6.000 imágenes (≈4.800 en train con 80/20) y batch=64, una época ≈ 75 iteraciones. El enunciado entrena 50 épocas.
  • Tasa de aprendizaje (\eta): tamaño del paso de actualización; hiperparámetro crítico.

Problemas de la tasa de aprendizaje:

  • Demasiado alta: los pasos son tan grandes que la optimización oscila, diverge o sobrepasa el mínimo; la pérdida puede no bajar o disparase a NaN.
  • Demasiado baja: la convergencia es muy lenta (muchas épocas para reducir la pérdida), riesgo de quedar atrapado en mínimos locales o mesetas y desperdicio de cómputo. La práctica recomendada es usar un learning rate moderado con planificadores (decaimiento, warm-up) u optimizadores adaptativos.

Cuestión 3. Por qué la CNN supera al MLP

Limitación del MLP con imágenes. Aplanar la imagen a 12.288 valores destruye la estructura espacial 2D (vecindad de píxeles) y obliga a aprender cada relación posición-clase de forma independiente. Además genera una explosión de parámetros: solo la primera capa densa con, por ejemplo, 256 neuronas tiene:

12{.}288 \times 256 + 256 \text{ (sesgos)} \approx 3{.}146{.}000 \text{ parámetros}

Esto lo hace propenso al sobreajuste y carente de invariancia translacional (un cable suelto desplazado unos píxeles se ve como un patrón totalmente distinto), lo que explica su estancamiento en ~61 %.

Capas convolucionales. Aplican filtros (kernels) pequeños (p. ej. 3×3×3) que se deslizan sobre la imagen calculando productos escalares locales, produciendo mapas de características. Sus propiedades clave:

  • Campos receptivos locales: cada neurona del mapa solo «mira» una región pequeña de la entrada, capturando patrones locales (bordes, texturas) que en capas profundas se combinan en patrones complejos.
  • Compartición de pesos: el mismo filtro se aplica en todas las posiciones, de modo que un patrón aprendido se detecta en cualquier lugar de la imagen → invariancia a la traslación y drástica reducción de parámetros.
  • Aprendizaje jerárquico: capas iniciales detectan bordes; intermedias, formas; profundas, conceptos (componente, cable).

Capas de pooling. Submuestrean los mapas (p. ej. max-pooling 2×2 toma el máximo de cada ventana), reduciendo la resolución a la mitad. Aportan: reducción de dimensionalidad y cómputo, mayor campo receptivo efectivo y robustez a pequeñas variaciones de posición. No tienen parámetros entrenables.

Comparación de parámetros (el argumento decisivo). Una capa convolucional con 32 filtros de 3×3×3 tiene:

(3 \times 3 \times 3 + 1) \times 32 = 896 \text{ parámetros}

¡896 frente a los ~3.146.000 de una sola capa densa equivalente! Los pesos se comparten en toda la imagen, por lo que el número de parámetros es independiente del tamaño de entrada. Con menos parámetros la CNN:

  • generaliza mejor (menos sobreajuste),
  • aprovecha la estructura espacial,
  • es invariante a traslaciones.

Por todo ello la CNN alcanza >89 % frente al ~61 % del MLP en este dataset de imágenes.


Cuestión 4. Control del sobreajuste

Diagnóstico. Que la pérdida de entrenamiento siga bajando mientras la de validación sube es el síntoma canónico de sobreajuste (overfitting): el modelo memoriza el ruido del conjunto de entrenamiento y pierde capacidad de generalización. Tres técnicas:

1. Dropout. Durante el entrenamiento, en cada paso «apaga» aleatoriamente una fracción p de neuronas (p. ej. p=0{,}5), poniendo su salida a 0. Esto impide la coadaptación de neuronas (ninguna puede depender en exceso de otra), forzando representaciones redundantes y robustas; equivale a entrenar un ensemble implícito de subredes. En inferencia se desactiva y se escalan las activaciones. En Keras:

model.add(layers.Dropout(0.5))

2. Parada temprana (early stopping). Monitoriza la pérdida de validación y detiene el entrenamiento cuando deja de mejorar durante un número de épocas (patience), restaurando los mejores pesos. Evita seguir entrenando justo en el punto en que val_loss empieza a subir.

es = keras.callbacks.EarlyStopping(
        monitor='val_loss', patience=5, restore_best_weights=True)
model.fit(..., callbacks=[es])

3. Aumento de datos (data augmentation). Genera variantes sintéticas de las imágenes mediante transformaciones que preservan la etiqueta (rotaciones, volteos, zoom, cambios de brillo, desplazamientos). Con solo 6.000 imágenes, amplía artificialmente la variabilidad del dataset, expone al modelo a más casos y reduce su tendencia a memorizar.

data_aug = keras.Sequential([
    layers.RandomFlip("horizontal"),
    layers.RandomRotation(0.1),
    layers.RandomZoom(0.1),
])

(Complementariamente: regularización L2/weight decay, batch normalization o ampliar el dataset real.)


Cuestión 5. Comparación con métodos clásicos

Criterio Redes profundas (CNN/MLP) Árboles / Random Forest SVM k-NN
Idoneidad Excelentes en datos no estructurados (imagen, audio, texto); aprenden características automáticamente Muy buenos en datos tabulares Buena en alta dimensión con frontera clara Datasets pequeños, baja dimensión
Necesidad de datos Alta (miles–millones) Moderada Moderada Baja (pero coste en inferencia)
Interpretabilidad Baja («caja negra») Alta (reglas legibles, árbol visualizable) Media-baja Media (basada en vecinos)
Coste computacional/energético Muy alto: requiere GPU, entrenamiento largo, gran huella energética Bajo, CPU Medio (escala mal con muchas muestras) Entrenamiento nulo, inferencia costosa

Discusión. Las redes profundas dominan en visión por computador porque extraen jerarquías de características sin ingeniería manual —de ahí su superioridad en este supuesto—, pero a costa de muchos datos etiquetados, cómputo en GPU, escaso poder explicativo y mayor consumo energético. Los métodos clásicos son rápidos, ligeros, interpretables y eficaces con pocos datos, especialmente sobre datos tabulares.

Cuándo elegir un método clásico en un centro educativo:

  • Pocos datos disponibles: con decenas o cientos de ejemplos, un árbol o SVM generaliza mejor y la red profunda sobreajustaría.
  • Necesidad de interpretabilidad: si hay que explicar al alumnado el porqué de cada decisión (fines didácticos) o justificar el resultado, un árbol de decisión es transparente.
  • Sin GPU / recursos limitados: muchos centros solo disponen de equipos modestos o cuotas limitadas de Colab; un Random Forest entrena en CPU en segundos, con menor huella energética (criterio de sostenibilidad/competencia digital responsable).
  • Datos tabulares (notas, asistencia, encuestas): aquí los métodos clásicos suelen igualar o superar a las redes y son más simples de mantener.

Conclusión didáctica: la elección del algoritmo debe responder al principio de parsimonia (navaja de Ockham): el modelo más simple que resuelva el problema con calidad suficiente, ponderando datos, interpretabilidad y coste, es la mejor opción —un criterio profesional clave que debe transmitirse al alumnado del módulo.

Practica con supuestos como este

Genera supuestos de tu especialidad y comunidad en cualquiera de los cuatro formatos, resuélvelos y recibe corrección con nota al instante.