[en] ABSTRACT: The first goal of this project consists in learning how to properly use Python and its deep learning libraries. In order to get familiar with Keras environment, IFCA has provided me an account with access to the Data Science Master homepage. I had to complete all of the "Introduction to massive data" tasks prior to starting the real project. Then I moved to convolutional networks. I joined a real deep learning project with IFCA and National Museum of Natural Sciences where I had to train a neural network in order to distinguish between 83 different species of Gastropoda Conidae. It is a taxonomic family of marine gastropod molluscs commonly known as Conus. Each Conus species possesses a unique shell pattern. Aiming to classify them, I had to modify the architecture of a Docker called deep-oc-imageclassification-tf. It was developed by IFCA e-science research group. It was originally used to distinguish different classes of all kind of everyday objects. Taking advantage of the similar geometric abstraction among Conus classes and image-tf, I was able to reuse some of the convolutional layers. I had to retrain the dense ones. I also had to develpop some code for data preprocessing and result analysis. I obtained an accuracy of 92.9% on validation data. FInally, I modified the net so that it could receive extra information about the Conus simple geographical location. Then I retrained it with image and location data and tested it. After trying different kind of dense layer structures, I end up choosing a 1024 parameter hidden dense layer. It increased the net accuracy on validation data to 95.4%, showing that this kind of additional data improves the classification.

[es] RESUMEN: El primer objetivo de este proyecto consiste en aprender a usar Python y sus librerías de aprendizaje profundo. Con este fin, el IFCA me ha cedido acceso a la página de Moodle del Máster en Ciencia de Datos. He tenido que terminar todas las tareas de Python de la asignatura "Introducción a los datos masivos" antes de empezar el proyecto real. Después he pasado a las redes convolucionales. He formado parte de un proyecto real con el IFCA y el Museo Nacional de Ciencias Naturales donde he tenido que entrenar una red neuronal para que distinga entre 83 especies distintas de Gastropoda Conidae. Se trata de una familia de moluscos gasterópodos vulgarmente conocidos como Conus. Cada una de las especies de esta familia posee una concha con un patrón característico. Para lograr distinguirlos, he tenido que modificar la arquitectura de un Docker llamado "deep.oc.image-classification-tf." Es un Docker desarrollado por el grupo de e-Ciencia del IFCA. Se usaba originalmente para distinguir entre clases de objetos cotidianos. Tomando ventaja de que las redes convolucionales abstraen figuras geométricas similares en ambos casos, he podido reutilizar algunas de sus capas. He tenido que reentrenar las densas. También he tenido que desarrollar programas en Python para preprocesar los datos y analizar los resultados. He obtenido una precisión del 92.9% en los datos de validación. Finalmente, he modificado la red para que pueda recibir información adicional sobre la localización geográfica de los Conus. He reentrenado con imágenes y localización como datos de entrada y lo he probado. Tras intentar distintas estructuras para las capas densas, he escogido una capa densa oculta que retorna un vector de 1024 parámetros. Esto ha hecho aumentar la precisión de la red hasta un 95.4%, demostrando que este tipo de información adicional mejora la clasificación.