ED Sciences Physiques et de l'Ingénieur
Méthodologie de conception d'architectures de couches d'encodage impulsionnel: application au traitement de signaux biologiques
par Clémence GILLET (Laboratoire de l'Intégration du Matériau au Système)
Cette soutenance a lieu à 9h30 - Amphi G ENSEIRB-Matmeca 1 Avenue du Dr Albert Schweitzer 33400 Talence
devant le jury composé de
- Philippe COUSSY - Professeur des universités - Université Bretagne Sud - Rapporteur
- Benoît MIRAMOND - Professeur des universités - Université Côte d'Azur - Rapporteur
- Sylvie RENAUD - Professeure des universités - Bordeaux INP - Examinateur
- Cristell MANEUX - Professeure des universités - Université de Bordeaux - Examinateur
L'Intelligence Artificielle (IA) a révolutionné de nombreux domaines tels que la santé, l'industrie, l'automobile et la domotique. Parmi les algorithmes d'IA, on trouve les réseaux de neurones artificiels, dont la complexité n'a cessé d'augmenter ces dernières années. Cette évolution a permis d'atteindre des performances en matière de reconnaissance de motifs proches des performances humaines, notamment grâce au Deep Learning. Cependant, ces résultats sont obtenus au détriment de coûts énergétiques importants, entravant le déploiement de ces algorithmes sur des systèmes aux contraintes fortes tels que les systèmes embarqués. Pour pallier ces limites, des modèles de réseaux de neurones artificiels s'inspirant de la biologie tendent à émerger, et en particulier les réseaux de neurones impulsionnels. Intégrés à des accélérateurs matériels dédiés, l'utilisation de ces réseaux permet de réduire fortement la consommation énergétique ainsi que le temps de traitement au sein de systèmes embarqués. Cependant, en raison du manque de capteurs intrinsèquement événementiels et capables de s'interfacer directement avec les réseaux impulsionnels, les cas d'utilisation réels de ces systèmes sont limités. De plus, la rareté des capteurs événementiels existants conduit les développeurs à utiliser des capteurs conventionnels et à y ajouter une couche d'encodage afin de produire des impulsions exploitables par les réseaux de neurones impulsionnels. Le nombre réduit d'implantation matérielle implémentant de tels systèmes encodages, associé à la difficulté d'adaptation à des applications différentes, vient limiter le développement d'architectures matérielles de réseaux de neurones impulsionnels. Nous proposons donc une méthodologie pour générer, optimiser et évaluer des architectures numériques d'encodage en impulsions. Les outils développés permettent d'intégrer un large panel d'algorithmes d'encodage et de les adapter à de nombreux types de données. Grâce à sa versatilité, la méthodologie permet à l'utilisateur de générer rapidement un nombre élevé d'architectures répondant à différents compromis en fonction des contraintes applicatives. Le framework se compose d'une première étape reposant sur des scripts d'automatisation générant des modèles comportementaux adaptés décrits en C/C++ répondant aux contraintes applicatives. Ces modèles sont ensuite transmis à des outils reposant sur de la synthèse de haut niveau (High Level Synthesis) et permettent de produire un panel d'architectures pour chacun des modèles générés précédemment. Enfin, un environnement de test en conditions réelles a été développé afin d'évaluer les performances des différentes solutions produites et de sélectionner celles correspondant le mieux aux contraintes applicatives. À des fins de démonstration, nous avons appliqué cette méthodologie à un FPGA économique et compact. Deux algorithmes d'encodage présentant différentes approches ont été intégrés. Le premier algorithme intègre un prétraitement fréquentiel permettant de séparer le signal à traiter en différentes composantes, avant d'encoder ces dernières sous forme d'impulsions par le biais de neurones bio-inspirés. Le second algorithme repose sur l'utilisation de neurones sensitifs présentant l'avantage de ne pas nécessiter de prétraitement et produisant une représentation temporelle du signal. À l'aide de la méthodologie, il a été possible de générer en un temps très réduit plusieurs dizaines d'architectures présentant des performances temporelles et énergétiques variées. L'exploitation des résultats issus de la comparaison des architectures permet de choisir la solution optimale en fonction du cadre applicatif. La méthodologie que nous avons développée peut intégrer tout algorithme d'encodage et pourrait être étendue à la génération et l'optimisation d'architectures numériques de réseaux de neurones impulsionnels afin de faciliter et d'accélérer leur déploiement.