IRL - Implémentation efficace de réseaux de neurones convolutifs

De Ensiwiki
Aller à : navigation, rechercher


Implémentation efficace de réseaux de neurones convolutifs

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

Contexte

En quelques années, les réseaux neuronaux convolutifs (CNN) ont révolutionné de nombreux domaines applicatifs en apportant des performances inégalées par les méthodes algorithmiques traditionnelles. Ces réseaux restent néanmoins très coûteux en calcul et donc en consommation énergétique. De récentes publications commencent à s'intéresser à réduire la complexité de ces réseaux, comme EfficientNet [1], qui a été présenté le 30 mai 2019 par Google. Les gains obtenus, bien que très intéressants (presque x10 plus efficace), ne ciblent que la structure du réseau mais ne remettent pas en cause les unités servant à faire les calculs élémentaires. Pour obtenir des solutions intégrables dans des systèmes embarqués, il faut également troquer les opérations flottanttes contre des opérations plus légères : calcul en entier 32bits, 16bits, ... Certaines architectures vont jusqu'à reposer sur du calcul binaire, par exemple FINN de Xilinx, ou GXOR Net. L'équipe SLS de TIMA a obtenu de très bons résultats en utilisant une représentation ternaire équilibrée {-1, 0, 1} pour les poids et les activations.

Dans ces 2 derniers cas, il faut impérativement réaliser un apprentissage spécifique pour que ces réseaux en précision réduite puisse donner le meilleur d'eux mêmes. Cette tâche doit être adaptée au cas par cas et est gourmande en ressources.

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