Análisis de Clasificación de Personajes de Los Simpson

Proyecto de Deep Learning

Este proyecto analiza diferentes arquitecturas de redes neuronales convolucionales para la clasificación automática de personajes de la serie Los Simpson.

Se han implementado y evaluado cinco arquitecturas diferentes para determinar cuál obtiene el mejor rendimiento en esta tarea específica de clasificación de imágenes.

21,923

Imágenes totales

18

Personajes

63.13%

Precisión máxima

Logo de Los Simpson

Inicialización del Sistema

Configuración del Entorno

El proyecto se ejecutó con TensorFlow 2.18.0 con soporte GPU habilitado.

Entorno de Ejecución
TensorFlow Version 2.18.0
GPU Disponible
Python Version 3.11
Configuración de Imágenes
Tamaño 64x64 píxeles
Modo de Color Escala de grises
Número de Canales 1

Datos Utilizados

Conjunto de Datos

Se utilizó un conjunto de datos con imágenes de 47 personajes de Los Simpson, dividido en tres subconjuntos:

Imágenes de Entrenamiento 16,764
Imágenes de Validación 4,169
Imágenes de Prueba 990
Total de Imágenes 21,923
Número de Clases 18

Preprocesamiento y Aumento de Datos

Para mejorar la generalización del modelo, se aplicaron las siguientes técnicas de preprocesamiento y aumento de datos:

El preprocesamiento adecuado de las imágenes es fundamental para el éxito del modelo. La conversión a escala de grises reduce la complejidad y mejora la eficiencia.

  • Redimensionamiento a 64x64 píxeles
  • Conversión a escala de grises
  • Normalización (rescale=1./255)
  • Rotación (±10°)
  • Desplazamiento horizontal y vertical (±10%)
  • Zoom (±10%)
  • Reflejo horizontal

Modelos Implementados

Se implementaron cinco arquitecturas diferentes de redes neuronales convolucionales (CNN) para la clasificación de personajes:

Arquitectura
  • Capas Conv2D 4
  • Capas BatchNormalization 4
  • Capas MaxPooling2D 4
  • Capas Dense 2
  • Capas Dropout 1
Parámetros
Parámetros totales 2,511,535
Parámetros entrenables 2,510,575 (99.96%)
Parámetros no entrenables 960 (0.04%)
Este modelo demostró ser el más efectivo para la tarea de clasificación, con una precisión de test del 63.13%.

Arquitectura
  • Capas Conv2D 10
  • Capas BatchNormalization 10
  • Capas MaxPooling2D 4
  • Capas Dense 3
  • Capas Dropout 2
Parámetros
Parámetros totales 45,446,895
Parámetros entrenables 45,441,519 (99.99%)
Parámetros no entrenables 5,376 (0.01%)
Este modelo, a pesar de tener muchos más parámetros, logró una precisión de test del 39.09%, significativamente menor que la CNN Básica.

Arquitectura
  • Capas Conv2D 14
  • Capas DepthwiseConv2D 13
  • Capas BatchNormalization 27
  • GlobalAveragePooling2D 1
  • Capas Dense 1
Parámetros
Parámetros totales 3,287,407
Parámetros entrenables 3,265,519 (99.3%)
Parámetros no entrenables 21,888 (0.7%)
Este modelo alcanzó una precisión de test del 47.27%, siendo el segundo mejor modelo entre los evaluados.

Arquitectura
  • Modelo base MobileNetV2 1
  • Conv2D (conversión a 3 canales) 1
  • GlobalAveragePooling2D 1
  • Capas Dense 2
  • Capas BatchNormalization 1
  • Capas Dropout 1
Parámetros
Parámetros totales 3,622,005
Parámetros entrenables 1,361,973 (37.6%)
Parámetros no entrenables 2,260,032 (62.4%)
Este modelo de transfer learning alcanzó una precisión de test del 37.47%.

Arquitectura
  • Modelo base EfficientNetB0 1
  • Conv2D (conversión a 3 canales) 1
  • GlobalAveragePooling2D 1
  • Capas Dense 2
  • Capas BatchNormalization 2
  • Capas Dropout 2
Parámetros
Parámetros totales 4,736,728
Parámetros entrenables 683,573 (14.4%)
Parámetros no entrenables 4,053,155 (85.6%)
Este modelo obtuvo el peor rendimiento entre todos los evaluados, con una precisión de test de solo 5.05%.
Interpretación

Las arquitecturas evaluadas presentan diferentes enfoques para la clasificación de imágenes:

  • CNN Básica: Arquitectura simple pero efectiva, con un buen balance entre complejidad y rendimiento.
  • VGG-Like: Modelo más profundo con muchos más parámetros, pero que no se traduce en mejor rendimiento para este conjunto de datos específico.
  • MobileNet-Like: Arquitectura que utiliza convoluciones separables en profundidad para reducir el número de parámetros manteniendo un rendimiento aceptable.
  • Transfer Learning: Los modelos pre-entrenados (MobileNetV2 y EfficientNet) no lograron superar a los modelos entrenados desde cero, posiblemente debido a la diferencia entre las imágenes naturales de ImageNet y los dibujos animados de Los Simpson.
