IRL - Implémentation efficace de réseaux de neurones convolutifs : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Contexte)
 
(2 révisions intermédiaires par le même utilisateur non affichées)
Ligne 3 : Ligne 3 :
 
| titre = Implémentation efficace de réseaux de neurones convolutifs
 
| titre = Implémentation efficace de réseaux de neurones convolutifs
 
| equipe = System Level Synthesis
 
| equipe = System Level Synthesis
| encadrants = olivier.muller@univ-grenoble-alpes.fr, frederic.petrot@univ-grenoble-alpes.fr
+
| encadrants = olivier.muller@univ-grenoble-alpes.fr,frederic.petrot@univ-grenoble-alpes.fr
 
}}
 
}}
 
[[Catégorie:IRL]]
 
[[Catégorie:IRL]]
Ligne 11 : Ligne 11 :
 
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.
 
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.
 
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 le récent EfficientNet [https://arxiv.org/pdf/1905.11946.pdf].
+
De récentes publications commencent à s'intéresser à réduire la complexité de ces réseaux, comme EfficientNet [https://arxiv.org/pdf/1905.11946.pdf], 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 sans en remettre ses unités de calcul.
+
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 embarquables, il faut aussi troquer le calcul flottant contre des opérations plus légères : calcul en entier 32bits, 16bits...
+
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.
+
Certaines architectures vont jusqu'à reposer sur du calcul binaire, par exemple FINN de Xilinx, ou GXOR Net.
L'équipe SLS a obtenu de très bons résultats avec une représentation ternaire.
+
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 les 2 derniers cas, il faut impérativement réaliser un entraînement spécifique pour ces réseaux en précision réduite.
+
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.
 
Cette tâche doit être adaptée au cas par cas et est gourmande en ressources.
  
 
=== Objectif ===
 
=== Objectif ===
  
L’objectif de ce projet est d'étudier l'opportunité de réduire la précision des noeuds de calcul d'un CNN de manière non uniforme de manière à éviter un coûteux processus d'apprentissage.
+
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.
 
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.
Ligne 30 : Ligne 31 :
  
 
Maths : certains papiers en sont bourrés. Phobiques, s'abstenir
 
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

Version actuelle en date du 11 octobre 2019 à 13:04


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