Annonce

Les commentaires sont clos.

Stage M2 : Analyse de performance d'un réseau de neurones profond compressé

1 Novembre 2021


Catégorie : Stagiaire


Stage M2 au Laboratoire I3S (Sophia Antipolis, France)

Contacts : Rodrigo CABRAL FARIAS, Univ. Côte d'Azur (cabral@i3s.unice.fr) et Lionel FILLATRE, Univ. Côte d'Azur (lionel.fillatre@i3s.unice.fr).

Durée : 4 à 5 mois.

Sujet de stage : Réalisation de diverses expériences numériques en langage python concernant les effets de la compression des paramètres des dernières couches d'un réseau de neurones profond pour la classification binaire.

Compétences requises : Formation en traitement statistique du signal ou en statistiques. Maîtrise du langage python. Connaissance des réseaux de neurones profonds et des librairies python dédiées (pytorch et/ou tensorflow). Ecriture de rapports scientifiques avec LaTex.

 

Contacts des encadrants :
- Rodrigo CABRAL FARIAS, Maître de Conférences, Univ. Côte d'Azur (cabral@i3s.unice.fr)
- Lionel FILLATRE, Professeur des Universités, Univ. Côte d'Azur (lionel.fillatre@i3s.unice.fr)

Laboratoire d'accueil : I3S (Sophia Antipolis - France)
Durée prévue : 4 à 5 mois
Gratification : Environ 550 euros/mois

Contexte du stage :
Les réseaux de neurones profonds sont devenus un élément incontournable de l'état de l'art pour diverses problématiques d'inférence complexe en traitement de données telles que la détection, la classification et la segmentation d'objets dans les images et vidéos. La complexité croissante de ces réseaux rend difficile leur implantation sur un système embarqué dans un contexte temps-réel. Par conséquent, la réduction de leur complexité en termes d'empreinte mémoire et de complexité de calcul est actuellement un sujet d'intense investigation de plusieurs équipes de recherche.

Pour réduire leur empreinte mémoire, les paramètres d'un réseau profond doivent être compressés. Différentes techniques, telles que l'élagage des poids du réseau [1], la quantification [2] ou une combinaison des deux [3], ont été appliquées. Avec la méthode proposée en [3], il a été montré de manière expérimentale qu'une forte réduction de l'empreinte mémoire peut être obtenue avec une très faible perte des performances d'inférence.

Des membres de l'équipe Signal, Images et Systèmes (SIS) du Laboratoire I3S s'intéressent à la compréhension théorique des effets de la compression sur les performances d'inférence d'un réseau profond, notamment, à donner une prédiction de la perte de performance en fonction du taux de compression des paramètres. Dans un cadre de classification binaire et en se focalisant sur la compression par la quantification des paramètres de la dernière couche du réseau, un travail récent de l'équipe [4] donne une approximation de la perte de justesse de classification introduite par la compression. Cette approximation est donnée en fonction des paramètres de la couche, des caractéristiques du problème de classification sous-jacent et du nombre de bits de quantification utilisé pour la compression.

Objectifs :
L'approximation obtenue en [4] n'est valable que sous certaines hypothèses de travail, notamment sur les distributions des entrées de la dernière couche du réseau et sur la distribution des erreurs de quantification des paramètres. Le but premier de ce stage est de réaliser un certain nombre d'expériences pour vérifier ces hypothèses dans un cadre pratique, i.e. lorsque le réseau étudié est un réseau profond utilisé en pratique (ex. : ResNet [5]) et lorsque les données du problème de classification sont réelles (ex. : données CIFAR [6] ou ImageNet [7]). Ces expériences seront réalisées en langage python et nécessiteront l'utilisation de librairies dédiées à l'apprentissage profond (pytorch [8] ou tensorflow [9]).

Selon l'avancement du stagiaire, différentes pistes théoriques pourraient être explorées : adaptation des hypothèses de travail dans le cas où elles ne sont pas exactement vérifiées en pratique, extension de l'étude [4] à la compression de plusieurs couches du réseau, ou encore, extension de [4] à la classification multi-classes.

Compétences requises :
- Formation en traitement statistique du signal ou en statistiques.
- Maîtrise du langage python.
- Connaissance des réseaux de neurones profonds et des librairies python dédiées (pytorch et/ou tensorflow).
- Ecriture de rapports scientifiques avec LaTex.

Références :
[1] S. Anwar, K. Hwang et W. Sung, "Structured pruning of deep convolutional neural networks," JETC, vol. 13,no. 3, pp. 32:1-32:18, 2017.
[2] B. Jacob, S. Kligys, B. Chen, M. Zhu, M. Tang, A. G.Howard, H. Adam et D. Kalenichenko, "Quantization and training of neural networks for efficient integer-arithmetic-only inference," IEEE CVPR, pp. 2704-2713, 2018.
[3] S. Han, H. Mao et W. J. Dally, "Deep compression: Compressing deep neural network with pruning, trained quantization and Huffman coding," 4th ICLR, Y. Bengio and Y. LeCun, Eds., 2016.
[4] D. Resmerita, R. Cabral Farias, B. D. de Dinechin et L. Fillatre, "Distortion Approximation of a Compressed Softmax Layer," IEEE SSP, pp. 491-495, 2021.
[5] K. He, X. Zhang, S. Ren et J. Sun, "Deep residual learning for image recognition," IEEE CVPR, pp. 770-778, 2016.
[6] A. Krizhevsky et G. Hinton, "Learning multiple layers of features from tiny images," 2009. https://www.cs.toronto.edu/~kriz/cifar.html
[7] J. Deng, W. Dong, R. Socher, L. J. Li, K. Li et L. Fei-Fei, "Imagenet: A large-scale hierarchical image database," IEEE CVPR, pp. 248-255, 2009.
[8] https://pytorch.org/
[9] https://www.tensorflow.org