Descripción:
RESUMEN: Las bibliotecas de funciones de aprendizaje automático actualmente disponibles han abordado fuertemente el aprendizaje profundo y la computación paralela, pero han dejado de lado los métodos tradicionales de aprendizaje automático y el soporte a los sistemas embebidos en comparación. Por ello, en esta tesis se ha desarrollado una nueva biblioteca de aprendizaje automático con un total de 53 funciones que aporta con 6 nuevos métodos tradicionales de aprendizaje automático, a la vez que soporta la computación paralela y los sistemas embebidos. Para tener una referencia con la que validar y comparar la biblioteca desarrollada, se eligieron las biblioteca Dlib, PyTorch, scikit-learn y TensorFlow como principales bibliotecas de comparación. Durante el proceso de prueba y validación se desarrollaron varios algoritmos en modo secuencial: 6 para métodos estadísticos; 6 para métodos de escalado de datos; 9 para métodos de métricas de evaluación; 12 para métodos de regresión; 12 para métodos de clasificación; y 2 para métodos de aprendizaje profundo. Además, se desarrollaron algoritmos adicionales para paralelizar los algoritmos de aprendizaje profundo en CPU, GPU única y GPU múltiple. Sin embargo, sólo 36 de los algoritmos secuenciales fueron comparados con algoritmos equivalentes y los resultados indican que alrededor del 83,33% de las funciones de la biblioteca de esta tesis fueron m ́as rápidas; el 8,33% fueron igualmente rápidas; y otro 8,33% fueron m ́as lentas. Por último, se realizaron algunas implementaciones en un Arduino UNO y un microprocesador STM32F446RE para probar el soporte a sistemas embebidos en la biblioteca desarrollada.
ABSTRACT: The currently available machine learning libraries have strongly addressed deep learning and parallel computing, but have neglected traditional machine learning methods and support for embedded systems in comparison. Therefore, in this thesis, a new machine learning library with a total of 53 functions has been developed and contributes with 6 new traditional machine learning methods, while supporting parallel computing and embedded systems. For a reference against which to validate and benchmark the developed library, the Dlib, PyTorch, scikit-learn and TensorFlow libraries were chosen as the main comparators. During the testing and validation process, several algorithms were developed in sequential mode: 6 for statistical methods; 6 for feature scaling methods; 9 for evaluation metric methods; 12 for regression methods; 12 for classification methods; and 2 for deep learning methods. Furthermore, additional algorithms were developed in order to parallelize the deep learning algorithms in CPU, single GPU and multiple GPU. However, only 36 of the sequential algorithms were compared with equivalent algorithms and the results indicate that about 83.33% of the library functions of this thesis were faster; 8.33% were equally fast; and another 8.33% were slower. Finally, some implementations were made on an Arduino UNO and STM32F446RE microprocessor to test the support of embedded systems with the developed library.