
Proyecto Peridotita #5: Dando el salto al código — Redes Neuronales Convolucionales (CNN) con TensorFlow y MobileNetV2
Hasta ahora habíamos explorado modelos visuales con herramientas “no-code” como Teachable Machine. Sin embargo, para responder al rigor que exige un proyecto de investigación en Bachillerato como Climate Detectives, el alumnado del IES Monterroso ha dado el salto al desarrollo en Python sobre Google Colab, utilizando la librería TensorFlow / Keras para entrenar una Red Neuronal Convolucional (CNN) real mediante Transfer Learning.
1. La Arquitectura: MobileNetV2 y Transfer Learning
Entrenar una red neuronal profunda desde cero requiere cientos de miles de imágenes. En nuestro caso, al contar con un conjunto de datos piloto de terreno, hemos recurrido a MobileNetV2: una arquitectura preentrenada con más de un millón de imágenes de ImageNet.
Aprovechando las “capas de extracción de características” ya entrenadas de MobileNetV2 (que detectan bordes, texturas y patrones visuales), hemos adaptado únicamente la cabeza clasificadora final (Dense Layer) para nuestras 4 categorías ecológicas: sano, regenerado, quemado_leve y quemado_severo.


2. Análisis del Entrenamiento (15 Épocas)
El comportamiento del modelo durante las 15 épocas de entrenamiento demuestra la enorme eficiencia del Transfer Learning:
Plaintext
Epoch 1/15 - accuracy: 0.5720 - val_accuracy: 0.6613 - val_loss: 0.9212
Epoch 12/15 - accuracy: 0.8680 - val_accuracy: 0.8226 - val_loss: 0.4335 <-- Pico de rendimiento
Epoch 15/15 - accuracy: 0.9120 - val_accuracy: 0.7903 - val_loss: 0.4678
- Convergencia rápida: En tan solo 12 épocas, la precisión del conjunto de validación alcanzaba un pico del 82,26% con una pérdida ($val\_loss$) de 0,4335.
- Aprendizaje estable: La precisión de entrenamiento subió paulatinamente del 57,2% al 91,2%, demostrando que las capas de Data Augmentation (rotaciones, giros y zoom aleatorios) ayudaron a la red a generalizar sin caer inmediatamente en un overfitting agudo.
3. Diagnóstico Fino: La Matriz de Confusión
Para evaluar dónde acierta y dónde duda nuestra Inteligencia Artificial, analizamos el conjunto de validación (62 imágenes) mediante una Matriz de Confusión:
| Clase Real \ Predicción IA | quemado_leve | quemado_severo | regenerado | sano | Precision por Clase |
quemado_leve | 3 | 1 | 2 | 1 | 42,8% (3/7) |
quemado_severo | 2 | 1 | 0 | 0 | 33,3% (1/3) |
regenerado | 1 | 0 | 21 | 6 | 75,0% (21/28) |
sano | 0 | 0 | 0 | 24 | 100,0% (24/24) |
🟢 Puntos Fuertes del Modelo:
- Detección impecable de la clase
sano: El modelo acierta el 100% de las muestras de control sano (24/24) sin cometer un solo falso positivo ni confundirlo con zonas quemadas. - Gran solidez en
regenerado: Identifica correctamente 21 de 28 imágenes (75%). Las 6 confusiones registradas se producen con la clasesano, un margen de error ecológicamente lógico dado que el matorral en fase avanzada de recuperación comparte firma visual y tonalidades de clorofila con la vegetación no afectada.
🔴 Puntos Débiles (Confusión en clases quemadas):
- Las clases
quemado_leveyquemado_severoconcentran el mayor número de fallos, confundiéndose entre sí o dispersándose haciaregenerado.

4. ¿Cómo podemos mejorar el modelo?
Este análisis revela exactamente las vías de optimización para las siguientes fases del proyecto:
- Aumento del tamaño del dataset (Punto crítico):El desequilibrio de clases (Class Imbalance) es el factor determinante. Mientras que
sanoyregeneradodisponían de más de 120 imágenes de entrenamiento,quemado_severosolo contaba con 10 fotos iniciales. Añadir entre 50 y 100 fotografías adicionales en terreno de áreas con daño severo y leve nivelará drásticamente la precisión. - Pesos de Clase (Class Weighting):Implementar penalizaciones en el algoritmo durante el cálculo de la función de pérdida (loss). Al asignarle un “peso” mayor a los errores cometidos sobre las clases minoritarias, obligaremos a la red a prestar más atención a los detalles de
quemado_severo. - Ajuste Fino (Fine-Tuning):Una vez balanceado el dataset, descongelaremos las últimas capas convolucionales de MobileNetV2 para reentrenarlas con una tasa de aprendizaje (learning rate) muy baja ($10^{-5}$), permitiendo que los filtros de la red se especialicen en las texturas de roca peridotítica y ceniza.
Conclusión Pedagógica
Para los estudiantes de Bachillerato, comprender que un 79% de precisión global es un excelente punto de partida, pero que la clave reside en saber leer la matriz de confusión para solucionar el desequilibrio de datos, convierte el aprendizaje de la Inteligencia Artificial en un verdadero ejercicio del método científico.
Ficha Metadatos para el Blog (MonteSteam)
- Slug:
proyecto-peridotita-5-clasificacion-imagenes-python-tensorflow-mobilenetv2 - Extracto: Damos el salto al código en Python con Google Colab. Entrenamos un modelo de visión por computador mediante Transfer Learning (MobileNetV2) para clasificar el estado de Sierra Bermeja y analizamos su matriz de confusión.
- Palabras clave: Proyecto Peridotita, Python, TensorFlow, Keras, MobileNetV2, Transfer Learning, Matriz de Confusión, Machine Learning, IES Monterroso, Climate Detectives.



