Todo este material está bajo una licencia de Creative Commons Reconocimiento 4.0 Internacional.
Materiales para curso de redes neuronales
Presentaciones utilizadas
Programas
En el curso vamos a trabajar practicando con redes neuronales, para lo cual existen muchas posibilidades.
Aunque tú puedas utilizar la que creas oportuna, por motivos en parte históricos y en parte pedagógicos, en el curso se ofrecen materiales pensados para las siguientes plataformas:
- Matlab: permite trabajar en bastante alto nivel, a veces con interfaz gráfica, y a veces programando. Tiene una toolbox que comprende la mayor parte de las posibilidades de trabajo con redes neuronales.
- Octave: es un clon libre de Matlab, si bien la similitud es completa sólo a nivel superficial. No tiene una toolbox de redes neuronales, por lo cual hay que utilizar con él otras toolboxes que se descargan aparte, principalmente:
- netlab Lee estas notas
- Toolbox específica del curso La usaremos para complementar cuestiones que no vienen en las otras toolboxes
- pyTorch, que es un paquete sobre Python. A lo largo de las prácticas prepararemos ficheros para cada caso, pero apoyados sobre funciones genéricas, que tienes en este comprimido.
Descomprímelo en la carpeta en la que vayas a trabajar.
Pensando en la aplicación sería y profesional de las redes neuronales, en cuanto queremos darle potencia a nuestras redes nos encontramos con problemas de rendimiento: necesitamos más velocidad. Una solución es contratar máquinas virtuales, o trabajar con un cluster, o supercomputadores, otra posibilidad son las GPUs.
Octave no tiene una interfaz para GPU; Matlab sí, pero es propietario. Hay dos enfoques libres para quien no pueda permitirse Matlab: programarlo uno mismo (con CUDA para tarjetas NVIDIA, que es una buena opción) o usar otros entornos o API de alto nivel.
Si puedes arreglarte con algo de esto, es preferible, porque no tienes que programarlo todo desde cero. Últimamente está de moda el ecosistema del lenguaje de programación Python. Dentro de este ecosistema hay varias API posibles; las dos más populares son Tensorflow y Pytorch
Prácticas a ir trabajando
- Introducción
- Problema de reconocimiento/clasificación (fichero de datos)
- Análisis
- Ajuste y generalización: Matlab Octave Pytorch
- Redes profundas
- Caso "realista" grande
- Variantes de redes convolutivas
- Uso de redes preentrenadas
- Redes realimentadas
- Ejemplo de procesado de lenguaje natural
- Recorte de redes
- Selección de variables (Fichero con datos de 100 y 100 muestras de espectro de 10000 puntos)
- Selección de modelos: Matlab u Octave, Pytorch
Para hacer la parte de agrupamiento sin redes puedes usar las siguientes guías para Matlab u Octave y Python/Scipy (Pytorch)
- Competitivas con Matlab, con Octave, o con Pytorch
- Redes de respuesta radial con Matlab, con Octave, o con Pytorch
Trabajos de curso
Lista de posibilidades (tachados los que ya han sido cogidos) Pide más información por correo de lo que te interese y, cuando te decidas, indica al profesor la que prefieres.
Criterios de calificación
Imágenes de dominio público de la colección WPClipart y de Bruttokolliko (licencia Creative Commons Attribution-Share Alike 4.0 International), disponible en Wikimedia