Desde Barcelona Deep Learning School hemos desarrollado un currículum para convertirnos en maestros de las Redes Neuronales ! En nuestros meetups aprenderás los conceptos básicos sobre el funcionamiento de las Redes Neuronales, cómo utilizar frameworks como Pytorch o Tensorflow para entrenar redes complejas, Redes Convolucionales para tareas de Visión Artificial, Redes Recurrentes para tareas de Procesado de Lenguaje y cómo poner a trabajar tus redes en entornos de producción para desarrollar tus propias aplicaciones. Si ésto es de tu interés, no dudes en apuntarte !
En esta primera sesión hablaremos sobre los dos conceptos matemáticos fundamentales para trabajar con redes neuronales: álgebra lineal (usado para definir las operaciones internas de una red) y cálculo diferencial (usado para entrenar una red). Usaremos Google Colab, Python y Pytorch para trabajar con los ejemplos.
En esta sesión implementaremos desde cero en Python (con Numpy) nuestra primera red neuronal para clasificar imágenes. En primer lugar veremos qué es un perceptrón y cómo entrenarlo. Después implementaremos un perceptrón multicapa y veremos los efectos de utilizar más o menos capas, con más o menos neuronas. Para terminar, implementaremos nuestro propio mini-framework de redes neuronales para entrenar un perceptrón multicapa con el dataset MNIST.
En esta sesión aprenderemos como entrenar una red neuronal en Python. Para ello, utilizaremos nuestro propio framework de redes neuronales (desarrollado en el tema anterior) para descubrir los conceptos más importantes que hay que tener en cuenta a la hora de entrenar una red neuronal: por qué dividir nuestros datos en grupos de train/validation/test, qué es y como evitar el overfitting, como debuggar una red neuronal paso a paso, cómo iterar para reducir el error, técnicas de regularización, optimización de hyperparámetros, etc..
En esta sesión hablaremos sobre frameworks de redes neuronales. En particular trabajaremos con Tensorflow y Pytorch para hacer los ejemplos que hemos ido llevando a cabo en los temas anteriores. Hablaremos sobre las ventajas que aporta el utilizar un framework y cómo nos ayudarán para hacer nuestras aplicaciones en los próximos meetups.
En esta sesión introduciremos las Redes Neuronales Convolucionales, una arquitectura de red muy utilizada en tareas de Visión Artificial tales como clasificiación de imágenes, detección de objetos, segmentación semántica, etc. Usaremos Pytorch para hacer nuestras propias redes o usar redes ya pre-entrenadas que nos ayuden a entrenar buenos modelos con pocos datos (técnica conocida como transfer learning).