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