DEEP LEARNING CON KERAS PARA INVESTIGACIÓN CIENTÍFICA: redes neuronales para datos tabulares, audio e imágenes
IMPARTIDO POR
Manuel Mendoza García, Científico Titular del CSIC.
NUEVA CONVOCATORIA
2 de marzo (modalidad diferida con asesoramiento personalizado).
OBJETIVO
Aprender a aplicar Deep Learning con Keras en investigación científica.
El curso tiene un enfoque marcadamente práctico (≈ 75%), con ejercicios basados en investigaciones reales (ver abajo estructura del curso y ejercicios).
La programación, resolución e interpretación de los ejercicios se desarrollan en paralelo con la exposición de los conceptos teóricos.
DIRIGIDO A
Investigadores de cualquier área y nivel académico.
REQUISITOS
Haber realizado los Cursos de Machine Learning para Investigación Científica I y II (o disponer de conocimientos equivalentes), donde se cubren los fundamentos necesarios para seguir este curso.
INCLUYE
Acceso en diferido a las clases (24 h) durante 3 meses (prorrogable bajo petición).
Guía del curso (conceptos clave, enunciados y resultados principales).
Códigos comentados de todos los ejercicios.
Asesoramiento personalizado por email o Zoom.
PRECIO
Institucional (proyecto/centro/empresa): 500 €
Particular (sin financiación institucional): 250 € (Beca personal -50%)
Particular Curso I + Curso II + Curso III: 425 € (Beca personal -70%)
SOLCITUD DE MATRÍCULA
mcnc104@mncn.csic.es
ESTRUCTURA DEL CURSO Y EJERCICIOS
1. Introducción
1.1 Redes Neuronales (RN)
1.2 Funcionamiento general del aprendizaje profundo
1.3 Optimización con descenso por gradiente y Función de Pérdida
2. Redes Neuronales Feedforward
2.1 Propagación hacia adelante (forward propagation)
2.2 Backward retropropagación (propagation)
2.3 Bucle de entrenamiento (training loop )
2.4 Error cuadrático medio (MSE) como FdP para regresión
2.5 Características generales de las redes feedforward
2.6 Funcionamiento de una red feedforward
Ejercicio 2.1. Programación de una red feedforward para regresión con FdP MSE, 1 neurona oculta con FdA ReLU y 1 neurona de salida lineal (sin FdA). Carpeta DL
2.7 Funcionamiento de una red feedforward para clasificación binaria, usando entropía cruzada como función de pérdida, 1 sola neurona oculta con función de activación ReLU y 1 una neurona de salida sigmoidal
Ejercicio 2.2. Programar una red feedforward sin ayuda de ningún paquete, con la que determinar si habrá tormenta o no en un lugar (clasificación binaria) a partir de su temperatura, humedad, velocidad del viento y presión atmosférica (datos sintéticos). Con 1 neurona oculta con FdA ReLU, y una neurona de salida con FdA sigmoide. Carpeta DL
2.8 Diferencias entre esta RN extremadamente simple y las RN comunes
2.9 Trade-off entre sesgo y varianza en DL
2.10 Principales algoritmos de optimización
2.11 Tensores
3. Introducción a la librería Keras
3.1 Hiperparámetros (Hpps) básicos a optimizar
3.2 Pérdida (loss) y métricas complementarias (metrics)
Ejercicio 3.1. a) Estimar con una red feedforward la riqueza de especies de aves invernantes a partir de predictores ambientales, optimizando el nº de épocas a partir del análisis de la evolución de loss (MSE) y metrics (MAE); b) Inferir la riqueza de especies esperable en una nueva localidad (NvLoc). Carpeta Numspc.
Ejercicio 3.2. (Solos) a) Estimar con una red feedforward la masa corporal de las aves a partir de su morfología, optimizando el nº de épocas a partir del análisis del comportamiento de loss y metrics b) estimar la masa corporal de Accipiter brachyurus, Cincloramphus cruralis y Tigriornis leucolopha (datos reales pero no de una investigación real). Carpeta AVONETMsCrp
3.3 Optimización iterativa con Keras
Ejercicio 3.3. Entrenar una red feedforward para predecir si una comunidad estará depauperada a partir de factores de impacto humano, optimizando el número de épocas mediante el análisis de val_loss y val_accuracy.
1. Realizar particiones estratificadas para mantener la prevalencia por clase en train/val/test.
2. Equilibrar las dos categorías mediante remuestreo, aplicado solo a traindata.
3. Para evitar fuga de información hacia la validación, separar un conjunto de validación (además del de prueba) y usar validation_data = list(valdatax, valdatay) en history, en lugar de validation_split = 0.2. Carpeta Human impact.
Ejercicio 3.4. (Solos) Entrenar una red feedforward para predecir la malignidad del tumor (0 = benigno, 1 = maligno) a partir de 10 características, optimizando el número de épocas mediante el análisis de val_loss y val_accuracy (usar solo 300 épocas).
1. Realizar particiones estratificadas para mantener la prevalencia por clase en train/val/test.
2. Equilibrar las dos categorías mediante remuestreo, aplicado solo a traindata.
3. Para evitar el riesgo de fuga de información hacia la validación, separar un conjunto de validación (además del de prueba) y usar validation_data = list(valdatax, valdatay) en history, en lugar de validation_split = 0.2. Carpeta BreastCancer I.
Ejercicio 3.5. a) Entrenar una red feedforward para predecir el estilo de vida de las aves (Life.stl: Aerial, Aquatic, Generalist, Insessorial, Terrestrial) a partir de rasgos morfológicos. Estratificar por Orden para mantener la diversidad taxonómica y evitar así que el modelo aprenda patrones taxonómicos en vez de funcionales . Remuestrear (solo en train) para que todas las clases estén razonablemente representadas. Usar loss (categorical cross-entropy) para seleccionar best model y monitorizar accuracy. b) Con el modelo final, predecir el estilo de vida de Sporophila corvina, Anseranas semipalmata e Ibycter americanus. Carpeta AVONETLfSt
Ejercicio 3.6. (Solos) Partiendo del modelo del ejercicio 3.5, realiza las siguientes modificaciones:
1. Ni train_loss ni train_Accuracy bajan o lo hacen poco (probable subajuste):
- Aumenta la capacidad del modelo: añade una capa densa y duplica las neuronas de la 1ª capa.
2. train_loss baja y train_Accuracy sube, pero val_loss no baja o se estanca pronto (sobreajuste): Puede deberse a distintas causas: sobrecapacidad (el modelo es demasiado complejo) o regularización insuficiente, o bien una lr demasiado alta que deja al modelo en zonas inestables del paisaje de pérdida, que no generalizan bien.
- Refuerza la regularización: duplica L2 en las capas densas y sube dropout a 0.40 en una de ellas.
- Reduce la complejidad del modelo (menos neuronas o una capa menos).
Si sospechas que el problema es la lr:
- Baja lr (p. ej., × 0.5); el descenso de train_loss será más lento pero val_loss debería dejar de empeorar. U otra opción: - Añade un ReduceLROnPlateau para reducir la TdA automáticamente cuando no haya mejora.
3. train_loss oscila fuertemente desde el principio. El tamaño de los lotes puede ser demasiado pequeño (gradiente muy ruidoso) o la TdA demasiado alta (pasos demasiado grandes).
- Duplica batch_size; tendrás que duplicar también las épocas para mantener el mismo nº de actualizaciones.
- Si persiste la inestabilidad, baja lr (p. ej., ×0.5): el descenso de train_loss será más lento pero estable.
- Si se vuelve demasiado lento, deja lr como estaba y añade un ReduceLROnPlateau para reducir lr automáticamente cuando no haya mejora.
4. El entrenamiento dura mucho.
- Añade early_stopping_callback
5. Las clases están equilibradas y lo que quieres es acierto bruto.
- Monitoriza con val_accuracy (modo "max"). Carpeta AVONETLfSt
Ejercicio 3.7. Entrenar una red feedforward para predecir la riqueza de especies invertívoras (IFd) a partir del clima. Optimizar el nº de épocas con datos de validación espacialmente independientes (no solo para evitar el riesgo de fuga de información a los datos de validación) y a partir del análisis del comportamiento de loss y metrics. Carpeta CLiMod.
3.3 Optimización Aleatorizada
Ejercicio 3.8. a) Optimización aleatorizada (no es una grid) de una red Feedforward para predecir el nº de especies (nspp) a partir de predictores ambientales, con ayuda de EarlyStopping, ReduceLROnPlateau y Checkpoint. Seleccionar el mejor modelo por val_loss (MSE) y entrenar un modelo # finalL con todos los datos (hpps del best model) # b) Inferir la riqueza de especies en una nueva localidad (NvLoc) # con ese modelo final. c) Analizar el efecto de la temperatura mínima sobre la la abundancia de especies invernantes mediante un PDP (con DALEX) usando el mejor modelo. d) BDP y SHAP de la nueva localidad (NvLoc). Carpeta OptNumspc.
Ejercicio 3.9. (Solos) a) Optimización aleatorizada (no es una grid) de una red Feedforward para predecir la esperanza de vida (vida) de los países a partir de variables socio-económico-sanitarias. En cada iteración: EarlyStopping + ReduceLROnPlateau + Checkpoint. Seleccionar el mejor modelo por val_loss (MSE). b) Inferir vida para Spain y Zambia con el best model. c) Analizar el efecto de la fertilidad sobre la esperanza de vida mediante un PDP (con DALEX) usando el mejor modelo. d) BDP y SHAP de Spain y Zambia. Carpeta OptHDI
Ejercicio 3.10. Optimización Aleatorizada de una red feedforward entrenada para predecir si una comunidad estará depauperada a partir de una serie de factores de impacto humano. Carpeta OptHuman impact.
4. Redes Neuronales Recurrentes (RNN)
4.1 Análisis de Series Temporales (ST)
Ejercicio 4.0. Entrenar un "toy model" simple para predecir la temperatura de un día a partir de las temperaturas de los 10 días anteriores, utilizando una ventana deslizante de tamaño 10 sobre una secuencia de temperaturas de solo 13 días. Carpeta SToyModel
Ejercicio 4.1 A partir de las temperaturas registradas diariamente a las 12:00 durante el período 2013–2016, entrena un modelo de red neuronal recurrente (RNN) con capas LSTM para predecir la temperatura de un día a esa hora, utilizando como entrada las temperaturas de los 10 días anteriores (look_back = 10). Carpeta Jenaclim24h
Ejercicio 4.2. Entrena un modelo de RNN con capas LSTM para predecir la concentración de partículas finas (PM2.5) en aire ambiente, utilizando como variables predictoras la propia concentración de PM2.5, la velocidad (ws) y dirección (wd) del viento, y otros contaminantes atmosféricos: nox, no2, pm10, so2, o3 y co. El modelo debe capturar las dependencias temporales mediante una ventana deslizante de 72 horas consecutivas, generando secuencias multivariadas que permitan anticipar la concentración de PM2.5 a corto plazo. Los datos abarcan un periodo de 7 años (1998–2004) y se dividen cronológicamente en conjuntos de entrenamiento, validación y prueba, respetando la estructura temporal para evitar el uso de información futura durante el entrenamiento. Carpeta AirQuality
4.2 Reconocimiento de Secuencias de Audio
Ejercicio 4.3. Procesamiento de una señal de audio en el dominio temporal. a) Cargar un archivo de audio (“canto” de Little Chachalaca) en formato .mp3, b) Extraer y normalizar la señal, c) Dividir la señal en ventanas de 4410 pasos temporales y convertirla en un tensor 3D (samples, timesteps, features). Carpeta Birds
Ejercicio 4.4. A partir de las carpetas train/, validation/ y test/ con los audios.mp3 de 2 especies (Little Chachalaca y Little Tinamou), crear los tensores 3D de entrada (traindatax, valdatax, testdatax) con forma [samples, 224, 1] (señal temporal) y las etiquetas one-hot correspondientes (traindatay, valdatay, testdatay). Guardar los seis objetos en .rds para su uso directo en el entrenamiento (Ejercicio 4.6). Carpeta Birds
Ejercicio 4.5. Usando los .rds del ejercicio 4.4, entrenar una RNN con GRU para clasificar entre Little Chachalaca y Little Tinamou en dominio temporal (entrada [samples, 224, 1]). Incluir un bloque convolucional antes de la parte recurrente para extraer rasgos y luego modelar su evolución temporal. Carpeta Birds
Ejercicio 4.6. a) A partir de las carpetas train/, validation/ y test/ con los audios.mp3 de 2 especies (Little Chachalaca y Little Tinamou), extraer 13 coeficientes MFCCs por frame y crear los tensores 3D de entrada (traindatax, valdatax, testdatax) con forma [samples, 224, 13 coeficientes] y las etiquetas one-hot correspondientes (traindatay, valdatay, testdatay), b) Entrenar un modelo (p. ej., Conv1D + GlobalAveragePooling o Conv1D + GRU) en dominio cepstral con entrada (224, 13), comparar con el modelo del 4.6 y comentar diferencias en aprendizaje y generalización. Carpeta Birds
5 Redes Neuronales Convolucionales (CNN o ConvNets)
5.1 Características y Funcionamiento
5.2 Principales características técnicas
5.3 Usos de las ConvNets
5.4 Organización de las imágenes para su uso en ConvNets.
Ejercicio 5.1. Cargar una imagen en color desde un archivo, redimensionarla a un tamaño de 224x224 píxeles y convertirla en un tensor 4D con 3 canales de color (RGB), lista para su uso en una ConvNet. Carpeta MmfAqt.
Ejercicio 5.2. A partir de las imágenes contenidas en las carpetas 'train', 'validation' y 'test (Carpeta MmfAqt), crear los tensores 4D de entrada y las etiquetas con las que entrenar una red ConvNet. Guardar los 6 objetos en .rds (versión análoga a la que se utilizará en los ejercicios 5.3 y 5.5 con 5 grupos (en vez de 2) y muchas más muestras). Carpeta MmfAqt.
Ejercicio 5.3 Entrenar una ConvNet para el reconocimiento de 5 grandes grupos de mamíferos acuáticos (delfines, nutrias, focas, ballenas y castores) a partir de 500 fotos en color de ejemplares de cada grupo (2500 en total). Carpeta AqMammals.
Ejercicio 5.4. (Solos) a) A partir de las imágenes satelitales de 3 tipos de cobertura terrestre (bosque, chaparral y agrícola) contenidas en las carpetas 'train', 'validation' y 'test (Carpeta SatImgs), crear los tensores 4D traindatax, valdatax y testdatax, así como los vectores de etiquetas traindatay, valdatay y testdatay y Guardar los 6 objetos en .rds (equivalente al ejercicio 5.2), b) Cargar esos 6 objetos y entrenar una ConvNet para predecir esos 3 tipos de cobertura (equivalente al ejercicio 5.3). Podéis hacerlo con cualquier otro conjunto de imágenes satelitales de la carpeta “Images NO DESCARGAR ENTERO”. Carpeta SatImgs
Ejercicio 5.5 Optimización Aleatorizada de los hpps implicados de una ConvNet entrenada para el reconocimiento de 5 grandes grupos de mamíferos acuáticos (Ejercicio 5.2). Carpeta OptAqMammals.
6. Procesamiento del Lenguaje Natural (PLN) mediante RNN
6.1 Capa de Embedding
6.2 Procesamiento del Lenguaje Natural con el Conjunto de Datos Reuters
Ejercicio 61: Entrenar una RNN bidireccional para predecir las categorías temáticas de las noticias de la Agencia Reuters a partir de su contenido textual, optimizando el número de épocas mediante el guardado automático del mejor modelo (best model) y el análisis de las curvas de validación. Carpeta Reuters
6.3 Panorama actual del procesamiento del lenguaje natural
7. Incertidumbre y confianza en las predicciones de redes neuronales
Ejercicio 7.1. Entrenar una red feedforward con Dropout para PAM50. Mantener Dropout en inferencia (MC Dropout) y repetir predicciones sobre Validación. Con las réplicas, calcular: (a) probabilidad media por clase y confianza (máxima), (b) entropía predictiva normalizada [0,1] como incertidumbre. Trazar el trade-off Cobertura–Precisión aplicando umbrales (confianza: aceptar si ≥ t; incertidumbre: aceptar si ≤ u) y discutir umbrales adecuados en contexto clínico. Carpeta BreastCancer II
Fecha
- Lunes, 02 Marzo 2026
- Miércoles, 02 Diciembre 2026
Ubicación
Museo Nacional de Ciencias Naturales