Programa del Curso
El curso se divide en tres días separados, el tercero es opcional.
Día 1 - Machine Learning y Deep Learning: Conceptos teóricos
1. Introducción IA, Machine Learning y Deep Learning
- Historia, conceptos fundamentales y aplicaciones habituales de la inteligencia artificial alejadas de las fantasías que conlleva este campo
- Inteligencia colectiva: agregación de conocimiento compartido por muchos agentes virtuales
- Algoritmos genéticos: evolución de una población de agentes virtuales por selección
- Machine Learning Usual: definición.
- Tipos de tareas: aprendizaje supervisado, aprendizaje no supervisado, aprendizaje por refuerzo
- Tipos de acciones: clasificación, regresión, clustering, estimación de densidad, reducción de dimensionalidad
- Ejemplos de algoritmos Machine Learning: Regresión lineal, Naive Bayes, Random Tree
- Aprendizaje automático VS Deep Learning: problemas en los que el Machine Learning sigue siendo el estado del arte hoy en día (Random Forests y XGBoosts)
2. Conceptos fundamentales de una red neuronal (Aplicación: perceptrón multicapa)
- Recordatorio de conceptos básicos matemáticos.
- Definición de una red neuronal: arquitectura clásica, funciones de activación y ponderación de activaciones anteriores, profundidad de una red
- Definición de entrenamiento de redes neuronales: funciones de coste, retropropagación, descenso de gradiente estocástico, máxima verosimilitud.
- Modelado de una red neuronal: modelado de datos de entrada y salida según el tipo de problema (regresión, clasificación, etc.). Maldición de la dimensionalidad. Distinción entre datos multifunción y señal. Elección de una función de coste en función de los datos.
- Aproximación de una función mediante una red neuronal: presentación y ejemplos
- Aproximación a una distribución por una red neuronal: presentación y ejemplos
- Aumento de datos: cómo equilibrar un conjunto de datos
- Generalización de los resultados de una red neuronal.
- Inicializaciones y regularizaciones de una red neuronal: regularización L1/L2, Batch Normalization, etc.
- Optimizaciones y algoritmos de convergencia.
3. Herramientas habituales de ML/DL
Se planifica una presentación sencilla con ventajas, desventajas, posición en el ecosistema y uso.
- Herramientas de gestión de datos: Apache Spark, Apache Hadoop
- Herramientas comunes Machine Learning: Numpy, Scipy, Sci-kit
- Marcos de DL de alto nivel: PyTorch, Keras, Lasagna
- Frameworks DL de bajo nivel: Theano, Torch, Caffe, Tensorflow
Día 2 - Redes convolucionales y recurrentes
4. Convolucional Neural Networks (CNN).
- Presentación de las CNN: principios fundamentales y aplicaciones
- Funcionamiento fundamental de una CNN: capa convolucional, uso de un kernel, padding & stride, generación de mapas de características, capas de agrupación. Extensiones 1D, 2D y 3D.
- Presentación de las diferentes arquitecturas CNN que han aportado el estado del arte en clasificación de imágenes: LeNet, VGG Networks, Network in Network, Inception, Resnet. Presentación de las innovaciones aportadas por cada arquitectura y sus aplicaciones más globales (1x1 convolución o conexiones residuales)
- Uso de un modelo de atención.
- Aplicación a un escenario de clasificación común (texto o imagen)
- CNNs para generación: segmentación de píxel a píxel de superresolución. Una descripción general de las principales estrategias para aumentar los mapas de características para la generación de imágenes.
5. Recurrente Neural Networks (RNN).
- Presentación de RNNs: principios fundamentales y aplicaciones.
- Cómo funciona la RNN: activación oculta, propagación hacia atrás en el tiempo, versión desplegada.
- Evolución hacia GRU (Unidades Recurrentes Cerradas) y LSTM (Memoria a Corto Plazo). Presentación de los diferentes estados y las evoluciones que han traído estas arquitecturas
- Problemas de convergencia y desaparición de gradientes
- Tipos de arquitecturas clásicas: Predicción de una serie temporal, clasificación, etc.
- Arquitectura del decodificador RNN Encoder. Uso de un modelo de atención.
- Aplicaciones de PLN: codificación de palabras/caracteres, traducción.
- Aplicaciones de vídeo: predice el siguiente fotograma generado de una secuencia de vídeo.
Día 3 - Modelos generacionales y Reinforcement Learning
6. Modelos generacionales: Autocodificador Variacional (VAE) y Redes Generativas Adversarias (GAN).
- Presentación de modelos generacionales, vinculación con CNNs vistos en el día 2
- Autocodificador: reducción de dimensionalidad y generación limitada
- Autocodificador variacional: modelo generacional y aproximación de la distribución de un dato. Definición y uso del espacio latente. Truco de reparametrización. Aplicaciones y limitaciones observadas
- Redes generativas adversarias: Fundamentos. Arquitectura de dos retículas (generador y discriminador) con aprendizaje alternativo, funciones de costo disponibles.
- Convergencia de una GAN y dificultades encontradas.
- Convergencia mejorada: GAN de Wasserstein, BeGAN. Distancia de movimiento de la Tierra.
- Aplicaciones para la generación de imágenes o fotos, generación de texto, super-
resolución.
7. Profundo Reinforcement Learning.
- Información general sobre el aprendizaje por refuerzo: control de un agente en un entorno definido por el estado y posibles acciones
- Uso de una red neuronal para aproximar la función de estado
- Deep Q Learning: experiencia de repetición, y aplicación al control de un videojuego.
- Optimizaciones de la política de aprendizaje. Dentro y fuera de la política. Actor crítico de arquitectura. A3C.
- Aplicaciones: control de un simple videojuego o de un sistema digital.
Requerimientos
Level ingénieur