Resumen:
Considerando el beneficio que provee el desarrollo por hardware de las redes neuronales artificiales, una alternativa que permite el paralelismo necesario es un FPGA, brindando un alto rendimiento, gran eficiencia energética y mayor flexibilidad que otros sistemas. Por ello, en el presente trabajo se aborda la implementación de técnicas de optimización para la instrumentación en FPGA de las funciones de activación Sigmoide, Tangente Hiperbólica, Swish, ELU, RELU y Leaky Relu, para una red neuronal artificial FeedFoward reconfigurable, siendo posible modificar el número de capas, el número de neuronas por capas y la función de activación, por medio de una interfaz gráfica de usuario. La red neuronal fue previamente programada y probada en Python, teniendo por entrada la base de datos MNIST, por lo que clasifica imágenes de números manuscritos en dígitos del 0 al 9.
Se instrumentó una red neuronal en la FPGA EP4CE22F17C6 de la familia Cyclone IV E, que consume 2,897 elementos lógicos, considerando ya todas las funciones de activación, representando un total del 13% de todos los elementos lógicos disponibles, de los cuales 849 elementos lógicos corresponden a las funciones de activación, representando el 29% de los elementos lógicos utilizados. En el diseño de la red se implementaron las mismas técnicas de optimización que se observaron en modelos de redes neuronales en el Estado del Arte. Las funciones de activación fueron implementadas por aproximación PWL con el objetivo de reducir su consumo de recursos lógicos, así como de multiplicadores embebidos, aplicando técnicas de optimización no sólo en su diseño, sino también en su implementación. Se logró diseñar aproximaciones nunca antes hechas, para el caso la función ELU y Swish, un diseño modificado para el caso de la Leaky ReLU, y la implementación de aproximaciones ya conocidas como el de la Sigmoide y la Tangente hiperbólica, obteniendo mejores resultados que los encontrados en el Estado del Arte.
Descripción:
A partir de la implementación de técnicas de optimización y aproximación lineal por partes es posible instrumentar todas las funciones de activación del Estado del Arte, la función ReLU, Sigmoide, ELU, Tangente Hiperbólica, Leaky ReLU y Swish, manteniendo una buena precisión y un bajo consumo de recursos. Además, es posible instrumentar tales funciones del Estado del Arte en una misma red neuronal artificial eficiente y reconfigurable, permitiendo la instrumentación del sistema en un FPGA de recursos limitados.