Deep Learning en #XDS3

31 agosto, 2017

Durante esta semana se celebra en París (concretamente en Palaiseau) la Data Science Summer School 2017 (DS^3), organizada por el Laboratoire de Informatique (LIX) de la prestigiosa École Polytechnique francesa.

El evento, aunque en su primera edición, ha sido todo un éxito, con más de 400 inscritos, incluyendo estudiantes, investigadores, profesores y profesionales de indústria y empresa del sector. Sin duda, estos números confirman el auge que estamos viendo en los temas relacionados con la ciencia de datos, machine learning, análisis de datos, Big data y otros temas relacionados.

Durante estos cinco días se han visto (y se verán) diversas ponencias y tutoriales de muchos temas relacionados con la ciencia de datos, como por ejemplo, se ha hablado extensamente de graphical models, randomized optimization methods o bayesian optimization. Pero sin duda, el «rei de la fiesta» ha sido el deep learning. Cerca del 40% de la programación del evento está relacionado con las redes neuronales y deep learning.

Uno de los grandes atractivos de este evento han sido las clases magistrales que ha ofrecido Yoshua Bengio sobre redes neuronales artificialesdeep learning.

Las redes neuronales artificiales (ANN, artificial neural networks) están formadas por un conjunto de neuronas distribuidas en distintas capas. Cada una de estas neuronas realiza un cálculo u operación sencilla sobre el conjunto de valores de entrada de la neurona, que en esencia son entradas de datos o las salidas de las neuronas de la capa anterior, y calcula un único valor de salida, que a su vez, será un valor de entrada para las neuronas de la siguiente capa o bien formará parte de la salida final de la red.

La siguiente figura presenta un esquema básico de una red neuronal con la capa de entrada, múltiples capas ocultas y la capa de salida.

 

Estas redes se suelen inicializar con valores aleatorios, y requieren de un proceso de entrenamiento con un conjunto de datos para poder «aprender» una tarea o función concreta. Este proceso de aprendizaje se realiza utilizando el método conocido como Backpropagation. En esencia (y a riesgo de simplificar demasiado), este método calcula el error que comete la red en la predicción del valor para un ejemplo dado e intenta «retroceder» este error, de tal forma que cada neurona «assuma» su parte de responsabilidad en este error y modifique sus parámetros para intentar reducirlo.

Este tipo de algoritmos tuvo su época de esplendor hace ya unas décadas. Su principal limitació se encuentra en un problema en el proceso de aprendizaje que se da en las redes con cierto número de capas ocultas (capas intermedias, es decir, que se encuentran entre la entrada de datos y la salida o respuesta final de la red). En estos casos, se produce lo que se conoce como el problema de la desaparición o explosión del gradiente, que básicamente provoca problemas en el proceso de aprendizaje de la red.

Estos problemas han sido superado años más tarde, dando inicio a lo que se conoce actualmente como deep learning. Se ha modificado la estructura básica de las redes neuronales, creando, por ejemplo, redes convolucionales que permiten crear distintas capas donde el conocimiento se va haciendo más abstracto. Es decir, las primeras capas de la red se pueden encargar de identificar ciertos patrones en los datos, mientras que las capas posteriores identifican conceptos más abstractos a partir de estos patrones más básicos. Por ejemplo, si queremos que una red neuronal pueda detectar cuando aparece una cara en una imagen, este enfoque buscaría que las primeras capas de la red se encarguen de detectar la presencia de un ojo en alguna parte de la imagen, de una boca, etc. Así, las siguientes capas se encargarían de combinar esta información e identificar una cara a partir de la existencia de las partes que la forman (ojos, boca, nariz, etc). De esta forma vamos avanzando de una información más básica hacia un conocimiento más abstracto.

La siguiente figura muestra un esquema, aunque muy general, de una red convolucional.

 

Para quién tenga interés en profundizar sus conocimientos sobre redes neuronales y deep learning, os dejamos un par de referencias que creemos que pueden ser de interés (entre las muchísimas que hay disponibles en la actualidad):

  • En la página www.deeplearningbook.org se puede descargar (gratuitamente) los capítulos del libro «Deep learning», escrito entre otros por Yoshua Bengio. Además, se pueden encontrar otros recursos interesantes, como por ejemplo presentaciones o videos de charlas que han dado los autores del libro.
  • El libro «Minería de datos: modelos y algoritmos» es una introducción a distintos métodos de minería de datos, entre otros las redes neuronales artificiales. El libro forma parte del material docente del máster universitario en ciencia de datos (data science) y ha sido escrito por varios profesores del área de minería de datos y machine learning de la UOC.
(Visited 13 times, 1 visits today)
Autor / Autora
Jordi Casas-Roma
Profesor e investigador del grupo ADaS Lab de los Estudios de Informática, Multimedia y Telecomunicaciones de la UOC. Director del máster universitario de Ciencia de Datos de la UOC. Sus intereses de investigación se basan en la minería de datos, aprendizaje automático, minería de gráficos y privacidad de datos. 
Comentarios
Deja un comentario