Temario del curso
Parte 1 – Conceptos de Aprendizaje Profundo y DNN
Introducción a IA, Aprendizaje Automático y Aprendizaje Profundo
- Historia, conceptos básicos y aplicaciones habituales de la inteligencia artificial, más allá de las fantasías asociadas a este dominio
- Inteligencia Colectiva: agregación de conocimiento compartido por muchos agentes virtuales
- Algoritmos genéticos: para evolucionar 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, clustering, estimación de densidad, reducción de dimensionalidad
- Ejemplos de algoritmos de Aprendizaje Automático: Regresión Lineal, Bayes Naive, Árbol Aleatorio (Random Tree)
- Aprendizaje Automático VS Aprendizaje Profundo: problemas en los que el Aprendizaje Automático sigue siendo hoy en día el estado del arte (Random Forests y XGBoosts)
Conceptos Básicos de una Red Neuronal (Aplicación: perceptrón multicapa)
- Recordatorio de las bases matemáticas.
- Definición de una red de neurones: arquitectura clásica, activación y
- Ponderación de activaciones anteriores, profundidad de una red
- Definición del aprendizaje de una red de neurones: funciones de costo, propagación hacia atrás, descenso del 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...). La maldición de la dimensionalidad.
- Distinción entre datos multivariable y señal. Elección de una función de costo según los datos.
- Aproximación de una función por una red neuronal: presentación y ejemplos
- Aproximación de una distribución por una red neuronal: presentación y ejemplos
- Aumento de datos (Data Augmentation): cómo equilibrar un conjunto de datos
- Generalización de los resultados de una red neuronal.
- Inicialización y regularización de una red neuronal: Regularización L1 / L2, Normalización por Lotes (Batch Normalization)
- Algoritmos de optimización y convergencia
Herramientas Estándar de ML / DL
Se planifica 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
- Frameworks de alto nivel para DL: PyTorch, Keras, Lasagne
- Frameworks de bajo nivel para DL: Theano, Torch, Caffe, Tensorflow
Redes Neuronales Convolucionales (CNN).
- Presentación de las CNN: principios fundamentales y aplicaciones
- Funcionamiento básico de una CNN: capa convolucional, uso de un kernel,
- Relleno (Padding) y paso (stride), generación de mapa de características, capas de agrupación. Extensiones 1D, 2D y 3D.
- Presentación de las diferentes arquitecturas de CNN que han alcanzado el estado del arte en clasificación
- Imágenes: LeNet, VGG Networks, 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
- Principales estrategias para aumentar mapas de características en la generación de imágenes.
Redes Neuronales Recurrentes (RNN).
- Presentación de las RNN: principios fundamentales y aplicaciones.
- Funcionamiento básico de la RNN: activación oculta, propagación hacia atrás a través del tiempo, versión desplegada.
- Evoluciones hacia las Unidades Recurrentes con Puerta (GRUs) y LSTM (Memoria a Corto Plazo Largo).
- Presentación de los diferentes estados y las evoluciones introducidas por estas arquitecturas
- Problemas de convergencia y desvanecimiento del gradiente
- Arquitecturas clásicas: Predicción de una serie temporal, clasificación ...
- Arquitectura tipo Codificador-Decodificador RNN. Uso de un modelo de atención.
- Aplicaciones PNL (Procesamiento de Lenguaje Natural): codificación de palabras / caracteres, traducción.
- Aplicaciones de video: predicción de la siguiente imagen generada de una secuencia de video.
Modelos generativos: Autoencoder Variacional (VAE) y Redes Generativas Adversarias (GAN).
- Presentación de los modelos generativos, enlace con las CNNs
- Autoencoder: reducción de dimensionalidad y generación limitada
- Autoencoder Variacional: modelo generativo y aproximación de la distribución de una variable dada. 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.
- Mejora de la convergencia: Wasserstein GAN, Began. Distancia de Movimiento de Tierra.
- Aplicaciones para la generación de imágenes o fotografías, generación de texto, super-resolución.
Aprendizaje Profundo por Refuerzo.
- Presentación del aprendizaje por refuerzo: control de un agente en un entorno definido
- Mediante un estado y acciones posibles
- Uso de una red neuronal para aproximar la función de estado
- Deep Q Learning: memoria de experiencia y aplicación al control de un videojuego.
- Optimización de la política de aprendizaje. On-policy && off-policy. Arquitectura Actor-crítico. A3C.
- Aplicaciones: control de un videojuego único o de un sistema digital.
Parte 2 – Theano para el Aprendizaje Profundo
Fundamentos de Theano
- Introducción
- Instalación y Configuración
Funciones de Theano
- entradas, salidas, actualizaciones, givens (valores fijos)
Entrenamiento y Optimización de una red neuronal usando Theano
- Modelado de Red Neuronal
- Regresión Logística
- Capas Ocultas
- Entrenar una red
- Cálculo y Clasificación
- Optimización
- Pérdida Logarítmica (Log Loss)
Prueba del modelo
Parte 3 – DNN usando Tensorflow
Fundamentos de TensorFlow
- Creación, Inicialización, Guardado y Restauración de variables de TensorFlow
- Alimentación, Lectura y Precarga de Datos de TensorFlow
- Cómo utilizar la infraestructura de TensorFlow para entrenar modelos a gran escala
- Visualización y Evaluación de modelos con TensorBoard
Mecánica de TensorFlow
- Preparar los Datos
- Descargar
- Entradas y Placeholders (Marcadores de posición)
-
Construir los Grafos
- Inferencia
- Pérdida (Loss)
- Entrenamiento
-
Entrenar el Modelo
- El Grafo
- La Sesión
- Bucle de Entrenamiento (Train Loop)
-
Evaluar el Modelo
- Construir el Grafo de Evaluación (Eval Graph)
- Salida de Evaluación (Eval Output)
El Perceptrón
- Funciones de activación
- El 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 (SVM)
- Kernels y el truco del kernel
- Clasificación de margen máximo y vectores de soporte
Redes Neuronales Artificiales
- Límites de decisión no lineales
- Redes neuronales artificiales de alimentación hacia adelante y retroalimentación
- Perceptrones multicapa
- Minimización de la función de costo
- Propagación hacia adelante
- Propagación hacia atrás (Back propagation)
- Mejora de 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 que se impartirán en los siguientes módulos (Breve introducción proporcionada según disponibilidad de tiempo):
Tensorflow - Uso Avanzado
- \r Hilo (Threading) y Colas (Queues)
- TensorFlow Distribuido
- Escritura de Documentación y Compartir tu Modelo
- Personalización de Lectores de Datos
- Manipulación de Archivos del Modelo de TensorFlow
Serving de TensorFlow
- Introducción
- Tutorial Básico de Serving
- Tutorial Avanzado de Serving
- Tutorial de Serving del Modelo Inception
Requerimientos
Antecedentes en física, matemáticas y programación. Participación en actividades de procesamiento de imágenes.
Los participantes deben tener un conocimiento previo de los conceptos de aprendizaje automático y haber trabajado con la programación en Python y sus bibliotecas.
Reseñas (2)
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
Me gustó mucho el final donde tuvimos la oportunidad de experimentar con CHAT GPT. La sala no estaba muy bien preparada para esto; en lugar de una gran mesa, varias mesas pequeñas nos habrían permitido formar grupos pequeños y generar ideas de manera más efectiva.
Nola - Laramie County Community College
Curso - Artificial Intelligence (AI) Overview
Traducción Automática