Durante el primer cuatrimestre se desarrollará en la FICH la segunda edición del curso optativo «Aprendizaje Profundo» (Deep Learning), que será dictado por docentes e investigadores del Instituto de Investigación en Señales, Sistemas e Inteligencia Computacional, sinc(i), de UNL-CONICET. 

El curso cuenta con un programa para grado (Ingeniería en Informática) y uno para posgrado (Doctorado en Ingeniería). Comenzará el 15 de marzo y será dictado los miércoles de 14 a 18 h bajo modalidad presencial. 

Se deberá contar con conocimientos de programación en Python, análisis matemático en múltiples variables y álgebra lineal. Adicionalmente, se espera que los/as asistentes cuenten con conocimientos básicos en aprendizaje automático.

Quienes estén interesados/as en realizarlo, se solicita realizar la inscripción correspondiente para su carrera de grado/posgrado y además preinscribirse en este formulario: https://forms.gle/6GungKvxFbL2tnLt6

Por consultas escribir a: eferrante@sinc.unl.edu.ar o dmilone@sinc.unl.edu.ar

Objetivos

Durante las últimas décadas se ha desencadenado un proceso masivo de producción de datos: imágenes capturadas con teléfonos celulares, información de geolocalización por GPS, señales de audio, estudios médicos o perfiles de compra en línea, entre muchos otros. Interpretar dichos datos en la actualidad es posible gracias al desarrollo de métodos de aprendizaje automático (o «machine learning», en inglés). Un tipo particular de métodos de aprendizaje automático conocido como aprendizaje profundo (o «deep learning» en inglés), ha revolucionado el mundo de las ciencias de la computación en los últimos años y desplazado las fronteras del estado del arte en problemas tan diversos como la detección de objetos en imágenes o el reconocimiento automático del habla.

El objetivo general de este curso es brindar a los/as estudiantes los conceptos teóricos fundamentales y las herramientas prácticas necesarias para construir sus propios modelos profundos para el análisis de datos. En particular, se espera que al finalizar el curso los/as alumnos/as sean capaces de:

a) comprender los conceptos básicos y algoritmos fundamentales de derivación automática que permiten implementar modelos profundos de redes neuronales;

b) diseñar sus propias arquitecturas profundas de redes neuronales en base a los modelos del estado del arte para resolver problemas en diversos campos de aplicación como el análisis de imágenes, audio y texto;

c) implementar sus propios modelos haciendo uso de frameworks de derivación automática actuales.

Programa

Unidad 1: Introducción al aprendizaje profundo
Diferencias entre Inteligencia Artificial, Aprendizaje Automático y Aprendizaje Profundo. Aplicaciones del aprendizaje profundo. Buenas prácticas en aprendizaje automático. Repaso de arquitecturas básicas: perceptrón simple y perceptrón multicapa. Algoritmo de retropropagación. Optimización por gradiente descendiente.

Unidad 2: Derivación automática
Derivación automática y algoritmo de retropropagación. Grafos de cómputo estáticos y dinámicos. Introducción a PyTorch.

Unidad 3: Redes Neuronales Convolucionales
Redes neuronales inspiradas en el sistema visual. Concepto de convolución. Redes neuronales convolucionales (RNC). Operaciones de pooling. RNC para clasificación de imágenes.

Unidad 4: Métodos avanzados de entrenamiento de redes neuronales
Grafos de cómputo estáticos y dinámicos. Métodos de regularización. Dropout. Normalización de lotes. Métodos de inicialización. Variantes del gradiente descendente: adaptativo, con momento y por mini-lotes.

Unidad 5: Redes Neuronales para la segmentación de imágenes
Métodos clásicos de segmentación de imágenes. RNC para segmentación. Redes totalmente convolucionales. Métricas para evaluar la calidad de la segmentación.

Unidad 6: Redes recurrentes y procesamiento de datos secuenciales
Redes recurrentes. Algoritmo de retropropagación en el tiempo. LSTM. GRU.

Unidad 7: Autocodificadores y modelos generativos
Técnicas clásicas de reducción de dimensionalidad. Autocodificadores por eliminación de ruido. Autocodificadores variacionales. Modelos generativos adversarios.

Unidad 8: Redes Neuronales para el procesamiento del lenguaje natural
Introducción al procesamiento del lenguaje natural. Vectorización por frecuencia. Embeddings clásicos con redes neuronales (Word2vec) y embeddings contextuales. Medidas de similaridad.

Unidad 9: Transformers y mecanismos de atención
Mecanismos de atención y módulos de autoatención. Masked language model. Clasificación, segmentación y traducción con transformers. Modelos pre-entrenados: GPT y BERT. Transformers en computer vision y otras áreas. Atención local, atención lineal y otras variantes.

Unidad 10: Redes neuronales en grafos
Introducción a las redes neuronales en grafos. Convoluciones espaciales y espectrales. Aproximaciones polinómicas. Operaciones de pooling en grafos.

Unidad 11: Tópicos selectos de aprendizaje profundo
Transferencia de aprendizaje y adaptación de dominio. Métodos básicos de interpretabilidad en redes neuronales. Equidad algorítmica y aprendizaje profundo