[en] The world of neural networks is growing. Being able to simulate the human brain in a computer seems to be one of the most promising milestones in computing. It is true that it has not been achieved, but using machine learning algorithms, it is already possible to train machines to learn in a similar way as our brain. The objective of this End-of-Grade Work is to implement these algorithms using the Keras library. First of all, a brief introduction to the world of neural networks will be made. It will start with the basics, explaining what is a neural network and de ning the most important parts of its architecture. After understanding the basics, I will describe the three types of neural networks more promising due to their results: Multilayer Perceptron, Convolutional Networks, and LSTM Networks. Secondly, I will describe Keras, a deep learning python library with which we are able to design our own neural network models. I will detail the classes and the most important functions, as well as the great amount of possibilities that this library o ers us. Finally, all previous knowledge is applied to design four types of neural networks that will solve two di erent types of problems. As for the problems of data classi cation, we will see how to clasify a person depending of if she or he will have diabetes or not analyzing their medical data, and we will see how to classify images of handwritten numbers, to determine which number is represented in the picture. On the other hand, data prediction problems will be addressed. Through the rst example, we will be able to predict the prize of several houses according to qualities that have been previously collected, and with the second, we will see how a machine is able to generate texts once he has been trained with them.

[es] El mundo de las redes neuronales está en auge. Poder simular el cerebro humano en un ordenador, parece ser uno de los hitos más prometedores de la informática. Es cierto que este hito todavía no se ha conseguido, pero mediante algoritmos de machine learning, ya es posible entrenar máquinas para que aprendan de forma parecida a como lo hará nuestro cerebro. El objetivo de este Trabajo de Fin de Grado es poner en práctica estos algoritmos utilizando la librería Keras. En primer lugar, se hará una breve introducción al mundo de las redes neuronales. Se empezará por lo más básico, explicando qué es una red neuronal y definiendo las partes más importantes de su arquitectura. Una vez entendidos los conceptos básicos, se describirán los tres tipos de redes neuronales más extendidas actualmente debido a sus buenos resultados: Perceptrón multicapa, redes convolucionales, y redes LSTM. En segundo lugar, se describirá Keras, una librería Python de deep learning con la cual podremos diseñar nuestros propios modelos de redes neuronales. Se detallarán las clases y funciones más importantes, así como la gran cantidad de posibilidades que nos ofrece. Por último, se aplicarán todos los conocimientos descritos anteriormente para diseñar cuatro tipos de redes neuronales que resolverán dos tipos de problemas distintos. En cuanto a problemas de clasificación de datos, veremos como una maquina es capaz de clasificar si una persona tendrá diabetes a partir de sus datos médicos, y veremos cómo clasificar imágenes en las que aparecen números para determinar que número es el que se representa en la imagen. Por otro lado, se llevarán a cabo dos problemas de predicción de datos. Mediante el primero, estudiaremos como predecir el precio de distintas viviendas según cualidades que se han recogido previamente, y con el segundo, veremos cómo esta máquina es capaz de generar textos una vez haya sido entrenada con ellos.