Ruta de navegación

Contenido de XSL

Aprendizaje Automático y Redes Neuronales26223

Centro
Facultad de Informática
Titulación
Grado en Ingeniería Informática
Curso académico
2022/23
Curso
4
Nº Créditos
6
Idiomas
Castellano
Código
26223

DocenciaAlternar navegación

Distribución de horas por tipo de enseñanza
Tipo de docenciaHoras de docencia presencialHoras de actividad no presencial del alumno/a
Magistral4040
P. Laboratorio2050

Guía docenteAlternar navegación

Descripción y Contextualización de la AsignaturaAlternar navegación

Este es un curso obligatorio dentro del grado de Inteligencia Artificial y opcional dentro del grado de Ingeniería Informática. Se cursa durante el tercero del grado en IA, y el cuarto año en II. El curso se enmarca dentro de los campos de aprendizaje automático y ciencia de datos, y su objetivo es capacitar a la estudiante para comprender, desarrollar e implementar modelos y algoritmos capaces de aprender de forma autónoma. Los y las estudiantes aprenderán cuáles son los principales paradigmas de los enfoques de aprendizaje profundo "deep learning" y las clases de problemas donde se pueden aplicar. En particular, el curso se centrará en los métodos basados ​​en redes neuronales, modelos computacionales inspirados en la organización y mecanismos neuronales del cerebro. El curso introducirá los tipos de redes neuronales más relevantes, explicando sus fundamentos teóricos y ámbito de aplicación. Se prestará especial atención a las redes neuronales profundas como técnicas de aprendizaje automático de última generación. Se le enseñará a los y las estudiantes cómo reconocer los problemas donde se pueden aplicar las redes neuronales, identificar la clase apropiada correspondiente de red neuronal y usar y/o extender las implementaciones disponibles para resolver el problema. Si bien el curso cubrirá los conocimientos teóricos necesarios, dedicará una parte importante del tiempo a las clases prácticas con el objetivo de implementar, utilizando el lenguaje Python, enfoques de redes neuronales que resuelvan problemas de aprendizaje automático del mundo real.

Competencias/ Resultados de aprendizaje de la asignaturaAlternar navegación

- Identificar cuáles son los principales tipos de problemas en el aprendizaje profundo y los métodos más comunes utilizados para abordarlos.

- Aprender cuáles son los principales paradigmas de las redes neuronales y sus características principales.

- Formular e implementar enfoques de aprendizaje profundo para problemas del mundo real utilizando herramientas de código abierto basadas en Python.

- Reconocer los modelos de redes neuronales profundas más apropiados para diferentes tipos de problemas.

- Obtener una comprensión básica de los dominios de aplicación más exitosos, los temas candentes y los problemas abiertos en el aprendizaje profundo.

Contenidos teórico-prácticosAlternar navegación

Esquema del curso (Tentativo)



1. Introducción al aprendizaje profundo (DL)

1. Las técnicas de aprendizaje automático en el mundo real

2. Deep Learning: fundamentos biológicos y matemáticos

3. Antecedentes matemáticos para DL

4. Paradigmas de aprendizaje: aprendizaje supervisado, aprendizaje no supervisado, aprendizaje por transferencia

5. Regresión lineal y logística



2. Perceptrón multicapa (MLP)

1. Motivación y aplicaciones

2. Estructura de las MLP

3. Pesos y sesgos

4. No linealidades

5. Propagación hacia adelante

6. Propagación hacia atrás

7. Descenso de gradiente



3. Entrenando redes MLP

1. Sobreajuste y subajuste

2. Regularizaciones

3. Selección del modelo

4. Optimización

5. Planificación



4. Redes neuronales convolucionales (CNN)

1. Motivación y aplicaciones

2. Definición y propiedades

3. El operador convolucional

4. Puesta en común

5. Las CNN en la práctica



5. Redes Neuronales Recurrentes (RNN)

1. Motivación y aplicaciones

2. Definición y propiedades

3. Propogación hacia atrás a través del tiempo

4. LSTM y GRU

5. RNN en la práctica



6. La arquitectura de los Transformers

1. Motivación y aplicaciones

2. Mecanismo de atención

3. Transformers en la práctica



7. Métodos generativos

1. Motivación y aplicaciones

2. Autocodificadores

3. Autocodificadores variacionales

4. Redes adversarias generativas (GAN)



8. Redes neuronales en grafos (GCN)

1. Motivación y aplicaciones

2. GNN en la práctica



9. Temas avanzados en estudios de redes neuronales

1. Neuroevolución o generación automática de arquitecturas de redes neuronales mediante evolución artificial

2. Redes "spiking" y cadenas policrónicas

3. Redes adversarias

4. Otros temas avanzados

MetodologíaAlternar navegación

La asignatura constará de un número aproximado igual de clases magistrales y prácticas, y estas últimas consistirán en la resolución de ejercicios y laboratorios utilizando Python. En los laboratorios, los y las estudiantes trabajarán en equipos e individualmente para encontrar soluciones adecuadas a problemas prácticos utilizando métodos de aprendizaje profundo. Como parte de las evaluaciones continuas, los y las estudiantes implementarán, utilizando el software Python disponible (por ejemplo, scikit-learn, pytorch, etc.), soluciones a problemas prácticos y los presentarán como proyectos.



