Logo UAB
2022/2023

Redes Neuronales y Aprendizaje Profundo

Código: 104407 Créditos ECTS: 6
Titulación Tipo Curso Semestre
2503740 Matemática Computacional y Analítica de Datos OB 3 2

Contacto

Nombre:
Oriol Ramos Terrades
Correo electrónico:
oriol.ramos@uab.cat

Uso de idiomas

Lengua vehicular mayoritaria:
catalán (cat)
Algún grupo íntegramente en inglés:
No
Algún grupo íntegramente en catalán:
No
Algún grupo íntegramente en español:
No

Otras observaciones sobre los idiomas

El material escrito de la asignatura se preparará en inglés.

Prerequisitos

Haber cursado las asignaturas de la materia 7: Inteligencia Artificial y Aprendizaje Computacional, y las asignaturas de Modelización e Inferencia (2º), Análisis Complejo de Datos (2º), y Teoría de la Información (3º).

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 asignaturas anteriores sobre aprendizaje automático y complementando el conocimiento previo con nuevos conceptos sobre el diseño de redes neuronales, las herramientas y sistemas de aprendizaje profundo, y las técnicas de aprendizaje para dichos modelos.

Los estudiantes deben terminar 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 correcta y los mecanismos de aprendizaje adecuados para cada tarea.

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

Competencias

  • Evaluar de manera crítica y con criterios de calidad el trabajo realizado.
  • Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio.
  • Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado.
  • Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
  • Resolver problemas relacionados con el análisis de grandes volúmenes de datos a través del diseño de sistemas inteligentes y de aprendizaje computacional.
  • Trabajar cooperativamente en un contexto multidisciplinar asumiendo y respetando el rol de los diferentes miembros del equipo.
  • Utilizar eficazmente bibliografía y recursos electrónicos para obtener información.

Resultados de aprendizaje

  1. Comprender los mecanismos de aprendizaje profundo basado en redes neuronales para poder diseñar y aplicar la arquitectura más adecuada a un problema determinado.
  2. Conocer y aplicar las técnicas de aprendizaje más adecuadas para resolver problemas computacionales en diferentes casos de estudio.
  3. Entender y evaluar los resultados y limitaciones de las técnicas de aprendizaje más comunes.
  4. Evaluar de manera crítica y con criterios de calidad el trabajo realizado.
  5. Identificar y definir soluciones computacionales en múltiples dominios para la toma de decisiones basada en la exploración de alternativas, el razonamiento incierto y la planificación de tareas.
  6. Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio.
  7. Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado.
  8. Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
  9. Trabajar cooperativamente en un contexto multidisciplinar asumiendo y respetando el rol de los diferentes miembros del equipo.
  10. Utilizar eficazmente bibliografía y recursos electrónicos para obtener información.

Contenido

  • Redes neuronales
    • Perceptron
    • Multi-layer perceptrón
    • Backpropagation
  • Proceso de entrenamiento
    • Inicialización
    • Algoritmos de optimización
    • Técnicas de regularización
    • Tareas y funciones de coste
  • Arquitecturas profundas de redes neuronales
    • Redes convolucionales
    • Redes recurrentes
    • Aprendizaje no supervisado (autoencoders)
    • Aprendizaje de métricas (siamese y triplet networks)
    • Generative Adversarial Networks

Metodología

El diseño de redes neuronales se guía por los tipos de problemas que pretende resolver. A lo largo de esta asignatura será esa tipología de problemas la que proporcionará la motivación de cada apartado y orientará la organización de los contenidos.

Habrá dos tipos de sesiones:

Clases de teoría: El objetivo de estas sesiones es que el profesor explique los antecedentes teóricos de la asignatura. Para cada uno de los temas estudiados se explica la teoría y formulación matemática, así como las correspondientes soluciones algorítmicas.

Sesiones de laboratorio: Las sesiones de laboratorio tienen como objetivo facilitar la interacción, el trabajo colaborativo y reforzar la comprensión de los temas vistos en las clases de teoría mediante la elaboración de casos prácticos que requieren el diseño de soluciones utilizando los métodos estudiados en las clases de teoría. La resolución de problemas se iniciará en la clase y se complementará con una serie de problemas semanales para trabajar en casa.

Las actividades anteriores se complementarán con un sistema de tutorías y consultas fuera del horario de clases.

Toda la información de la asignatura y los documentos relacionados que necesiten los alumnos estarán disponibles en el campus virtual (cv.uab.cat).

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      
Clase de Practicas 22 0,88 1, 2, 3, 5, 6, 7, 8, 9, 10
Clase de Teoría 28 1,12 1, 2, 3, 5, 6
Tipo: Supervisadas      
Tutorias 5 0,2 4, 1, 2, 3, 5, 10
Tipo: Autónomas      
Dedicación a las practicas 45 1,8 4, 1, 2, 3, 6, 7, 8, 10
Lectura y estudio de material 45 1,8 1, 2, 3, 5, 10

