Medric Djeafea Sonwa : Optimisation des calculs des réseaux de neurones par la réduction de la précision en nombre de bit des poids : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Introduction)
(Introduction)
Ligne 17 : Ligne 17 :
 
de réduire le temps de calcul et la mémoire nécessaire. Ainsi, dans ce papier nous présentons les formulations
 
de réduire le temps de calcul et la mémoire nécessaire. Ainsi, dans ce papier nous présentons les formulations
 
mathematiques de deux méthodes d'entre elles : la binarisation qui consiste à réduire les poids et les outputs
 
mathematiques de deux méthodes d'entre elles : la binarisation qui consiste à réduire les poids et les outputs
dans l'ensemble binaire <math>{-1, +1}</math>, et la ternarisation qui consiste à traduire ceci dans l'ensemble <math>{-1,0,+1}</math>.
+
dans l'ensemble binaire <math>({-1, +1})</math>, et la ternarisation qui consiste à traduire ceci dans l'ensemble <math>({-1,0,+1})</math>.
  
 
== Objectif ==
 
== Objectif ==

Version du 24 mai 2020 à 11:27

Cornues.png
Titre du projet Optimisation des calculs des réseaux de neurones par la réduction de la précision en nombre de bit des poids
Cadre IRL

Labo TIMA
Équipe System Level Synthesis
Encadrants olivier.muller@univ-grenoble-alpes.fr,frederic.petrot@univ-grenoble-alpes.fr


Introduction

La génération courante des réseaux de neurones nécessitent beaucoup de ressources en terme de stockage et de temps de calcul. De part le nombre élevé de paramètres nécessaires pour ces réseaux, ainsi que le nombre de bits de précision nécessaires pour représenter ces paramètres (32 bits, 64 bits etc. pour chacun des millions de paramètres), le temps des opérations de reconnaissance devient énorme et il est difficilement envisageable d'intégrer cette génération de réseaux de neurones dans des systèmes embarqués, comme des drônes ou encore des microcontroleurs qui ne disposent pas d'une grande puissance. Ayant constaté cette problématique, de nouvelles recherches se sont penchées sur la possibilité de réduire le nombre de bits sur lesquels sont représentés les paramètres des NN afin de réduire le temps de calcul et la mémoire nécessaire. Ainsi, dans ce papier nous présentons les formulations mathematiques de deux méthodes d'entre elles : la binarisation qui consiste à réduire les poids et les outputs dans l'ensemble binaire Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): ({-1, +1}) , et la ternarisation qui consiste à traduire ceci dans l'ensemble Échec d'analyse (L’exécutable <code>texvc</code> est introuvable. Lisez math/README pour le configurer.): ({-1,0,+1}) .

Objectif

L’objectif de ce projet est d'étudier l'opportunité de réduire la précision des nœuds de calcul d'un CNN de manière non uniforme de manière à éviter un coûteux processus d'apprentissage. Cette stratégie a du sens pour des implantations matérielles reconfigurables (à base de FPGA) dans lesquelles chaque nœud peut avoir sa propre configuration en fonction de l'application visée. (Cette étape d'implantation ne fait pas partie du travail demandé, elle n'est citée que pour montrer l'intérêt effectif du travail demandé).

Le travail attendu consiste dans un premier temps à faire un état de l'art ciblé sur les CNN efficace, puis à proposer une stratégie de réduction de la complexité et enfin à en valider la pertinence en simulation.

Prérequis

Archi : mieux vaut avoir compris les bases

Maths : certains papiers en sont bourrés. Phobiques, s'abstenir

Utilisation des outils classiques d'apprentissage : tensorflow, pytorch, keras, etc, suivant le goût et les usages de chacun