Objectifs et ambitions :
Le renouveau récent de l'intelligence artificielle et des algorithmes neuro-inspirés révolutionne les usages numériques.
L'accès à d'importantes masses de données permet d’entrainer les millions de paramètres des réseaux de neurones
profonds (ou deep learning), les rendant aujourd'hui meilleurs que l'homme dans certaines tâches de reconnaissance et
de décision. Le programme Deep Mind de Google, qui a été le premier à battre un joueur professionnel de go, est un
bon exemple des progrès réalisés dans le domaine. Pour répondre à des besoins immédiats et quotidiens (réduction
active de bruit, voitures autonomes, réalité virtuelle...), la démocratisation de ces systèmes requiert des implantations
embarquées efficaces.
Savoir faire le lien entre les algorithmes et leurs implémentations est un point essentiel pour maximiser l'efficacité des
systèmes de traitement de l'information. Il existe de nombreuses solutions pour mettre en pratique un algorithme, qui
sont plus ou moins adaptées selon les caractéristiques spécifiques de l'algorithme considéré et de l'utilisation qui en
sera faite. Pour tirer le meilleur parti possible d'un algorithme, sa performance théorique et la qualité de
l'implémentation ne suffisent pas. Il faut aussi sélectionner la technologie la plus adaptée. Parmi les exemples les plus
courants, le développement logiciel "classique" sur processeur généraliste est probablement la solution la plus
générique et portable. Elle est cependant moins performante en termes de débit de calcul et de consommation
énergétique. Elle s'applique donc bien à des systèmes évolutifs pour lesquelles les besoins en puissance de calcul sont
limités. Une solution purement logicielle est cependant assez peu adaptée à des cas plus contraints. Utiliser des
processeurs plus spécialisés comme les processeurs graphiques (GPU) peut nettement améliorer le débit de calcul et la
performance énergétique, à condition que l'algorithme soit adapté au calcul parallèle, et que les contraintes
énergétiques le
L'objectif principal de cette TAF est de contribuer à la formation des ingénieurs qui inventeront l'environnement
numérique de demain, en leur donnant une vision globale des solutions possibles pour mettre en œuvre un algorithme
selon des contraintes données. Avoir cette compétence aujourd'hui, pour un ingénieur, c'est pouvoir s'intégrer et être
force de proposition dans un environnement en mutation rapide, en ayant une vision globale de la notion
d'implémentation, et des avantages et inconvénients des différentes approches. Dans un monde où l'utilisation efficace
des ressources devient capitale, tirer le meilleur parti du silicium est primordial. Cet objectif d'implémentation est
développé autour des algorithmes de deep learning, qui connaissent aujourd'hui un succès croissant. Dans le cadre de la
TAF, ces algorithmes seront décrits, étudiés et implémentés de manière approfondie, afin de bien montrer le lien entre
l'algorithme et sa mise en pratique.
Cet objectif ambitieux passe par la présentation de différentes méthodologies et technologies, afin de donner aux
étudiants le recul nécessaire pour sélectionner de manière raisonnée les solutions d'implémentation les plus adaptées à
un problème donné. La TAF s'intéressera donc aux différentes technologies matérielles embarquées actuelles et futures,
ce qui permettra de comprendre les limites physiques des systèmes de traitement numériques. La mise en œuvre de ces
technologies passe par l’utilisation de différentes méthodologies qui font aussi partie du cadre de cette TAF. Ainsi, les
différentes briques de base utilisables (System on Chip, GPU, ASIC, FPGA,...) dans la conception d’un système de
traitement pourront être abordées, puis détaillées dans les différentes UE proposées aux étudiants. Les techniques
d'intégration modernes de ces briques de base seront aussi au cœur de cette TAF, en abordant en particulier les
systèmes hétérogènes et la communication au sein d'un système intégré.
En acquérant ces différentes compétences, un étudiant ayant suivi cette TAF aura une connaissance solide des
possibilités qui s'offrent à lui pour implémenter un algorithme, tant dans les solutions historiques que dans des
méthodes récentes, et les notions de base nécessaires pour initier ou mettre en œuvre les plus courantes de ces
solutions. Pour mettre en pratique les acquis, cette TAF s'appuiera notamment sur les algorithmes neuro-inspirés, pour
lesquels Télécom Bretagne a acquis une certaine renommée, pour présenter ces différentes approches sous un angle
pratique. Les ingénieurs diplômés qui auront suivi cette TAF auront donc un profil double :
une compétence solide en implémentation, qui est bien plus qu'une simple compétence "technique" de
maîtrise des outils, puisqu'elle implique la sélection du type d'implémentation adapté, et un recul sur l'impact
des choix d'implémentation.
une connaissance approfondie des algorithmes d’apprentissage machine, tant du point de vue théorique
(mathématique) que pratique (implémentations multiples)
Ces deux compétences principales sont très recherchées par les entreprises. Le nombre d'offres d'emploi autour du
machine learning est conséquent, comme on peut le voir sur les sites de recherche d'emploi et d'après les discussions
avec les entreprises. Les compétences liées au système embarqué sont également appréciées des entreprises, ce que
l'on constate déjà au travers de la Filière 1 à Télécom Bretagne. Cette double approche est également au cœur du projet