El curso contará con un espacio virtual en Egela donde estarán disponibles enlaces al software, bibliografía y repositorios de problemas. Los apuntes del curso también estarán disponibles en la clase virtual en Egela, en la medida que el y la profesora lo estime oportuno. Los y las estudiantes podrán usar el foro en el espacio virtual para discutir los problemas. También se recomienda a los y las estudiantes que creen y usen cuentas de github para completar los proyectos individuales y en equipo.

Sistemas de evaluaciónAlternar navegación

  • Sistema de Evaluación Continua
  • Sistema de Evaluación Final
  • Herramientas y porcentajes de calificación:
    • Ver secciones abajo (%): 100

Convocatoria Ordinaria: Orientaciones y RenunciaAlternar navegación

Los alumnos y alumnas puede elegir entre evaluación global (al final del cuatrimestre) o continua. La evaluación continua es optativa y requiere la participación activa de los y las estudiante en el proceso de aprendizaje, y trabajo regular durante todo el semestre. Por lo tanto, se supone que debe asistir a las clases, participar en las discusiones, estudiar los aspectos teóricos de la materia, hacer el conjunto de ejercicios y completar las sesiones de laboratorio en clase.



El método de evaluación continua utilizado refleja no solo el rendimiento de un o una estudiante en los exámenes, sino también la calidad de su participación activa en clase, las tareas de laboratorio, la claridad del informe escrito, la capacidad de comunicación mostrada en la exposición oral, etc.



La evaluación continua se elige al inicio del cuatrimestre, y los y las alumnas puede tomar la decisión definitiva (al 60%-80% del cuatrimestre) después de que el o la profesora haya supervisado su desempeño.



En caso de no haber confirmación de matrícula definitiva para la evaluación continua se supone que el alumno o la alumna renuncia a la misma.



EVALUACIÓN CONTINUA



A: Examen escrito -> 6/10

B: Proyectos -> 4/10



NOTA: El examen escrito y el proyecto son obligatorios y en ambos se exigirá una nota mínima (4.5).



EVALUACIÓN FINAL



A: Examen escrito -> 7/10

B: Proyectos -> 3/10



NOTA: El examen escrito y el proyecto son obligatorios y en ambos se exigirá una nota mínima (5).

Convocatoria Extraordinaria: Orientaciones y RenunciaAlternar navegación

A: Examen escrito -> 10/10



NOTA: El examen escrito es obligatorios y se exigirá una nota mínima (5).

BibliografíaAlternar navegación

Bibliografía básica

Bibliografia principal



- Deep Learning. Ian Goodfellow and Yoshua Bengio and Aaron Courville. 2016. https://www.deeplearningbook.org/

- Dive into Deep Learning. Aston Zhang and Zachary C. Lipton and Mu Li and Alexander J. Smola. 2020. http://d2l.ai/

- Neural networks for pattern recognition. Christopher M. Bishop.

Bibliografía de profundización

Bibliografía adicional:

- Machine learning. A probabilistic perspective. Kevin P. Murphy
- Pattern recognition and machine learning. Christopher M. Bishop.
- Bayesian Netwoks and Decision Graphs. Finn V. Jensen. Springer-Verlag. 2001.
- The synaptic organization of the brain. Gordon M. Shepherd. Firth Edition
- Introduction to the theory of neural computation. Hertz, J., Krogh, A., Palmer, R. G. Addison-Wesley, 1991
- 30 years of adaptive neural networks: Perceptron, Madaline, and backpropagation., Widrow, B., Lehr, M.A., Proceedings of IEEE, 78(9), 1415-1442, 1990.
- Learning with Kernels, Scholkopf and Smola, 2002
- The Elements of Statistical Learning,, Hastie, Friedman, and Tibshirani, 2001
- The nature of statistical learning theory, Vapnik, V

Revistas

Proceedings of NeurIPS: https://nips.cc/
Proceedings of ICLR: https://iclr.cc/
IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI)
IEEE Transactions on Neural Networks

Direcciones web

NYU Deep Learning: https://nyudatascience.medium.com/yann-lecuns-deep-learning-course-at-cds-is-now-fully-online-accessible-to-all-787ddc8bf0af
Berkeley Deep Learning: https://t.co/0PaBOJElo9
Stanford Convolutional Neural Networks for Visual Recognition: http://cs231n.stanford.edu/
Stanford Natural Language Processing with Deep Learning: http://web.stanford.edu/class/cs224n/
Machine learning with graphs (graph convolutional layers): https://www.youtube.com/watch?v=aBHC6xzx9YI&list=PLoROMvodv4rPLKxIpqhjhPgdQy7imNkDn&index=2

NN software
Pytorch: https://pytorch.org/
scikit-learn: https://scikit-learn.org/stable/
scikit-neuralnetwork: https://github.com/rsantana-isg/scikit-neuralnetwork

GruposAlternar navegación

16 Teórico (Castellano - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

14:00-15:30 (1)

17:00-18:30 (2)

Profesorado

16 P. Laboratorio-1 (Castellano - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

15:30-17:00 (1)

Profesorado