L’avènement de l’ère de l’Internet des Objets (IoT) a conduit au déploiement massif de réseaux de capteurs [8]. Ceux-ci ont été déployés pour des tâches diverses autour de l’acquisition et du traitement des données. Si les premiers paradigmes de développement de réseaux conduisaient à remonter un flux important d’information vers des stations de calculs pour traiter ces données (Cloud-based solutions), la tendance actuelle est de déporter un maximum les traitements au niveau du nœud (Edge computing solutions) [10,13]. Outre une limitation de la quantité de données à faire remonter, ce paradigme permet de renforcer la confidentialité et la sécurité des informations traitées par le réseau [12]. Ceci nécessite cependant de renforcer la capacité de traitement des nœuds au détriment de la capacité de remonter de l’information [11].
Les nœuds de capteurs sont en interaction directe avec les données qu’ils sont amenés à capter et à traiter. Il semble donc naturel de vouloir intégrer des mécanismes de traitement puissant, susceptibles de pouvoir extraire le maximum d’information pertinentes sur ces données. En fonction de la quantité de traitement à faire, il peut également être plus efficace énergétiquement de réaliser ces traitements directement sur le nœud plutôt que de remonter l’intégralité des données captées [11]. Depuis quelques années, les techniques d’Intelligence Artificielle (IA) à base de Machine Learning (ML) sont largement utilisées et permettent d’améliorer singulièrement les performances de nombreuses applications. La phase d’apprentissage (entraînement) de ces réseaux se fait dans une phase amont sur des calculateurs puissants avec des bases de données soigneusement établies [2]. La phase d’inférence (d’exploitation par le réseau IoT) requiert des moyens moins importants et il est envisagé de pouvoir réaliser cette phase directement sur le nœud.
Le transfert de l’algorithme de ML vers les nœuds du réseau n’est pas une tâche aisée et implique plusieurs verrous scientifiques importants :
1. Les architectures des nœuds ont des ressources logicielles et matérielles limitées ce qui rend délicat l’utilisation directe des réseaux de neurones classiquement utilisés dans la littérature. Le réseau Alexnet très utilisé en traitement d’image dispose classiquement d’un million de paramètres. Il faudrait donc 64 mégaoctet de mémoire pour stocker les poids (dans le format le plus usuel) à comparer à l’ordre de grandeur de la mémoire des objets souvent déployés (la dizaine de kilooctet).
2. Les architectures ont une énergie limitée et doivent gérer finement leur dépense énergétique [3]. Ceci passe par une adaptation de la capacité de traitement en fonction de l’état de la charge [1] voire un fonctionnement intermittent avec des nouvelles architectures à base de mémoire non volatile.
3. Les systèmes déployés deviennent alors statiques et ne peuvent pas facilement procéder à une adaptation de leur configuration (par exemple les poids du réseau) ce qui peut conduire à une perte de performances lors de l’exploitation par le réseau IoT [4]. Les approches classiques à base d’apprentissages fédérés sont prometteuses et intéressantes mais nécessite une architecture du réseau IoT bien spécifique [6].
L’objectif de la thèse est donc de proposer une méthodologie et des outils permettant de pouvoir développer rapidement des applications et d’intégrer des algorithmes de ML sur des architectures embarquées et de permettre de réaliser des tâches d’IA sous contraintes de frugalité. Ces travaux s’appuieront sur une utilisation efficace des ressources Hardware (HW) et Software (SW) de la cible, sur les dernières techniques prometteuses de compression de réseau de neurones et vise à permettre un prototypage rapide de solutions ML sur cibles embarquées.
Différents axes de travail sont envisagés dans le cadre de la thèse de doctorat pour proposer cette nouvelle méthodologie :
• L’utilisation des ressources HW et le partitionnement entre taches HW et SW.
Les architectures embarquées disposent de plus en plus de petits blocs de traitement spécialisé (typiquement des petits FPGA Lattice). L’équipe GRANIT a déjà démontré les bénéfices d’utiliser l’ensemble des ressources Hardware et Software [9]. Dans le cadre du travail de thèse, on s’appuiera sur des techniques de synthèse haut niveau pour permettre la description de certains blocs de traitement en VHDL.
• L’analyse et la proposition de méthodes de réduction de complexité des réseaux par élagage (pruning) [5].
Les réseaux de neurones disposent d’un grand nombre de paramètres et certains ont une valeur et un impact très faible dans le comportement du réseau et peuvent être supprimés. On parle alors de pruning. Dans le cadre de cette thèse, il convient d’étudier le compromis entre ce pruning et les performances de détection nécessairement réduites. Un soin particulier pourrait être mis en œuvre pour adapter le ratio d’élagage en rapport avec les capacités de mémoires et de calcul des cibles.
• L’optimisation mémoire de l’implémentation des réseaux de neurones.
Un autre de degré de liberté important pour réduire la complexité des réseaux de neurones est de jouer sur la manière dont les coefficients vont être stockés dans le nœud. Une étude sur le compromis entre la quantification des données et la perte de performances en regard de la capacité de calcul sera réalisée [7].
• L’analyse de méthodes structurellement moins complexes et plus adaptables aux conditions du réseau. Certaines architectures de ML ontété structurellement pensées pour être moins complexes. C’est le cas par exemple des TinyML ou Thin MobileNet. Il pourra être intéressant de comparer ces approches de petits réseaux par rapport aux stratégies d’élagage de réseaux intrinsèquement plus grands. D’autres types d’architecture ML sont intéressantes, comme les Programmable Tangled Graph que l’équipe GRANIT a déjà utilisé dans le contexte d’IA pour les signaux radio-fréquence et qui sont faible complexité. Positionner ce type d’approche pour mieux hiérarchiser les grandes familles de ML permettrait de systématiser l’approche méthodologique permettant de prototyper des méthodes d’IA sur les nœuds du réseau.
[1] Faycal Ait Aoudia, Matthieu Gautier, and Olivier Berder. RLMan : An Energy Manager Based on Reinforcement Learning for Energy Harvesting Wireless Sensor Networks. IEEE Transactions on Green Communications and Networking, 2(2) :408–417, 2018.
[2] Md Zahangir Alom, Tarek M. Taha, Christopher Yakopcic, Stefan Westberg, Paheding Sidike, Mst Shamima Nasrin, Brian C Van Esesn, Abdul A S. Awwal, and Vijayan K. Asari. The History Began from AlexNet : A Comprehensive Survey on Deep Learning Approaches. 2018.
[3] Yuan-Hao Chang, Jalil Boukhobza, and Song Han. Introduction to the Special Issue on Memory and Storage Systems for Embedded and IoT Applications. ACM Transactions on Embedded Computing Systems, 21(1) :1–4, 2022.
[4] Mathieu Goutay. Applications of Deep Learning to the Design of Enhanced Wireless Communication Systems. 2022.
[5] Yiming Hu, Siyang Sun, Jianquan Li, Xingang Wang, and Qingyi Gu. A novel channel pruning method for deep neural network compression. 2018.
[6] Ahmed Imteaj, Khandaker Mamun Ahmed, Urmish Thakker, Shiqiang Wang, Jian Li, and M. Hadi Amini. Federated Learning for Resource-Constrained IoT Devices : Panoramas and State of the Art. In Roozbeh Razavi- Far, Boyu Wang, Matthew E. Taylor, and Qiang Yang, editors, Federated and Transfer Learning, volume 27 of Adaptation, Learning, and Optimization, pages 7–27. Springer International Publishing, 2023.
[7] Urs K ̈oster, Tristan Webb, Xin Wang, Marcel Nassar, Arjun K Bansal, William Constable, Oguz Elibol, Scott Gray, Stewart Hall, Luke Hornof, Amir Khosrowshahi, Carey Kloss, Ruby J Pai, and Naveen Rao. Flexpoint : An adaptive numerical format for efficient training of deep neural networks. In I. Guyon, U. Von Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vishwanathan, and R. Garnett, editors, Advances in Neural Information Processing Systems, volume 30. Curran Associates, Inc., 2017.
[8] He Li, Kaoru Ota, and Mianxiong Dong. Learning IoT in Edge : Deep Learning for the Internet of Things with Edge Computing. IEEE Network
[9] Baptiste Roux, Matthieu Gautier, Olivier Sentieys, and Jean-Philippe Delahaye. Energy-driven design space exploration of tiling-based accelerators for heterogeneous multiprocessor architectures. Microprocessors and Microsystems : Embedded Hardware Design (MICPRO)
[10] Wei Yu, Fan Liang, Xiaofei He, William Grant Hatcher, Chao Lu, Jie Lin, and Xinyu Yang. A Survey on the Edge Computing for the Internet of Things. IEEE Access, 2018.
[11] Marian Verhelst and Boris Murmann. Machine Learning at the Edge. In Boris Murmann and Bernd Hoefflinger, editors, NANO-CHIPS 2030, The Frontiers Collection, pages 293–322. Springer International Publishing, 2020.
[12] Yinhao Xiao, Yizhen Jia, Chunchi Liu, Xiuzhen Cheng, Jiguo Yu, and Weifeng Lv. Edge Computing Security : State of the Art and Challenges. Proceedings of the IEEE, 2019
[13] Wei Yu, Fan Liang, Xiaofei He, William Grant Hatcher, Chao Lu, Jie Lin, and Xinyu Yang. A Survey on the Edge Computing for the Internet of Things. IEEE Access, 2018