Logo UAB
2023/2024

Aprendizaje Profundo

Código: 44737 Créditos ECTS: 6
Titulación Tipo Curso Semestre
4318303 Investigación e Innovación en Ciencia e Ingeniería Basadas en Computadores OT 0 2

Contacto

Nombre:
Debora Gil Resina
Correo electrónico:
debora.gil@uab.cat

Idiomas de los grupos

Puede consutarlo a través de este enlace. Para consultar el idioma necesitará introducir el CÓDIGO de la asignatura. Tenga en cuenta que la información es provisional hasta el 30 de noviembre del 2023.


Prerrequisitos

Se recomienda que el alumno tenga conocimientos y capacidades de:

  • Programación en el lenguaje de programación Python
  • Procesamiento de Señal, Imagen y Vídeo
  • Análisis estadístico

Objetivos y contextualización

Esta asignatura tiene como objetivo dar una introducción práctica a los modelos de redes neuronales y el aprendizaje profundo.

Los estudiantes consolidarán y ampliarán sus antecedentes teóricos, construyendo sobre temas anteriores sobre aprendizaje automático y complementando el conocimiento previo con nuevos conceptos sobre diseño de redes neuronales, marcos de aprendizaje profundo y el proceso de capacitación para dichos modelos.

Los estudiantes terminarán esta asignatura teniendo un amplio conocimiento de las diferentes arquitecturas de redes neuronales y sus escenarios de uso típicos, y una capacidad demostrada para elegir críticamente la arquitectura adecuada y los mecanismos de entrenamiento para cada tarea.

Finalmente, los estudiantes recibirán capacitación práctica y adquirirán experiencia práctica en el uso de marcos actuales de aprendizaje profundo para resolver tareas específicas.


Resultados de aprendizaje

  • CA18 (Competencia) Capacidad para diseñar la arquitectura más adecuada de red neuronal para la resolución de un determinado problema.
  • CA19 (Competencia) Diseñar soluciones computacionales en múltiples dominios relacionados con toma de decisiones basada en la exploración de alternativas, razonamiento incierto y la planificación de tareas.
  • KA23 (Conocimiento) Describir la estructura de las redes neuronales convolucionales y recurrentes y en qué entornos es más favorable usarlas.
  • KA24 (Conocimiento) Describir los diferentes modelos de estructuración y representación de datos.
  • KA25 (Conocimiento) Describir técnicas avanzadas de manejo de redes neuronales como son el refuerzo de aprendizaje, así como poder visualizar de manera adecuada los resultados intermedios del procesado.
  • SA31 (Habilidad) Resolver problemas relacionados con el análisis de grandes volúmenes de datos a través del diseño de sistemas inteligentes y del empleo de técnicas de aprendizaje computacional.
  • SA32 (Habilidad) Aplicar sistemas de aprendizaje profundo basados en redes neuronales para poder Resolver problemas concretos.
  • SA33 (Habilidad) Seleccionar la arquitectura de red neuronal más adecuada según los datos disponibles que permita obtener los resultados esperados.
  • SA34 (Habilidad) Emplear de manera adecuada sistemas de visualización de redes neuronales para poder evaluar posibles optimizaciones que mejoren el rendimiento del sistema.

Contenido

Introducción a las redes neuronales: Perceptron, función de loss, training, back propagation.

Introducción a las redes neuronales convolucionales (deep learning): arquitecturas de clasificación, arquitecturas de segmentación (Unet), fine tunning.

Validación de modelos: métricas fidedignas, detección de bias en los modelos, problemas desbalanceados, nivel de generalización de los modelos. Explainability: mapas de activación y de atención.

Tratamiento de series temporales: redes recurrentes (LSTMs), transformers (traductores, visual transformers), arquitecturas backbone

Unsupervised learning, autoencoders y detección de anomalías.

Modelos generativos, adversarial Networks, variational autoencoders.

Metric Learning (triplet loss, Barlow twins), one-shot approaches, Siamese networks. 


Metodología

El curso seguirá una metodología docente de aprendizaje llamada Aprendizaje Basado en Proyectos (ABP). La metodología ABP pretende potenciar y motivar al estudiante en su aprendizaje. Se formarán grupos de entre 5 y 6 estudiantes a los que se les encargará la realización de un conjunto de proyectos (de tamaño medio) a lo largo del semestre. Se hará un seguimiento semanal y tutorización tanto grupal como individual de los estudiantes

Los proyectos son fijados por el profesorado de forma que cumpla las siguientes condiciones: ser lo más real posible; ser tratable mediante herramientas elementales; no tener asociado un algoritmo de solución standard.

Por otra parte, es esencial entender que no se trata de encontrar un algoritmo que funcione en el 100 x 100 de los casos -a menudo no existe tal cosa- sinosimplemente de "dar una propuesta de solución razonable".

Los proyectos deben desarrollar cada equipo con la máxima autonomía posible. Cada equipo tendrá asignado un tutor que seguirá la evolución pero en principio se abstendrá de imponer sus ideas. Por otra parte, el estudiante debe tener claro que no se trata de buscar la 'solución' del problema en otros lugares, sino de hacer una aportación original. Esto no quiere decir que haya que renunciar a la información que pueda existir en la bibliografía o en Internet; pero cuando se haga uso hay que tener informado el profesor y explicarlo en la memoria.

