Aprende a construir y manejar Redes Neuronales Recurrentes con KerasEnrique Blanco 25 septiembre, 2018 En este artículo vamos a hacer una introducción a las Redes Neuronales Recurrentes (RNN), una clase de redes que tienen la capacidad de predecir datos pertenecientes a secuencias o series temporales. Este tipo de redes tiene múltiples aplicaciones en la actualidad: desde predecir la evolución del precio de la acción en el mercado bursátil hasta en los sistemas de conducción autónomos, permitiendo la anticipación de trayectorias de automóvil para ayudar a evitar accidentes. De manera más general, pueden funcionar en secuencias de longitudes arbitrarias, en lugar de con inputs de tamaño fijo, como ocurría con todas las redes que hemos discutido en los artículos anteriores. Por ejemplo, se pueden introducir oraciones, documentos o fragmentos de audio, por lo que este tipo de redes también resultan cruciales para el Procesamiento del Lenguaje Natural (NLP), presentes en sistemas de traducción automática, transcripción de discurso a texto o análisis de sentimientos; por ejemplo, leer reseñas de películas y ser capaz de evaluar la sensación del usuario sobre las mismas. Figura 1: Neuronas. En anteriores artículos, realizamos una introducción al manejo de la librería TensorFlow para Deep Learning: • Deep Learning con Python: Introducción a TensorFlow (Parte I), • Deep Learning con Python: Introducción a TensorFlow (Parte II), • Deep Learning con Python: Introducción a TensorFlow (Parte III) una vez asimilados los conceptos básicos asociados al manejo de esta librería y de otras como Keras, os proponemos dos ejercicios de clasificación con algunos datasets no tan habituales en el aprendizaje de técnicas de Machine Learning. La progresión que se vaticina para las redes neuronales recurrentes es enorme, y sin duda en un futuro muy próximo verá refinado su funcionamiento y extendido su campo de aplicabilidad. En este post nos centraremos en hacer uso de un tipo de bloque recurrente llamado LSTM (Long Short-Term Memory). Este tipo de celda fue propuesto por Sepp Hochreiter y Jürgen Schmidhuber en 1973 (podéis ver la publicación original aquí). Esta propuesta de celda fue refinada con los años por varios investigadores como Alex Graves, Haşim Sak y Wojciech Zaremba. Con las LSTM, el entrenamiento converge más rápido y detecta dependencias a largo plazo en los datos, aspecto que no estaba del todo cubierto con las RNNs. Para profundizar más en el funcionamiento de una LSTM y en las operaciones soportadas por ellas, recomendamos visitar el siguiente enlace. Vamos a mostrar cómo realizar predicción de texto y clasificación de texto haciendo uso de LSTM con la librería Keras. Esta librería es una biblioteca de aprendizaje profundo de código abierto escrita en Python. Es capaz de ejecutarse sobre TensorFlow, Microsoft Cognitive Toolkit o Theano. Diseñado para permitir una rápida experimentación con redes neuronales profundas, es fácil de usar, modular y extensible. En el siguiente Jupyter Notebook mostramos cómo generar texto haciendo uso de celdas LSTM. Para ello nos descargaremos un texto de muestra sobre el que entrenar nuestro modelo. A pesar de que el modelo es bastante simple, tarda algunas horas en entrenar. En el caso de que no dispongáis del tiempo suficiente, tenéis disponible en este enlace el checkpoint del modelo entrenado sobre el texto indicado en la introducción del cuaderno. https://gist.github.com/eblancoh/804f5e1372fe843816f39b96f2f0968b.js'%20defer%20onload='’ defer onload=’ La clasificación de secuencias es un problema de modelado predictivo en el que se tiene una secuencia de entradas sobre el espacio o el tiempo con la finalidad de predecir una categoría para la secuencia. Lo que hace que este problema sea difícil es que las secuencias pueden variar en longitud, estar compuestas de un vocabulario muy grande, tener símbolos de entrada y pueden requerir que el modelo aprenda el contexto a largo plazo o las dependencias entre símbolos en la secuencia de entrada. En este cuaderno veremos cómo se pueden desarrollar modelos de redes neuronales recurrentes LSTM para problemas de clasificación de secuencias en Python utilizando la biblioteca de aprendizaje profundo Keras. https://gist.github.com/eblancoh/a4b7862addf380d90410f34958d24979.js'%20defer%20onload='’ defer onload=’ Arriba hemos abordado distintas arquitecturas de clasificación con la estructura Embedding + LSTM, así como un preprocesado de t-SNE del vocabulario de las reseñas que se deseaban clasificar. Al igual que con el Jupyter Notebook anterior, el entrenamiento puede ser bastante extenso, por lo que también tenéis disponible los checkpoints de los modelos para acelerar las pruebas que deseéis realizar. No te pierdas ninguno de nuestros post. Suscríbete a LUCA Data Speaks. Para mantenerte al día con LUCA visita nuestra página web, y no olvides seguirnos en Twitter, LinkedIn y YouTube. Esta semana en el blog de LUCA: del 17 al 23 de SeptiembreDecisiones cotidianas basadas en datos: data-driven life
AI of Things Qué es el invierno-IA y cómo evitarlo ¿Estamos al borde de un nuevo invierno-IA? ¿Qué factores podrían propiciarlo? Cómo una legislación restrictiva, la falta de formación y de avances tecnológicos y otras preocupaciones podrían impactar el...
Telefónica Tech El poder de la digitalización sostenible en la lucha contra el cambio climático El cambio climático es considerado el mayor desafío de nuestro tiempo. Sus efectos abarcan desde la desertización y sequías hasta inundaciones y aumento del nivel del mar. Algunas de...
Roberto García Esteban ChatGPT y Cloud Computing: un matrimonio bien avenido ChatGPT (quizá no sepas que son las siglas de Chat Generative Pre-Trained Transformer) está en boca de todos por su impresionante habilidad para generar textos que parecen escritos por...
Olivia Brookhouse ¿Puede la Inteligencia Artificial entender las emociones? Cuando John McCarthy y Marvin Minsky iniciaron la Inteligencia Artificial en 1956, se sorprendieron de cómo una máquina podía resolver rompecabezas increíblemente difíciles en menos tiempo que los humanos. Sin...
Javier Martínez Borreguero Automatización, Conectividad e Inteligencia Aumentada al servicio de una reindustrialización competitiva, disruptiva y sostenible Por segundo año consecutivo vuelvo a participar en el Advanced Factories (AF 2023), la mayor exposición y congreso profesional dedicado a la Industria 4.0 del sur de Europa. Un...
Nacho Palou Medidas para reducir la brecha digital de género sin esperar 32 años El informe Sociedad Digital en España 2023, de Fundación Telefónica, dedica un apartado específico para analizar la brecha de género en el ámbito del talento digital. Destaca que, si bien...