Reproducing and analyzing adaptive computation time in PyTorch and TensorFlow

View/Open
Document typeBachelor thesis
Date2018-02-06
Rights accessOpen Access
Abstract
The complexity of solving a problem can differ greatly to the complexity of posing that problem. Building a Neural Network capable of dynamically adapting to the complexity of the inputs would be a great feat for the machine learning community. One of the most promising approaches is Adaptive Computation Time for Recurrent Neural Network (ACT). In this thesis, we implement ACT in two of the most used deep learning frameworks, PyTorch and TensorFlow. Both are open source and publicly available. We use this implementations to evaluate the capability of ACT to learn algorithms from examples. We compare ACT with a proposed baseline where each input data sample of the sequence is read a fixed amount of times, learned as a hyperparameter during training. Surprisingly, we do not observe any benefit from ACT when compared with this baseline solution, which opens new and unexpected directions for future research. La complejidad de resolver un problema puede diferir mucho de la complejidad de exponerlo. Diseñar una redneuronal capaz de adaptar se dinámicamente a la complejidad de las entradas seria un gran éxito para la comunidad del aprendizaje automático. Uno de los artículos más prometedores es Adaptive Computation Time para redes neuronales recurrentes (ACT). En este trabajo implementamos ACT en las dos librerías de aprendizaje profundo más usadas, PyTorch y TensorFlow. Ambas implementaciones son código abierto y públicas. Usamos estas implementaciones para evaluar la capacidad del ACT de aprender algoritmos a partir de ejemplos. Comparamos ACT con una nueva referencia donde cada elemento de la secuencia de entrada es leído una cantidad fija de iteraciones aprendida como un hiperparámetro durante el entrenamiento. Sorprendentemente, no observamos ningún beneficio del ACT comparado con esta nueva referencia, cosa que abre nuevas e inesperadas líneas para futura investigación. La complexitat de resoldre un problema pot diferir molt de la complexitat de exposar-lo. Dissenyar una xarxa neuronal capaç d'adaptar-se dinàmicament a la complexitat de les entrades seria un gran èxit per a la comunitat de l'aprenentatge automàtic. Un dels artícles més prometedors és Adaptive Computation Time per a xarxes neuronals recurrents (ACT). En aquest treball implementem ACT en les dues llibreries d'aprenentatge profund més usades, PyTorch i TensorFlow. Ambdues implementacions són codi obert i públiques. Usem aquestes implementacions per avaluar la capacitat de l'ACT d'aprendre algoritmes a partir d'exemples. Comparem ACT amb una nova referència cada element de la seqüència d'entrada és llegit una quantitat fixa d'iteracions, apresa com a hiperparàmetre durant l'entrenament. Sorprenentment, no observem cap benefici de l'ACT comparat amb aquesta nova referència, cosa que obre noves i inesperades línies per a futura investigació.
Description
A first goal of this work is to explore the extension of the work Adaptive Computation Time when combined with Highway Networks. After this, the student will develop a novel approach and test it in a benchmark for machine learning. Graves, Alex. "Adaptive computation time for recurrent neural networks." arXiv preprint arXiv:1603.08983 (2016). Ha, David, Andrew Dai, and Quoc V. Le. "HyperNetworks." arXiv preprint arXiv:1609.09106 (2016).
Except where otherwise noted, content on this work
is licensed under a Creative Commons license
:
Attribution-NonCommercial-NoDerivs 3.0 Spain