Evaluación

Para evaluar el nivel de aprendizaje del alumno, se establece una fórmula que combina la adquisición de conocimientos teóricos y prácticos, y la capacidad de resolución de problemas.

Nota final

La nota final se calcula ponderada de la siguiente forma y según las diferentes actividades que se llevan a cabo:

Nota final = 0.5 * Nota de teoría + 0.1 * Nota de problemas + 0.4 * Evaluación práctica

Esta fórmula se aplicará siempre que la calificación de la evaluación teórica y práctica sea superior a 5. No hay restricción en la calificación del portafolio de problemas. Si al hacer el cálculo de la fórmula se obtiene> = 5 pero la nota de teoría o la nota de la evaluación práctica no alcanza el mínimo exigido, la nota final será el valor menor entre 4,5 y la media ponderada de las notas.

Nota de teoría

La nota de teoría tiene como objetivo evaluar las habilidades individuales del alumno en cuanto al contenido teórico de la asignatura, esto se realiza de forma continua durante el curso a través de dos exámenes parciales. La calificación general de teoría es el promedio de las calificaciones de los dos exámenes parciales.

El examen parcial # 1 se realiza a mitad de semestre y sirve para eliminar parte de la materia si se aprueba. El examen parcial # 2 se realiza al final del semestre y sirve para eliminar parte de la materia si se aprueba.

Estos exámenes tienen como objetivo evaluar las habilidades de cada alumno de forma individualizada, tanto en la resolución de problemas utilizando las técnicas explicadas en clase, como valorando el nivel de conceptualización que ha hecho el alumno de las técnicas vistas. Para obtener una nota de teoría se requerirá que las calificaciones de ambos exámenes parciales sean superiores a 4. Si al hacer el cálculo de la fórmula se obtiene> = 5 pero las calificaciones de cualquiera de los dos exámenes parciales no alcanzan el mínimo requerido, entonces la nota final de teoría será de 4.5.

Examen de recuperación. En caso de que la nota de teoría no alcanza el nivel adecuado para aprobar, los alumnos pueden realizar un examen de recuperación, destinado a recuperar la parte reprobada (1, 2 o ambas) del proceso de evaluación continua.

Nota de Problemas

El objetivo de los problemas es que el alumno se entrene de forma continuada con los contenidos de la asignatura y se familiarice con la aplicación de los conceptos teóricos. Como prueba de este trabajo se solicita la entrega de un portafolio con las soluciones a los problemas semanales. Para obtener una nota de problemas se requiere que el alumno entregue un mínimo del 70% de los problemas. En caso contrario, la calificación de problemas será 0.

Nota de evaluación práctica

Las habilidades prácticas de los estudiantes se evaluarán dos veces durante el semestre. La evaluación se basará en que los alumnos presenten y expliquen los trabajos prácticos que hayan realizado individualmente en casa.

La calificación general de la evaluación práctica es el promedio de las dos evaluaciones prácticas.

En caso de no aprobar alguna de las evaluaciones prácticas, el alumno podrá recuperar la parte no aprobada, con una nota máxima restringida a 7/10.

Notas importantes

Sin perjuicio de otras medidas disciplinarias que se estimen oportunas, y de acuerdo con la normativa académica vigente, las actividades de evaluación serán suspendidas con cero (0) siempre que un alumno cometa alguna irregularidad académica que pueda alterar dicha evaluación (por ejemplo,plagio, copia, cesión de copia, ...). Las actividades de evaluación calificadas de esta forma y por este procedimiento no serán recuperables. Si se necesita aprobar alguna de estas actividades de evaluación para aprobar la asignatura, esta asignatura se suspenderá directamente, sin posibilidad de recuperarla en el mismo curso.

En caso de que el alumno no haga ninguna entrega de problemas, no participe en ninguna evaluación práctica y en ningún de los examenes, la nota correspondiente será "no evaluable". En cualquier otro caso, los "no presentados" computan como un 0 para el cálculo del promedio ponderado.

Para obtener matrícula de honor, la calificación final debe ser igual o superior a 9 puntos. Debido a que el número de estudiantes con esta distinción no puede exceder el 5% del número total de estudiantes inscritos en el curso, se le otorga a quien tenga la calificación final más alta. En caso de empate, se tendrán en cuenta los resultados de los exámenes parciales.

Actividades de evaluación

Título Peso Horas ECTS Resultados de aprendizaje
Entregables de problemas 10 0 0 1, 2, 3, 5, 6, 7, 8, 10
Evaluación de prácticas 40 0,5 0,02 4, 1, 2, 3, 6, 7, 8, 9, 10
Examenes 50 4,5 0,18 1, 2, 3, 5, 6, 8, 10

Bibliografía

Libros:

  • 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

libros online:

Software

Para las actividades prácticas del curso usaremos Python (NumPy, MatPlotLib, SciKit Learn) y PyTorch