Resumen: En la actualidad, Las redes neuronales convolucionales son ampliamente utilizadas en numerosas aplicaciones, en especial las relacionadas con la visón por computador. Estos modelos obtienen resultados excelentes, pero con la búsqueda de obtener el mejor resultado posible, estos modelos han aumentado su potencia y tamaño, mejorando su rendimiento pero necesitando una gran cantidad de recursos para ello. Esto se puede convertir en un problema cuando la plataforma donde se va a ejecutar la red neuronal tiene ciertas limitaciones, como pueden ser las plataformas de bajo consumo orientadas a dispositivos embebidos. Por esta razón resulta interesante intentar optimizar los algoritmos de deep learning, para conseguir que trabajen con una potencia y una cantidad de recursos computacionales menores, logrando trabajar de manera más eficiente en estos dispositivos embebidos. El objetivo de este trabajo es estudiar algunos de los distintos métodos de optimización que existen actualmente, y elegir uno de ellos para llevar a cabo una implementación de este en un modelo de deep learning de reconocimiento visual. Consiguiendo realizar un análisis de la nueva arquitectura para, a partir de ella, ser capaces de generar modelos más optimizados que puedan ejecutarse y trabajar en plataformas de bajo consumo. Para ello primero se ha realizado un estudio del estado del arte de las distintas técnicas de optimización, para después elegir una de estas técnicas, en este caso ConvNet-AIG, de la que posteriormente se realizara la implementación. También se selecciona como modelo de base, al que incorporar este optimizador, el modelo de segmentación semántica MiniNet, que de por si ya es un modelo de red neuronal profunda eficiente. Como primer punto de evaluación, se ha verificado que este modelo puede ejecutarse en las plataformas de bajo consumo que se han elegido para el proyecto. Con los dos modelos clave elegidos, se trabaja para adaptar ConvNet-AIG a MiniNet, solventando poco a poco todos los problemas de programación de la nueva arquitectura que han surgido hasta tener un modelo entrenable que aúna las dos ideas: la arquitectura de MiniNet con las ideas del optimizador de ConvNet-AIG. La idea de ConvNet-AIG es conseguir que el modelo de base incluya una serie de parámetros aprendidos que dependiendo de la entrada se den cuenta de que partes de la red es necesario ejecutar y cuales no. Como primer punto de evaluación, se ha verificado que este modelo no aumente mucho los recursos necesarios para ejecutarse respecto al modelo de base, para que pueda seguir ejecutándose en las plataformas de bajo consumo. Finalmente se evalúa este nuevo modelo implementado, analizando por un lado la calidad de los resultados obtenidos. Para ello se han definido y entrenado cuatro versiones con distintos parámetros de entrenamiento, para ver cual era la mejor manera de entrenar esta arquitectura construida. Se ha comprobado que el mejor modelo entrenado mantiene resultados comparables con la arquitectura original de MiniNet, y sin embargo no necesita ejecutar un porcentaje significativo de operaciones del modelo original.
La implementación modificada de MiniNet realizada en este trabajo es un resultado muy interesante, ya que muestra como incluso modelos ya de por si eficientes y compactos siguen ejecutando muchas operaciones innecesarias para muchos de los datos de entrada y apunta a donde optimizarlo para evitar esto.