Nombre del curso: | Análisis con Deep Learning |
Créditos: | 4 |
Profesor: | Haydemar María Nuñez Castro |
Versión PDF | Click Aquí |
Descripción
Las redes neuronales artificiales son una clase de algoritmos de aprendizaje automático, originalmente inspirados en la estructura del cerebro humano, que actualmente están siendo utilizados en muchas aplicaciones prácticas relacionadas con el procesamiento de lenguaje natural, procesamiento de imágenes, modelos generativos, entre otras. Su potencia y capacidad para resolver problemas complejos se basan en la interconexión de capas de neuronas artificiales en diversas arquitecturas. De esta forma, es posible construir modelos compuestos por una jerarquía de funciones que son aprendidas a partir de los datos, dando lugar a lo que se conoce como aprendizaje profundo (deep learning).
En este curso se ilustra cómo las técnicas de deep learning pueden ser utilizadas en la construcción de modelos de conocimiento que apoyen la toma de decisiones, tomando en consideración las características y complejidad de las representaciones de los conjuntos de datos.
Objetivos
Se espera desarrollar y reforzar las siguientes competencias:
- Explicar los fundamentos de las redes neuronales artificiales y el aprendizaje profundo (deep learning).
- Identificar los diferentes parámetros que deben ser optimizados para la construcción de modelos de redes neuronales profundas con buen desempeño.
- Analizar el funcionamiento de algunas arquitecturas de aprendizaje profundo y cómo pueden ser aplicadas para resolver problemas en diferentes contextos, con base en las características del problema.
- Aplicar el proceso de aprendizaje a partir de datos para la construcción de modelos de deep learning con el fin de construir soluciones a casos reales.
- Utilizar herramientas de software para la construcción de modelos de aprendizaje profundo.
- Reconocer las implicaciones éticas en el desarrollo de soluciones a partir de datos.
- Conocer tendencias actuales del deep learning y proyectos de investigación en desarrollo sobre problemas abiertos.
Plan de temas
Módulo 1. Machine learning y redes neuronales. Tipos de aprendizaje y contextos de aplicación. Ciclo de vida de un proyecto basado en datos. Qué es una red neuronal artificial. Características y arquitecturas. Deep learning y el aprendizaje de representación. Modelos neuronales lineales y no lineales. Generalización y complejidad de modelo. Técnicas de selección de modelos
Módulo 2. Construcción de redes neuronales. ¿Cómo entrenar una red neuronal profunda? Definición de la arquitectura de la red. Funciones de activación. Funciones de costo. Optimización y algoritmos de aprendizaje. Control de la complejidad, regularización y ajuste de hiperparámetros Aprendizaje por transferencia.
Módulo 3. Modelos basados en autocodificadores. ¿Qué es un autocodificador? Extracción de características y aprendizaje de espacios latentes. Tipos de autocodificadores. Aspectos de diseño y entrenamiento. Aplicaciones.
Módulo 4. Modelos convolucionales. ¿Qué es una red convolucional? Conceptos básicos. Capas convolucionales y capas de pooling. Aspectos de diseño y entrenamiento. Capas totalmente conectadas. Redes convolucionales para clasificación, detección y segmentación. Aplicaciones.
Módulo 5. Modelos recurrentes y la arquitectura Transformer. Modelos de secuencias. Incrustaciones de palabras (embeddings). Tipos de redes recurrentes. Aspectos de diseño y entrenamiento. Modelos encoder-decoder. Fundamentos de los mecanismos de atención. Arquitectura Transformer. Modelos de lenguaje basados en Transformers. Transformers en visión artificial. Aplicaciones.
Módulo 6. Modelos generativos. ¿Qué es un modelo generativo? El autocodificador variacional (VAE). Redes de adversarios generativas (GAN). Modelos de difusión. Otros modelos neuronales generativos. Aplicaciones.
Módulo 7. Otros tópicos. Tendencias actuales. Aspectos éticos de la Inteligencia Artificial.
Conocimientos previos recomendados.
Nivel intermedio de programación (se recomienda Python). Conocimientos básicos de álgebra lineal, probabilidad y estadística, y optimización numérica.
Metodología
- Clases teóricas dirigidas a la adquisición de conceptos, con discusión de casos de estudio y aplicaciones.
- Actividades prácticas centradas en la experimentación con conjuntos de datos de repositorios públicos, utilizando el lenguaje de programación Python, junto con librerías de deep learning. A lo largo del curso se desarrolla un proyecto definido por los estudiantes.