Implementing from scratch an easy-to-use Deep Learning library and experimenting with the internal neural networks pipeline

Autor: García Romera, Abel, Universitat Autònoma de Barcelona. Escola d'Enginyeria
Přispěvatelé: Lumbreras Ruiz, Felipe
Rok vydání: 2021
Předmět:
Zdroj: Dipòsit Digital de Documents de la UAB
Universitat Autònoma de Barcelona
Popis: Deep Learning (DL) is acquiring more and more applications in the industry, but not all professionals who need it have knowledge on the topic. For this reason, I have developed my own DL library for Python that includes multilayer perceptrons and convolutional neural networks, completely from scratch and with the aim of being easy to use, as I have shown when it has been used by some students from my old high school. Furthermore, keeping this objective in mind, I have also developed an evolutionary meta-learning algorithm to automatically find the optimal combination of hyperparameters for the input data, which achieves better results than the RandomSearch and GridSearch techniques. On the other hand, taking advantage of the fact that I implement neural networks from scratch, this article explains its foundations at a theoretical and mathematical level, as well as some interesting comments about its real implementation. Finally, some internal experiments are included that could not be easily performed with high-level libraries, such as the technique that I propose for standardization of values between layers, which allows using high learning rate values without the inconveniences that this usually implies. El Deep Learning (DL) está siendo cada vez más usado en la industria, pero no todos los profesionales que lo necesitan tienen conocimientos sobre el tema. Por ello, he desarrollado mi propia librería de DL para Python que incluye perceptrones multicapa y redes neuronales convolucionales, completamente desde cero y con el objetivo de que sea fácil de usar, como he demostrado cuando la han utilizado algunos alumnos de secundaria de mi antiguo instituto. Además, manteniendo en mente este objetivo, he desarrollado también un algoritmo evolutivo de meta-aprendizaje para encontrar automáticamente la combinación de hiperparámetros óptima para los datos de entrada, y que consigue resultados mejores que las técnicas de RandomSearch y GridSearch analizadas. Por otro lado, aprovechando que implemento las redes neuronales desde cero, este artículo repasa sus fundamentos a nivel teórico y matemático, así como algunos comentarios interesantes sobre su implementación real. Finalmente, se incluyen algunos experimentos internos que no podrían ser fácilmente realizados con librerías de alto nivel, como la técnica que propongo de estandarización de valores entre capas, que permite utilizar tasas de aprendizaje elevadas sin los inconvenientes que esto suele implicar. El Deep Learning (DL) està sent cada vegada més utilitzat a la indústria, però no tots els professionals que ho necessiten tenen coneixements sobre el tema. Per això, he desenvolupat la meva pròpia llibreria de DL per a Python que inclou perceptrons multicapa i xarxes neuronals convolucionals, completament des de zero i amb l'objectiu que sigui fàcil d'usar, com he demostrat quan l'han fet servir alguns alumnes de secundària del meu antic institut. A més, mantenint en ment aquest objectiu, he desenvolupat també un algorisme evolutiu de meta-aprenentatge per trobar automàticament la combinació d'hiperparàmetres òptima per a les dades d'entrada, i que aconsegueix resultats millors que les tècniques de RandomSearch i GridSearch analitzades. D'altra banda, aprofitant que implemento les xarxes neuronals des de zero, aquest article repassa els seus fonaments a nivell teòric i matemàtic, així com alguns comentaris interessants sobre la seva implementació real. Finalment, s'hi inclouen alguns experiments interns que no es podrien realitzar fàcilment amb llibreries d'alt nivell, com la tècnica que proposo d'estandardització de valors entre capes, que permet utilitzar taxes d'aprenentatge elevades sense els inconvenients que això sol implicar.
Databáze: OpenAIRE