La realización del proyecto debe terminar en un programa y una memoria final. Además de entregarla en forma escrita, los resultados de esta memoria serán objeto de una exposición oral. Una y otra, memoria escrita y exposición oral, deben ir dirigidas principalmente a la entidad, seguramente hipotética, que habría propuesto el problema. Por regla general, los tecnicismos serán relegados a apartados concretos de la memoria escrita.

En las presentaciones orales de los proyectos se espera que asistan toda la clases, y que estos intervengan mediante preguntas y observaciones.

Nota: se reservarán 15 minutos de una clase dentro del calendario establecido por el centro o por la titulación para que el alumnado rellene las encuestas de evaluación de la actuación del profesorado y de evaluación de la asignatura o módulo.


Actividades

Título Horas ECTS Resultados de aprendizaje
Tipo: Dirigidas      
Explicaciones Teóricas 10 0,4 CA18, KA23, SA32, CA18
Tipo: Supervisadas      
Resolución de Problemas en Grupos 20 0,8 CA18, CA19, KA23, KA24, KA25, SA31, SA32, SA33, SA34, CA18
Tipo: Autónomas      
Trabajo Autónomo 115 4,6 CA18, CA19, KA23, KA24, KA25, SA31, SA32, SA33, SA34, CA18

Evaluación

Dado que la mayor parte del trabajo gira en torno a un conjunto de proyectos que se desarrolla a lo largo de todo el curso, la evaluación tiene un carácter continuado, y su resultado final no es recuperable.

 

Metodología de Evaluación

Se evaluarán las actas que el grupo escribirá después de cada sesión tutorizada, en la que describirán sus discusiones y acuerdos y las encuestas de autoevaluación que cada alumno hará de sus compañeros y de él mismo. Al final de cada proyecto los estudiantes se hará una presentación oral del proyecto y entregarán una memoria del trabajo realizado. Ambos serán evaluados por parte de los profesores de la asignatura sean o no los tutores. Los estudiantes no realizarán ningún examen escrito. 

Para la evaluación se utilizarán los siguientes INSTRUMENTOS y ACTIVIDADES:

  • Una evaluación hecha por los profesores a partir de la presentación de los proyectos realizado por el grupo (calidad del trabajo, presentación, memoria entregada). Nota Grupal (0 a 10) A partir de:

    • PORTAFOLIO DEL ALUMNO: Documento donde se explica el desarrollo del trabajo hecho: planteamiento del proyecto, actas de reuniones, información buscada, explicación de la aplicación implementada con un pequeño manual de usuario y pruebas y tests realizados.

    • PRESENTACIÓN: Presentación oral en 5-7 transparencias sobre el proyecto desarrollado y resultados obtenidos.

    • APLICACIÓN: programa desarrollado.

    • ACTOS Y CONTROLES: Presentación de la documentación entregada.

  • Una evaluación individual a partir de las observaciones hechas por los tutores en las sesiones tutorizadas, donde se tendrá en cuenta la actitud, iniciativa, participación, asistencia y puntualidad del alumno en las sesiones de grupo. Nota Individual (0 a 10).

  • Encuestas de co-evaluación y autoevaluación entre los miembros del grupo al final de cada proyecto. Nota Coevaluación Compañeros (0 a 10).

  • Las presentaciones orales se realizan ante los alumnos y los grupos valorarán el trabajo de sus compañeros a modo de ranking El grupo que quede en 1ª posición recibirá 10 puntos, el 2º 8 puntos y así sucesivamente.  Nota Coevaluación Clase (0 a 10).

 

Calificaciones

Cada proyecto tendrá una nota que se calculará de la siguiente manera: 

Nota Proyecto = 0,5 * Nota Grupal + 0,3 * Nota Individual + 0,1 * Nota Coevaluación Compañeros + 0,1 * Nota Coevaluación Clase

 

La nota final saldrá del la media ponderada de los proyectos realizados. La ponderación será la misma para todos los proyectos 

 


Actividades de evaluación continuada

Título Peso Horas ECTS Resultados de aprendizaje
Nota Coavaluación Clase 10% 0 0 CA19, SA31
Nota Coavaluación Compañeros 10% 0 0 SA31, SA32, SA33
Nota Individual 30% 0 0 CA18, CA19, KA23, KA24, KA25, SA31, SA32, SA33, SA34
Nota grupal 50% 5 0,2 CA18, CA19, KA23, KA24, KA25, SA31, SA32, SA33, SA34

Bibliografía

Books

Deep Learning, Ian Goodfellow, Yoshua Bengio, and Aaron Courville, MIT Press, 1st Ed. 2016

Deep learning with Python, François Chollet, Manning Publications, 1st Ed., 2017

Pattern Recognition and Machine Learning, Christopher Bishop, Springer, 2011

Neural Networks for Pattern Recognition, Christopher Bishop, Oxford University Press, 1st ed., 1996

Books online:

Michael Nielsen's Neural Networks and Deep Learning http://neuralnetworksanddeeplearning.com/

Zhang, Z.C. Lipton, M. Li, A.J. Smola, "Dive into Deep Learning", 2021 https://d2l.ai/

Links (Tutorials and Talks):

https://towardsdatascience.com

https://www.datacamp.com

 https://medium.com

https://cs.stanford.edu/~sanmi/talks.html

 

 


Software

Python with OpenCV, pytorch, cuda.  En la medida del posible se facilitará el acceso a clústeres de GPUs i CPUs