Programa del Curso
Parte 1 – Deep Learning y conceptos de DNN
Introducción IA, Machine Learning y Deep Learning
-
Historia, conceptos básicos y aplicaciones habituales de la inteligencia artificial lejos de las fantasías que conlleva este dominio
Inteligencia Colectiva: agregación de conocimiento compartido por muchos agentes virtuales
Algoritmos genéticos: para evolucionar una población de agentes virtuales por selección
Máquina de aprendizaje habitual: 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 de Machine Learning: Regresión lineal, Naive Bayes, Random Tree
Machine learning VS Deep Learning: problemas en los que el Machine Learning sigue siendo hoy el estado del arte (Random Forests & XGBoosts)
Conceptos básicos de una red neuronal (Aplicación: perceptrón multicapa)
-
Recordatorio de bases matemáticas.
Definición de una red de neuronas: arquitectura clásica, activación y
Ponderación de activaciones anteriores, profundidad de una red
Definición del aprendizaje de una red de neuronas: 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...). Maldición de la dimensionalidad.
Distinción entre datos multicaracterística y señal. Elección de una función de coste en función de los datos.
Aproximación de una función por una red de neuronas: presentación y ejemplos
Aproximación de una distribución por una red de neuronas: presentación y ejemplos
Aumento de datos: cómo equilibrar un conjunto de datos
Generalización de los resultados de una red de neuronas.
Inicialización y regularización de una red neuronal: regularización L1/L2, Normalización por lotes
Algoritmos de optimización y convergencia
Herramientas estándar 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 Tools
Aprendizaje automático: Numpy, Scipy, Sci-kit
Marcos de alto nivel de DL: PyTorch, Keras, Lasagne
Frameworks DL de bajo nivel: Theano, Torch, Caffe, Tensorflow
Convolucional Neural Networks (CNN).
-
Presentación de las CNN: principios fundamentales y aplicaciones
Funcionamiento básico de una CNN: capa convolucional, uso de un núcleo,
Relleno y zancada, generación de mapas de entidades, agrupación de capas. Extensiones 1D, 2D y 3D.
Presentación de las diferentes arquitecturas CNN que trajeron el estado del arte en clasificación
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 (Convolución 1x1 o conexiones residuales)
Uso de un modelo de atención.
Aplicación a un caso de clasificación común (texto o imagen)
CNNs para generación: superresolución, segmentación píxel a píxel. Presentación de
Principales estrategias para aumentar los mapas de características para la generación de imágenes.
Recurrente Neural Networks (RNN).
-
Presentación de las RNN: principios fundamentales y aplicaciones.
Funcionamiento básico de la RNN: activación oculta, retropropagación a través del tiempo, versión desplegada.
Evoluciones hacia las Unidades Recurrentes Cerradas (GRUs) y LSTM (Memoria a Largo y Corto Plazo).
Presentación de los diferentes estados y las evoluciones que han traído estas arquitecturas
Problemas de convergencia y gradiente de fuga
Arquitecturas clásicas: Predicción de una serie temporal, clasificación...
Arquitectura de tipo decodificador RNN Encoder. Uso de un modelo de atención.
Aplicaciones de PLN: codificación de palabras/caracteres, traducción.
Aplicaciones de vídeo: predicción de la siguiente imagen generada de una secuencia de vídeo.
Modelos generacionales: Autocodificador Variacional (VAE) y Redes Generativas Adversarias (GAN).
-
Presentación de los modelos generacionales, vinculación con las CNN
Autocodificador: reducción de la dimensionalidad y generación limitada
Autocodificador variacional: modelo generacional y aproximación de la distribución de un determinado producto. Definición y uso del espacio latente. Truco de reparametrización. Aplicaciones y límites observados
Redes Generativas Adversarias: Fundamentos.
Arquitectura de red dual (generador y discriminador) con aprendizaje alternativo, funciones de costo disponibles.
Convergencia de una GAN y dificultades encontradas.
Convergencia mejorada: Wasserstein GAN, Comenzó. Distancia de movimiento de la Tierra.
Aplicaciones para la generación de imágenes o fotografías, generación de textos, superresolución.
Profundo Reinforcement Learning.
-
Presentación del aprendizaje por refuerzo: control de un agente en un entorno definido
Por un 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.
Optimización de la política de aprendizaje. Dentro y fuera de la política. Actor crítico de arquitectura. A3C.
Aplicaciones: control de un solo videojuego o de un sistema digital.
Parte 2 – Theano para Deep Learning
Conceptos básicos de Theano
-
Introducción
Instalación y configuración
Funciones de Theano
-
entradas, salidas, actualizaciones, datos
Entrenamiento y optimización de una red neuronal utilizando Theano
-
Modelado de redes neuronales
Regresión logística
Capas ocultas
Formación de una red
Computación y Clasificación
Optimización
Pérdida de registro
Probar el modelo
Parte 3 – DNN usando Tensorflow
TensorFlow Conceptos básicos
-
Creación, inicialización, guardado y restauración de variables TensorFlow
Alimentación, lectura y precarga TensorFlow de datos
Cómo usar TensorFlow la infraestructura para entrenar modelos a escala
Visualización y evaluación de modelos con TensorBoard
TensorFlow Mecánica
-
Preparar los datos
Descargar
Entradas y marcadores de posición
Compilar el GraphS
Inferencia
Pérdida
Adiestramiento
Del perceptrón a las máquinas de vectores de soporte
-
Los kernels y el truco del kernel
Clasificación de márgenes máximos y vectores de soporte
Artificial Neural Networks
-
Límites de decisión no lineales
Redes neuronales artificiales feedforward y feedback
Perceptrones multicapa
Minimización de la función de coste
Propagación hacia adelante
Propagación hacia atrás
Mejorar la forma en que aprenden las redes neuronales
Convolucional Neural Networks
-
Goals
Arquitectura del modelo
Principios
Organización del código
Lanzamiento y entrenamiento del modelo
Evaluación de un modelo
-
Introducciones básicas que se darán a los siguientes módulos (la breve introducción se proporcionará en función de la disponibilidad de tiempo):
Tensorflow - Uso avanzado
Subprocesos y colas Distribuido TensorFlow Escribir documentación y compartir el modelo Personalización de lectores de datos Manipulación de TensorFlow archivos de modelo
TensorFlow Servir
-
Introducción
Tutorial básico de servicio
Tutorial de servicio avanzado
Tutorial del modelo de inicio de servicio
Requerimientos
Conocimientos de física, matemáticas y programación. Participación en actividades de procesamiento de imágenes.
Los delegados deben tener un conocimiento previo de los conceptos de aprendizaje automático y deben haber trabajado en Python programación y bibliotecas.