Arquitecturas CNN para clasificación de imágenes

Las redes neuronales convolucionales (CNN) son particularmente efectivas para la clasificación de imágenes debido a su capacidad para detectar patrones espaciales. Las arquitecturas evaluadas en este proyecto varían en su complejidad y enfoque.

Mientras que las redes más profundas como VGG suelen funcionar bien en conjuntos de datos grandes y complejos, para tareas específicas como la clasificación de personajes animados, una arquitectura más simple y ajustada puede ofrecer mejores resultados con menos recursos computacionales.

Entrenamiento

Parámetros de Entrenamiento

Épocas 8
Batch Size 64
Optimizador Adam con learning rate scheduler
Learning Rate Inicial 0.001
Función de Pérdida Categorical Crossentropy
Se utilizó un scheduler de tasa de aprendizaje para reducir gradualmente el learning rate a medida que avanza el entrenamiento, lo que ayuda a alcanzar un mínimo más estable.

Callbacks Utilizados

  • EarlyStopping: Detiene el entrenamiento si la pérdida de validación no mejora durante 5 épocas.
  • ReduceLROnPlateau: Reduce la tasa de aprendizaje en un factor de 0.5 si la pérdida de validación no mejora durante 3 épocas.
  • ModelCheckpoint: Guarda los mejores pesos del modelo según la precisión de validación.

Tiempos de Entrenamiento

Evolución de la Precisión

Evolución de la precisión durante el entrenamiento para el mejor modelo (CNN Básica):

Evaluación

Resultados de Entrenamiento

Modelo Precisión Entrenamiento Precisión Validación Diferencia
CNN Básica 61.68% 53.73% 7.95%
VGG-Like 40.03% 40.06% -0.03%
MobileNet-Like 52.87% 38.91% 13.96%
MobileNetV2 Transfer 36.56% 30.73% 5.83%
EfficientNet Transfer 8.83% 10.77% -1.94%

Resultados de Test

Interpretación

El modelo CNN Básica muestra el mejor rendimiento en el conjunto de test, con una precisión del 63.13%. Esto sugiere que para este conjunto de datos específico, una arquitectura más simple puede ser más efectiva que modelos más complejos o pre-entrenados.

Análisis de Generalización

La diferencia entre la precisión de entrenamiento y validación nos da una idea de cómo generaliza cada modelo:

  • CNN Básica: Diferencia de 7.95% - Buena generalización con ligero sobreajuste.
  • VGG-Like: Diferencia de -0.03% - Muy buena generalización, pero con bajo rendimiento general.
  • MobileNet-Like: Diferencia de 13.96% - Muestra signos de sobreajuste moderado.
  • MobileNetV2 Transfer: Diferencia de 5.83% - Buena generalización.
  • EfficientNet Transfer: Diferencia de -1.94% - El modelo no pudo aprender correctamente, con mejor rendimiento en validación que en entrenamiento.

Comparación de Modelos

Rendimiento por Modelo

Precisión en Test

CNN Básica

63.13%

MobileNet-Like

47.27%

VGG-Like

39.09%

MobileNetV2 Transfer

37.47%

EfficientNet Transfer

5.05%

Relación Precisión vs. Complejidad

Mejor Modelo

El modelo CNN Básica demostró ser el más efectivo, con una precisión de test del 63.13%. Esto es notable considerando que tiene menos parámetros que los modelos más complejos como VGG-Like.

Análisis Multidimensional

Modelo Precisión Test (%) Pérdida Test Tiempo (s) Parámetros (M) Épocas
CNN Básica 63.13 1.2480 339.11 2.51 8
MobileNet-Like 47.27 1.9466 599.08 3.29 8
VGG-Like 39.09 2.0318 607.98 45.45 8
MobileNetV2 Transfer 37.47 2.1308 582.48 3.62 8
EfficientNet Transfer 5.05 3.2134 605.18 4.74 8

Fine-tuning del Mejor Modelo

Proceso de Fine-tuning

Se realizó un fine-tuning de la CNN Básica para mejorar su rendimiento:

  • Se redujo la tasa de aprendizaje a 0.0001
  • Se aplicó un scheduler de tasa de aprendizaje exponencial
  • Se entrenó durante 5 épocas adicionales
  • Se utilizaron los mismos callbacks que en el entrenamiento original

Resultados del Fine-tuning

Precisión original en test 63.13%
Precisión después del fine-tuning 64.85%
Mejora absoluta 1.72%
Tiempo de fine-tuning 184.36 segundos

