[en] Currently, all the processes that are being executed in governments, companies and research centres are generating data that will be processed to extract valuable information. The process of extracting relevant information in data is known as Knowledge Discovery in Databases. This process contains two important steps, which are data cleaning and preprocessing, and data mining. The first one cleans the data in terms of inconsistencies, possible missing values, noise (errors in the data), etc. The second one uses the clean or smart data generated in the first step and applies Machine Learning algorithms to extract patterns and information from the data. Deep Learning, a branch of Machine Learning, is now being widely used due to its good performance, especially when the data is composed of images, even outperforming other Machine Learning algorithms. However, Deep Learning is known to need great quantities of data to perform well, which is a drawback for the application of Deep Learning algorithms in scenarios that lack a big volume of data. In this thesis, we propose the use of different preprocessing and optimization techniques to be able to use Deep Learning, and in particular, Convolutional Neural Networks, when the image data sets that we have available are small (below 1500 images), because it is costly or hard to obtain more data. That way, we transform the small data sets into smart data that can be used to train Convolutional Neural Networks.

[es] Actualmente, todos los procesos que son ejecutados en gobiernos, empresas y centros de investigacións están generando datos que serán procesados con el objetivo de obtener información de valor. El proceso de extraer esta información relevante en los datos es conocido como Knowledge Discovery in Databases. Este proceso contiene dos pasos importantes, conocidos como limpieza y preprocesado de datos, y data mining. El primero limpia los datos originales en términos de inconsistencias, posibles valores perdidos, ruido (que son pequeños errores en los datos), etc. El segundo usa este conjunto ya limpio generado en el primer paso y usa algoritmos de aprendizaje automático para extraer patrones e información de estos datos. El Deep Learning, una rama del aprendizaje automático, está siendo ampliamente usado ahora debido al buen rendimiento que ha mostrado, especialmente cuando los datos de entrada están compuestos por imágenes, superando los resultados obtenidos por otros algoritmos de aprendizaje automático. Sin embargo, los algoritmos de Deep Learning son conocidos por necesitar grandes cantidades de datos para obtener buenos resultados, lo que supone un inconveniente para su aplicación en escenarios que carecen de un gran volumen de datos. En esta tesis, proponemos el uso de distintas técnicas de preprocesamiento y optimización que nos permitan el uso de algoritmos de Deep Learning y, en particular, redes neuronales convolucionales, cuando los conjuntos de datos de los que disponemos son pequeños (con un tamaño por debajo de las 1500 imágenes) debido a que es costoso y difícil obtener más datos. De esta forma, transformamos estos conjuntos pequeños en lo que se conoce como smart data, para que puedan ser usados para entrenar redes neuronales convolucionales.