2019-19

Semestre 2019-19

 

Course Name: Machine Learning Techniques: Perfomance and Applicability
Créditos: 4
Profesor: Haydemar María Nuñez Castro

Descripción

El curso aborda los fundamentos y técnicas del aprendizaje automático (machine learning), con énfasis en las redes neuronales artificiales y el aprendizaje profundo (deep learning). Igualmente, trata sobre cómo utilizar, de manera efectiva, los algoritmos de aprendizaje en una diversidad de dominios, tomando en cuenta la naturaleza del problema y los recursos informáticos disponibles

Contenido

El aprendizaje automático (machine learning) es un área de la inteligencia artificial (IA) que se dedica al estudio y desarrollo de algoritmos para dotar a una máquina de la capacidad de aprender de forma autónoma a partir de datos. Actualmente, es parte integral de muchos proyectos de investigación y productos comerciales en una gran diversidad de áreas. Un asunto clave para el desarrollo de aplicaciones exitosas basadas en este paradigma de la IA, es disponer de un conocimiento sólido sobre cómo funcionan los algoritmos de aprendizaje y cuáles son los aspectos esenciales que hay que tomar en cuenta para la construcción de modelos. El objetivo general de este curso es proporcionar los fundamentos del aprendizaje automático, con énfasis en las técnicas basadas en redes neuronales artificiales y el aprendizaje profundo (deep learning). Asimismo, persigue desarrollar en el participante las competencias requeridas para utilizar las técnicas de aprendizaje en una diversidad de dominios de aplicación.

El curso se iniciará con la exposición de los conceptos teóricos del aprendizaje artificial: tipos de aprendizaje (supervisado, semi-supervisado, no supervisado, por refuerzo); se explicará en qué consiste un algoritmo de aprendizaje y se presentarán los tópicos relacionados con generalización, sobreajuste, complejidad o capacidad, trade-off bias-varianza, hiperparámetros y regularización, así como las técnicas de selección de modelos, métricas de evaluación y curvas de aprendizaje. Se describirán algunos algoritmos, tales como máquinas de vectores de soporte, métodos bayesianos y la combinación de modelos (ensembles), y cómo aplicarlos en diferentes contextos, tomando en cuenta la naturaleza del problema, las características de los datos y los recursos informáticos disponibles.

A continuación, se presentarán los temas relacionados con las redes neuronales artificiales (ANN), a saber: características de una red neuronal, tipos de neuronas y funciones de activación, modelos supervisados lineales y no lineales, algoritmos de aprendizaje, así como aspectos de diseño y control de la complejidad. También se explicarán modelos no supervisados y recurrentes.

Por último, se expondrán los conceptos asociados a las redes neuronales profundas (DNN): ¿qué es el aprendizaje de representación? ¿Cómo entrenar redes profundas? Aspectos de regularización para DNN y algunos tipos de DNN: autocodificadores (autoencoders), redes de creencia profundas (deep belief nets), redes neuronales convolucionales (convolutional neural networks) y redes neuronales recurrentes (recurrent neural networks). El curso finaliza con la presentación de otras arquitecturas basadas en el aprendizaje profundo, así como tendencias y aplicaciones actuales del machine learning.

El curso está estructurado sobre dos componentes: uno teórico, orientado a la adquisición de conceptos, discusión de casos de estudio y aplicaciones (por ejemplo, las relacionadas con visión artificial, procesamiento del lenguaje natural y series de tiempo, entre otras); uno práctico, basado en el desarrollo de actividades con conjuntos de datos de repositorios públicos, utilizando el lenguaje de programación Python, junto con librerías de machine learning y deep learning.

Conocimientos previos

Nivel intermedio de programación (se recomienda Python). Conocimientos básicos de álgebra lineal, probabilidad y estadística, y optimización numérica.

Bibliografía recomendada

[1] Aggarwal, C. (2018). Neural Networks and Deep learning. A textbook. Springer.
[2] Geron, A. (2017). Hands-On Machine Learning with Scikit-Learn and TensorFlow. Concepts, Tools, and Techniques to Build Intelligent Systems. O’Reilly Media, Inc.
[3] Goodfellow, I., Bengio, Y., Courville, A. (2016). Deep Learning. MIT Press.
[4] Yaser S. Abu-Mostafa, Malik Magdon-Ismail, Hsuan-Tien Lin. (2012). Learning from Data. A Short Course. AMLBook.com.
[5] Artículos de revistas y congresos especializados.