Encabezado Facultad de Ciencias
Presentación

Ciencias de la Computación (plan 2013) 2024-2

Optativas, Redes Neuronales

Grupo 7122, 45 lugares. 47 alumnos.
Profesor Verónica Esther Arriola Ríos lu mi 18:30 a 20
Ayudante Eric Toporek Coca ma ju 20 a 21
Ayudante Miguel Angel Liera Montaño ma ju 20 a 21
Ayud. Lab. Luis Fermín Martínez Manzo lu 16 a 18
Ayud. Lab. Carlos Alberto Vital José lu 16 a 18
 

Redes Neuronales

Presentación

Este curso de Redes Neuronales, impartido desde una perspectiva de Ciencias de la Computación, pone especial énfasis en los fundamentos matemáticos detrás del funcionamiento de las redes. A diferencia de otros cursos cuyo principal objetivo puede ser la rápida configuración y utilización de grandes arquitecturas de redes, este curso invierte más dedicación a los aspectos teóricos del funcionamiento de las redes; cabe mencionar que este tampoco es un curso de cálculo u optimización numérica, sino que hacemos uso de éstos para entrenar redes.

En la parte práctica se trabajará en dos niveles:

  • Primeros principios: implementando las operaciones fundamentales haciendo uso de numpy para manejo de matrices y cálculos numéricos.
  • Aplicaciones: haciendo uso de PyTorch para enfocarse más en el diseño, entrenamiento y evaluación de la arquitectura, que en los detalles de implementación del cálculo numérico.

Actividades semanales

El material del curso ha sido dividido en semanas. Se estima que el tiempo que te llevará cubrirlo es aproximadamente el tiempo que te tomaría estar en tus clases si este curso fuera presencial, más tres o cuatro horas extra realizando tareas y programando prácticas, aunque el ritmo variará según la forma de aprendizaje de cada quien. Utiliza de todos modos esta estimación para identificar si te estás tardando demasiado al revisando algún material o con alguna actividad, si detectas que esto sucede, no dudes por favor en contactarnos para resolver esa situación.

Material del curso

En cada semana verás un listado de videos con bibliografía extra, donde se cubre el tema correspondiente. Hay una serie de videos con duración de poco menos de hora y media por cada sesión de clase teórica. Estos jugarán el rol de las exposiciones del profesor en una clase presencial. También existirá la posibilidad de consultar directamente las presentaciones usadas en dichos videos y la bibliografía sugerida. Cuando revises estos materiales, toma nota de tus dudas y comentarios, para que los discutamos en las sesiones sincrónicas o, si prefieres una respuesta más rápida, puedes buscarnos en el chat del curso.

Videoconferencia

Tendremos dos sesión en vivo a la semana en los días correspondientes a las ayudantías: los martes y jueves de 20:00 a 21:00 hrs por Zoom. Una de las sesiones será dirigida por la profesora y titular y la otra por un(a) ayudante. Les enviaré la invitación por el chat unos minutos antes. En esta sesión realizaremos ejercicios haciendo uso de cuestionarios en tiempo real y atenderemos las dudas y comentarios que nos quieran hacer. Estas actividades no serás evaluadas, pero constituirán la mejor oportunidad para discutir los temas en grupo y preparase para los exámenes.

Chat

En los demás horarios de clase estaremos disponibles por chat en Telegram de forma asincrónica.

Actividades

Lecciones

Cada semana incluirá un cuadernillo con videos de los materiales teóricos. Estos serán visibles en YouTube para cualquiera que tenga la referencia, ustedes podrán accederlos desde Moodle.

Tareas

Por cada tema se incluirán cuestionarios en línea con preguntas y ejercicios correspondientes al material teórico en turno. En cuanto realices tu envío podrás ver tu calificación, pero deberás esperar a la fecha de corte para poder leer notas acerca de porqué las respuestas eran correctas o incorrectas. Tendrás dos intentos para resolverlas correctamente. Ojo, por el mismo motivo no se podrán presentar estas actividades después de la fecha de corte. Si tienes dudas, puedes escribirnos por chat. Estas preguntas forman parte de tu calificación.

Prácticas de laboratorio

Estas tareas son prácticas de programación donde se aplican los conocimientos vistos en teoría y se entregarán por git; para trabajar con ellas contarás con el apoyo de todo el equipo académico, a través del chato en la sesión presencial, así mismo los referiremos a videos de entrenamiento y otros materiales de apoyo, según vaya haciendo falta.

Para realizar los cómputos podrán utilizar las computadoras de Google con https://colab.research.google.com/, gracias a ello podrán programar en Python y PyTorch utilizando GPUs para el entrenamiento de sus redes, sin necesidad de sobrecargar de trabajo a sus computadoras. Podrán encontrar las indicaciones en la actividad correspondiente de Moodle y se planteará la opción de tener una sesión sincrónica en el horario de laboratorio, dependerá del grupo si se lleva a cabo o sólo se responden dudas por el chat.

Proyecto final

El proyecto final es la oportunidad de ponerte creativo. Un mes antes de que termine el semestre deberás proponer un proyecto qué resolver con las técnicas de redes neuronales vistas a lo largo del curso. Una vez que tu tema esté aprobado podrás comenzar a desarrollarlo y se entregará en la primer semana de exámenes, según el calendario oficial.

Exámenes parciales

Tendremos 3 ó 4 exámenes parciales, que serán evaluados automáticamente, igual que las tareas, aunque podrían incluir algún ejercicio que deberán desarrollar libremente y será calificado a mano.

Los porcentajes para cada rubro son:

Criterios de evaluación
Rubro Porcentaje
Parciales 40%
Cuestionarios 15%
Prácticas 40%
Proyecto 15%

Temario

Prerrequisitos
  • Álgebra lineal
  • Cálculo con una y varias variables (derivadas, derivadas parciales, gradiente, puntos críticos, optimización, integrales y aproximaciones numéricas).
Temas
  1. Neurona biológica
  2. Aprendizaje de máquina
  3. Preceptrón multicapa
  4. Optimización del entrenamiento
  5. Casos, análisis e interpretación
  6. Neuroevolución
  7. Mapeos autoorganizados
  8. Redes neuronales convolucionales
  9. Redes neuronales recurrentes
  10. Atención
  11. Programador neural
  12. Transformadores para LLM (large language models)
  13. Composicionalidad
  14. Redes de Hopfield
  15. Redes adversarias

Aula virtual: https://quetzalcoatl.fciencias.unam.mx/moodle/course/view.php?id=37
Cuenta con acceso como invitado, el acceso completo se enviará por correo a quienes estén inscritos el primer día de clases.

 


Hecho en México, todos los derechos reservados 2011-2016. Esta página puede ser reproducida con fines no lucrativos, siempre y cuando no se mutile, se cite la fuente completa y su dirección electrónica. De otra forma requiere permiso previo por escrito de la Institución.
Sitio web administrado por la Coordinación de los Servicios de Cómputo de la Facultad de Ciencias. ¿Dudas?, ¿comentarios?. Escribenos. Aviso de privacidad.