Comparación Antes vs. Después

Interpretación

El fine-tuning mejoró el rendimiento del modelo en un 1.72%, llevando la precisión final a 64.85%. Aunque la mejora no es dramática, demuestra que se puede optimizar aún más el rendimiento ajustando los hiperparámetros y continuando el entrenamiento con una tasa de aprendizaje más baja.

Análisis de Errores

Matriz de Confusión

Análisis de los principales errores de clasificación del mejor modelo:

Personajes Más Confundidos
  • Abraham Grampa Simpson confundido con Homer 22.1%
  • Bart Simpson confundido con Lisa Simpson 8.8%
  • Charles Montgomery Burns confundido con Moe Szyslak 7.4%
  • Abraham Grampa Simpson confundido con Charles Montgomery Burns 5.9%
  • Charles Montgomery Burns confundido con Homer Simpson 4.4%

Rendimiento por Personaje

Análisis por Personaje

Los personajes con mejor rendimiento son Apu (0.887), Chief Wiggum (0.841) y Kent Brockman (0.809), que destacan por tener características visuales distintivas y únicas. Los personajes con mayor dificultad de clasificación incluyen Edna Krabappel (0.435) y Charles Montgomery Burns (0.523), posiblemente debido a similitudes en complexión física con otros personajes del dataset.

Ejemplos de Clasificaciones Erróneas

Error de Clasificación
Abraham Grampa Simpson

Real: Abraham Grampa Simpson

Predicción: Homer Simpson

Confianza: 51.3%

Error de Clasificación
Bart Simpson

Real: Bart Simpson

Predicción: Lisa Simpson

Confianza: 46.8%

Error de Clasificación
Charles Montgomery Burns

Real: Charles Montgomery Burns

Predicción: Moe Szyslak

Confianza: 44.7%

Mapas de Activación

Visualización de Activaciones

Los mapas de activación nos permiten entender qué partes de la imagen son importantes para la clasificación del modelo:

Interpretación de los Mapas de Activación
  • Las áreas más brillantes indican regiones que el modelo considera importantes para la clasificación.
  • Se observa que el modelo se centra principalmente en características faciales como los ojos, la boca y el contorno de la cabeza.
  • Para Homer Simpson, el modelo se enfoca en su cabeza calva y su mandíbula característica.
  • Para Bart Simpson, el modelo presta atención a su cabello puntiagudo.
  • Para Marge Simpson, el modelo se enfoca en su característico cabello alto.

Ejemplos de Mapas de Activación

Abraham Simpson - Mapa de Activación
Mapa de activación Abraham Simpson

Análisis de Filtros por Capas

Visualización de Filtros Aplicados

Esta imagen muestra cómo diferentes filtros de las capas convolucionales procesan la imagen original para extraer características específicas en cada nivel.

Filtros aplicados por capas
Imagen Original
Entrada del modelo
Filtros Básicos
Detección de bordes
Filtros Intermedios
Formas y patrones
Filtros Avanzados
Características específicas

Gráficos Adicionales

Análisis Multidimensional de Modelos

Interpretación

El gráfico de radar muestra el rendimiento de los modelos en varias dimensiones:

  • Precisión: Capacidad para predecir correctamente.
  • Velocidad: Tiempo requerido para el entrenamiento y la inferencia.
  • Complejidad: Inverso de la cantidad de parámetros del modelo.
  • Generalización: Capacidad para clasificar imágenes nuevas.
  • Eficiencia: Rendimiento en relación con los recursos utilizados.

La CNN Básica muestra un buen balance en todas las dimensiones, destacando en precisión y eficiencia.

Análisis de Personajes

Rendimiento por Personaje
Personaje Precisión Recall F1-Score
Apu Nahasapeemapetilon 0.89 0.88 0.887
Chief Wiggum 0.85 0.83 0.841
Kent Brockman 0.82 0.80 0.809
Sideshow Bob 0.81 0.80 0.804
Principal Skinner 0.76 0.75 0.756
Marge Simpson 0.74 0.73 0.736
Ned Flanders 0.72 0.71 0.716
Moe Szyslak 0.63 0.61 0.622
Charles Montgomery Burns 0.54 0.51 0.523
Edna Krabappel 0.45 0.42 0.435
Precisión vs Tiempo vs Complejidad del Modelo
Precisión vs Tiempo vs Complejidad del Modelo
Análisis: Este gráfico tridimensional muestra la relación entre la precisión del modelo, el tiempo de entrenamiento y la complejidad computacional, permitiendo identificar el modelo con mejor balance eficiencia-rendimiento.
Precisión vs Exhaustividad por Personaje
Precisión vs Exhaustividad por Personaje
Interpretación: El gráfico de dispersión muestra el rendimiento individual de cada personaje, donde los puntos más cercanos a la esquina superior derecha representan los personajes mejor clasificados (alta precisión y recall).