Temario del curso
Parte 1 – Conceptos de Aprendizaje Profundo y DNN
Introducción a la IA, el Aprendizaje Automático y el Aprendizaje Profundo
- Historia, conceptos básicos y aplicaciones habituales de la inteligencia artificial, más allá de las fantasías asociadas a esta área
- Inteligencia Colectiva: agregación de conocimiento compartido por muchos agentes virtuales
- Algoritmos genéticos: evolución de una población de agentes virtuales mediante 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, agrupamiento (clustering), estimación de densidad, reducción de dimensionalidad
- Ejemplos de algoritmos de aprendizaje automático: regresión lineal, Naive Bayes, Random Forest
- Aprendizaje automático frente al Aprendizaje Profundo: problemas en los que el aprendizaje automático sigue siendo el estado del arte (Random Forests & XGBoost)
Conceptos Básicos de una Red Neuronal (Aplicación: perceptrón multicapa)
- Repaso de las bases matemáticas
- Definición de una red de neuronas: arquitectura clásica, activación y
- ponderación de activaciones previas, profundidad de la 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, etc.). Maldición de la dimensionalidad
- Distinción entre datos multivariados (multi-feature) y señales. Elección de una función de coste según 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 (Data Augmentation): 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 de Lotes (Batch Normalization)
- Algoritmos de optimización y convergencia
Herramientas estándar de ML / DL
Se prevé una presentación simple con ventajas, desventajas, posición en el ecosistema y uso.
- Herramientas de gestión de datos: Apache Spark, Herramientas de Apache Hadoop
- Aprendizaje Automático: Numpy, Scipy, Sci-kit
- Marcos de alto nivel para DL: PyTorch, Keras, Lasagne
- Marcos de bajo nivel para DL: Theano, Torch, Caffe, TensorFlow
Redes Neuronales Convolucionales (CNN).
- Presentación de las CNNs: principios fundamentales y aplicaciones
- Operación básica de una CNN: capa convolucional, uso de un kernel,
- Relleno (padding) y paso (stride), generación de mapas de características, capas de agrupación (pooling). Extensiones 1D, 2D y 3D
- Presentación de las diferentes arquitecturas de CNN que han logrado el estado del arte en clasificación
- Imágenes: LeNet, Redes VGG, Network in Network, Inception, ResNet. Presentación de las innovaciones introducidas 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 común de clasificación (texto o imagen)
- CNNs para generación: super-resolución, segmentación píxel a píxel. Presentación de
- Estrategias principales para aumentar mapas de características para la generación de imágenes
Redes Neuronales Recurrentes (RNN).
- Presentación de las RNNs: principios fundamentales y aplicaciones
- Operación básica de la RNN: activación oculta, retropropagación a través del tiempo (back propagation through time), versión desenrollada (unfolded)
- Evoluciones hacia las Unidades Recurrentes con Puertas (GRUs) y LSTM (Memoria Corta y Larga)
- Presentación de los diferentes estados y las evoluciones traídas por estas arquitecturas
- Problemas de convergencia y gradiente desvaneciente (vanishing gradient)
- Arquitecturas clásicas: predicción de series temporales, clasificación, etc.
- Arquitectura de tipo Codificador-Decodificador (Encoder-Decoder) RNN. Uso de un modelo de atención
- Aplicaciones de NLP: codificación de palabras / caracteres, traducción
- Aplicaciones de video: predicción de la próxima imagen generada de una secuencia de video
Modelos Generativos: Autoencoder Variacional (VAE) y Redes Adversarias Generativas (GAN).
- Presentación de los modelos generativos, vínculo con las CNNs
- Autoencoder: reducción de dimensionalidad y generación limitada
- Autoencoder Variacional: modelo generativo y aproximación de la distribución de un dato dado. Definición y uso del espacio latente. Truco de reparametrización. Aplicaciones y límites observados
- Redes Adversarias Generativas: fundamentos
- Arquitectura de Red Dual (Generador y Discriminador) con aprendizaje alternado, funciones de coste disponibles
- Convergencia de una GAN y dificultades encontradas
- Convergencia mejorada: Wasserstein GAN, Began. Distancia de Movimiento de Tierra (Earth Mover's Distance)
- Aplicaciones para la generación de imágenes o fotografías, generación de texto, super-resolución
Aprendizaje Profundo por Refuerzo (Deep Reinforcement Learning).
- Presentación del aprendizaje por refuerzo: control de un agente en un entorno definido
- Por un estado y acciones posibles
- Uso de una red neuronal para aproximar la función de estado
- Deep Q Learning: reproducción de experiencias (experience replay) y aplicación al control de un videojuego
- Optimización de la política de aprendizaje. On-policy y off-policy. Arquitectura Actor-Crítico. A3C
- Aplicaciones: control de un solo videojuego o un sistema digital
Parte 2 – Theano para Aprendizaje Profundo
Basics de Theano
- Introducción
- Instalación y Configuración
TheanoFunctions
- entradas, salidas, actualizaciones, condiciones dadas (givens)
Entrenamiento y Optimización de una red neuronal usando Theano
- Modelado de Red Neuronal
- Regresión Logística
- Capas Ocultas
- Entrenamiento de una red
- Cálculo y Clasificación
- Optimización
- Pérdida Logística (Log Loss)
Pruebas del modelo
Parte 3 – DNN usando TensorFlow
Basics de TensorFlow
- Creación, Inicialización, Guardado y Recuperación de variables de TensorFlow
- Alimentación, Lectura y Precarga de Datos de TensorFlow
- Cómo usar la infraestructura de TensorFlow para entrenar modelos a gran escala
- Visualización y Evaluación de modelos con TensorBoard
Mecanismos de TensorFlow
- Preparar los Datos
- Descargar
- Entradas y Placeholders
-
Construir los Grafos (Graphs)
- Inferencia
- Pérdida (Loss)
- Entrenamiento
-
Entrenar el Modelo
- El Grafo
- La Sesión
- Bucle de Entrenamiento
-
Evaluar el Modelo
- Construir el Grafo de Evaluación
- Salida de Evaluación
El Perceptrón
- Funciones de activación
- Algoritmo de aprendizaje del perceptrón
- Clasificación binaria con el perceptrón
- Clasificación de documentos con el perceptrón
- Limitaciones del perceptrón
Del Perceptrón a las Máquinas de Vectores de Soporte
- Kernels y el truco del kernel (kernel trick)
- Clasificación de máximo margen y vectores de soporte
Redes Neuronales Artificiales
- Fronteras de decisión no lineales
- Redes neuronales artificiales feedforward y de retroalimentación
- Perceptrones multicapa
- Minimización de la función de coste
- Propagación hacia adelante (Forward propagation)
- Retropropagación (Back propagation)
- Mejorando la forma en que las redes neuronales aprenden
Redes Neuronales Convolucionales
- Objetivos
- Arquitectura del Modelo
- Principios
- Organización del Código
- Lanzamiento y Entrenamiento del Modelo
- Evaluación de un Modelo
Introducciones básicas a proporcionar para los siguientes módulos (Introducción breve a proporcionar según disponibilidad de tiempo):
TensorFlow - Uso Avanzado
- Hilos y Colas (Threading and Queues)
- TensorFlow Distribuido
- Escritura de Documentación y Compártir su Modelo
- Personalización de Lectores de Datos
- Manipulación de Archivos de Modelo de TensorFlow
Servicio TensorFlow (TensorFlow Serving)
- Introducción
- Tutorial Básico de Servicio
- Tutorial Avanzado de Servicio
- Tutorial de Servicio del Modelo Inception
Requerimientos
Conocimientos previos en física, matemáticas y programación. Experiencia en actividades de procesamiento de imágenes.
Los participantes deben tener un entendimiento previo de los conceptos de aprendizaje automático y haber trabajado con programación en Python y sus bibliotecas.
Reseñas (2)
Fomentar la repetición en la construcción de indicaciones (prompts) entre quienes nunca han utilizado la IA, y animar a los usuarios experimentados a considerar métodos alternativos para su uso.
Matthew Gay - Tarsus Pharmaceuticals
Curso - Artificial Intelligence (AI) Overview
Traducción Automática
La capacitación estuvo bien organizada y planificada, y salí de ella con conocimientos sistemáticos y una buena visión de los temas que abordamos
Magdalena - Samsung Electronics Polska Sp. z o.o.
Curso - Deep Learning with TensorFlow 2
Traducción Automática