DEEP LEARNING CON KERAS PARA INVESTIGACIÓN CIENTÍFICA por Manuel Mendoza
IMPARTIDO POR: Manuel Mendoza García, Científico Titular del MNCN-CSIC.
OBJETIVO
Aprender a utilizar Deep Learning con el paquete Keras en investigación científica. El curso tiene un enfoque altamente práctico (≈ 75%), con numerosos ejercicios basados en investigaciones reales (ver programa). La programación, resolución e interpretación de estos ejercicios se desarrolla en paralelo con la teoría.
DIRIGIDO A
Investigadores de cualquier área y nivel académico.
REQUISITOS
Conocimientos básicos de R.
Haber realizado el curso Machine Learning para Investigación Científica Random Forest, Boosting y Técnicas Avanzadas de Interpretación o uno equivalente.
Traer portátil (presencial)
MATERIAL INCLUIDO EN EL CURSO
Códigos explicados de todos los ejercicios del curso.
Guía del curso con los principales conceptos en el PowerPoint de las clases (ver AQUÍ).
PROGRAMA
1. Introducción
1.1 Redes Neuronales (RN)
1.2 Redes Neuronales Artificiales vs. Redes Neuronales Biológicas
1.3 Funcionamiento general del aprendizaje profundo
1.4 Optimización por Gradiente Descendiente
2. Redes Neuronales Feedforward (FFNN)
2.1 Entrenamiento
Forward propagation
Backward propagation (retropropagación)
Training loop (bucle de entrenamiento)
2.2 Programación de una RN extremadamente simple para regresión con MSE como FdP (loss_function) y ReLU como FdA
Ejercicio 2.1. Programación de una FFNN para regresión con MSE como FdP y ReLU como FdA. Script DL
2.3 Programación de una FFNN para clasificación binaria con una capa oculta con una sola neurona aplicada a un conjunto de datos sintético
Ejercicio 2.2. Programar la FFNN, 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 una capa oculta y una sola neurona. Script DL
Neuronas de la capa de entrada
Neuronas de la capa de salida
Conexiones entre capas: pesos y sesgos
2.4 Trade-off entre sesgo y varianza en DL
2.5 Otros algoritmos de optimización (sofisticaciones del de Descenso por Gradiente)
2.6 Tensores
3. Introducción a la librería Keras
3.1 Hiperparámetros (Hpps) básicos a optimizar
3.2 Curvas loss y métrica en Keras
Ejercicio 3.1. a) Estimar con una FFNN 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 y metrics; b) Inferir la riqueza de especies esperable en una nueva localidad (NvLoc). Script Numspc.
Ejercicio 3.2. Solos Estimar con FFNN la masa corporal de las aves a partir de su morfología, a) Optimizar el nº de épocas con checkpoint_callback; b) estimar la masa corporal de Accipiter brachyurus, Cincloramphus cruralis y Tigriornis leucolopha (datos reales, pero no de una investigación real). Script AVONETMsCrp
Importancia de la correcta elección de la FdP (loss) y metrics
Curvas de Pérdida y Estrategias de Optimización
Ejercicio 3.3. Entrenar un modelo de FFNN para predecir si una comunidad estará depauperada a partir de una serie de factores de impacto humano. Optimizar el nº de épocas con checkpoint callback. Script Human impact.
Ejercicio 3.4. Solos Entrenar un modelo de FFNN para diagnosticar la posible malignidad de un tumor a partir de 10 características diferentes que pueden tomarse a partir de imágenes digitalizadas de una aguja de biopsia del seno. Optimizar 100 épocas con checkpoint callback. Script BreastCancer.
Ejercicio 3.5. a) Entrenar un modelo de FFNN para predecir el estilo de vida de las aves a partir de su morfología (clasificación multiclase), equilibrando las clases para mitigar los efectos de las categorías desequilibradas y garantizar que todos los órdenes filogenéticos estén representados de manera proporcional en el conjunto de entrenamiento. Esto permitirá paliar los efectos de la estructura filogenética en el modelo de clasificación multiclase. Optimizar el nº de épocas a partir del análisis del comportamiento de las curvas de pérdida; b) predecir el comportamiento migratorio de Sporophila corvina, Anseranas semipalmata y Ibycter americanus (Newspcs). Script AVONETLfSt_Filog.
Ejercicio 3.5bis. Solos Intentar mejorar los resultados (mayor valor de kappa sobre testdata)
1. Reducir la complejidad del modelo
2. Ajustar el dropout
3. Reducir la tasa de aprendizaje
4. Cambiar el optimizado
5. Regularización L2
Ejercicio 3.6. Entrenar un modelo de FFNN 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 y a partir del análisis del comportamiento de loss y metrics. Script CLiMod.
3.3 Optimización Aleatorizada
Ejercicio 3.7. Optimización Aleatorizada de una RN feedforward entrenada para predecir la riqueza de especies de aves invernantes a partir de predictores ambientales. Script OptNumspc.
Ejercicio 3.8. Solos Optimización Aleatorizada de una RN feedforward entrenada para predecir la masa corporal de las aves a partir de su morfología. Script OptAVONETMsCrp
Ejercicio 3.9. Optimización Aleatorizada de una RN feedforward entrenada para predecir si una comunidad estará depauperada a partir de una serie de factores de impacto humano. Script OptHuman impact.
Ejercicio 3.10. Solos Optimización Aleatorizada de una RN feedforward entrenada para diagnosticar la malignidad de un tumor en el pecho a partir de nueve características (grosor de las células, tamaño, forma, etc.) que se toman en las biopsias. Script OptBreastCancer
4. Redes Neuronales Recurrentes (RNN)
4.1 Análisis de Series Temporales (ST)
Regresión multivariada con Dependencias Temporales (RM)
Ejercicio 4.1. Entrenar un modelo de Red Neuronal Recurrente (RNN) utilizando capas LSTM para predecir el nivel de ozono basándose en secuencias temporales de características ambientales y de contaminación. El objetivo es analizar cómo las condiciones ambientales a lo largo del tiempo influyen en la concentración de ozono y predecir su nivel en futuros momentos basándonos en patrones históricos. Script AirQuality
Ejercicio 4.2: Entrena un modelo de RNN utilizando capas LSTM bidireccionales que permita predecir la temperatura a lo largo de un día, a partir de los registros de temperatura de las 24 horas anteriores (registrados cada 10 minutos). Script Jenaclim
Auto-regresión basada en ventanas temporales
Ejercicio 4.2: 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 tan solo 13 días. Script SToyModel
Ejercicio 4.3 A partir de las temperaturas registradas durante 4 años (2013-2016) a las 12 de medio día, entrena un modelo de RNN para predecir la temperatura de un día a esa hora, a partir de las temperaturas de los 10 días anteriores (look_back = 10). Utiliza capas LSTM para construir el modelo y Early Stopping. Script Jenaclim24h
Reconocimiento y Predicción de Secuencias de Audio
Ejercicio 4.4. a) Cargar un archivo de audio en formato .mp3, extraer y normalizar la señal del canal izquierdo, dividirla en ventanas de 224 muestras y convertirla en un tensor 3D (samples, timesteps, features), b) Crear los tensores 3D de entrada de un modelo para el reconocimiento y predicción de secuencias de audio (traindatax, valdatax y testdatax) y los vectores de etiquetas correspondientes (traindatay, valdatay y testdatay) a partir de los archivos .mp3, que recogen los cantos de 3 especies de aves: Little Chachalaca, Little Kiwi y Little Tinamou. Ponderar con weight para balancear las categorías, pues hay distinto nº de grabaciones de cada especie. Script Birds
Ejercicio 4.5. Entrenar una RNN para el reconocimiento de 3 especies de aves: Little Chachalaca, Little Kiwi y Little Tinamou a partir de sus cantos. Script Birds
4.2 Procesamiento del Lenguaje Natural (PLN) mediante RNN
Pasos fundamentales
Tokenización
Codificación
Embedding
Operaciones aritméticas con conceptos
Niveles de Abstracción
Procesamiento del Lenguaje Natural con el Conjunto de Datos Reuters
Capa de Embedding
Entrenamiento de una RN para el PLN
Ejercicio 4.6: Entrenar una RNN con capas bidireccionales para predecir las categorías temáticas de noticias de la Agencia de Información Reuters a partir de su contenido textual, optimizando el nº de épocas mediante el guardado del mejor modelo (best model) y el análisis de las curvas de validación. Script Reuters
5 Redes Neuronales Convolucionales (CNN o ConvNets)
5.1 Características y Funcionamiento
5.2 Usos de las ConvNets
5.3 Principales características técnicas
5.3 Clasificación de imágenes con ConvNets
Ejercicio 5.1 a) 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, b) Crear los traindatax, valdatax y testdatax (tensores 4D) a partir de las imágenes contenidas en las carpetas 'train', 'validation' y 'test', y los vectores de las etiquetas correspondientes (traindatay, valdatay y testdatay). Guardar los 6 objetos como archivos individuales en formato .rds, equivalentes a los que se utilizan en los ejercicios 3.5.2 y 3.5.3 con 5 grupos, en vez de 2, y muchas más muestras. Script MmfAqt.
Ejercicio 5.2 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). Testar con otras 100 fotos/grupo con la matriz de confusión y el coeficiente kappa. Script AqMammals.
Ejercicio 5.3. Solos Hacer lo mismo que se hace en los ejercicios 3.5.1 y 3.5.2 para discriminar entre bosque, matorral y playa a partir de fotos de satélite. Script Satellite_IMG.
Ejercicio 5.4 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). Script OptAqMammals.
ImageDataGenerator
Ejercicio 5.5 Entrenar una ConvNet para el reconocimiento de imágenes de delfines y focas (13 muestras de cada grupo), utilizando generadores en vez de tensores, obtenidos con ImageDataGenerator para crearlos directamente a partir de imágenes. Script ImageDataGenerator.
Fecha
- Lunes, 27 Octubre 2025
- Miércoles, 05 Noviembre 2025
Horario
Del lunes 27 de octubre al miércoles 5 de noviembre (21 horas lectivas)
- Clases en directo: lunes a jueves, de 16.30 a 19.30h.
- Clases en diferido: disponibles online hasta el 31 de enero de 2026.
Ubicación
Museo Nacional de Ciencias Naturales
Plazas
20 plazas presenciales
60 en acceso remoto a través de Zoom.
Reserva de plazas en el correo
mcnc104@mncn.csic.es
Se agradece la difusión de esta página en cualquier institución científica en la que pueda interesar
Tarifas
290€