Temario del curso
Parte 1 – Conceptos de aprendizaje profundo y redes neuronales profundas (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 este campo.
- Inteligencia colectiva: agregación del conocimiento compartido por múltiples agentes virtuales.
- Algoritmos genéticos: evolución de una población de agentes virtuales mediante selección.
- Máquina de aprendizaje común: definición.
- Tipos de tareas: aprendizaje supervisado, aprendizaje no supervisado y aprendizaje por refuerzo.
- Tipos de acciones: clasificación, regresión, agrupamiento (clustering), estimación de densidad y reducción de dimensionalidad.
- Ejemplos de algoritmos de aprendizaje automático: regresión lineal, Naive Bayes, árboles aleatorios.
- Aprendizaje automático vs. aprendizaje profundo: problemas en los que el aprendizaje automático sigue siendo el estado del arte (Random Forests y XGBoosts).
Conceptos básicos de una red neuronal (Aplicación: perceptrón multicapa)
- Repaso de las bases matemáticas.
- Definición de una red neuronal: arquitectura clásica, activación y
- Ponderación de activaciones previas y profundidad de la red.
- Definición del aprendizaje en una red neuronal: funciones de costo, retropropagación, descenso de gradiente estocástico y 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 multifactoriales y señales. Elección de una función de costo según los datos.
- Aproximación de una función mediante una red neuronal: presentación y ejemplos.
- Aproximación de una distribución mediante 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.
- 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 prevé una presentación sencilla que aborde ventajas, desventajas, posición en el ecosistema y casos de 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 aprendizaje profundo: PyTorch, Keras, Lasagne.
- Frameworks de bajo nivel para aprendizaje profundo: 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 núcleo (kernel),
- Relleno (padding) y paso (stride), generación de mapas de características y capas de agrupación (pooling). Extensiones 1D, 2D y 3D.
- Presentación de las diferentes arquitecturas CNN que han alcanzado el estado del arte en clasificación.
- Imágenes: LeNet, redes VGG, Network in Network, Inception, ResNet. Presentación de las innovaciones aportadas por cada arquitectura y sus aplicaciones más amplias (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: superresolución, segmentación pixel a pixel. Presentación de
- Principales estrategias para aumentar los 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, retropropagación a través del tiempo y versión desplegada.
- Evoluciones hacia las unidades recurrentes con compuertas (GRUs) y las redes de memoria a corto y largo plazo (LSTM).
- Presentación de los diferentes estados y las evoluciones aportadas por estas arquitecturas.
- Problemas de convergencia y desvanecimiento del gradiente.
- Arquitecturas clásicas: predicción de series temporales, clasificación, etc.
- Arquitectura tipo codificador-descodificador (Encoder-Decoder) con RNN. Uso de un modelo de atención.
- Aplicaciones en procesamiento del lenguaje natural (NLP): codificación de palabras o caracteres, traducción.
- Aplicaciones en video: predicción de la siguiente imagen generada en una secuencia de video.
Modelos generativos: Autoencoder Variacional (VAE) y Redes Generativas Antagónicas (GAN).
- Presentación de los modelos generativos y su vínculo con las CNN.
- Autoencoder: reducción de dimensionalidad y generación limitada.
- Autoencoder variacional: modelo generativo y aproximación de la distribución de un conjunto de datos dado. Definición y uso del espacio latente. Truco de reparametrización. Aplicaciones y limitaciones observadas.
- Redes Generativas Antagónicas (GAN): fundamentos.
- Arquitectura de red dual (generador y discriminador) con aprendizaje alternado y funciones de costo disponibles.
- Convergencia de una GAN y dificultades encontradas.
- Mejora de la convergencia: Wasserstein GAN, Began. Distancia de transporte de masa (Earth Moving Distance).
- Aplicaciones para la generación de imágenes o fotografías, generación de texto y superresolución.
Aprendizaje por refuerzo profundo.
- 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: reproducción de experiencia 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 de un sistema digital.
Parte 2 – Theano para aprendizaje profundo
Fundamentos de Theano
- Introducción.
- Instalación y configuración.
Funciones de Theano
- entradas, salidas, actualizaciones, givens.
Entrenamiento y optimización de una red neuronal usando Theano
- Modelado de redes neuronales.
- 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
Fundamentos de TensorFlow
- Creación, inicialización, guardado y restauración de variables en TensorFlow.
- Alimentación, lectura y precarga de datos en TensorFlow.
- Cómo utilizar la infraestructura de TensorFlow para entrenar modelos a escala.
- Visualización y evaluación de modelos con TensorBoard.
Mecánica de TensorFlow
- Preparación de los datos.
- Descarga.
- Entradas y marcadores de posición (placeholders).
-
Construcción de los grafos.
- Inferencia.
- Pérdida (Loss).
- Entrenamiento.
-
Entrenamiento del modelo.
- El grafo.
- La sesión.
- Bucle de entrenamiento.
-
Evaluación del modelo.
- Construcción del 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 (SVM)
- Núcleos (kernels) y el truco del núcleo.
- Clasificación con margen máximo y vectores de soporte.
Redes neuronales artificiales
- Límites de decisión no lineales.
- Redes neuronales artificiales con propagación hacia adelante y retroalimentación.
- Perceptrones multicapa.
- Minimización de la función de costo.
- Propagación hacia adelante.
- Retropropagación.
- Mejora de la forma en que las redes neuronales aprenden.
Redes neuronales convolucionales
- Objetivos.
- Arquitectura del modelo.
- Principios.
- Organización del código.
- Inicialización y entrenamiento del modelo.
- Evaluación de un modelo.
Introducciones básicas a los siguientes módulos (se proporcionará una breve introducción según la disponibilidad de tiempo):
TensorFlow – Uso avanzado
- Hilos y colas.
- TensorFlow distribuido.
- Escritura de documentación y compartición del modelo.
- Personalización de lectores de datos.
- Manipulación de archivos de modelos de TensorFlow.
TensorFlow Serving
- Introducción.
- Tutorial básico de Serving.
- Tutorial avanzado de Serving.
- Tutorial de Serving del modelo Inception.
Requerimientos
Se requiere conocimientos previos en física, matemáticas y programación, así como experiencia en actividades de procesamiento de imágenes.
Los participantes deben tener una comprensión previa de los conceptos de aprendizaje automático y haber trabajado con programación en Python y sus bibliotecas.
Testimonios (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