Deep Learning en #XDS3

18 septiembre, 2017

A finales de agosto se celebró 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.

Aunque era su primera edición, el evento fue todo un éxito, con más de 400 inscritos, incluyendo estudiantes, investigadores, profesores y profesionales de industria 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 los cinco días que duró el acto, se dieron diversas ponencias y tutoriales de muchos temas relacionados con la ciencia de datos: por ejemplo, se habló extensamente de graphical models, randomized optimization methods o bayesian optimization. Pero sin duda, el “rey de la fiesta” fue el deep learning. Cerca del 40% de la programación del evento estaba relacionado con las redes neuronales y deep learning.

Uno de los grandes atractivos de este evento fueron las clases magistrales que ofreció 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 “asuma” 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ón 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 superados 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 vídeos 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.

Nota: Este artículo ha aparecido previamente en el blog de Análisis y Ciencia de Datos de la UOC: http://dataanalysis.blogs.uoc.edu/.

 
Jordi Casas es profesor de los Estudios de Informática, Multimedia y Telecomunicación en la UOC y director del Máster Universitario en Ciencia de Datos y del Máster en Inteligencia de Negocio y Big Data. Su docencia se centra en las áreas de ciencia de datos, machine learning, privacidad y teoría de grafos.

(Visited 30 times, 1 visits today)
Autor / Autora
Comentarios
Deja un comentario