Variability modeling language and tool to represent, configure and evaluate Convolutional Neural Network architectures

Resumen

The process of designing Convolutional Neural Network (CNN) architectures currently relies on manual design or the involvement of experts. This process is not only time-consuming but also expensive due to the sheer number of combinations that architects need to do to arrive at the right network hyper-parameters that fit the current problem. In this work, we analyze the current state-of-the-art, in which several approaches have been proposed to automate such processes and explore alternatives for the automated design of Convolutional Neural Networks and Neural Architecture Search (NAS). Additionally, this work proposes a method for hyper-parameter variability generation from a variability model of such convolutional neural networks. The variability model proposed in this master thesis is used to represent, intensively, the valid combinations of parameters corresponding to each convolutional neural network. The language, called CNN variability language, borrows some concepts from Software Product Lines (SPL) and was created on the VariaMos platform to enable architects and engineers not just to create CNN architectures but also to automatically generate configurations, generate executable Jupyter Notebooks for each configuration, and generate comparison reports to speed up the NAS process.

Descripción

El proceso de diseño de arquitecturas de Redes Neuronales Convolucionales (CNN) actualmente depende del diseño manual o de la participación de personal experto. Este proceso no solo toma tiempo, sino que también es costoso debido a la gran cantidad de experimentos que los arquitectos deben realizar para poder llegar a los hiper-parámetros adecuados de la red neuronal que se ajusten al problema a tratar. En este trabajo se discute el estado del arte de varios enfoques que han sido propuestos para automatizar dichos procesos arquitectónicos, explorando alternativas para el diseño automatizado de Redes Neuronales Convolucionales y la Búsqueda de Arquitectura Neural (NAS). Además, este trabajo propone un método para la generación de variabilidad de hiper-parámetros que permite el diseño automático de dichas redes neuronales convolucionales mediante el uso del lenguaje “CNN variability language”, el cual se basa en los conceptos de las líneas de productos de software orientadas a características (FOSPL). El lenguaje fue creado en VariaMos, una herramienta que no solo nos permite usar los lenguajes creados en ella, sino que también nos permite resolver automáticamente la variabilidad de cada modelo gracias al uso de solvers de restricciones. Además, la herramienta nos permite generar Jupyter Notebooks ejecutables por cada configuración encontrada, y con cada una de ellas generar informes comparativos que permitan acelerar el proceso de NAS.

Palabras clave

Redes neuronales, Búsqueda de arquitecturas neuronales, Diseño automático, Redes neuronales convolucionales, Modelos de variabilidad

Citación