Curso: Taller de Aprendizaje Automático | FING

  • General

    Taller de Aprendizaje Automático

    ¡Bienvenidos al curso!

    Descripción

    Esta unidad curricular está diseñada como un segundo curso en aprendizaje automático, en el que se busca brindar herramientas conceptuales y metodológicas para desarrollar proyectos de aprendizaje automático. A lo largo del curso, los estudiantes abordarán problemas concretos, que deberán resolver de punta a punta, usando técnicas de aprendizaje automático. De este modo, pondrán en práctica los conocimientos adquiridos sobre datos reales y problemas relevantes, e incorporarán habilidades importantes para el desarrollo de su actividad profesional. Además de aplicar varias de las técnicas tradicionales de aprendizaje automático, la mayoría de las cuales se asumen conocidas por el estudiante, se estudiarán técnicas más recientes, en particular técnicas de aprendizaje profundo. 

    Metodología

    El curso está organizado en dos clases semanales de dos horas. La mayor parte de las clases serán prácticas, en modalidad de taller. Los estudiantes abordarán problemas específicos utilizando la metodología y las técnicas estudiadas, usando paquetes de software específicos (como Scikit-learn y TensorFlow). También existirán clases teóricas donde se discutirán aspectos conceptuales y metodológicos, así como algunas técnicas de aprendizaje automático.

    Evaluación

    El proceso de evaluación incluye la realización individual de dos entregas de ejercicios y de dos proyectos grupales. Ver descripción detallada aquí.

    Créditos

    10 créditos

    Temario y cronograma

    Ver programa (aquí) y cronograma (aquí).

    Docentes

    Emiliano Acevedo, Diego Belzarena, Guillermo Carbajal, Camilo Mariño, Pablo Musé.

    Recursos

    • El curso está basado en el libro: Hands-on Machine Learning with Scikit-learn, Keras & TensorFlow (3ra edición, 2022) de Aurélien Géron. 
    • Hay una propuesta de ejercicios para cada una de las clases de taller que estará disponible en la forma de un Notebook de Jupyter.
    • El libro tiene una serie de Notebook de Jupyter disponibles en github, algunos de los cuales vamos a usar en clase.

  • Abrir todo

    Cerrar todo

  • Instrucciones: Hacer clic en el nombre de la sección muestra/oculta la sección.

  • 1

    Clases:

    • Clase 1 (martes 5/3): Teórico - Introducción y conceptos fundamentales
      • Contenidos: Introducción al curso. Componentes del problema de aprendizaje. Tipos de aprendizaje. Repaso de conceptos fundamentales: generalización, sobreajuste, compromiso sesgo-varianza, regularización, validación, selección de modelos.
      • Capítulos del libro: 1
    • Clase 2 (jueves 7/3): Teórico - Proyecto de aprendizaje automático
      • ContenidosDefinición del problema, requerimientos de la solución, medidas de desempeño. Manejo, visualización y preparación de datos. Transformación y selección de características. Entrenamiento y selección de modelos. Ajuste fino y evaluación. Despliegue y monitoreo.
      • Capítulos del libro: 2
  • 2

    Clases:

    • Clase 3 (martes 12/3): Taller 1 - Presentación Proyecto 1
      • Contenidos: Se realiza el primer taller. Se presenta el primer proyecto del curso. Se implementan las primeras etapas, con énfasis en la creación de un pipeline de pre-procesado de datos en scikit-learn.
      • Capítulos del libro: 2
    • Clase 4 (jueves 14/3): Teórico - Clasificación y regresión con modelos clásicos
      • ContenidosClasificación con regresión logística y SVM. Descenso por gradiente. Regularización. Clasificación multiclase. Medidas de desempeño: matriz de confusión, precision-recall, curva ROC. Análisis de error.
      • Capítulos del libro: 3 y 4

  • 3

    Clases:

    • Clase 5: Taller - Clasificación con modelos clásicos
      • ContenidosSe consideran diferentes técnicas de pre-procesado de datos y se eligen las más relevantes mediante la selección de hiperparámetros de un pipeline. Se utilizan diferentes métricas para evaluar el desempeño de un clasificador lineal.
      • Capítulos del libro: 3, 4 y 5
    • Clase 6: Teórico - Ensambles de predictores
      • Contenidos: Métodos de combinación de predictores. Voting y bagging. Árboles de decisión y Random forests. Boosting y stacking
      • Capítulos del libro: 6 y 7

  • 4
    Semana de Turismo. No hay clases.

  • 5

    Clases:

    • Clase 7: Taller - Clasificación con ensambles de clasificadores (martes 2/4)
      • Contenidos: Se aplican varios métodos de combinación de clasificadores, como Random forests, AdaBoost y gradient boosting.
      • Capítulos del libro: 6 y 7
    • Clase 8: Teórico - Aprendizaje no supervisado (jueves 4/4)
      • ContenidosReducción de dimensionalidad. Proyección y aprendizaje de variedades. Agrupamiento para pre-procesado de datos y para aprendizaje semi-supervisado. Estimación de densidades para detección de datos anómalos.
      • Capítulos del libro: 8 y 9
  • 6

    Clases:

    • Clase 9: Taller - Ingeniería de características y limpieza de datos (martes 9/4)
      • Contenidos: Se aplican métodos de reducción de dimensionalidad y de agrupamiento como pre-procesado de los datos y se evalúa su impacto en el problema. Se aplican técnicas de detección de datos anómalos.
      • Capítulos del libro: 8 y 9
    • Clase 10: Teórico - Implementación de redes neuronales (jueves 11/4)
      • ContenidosIntroducción al ambiente de trabajo Keras y TensorFlow 2. Implementación de redes multicapa. API secuencial, funcional y dinámica. Selección de hiperparámetros.
      • Capítulos del libro: 10
  • 7

    Clases:

    • Clase 11: Taller - Clasificación con perceptrón mutlicapa
      • Contenidos:  Se implementan redes multicapa poco profundas y se aplican métodos para seleccionar los hiperparámetros. 
      • Capítulos del libro: 10

    • Clase 12: Teórico - Selección de hiperparámetros (jueves 18/4)
      • Contenidos:  Ajuste fino de hiperparámetros: número de capas ocultas, número de neuronas, tasa de aprendizaje, tamaño del lote, función de activación, optimizador, etc.
      • Capítulos del libro10