EVALUACIÓN DE FRAMEWORKS DE SOFTWARE PARA LA IMPLEMENTACIÓN DE REDES NEURONALES ARTIFICIALES

Una red neuronal artificial puede ser definida como un paradigma de aprendizajeautomático en que una tarea se descompone en tareas más simples denominadas capas o niveles de procesamiento. En las últimas décadas, las redes neuronales artificiales hanpermitido la obtención de importantes avances en problemas de visión computacional,procesamiento de lenguaje natural, análisis de sentimiento, reconstrucción de datos, entreotros. La creciente popularidad de las redes neuronales ha llevado a la creación deuna amplia variedad de frameworks de software para su implementación. Sin embargo,el costo computacional asociado al entrenamiento de redes neuronales es, por lo general,bastante alto, por lo se que hace necesario contar con hardware que ayude a solventareste problema. Actualmente, la GPU es entendida como el recurso computacional másapropiado para trabajar con redes neuronales de manera eficiente. No obstante, el grannúmero de frameworks disponibles lleva a que los usuarios no puedan escoger con claridadla herramienta que mejor se ajusta a sus necesidades. En esta memoria, se evalúael rendimiento de tres frameworks de software, Theano, TensorFlow y CNTK en la implementaciónde redes feedforward, redes convolucionales y redes recurrentes, tanto entérminos temporales como espaciales. Para acceder a las funcionalidades de estos frameworks,se trabaja con el wrapper Keras, por lo que también se evalúa su facilidad deuso y su flexibilidad. A partir de los experimentos realizados, se determina que Theanopresenta un excelente rendimiento en la implementación de redes feedforward y redesrecurrentes, a la vez que TensorFlow logra un rendimiento sobresaliente sobre redesconvolucionales y CNTK obtiene buenos rendimientos sobre los tres tipos de arquitecturasestudiadas.
 An artificial neural network can be defined as a paradigm of automatic learning inwhich a task is decomposed into simpler tasks called layers or processing levels. Inrecent decades, artificial neural networks have allowed the achievement of importantadvances in computer vision, natural language processing, sentiment analysis and datareconstruction problems, among others. The growing popularity of neural networks hasled to the creation of a wide variety of software frameworks for their implementation.However, the computational cost arising in neural network training is, in general, quitehigh, so it is necessary to have hardware to help solve this problem. Currently, the GPUis understood as the most appropriate computational resource to work with neural networksefficiently. However, the large number of available frameworks means that userscan not clearly choose the tool that best suits their needs. In this report, the performanceof three software frameworks, Theano, TensorFlow and CNTK, is evaluated in the implementationof feedforward networks, convolutional networks and recurrent networks,both in temporal and spatial terms. To access the functionalities of these frameworks,The Keras wrapper is used, so its ease of use and flexibility are also evaluated. From theexperiments carried out, it is determined that Theano presents an excellent performancein the implementation of feedforward networks and recurrent networks, while Tensor-Flow achieves an outstanding performance over convolutional networks and CNTKobtains good performances on the three types of architectures studied.