Parallelized optimization for gradient-based machine learning algorithms in deep networks

Ignacio Fernandez · 2018

Los algoritmos de Machine Learning se benefician de la gran cantidad de datos disponible. Cuanto mayor sea el conjunto de datos que se utiliza, mejor sera el entre- namiento. Sin embargo, esto implica que se requieran cada vez mas tiempo y recursos para obtener resultados. Una forma de paliar esta limitacion es buscar formas alternativas para optimizar algunas tareas realizadas por algoritmos de Machine Learning. Otra forma de optimizar estos procesos consiste en recurrir a las plataformas de computacion distribuida que ofrecen la posibilidad de escalar recursos para afrontar la necesidad de un alto consumo de recursos computacionales. Sin embargo, ante esta ultima posibilidad surge un problema que esta relacionado con los algoritmos que se utilizan para la fase de entrenamiento de los datos. Estos algoritmos son de naturaleza iterativa, es decir, cada paso depende del anterior y por lo tanto no hay una forma natural o directa de paralelizar estos pasos. En este Trabajo de Fin de Grado se abordara el problema de la paralelizacion de algunas tareas dentro de los algoritmos de Machine Learning. En particular, se hara un estudio del arte sobre el problema abordando las distintas aproximaciones y soluciones que se han planteado en la literatura, estudiando su viabilidad y probando las mas prometedoras para paliar las limitaciones existentes. Adicionalmente, en este Trabajo se implementado una aplicacion con Keras sobre TensorFlow Distribuido, con el fin de codificar las soluciones seleccionadas y comprobar, de forma practica, la viabilidad de un enfoque paralelo y distribuido para solucionar las limitaciones antes mencionadas. Finalmente, se introduce un analisis sobre los resultados obtenidos, las soluciones implementadas y las conclusiones obtenidas. Abstract: Machine Learning algorithms benefit from the large amount of data available. The larger the datasets used, the better the training. However, this implies a growth in the time and resources required to obtain results. One way to alleviate this limitation is to look for alternative ways to optimize some tasks performed by Machine Learning algorithms. Another way to optimize these processes is to resort to distributed computing platforms that offer the possibility of scaling up resources to meet the need for high consumption of computational resources. However, against this last possibility, a problem related to the algorithms that are used for the training phase of the data arises. These algorithms are iterative in nature, that is, each step depends on the previous one and therefore there is no natural or direct way to parallelize these steps. In this Final Project, the problem of the parallelization of some tasks within the Machine Learning algorithms will be addressed. In particular, a study of the art on the problem will be made by addressing the different approaches and solutions that have been raised in the literature, studying their feasibility and testing the most promising in mitigating the existing limitations. Additionally, an application with Keras over Distri- buted TensorFlow was implemented in this work, in order to test the selected solutions and check, in a practical way, the viability of a parallel and distributed approach to solve the aforementioned limitations. Finally, an analysis on the results obtained, the implemented solutions and the conclusions obtained is introduced.

Read the paper · More papers on PaperTik