[en] Last decade advances in deep learning have supposed a great leap in state-of-the-art results with regard to tasks such as image classification, language translation, and many others. However, with such success, there has been a related increase in model complexity and size, which has incremented the hardware requirements both for training and inference (both generally and initially limited to GPUs). Moreover, the hardware capabilities (OPS performance, memory, throughput, latency, energy) have supposed an initial limitation to deploying applications in resource-constrained platforms and applications, such as mobile or embedded platforms. There have been many initiatives to reduce training time, and energy costs, and improve data efficiency during the development phase. Equally, there has also been profound research to optimize deep learning models with a focus on inference and deployment: decreasing model complexity, size, latency, and memory consumption. In such direction, there are five optimization methods that have stood out: pruning, quantization, neural architecture search, efficient operations, and distillation. In parallel, in order to enable inference deployment in specialized hardware platforms, new frameworks have appeared (such as CMSIS-NN or uTensor for MCUS, and TF Lite for mobile platforms). Those frameworks include several features for the deployment of models, but most importantly, the crucial point is if they support the specific model operations and optimizations, ensuring the final application deployment. All in all, from optimization procedures to conversion and deployment frameworks, the procedure of developing efficient NN-based models and deploying them to constrained hardware has certainly improved, albeit with still some limitations. In such a sense, this thesis is framed by such improvements and limitations: first, with the development and improvement of NN optimization techniques, and second, with the use and development of software for porting the optimized models. All with a special focus on three industrial and practical cases which are the main drivers of the developments: automotive human-machine interaction, ITM in mobile devices, and bronchoscopy guidance. In the first case, we show the deployment and optimization of RNNs in MCUs, as well as the usage and improvement of Bayesian optimization and NAS methods to deliver minimal but well-performing networks. Altogether we deliver a framework for automatically converting and deploying networks in Cortex-M-based MCUs. In the second environment, we employ quantization and efficient operations to bring an ITM network to mobile devices for efficient inference, providing improvements in latency up to 100x with only a 3% accuracy loss. Finally, we develop an efficient bronchoscopy guidance network with structured pruning and efficient operations, that provides a reduction of x4 of NN size and an improvement of ~14% in accuracy for position localization.

[es] Los avances de la última década en el aprendizaje profundo han supuesto un gran salto en los resultados del estado del arte en tareas como la clasificación de imágenes, la traducción de idiomas y muchas otras. Sin embargo, con tal éxito, ha habido un aumento en la complejidad y el tamaño de los modelos, lo que ha incrementado los requisitos de hardware tanto para el entrenamiento como para la inferencia. Además, las capacidades del hardware (rendimiento OPS, memoria, rendimiento, latencia, energía) han supuesto una limitación inicial para implementar aplicaciones en plataformas y aplicaciones con recursos limitados, como plataformas móviles o integradas. Ha habido muchas iniciativas para reducir el tiempo de capacitación y los costos de energía, y mejorar la eficiencia de los datos durante la fase de desarrollo. Del mismo modo, también ha habido una investigación profunda para optimizar los modelos de aprendizaje profundo con un enfoque en la inferencia y el despliegue: la disminución de la complejidad, el tamaño, la latencia y el consumo de memoria del modelo. En esa dirección, se han destacado cinco métodos de optimización: poda, cuantización, búsqueda de arquitectura neuronal, operaciones eficientes y destilación. Paralelamente, con el fin de permitir el despliegue de la inferencia en plataformas de hardware especializadas, han aparecido nuevos marcos (como CMSIS-NN o uTensor para MCUS y TF Lite para plataformas móviles). Esos marcos incluyen varias características para la implementación de modelos, pero lo más importante es que el punto crucial es si admiten las operaciones y optimizaciones específicas del modelo, lo que garantiza la implementación final de la aplicación. En general, desde los procedimientos de optimización hasta los marcos de conversión e implementación, el procedimiento para desarrollar modelos eficientes basados en NN e implementarlos en hardware restringido sin duda ha mejorado, aunque todavía con algunas limitaciones. En tal sentido, esta tesis se enmarca en dichas mejoras y limitaciones: primero, con el desarrollo y mejora de técnicas de optimización de NN, y segundo, con el uso y desarrollo de software para portar los modelos optimizados. Todo ello con especial foco en tres casos industriales y prácticos que son los principales impulsores de los desarrollos: interacción hombre-máquina en automoción, ITM en dispositivos móviles y guía broncoscópica. En el primer caso, mostramos la implementación y optimización de RNN en MCU, así como el uso y la mejora de la optimización bayesiana y los métodos NAS para ofrecer redes mínimas pero de buen rendimiento. En total, ofrecemos un marco para convertir e implementar automáticamente redes en MCU basadas en Cortex-M. En el segundo entorno, empleamos la cuantificación y operaciones eficientes para llevar una red ITM a dispositivos móviles para una inferencia eficiente, proporcionando mejoras en la latencia de hasta 100x con solo una pérdida de precisión del 3 %. Finalmente, desarrollamos una red de guía de broncoscopia eficiente con poda estructurada y operaciones eficientes, que proporciona una reducción de x4 del tamaño de NN y una mejora de ~ 14% en la precisión para la localización de la posición.