Ponte en Contacto
 Duración 35 horas

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.

Número de participantes


Precio por participante

Reseñas (2)

Próximos cursos

Categorías Relacionadas