FC partiel : Entraînement de 10 millions d'identités sur une seule machine

La reconnaissance faciale a constitué depuis longtemps un sujet actif et fondamental au sein de la communauté du traitement d’image par ordinateur. Les recherches antérieures se sont principalement concentrées sur les fonctions de perte utilisées dans les réseaux d’extraction de caractéristiques faciales, parmi lesquelles les améliorations des fonctions de perte basées sur le softmax ont considérablement renforcé les performances de la reconnaissance faciale. Toutefois, le conflit croissant entre le nombre exponentiellement croissant d’identités faciales et la mémoire limitée des GPU devient progressivement insurmontable. Dans cet article, nous analysons en profondeur l’objectif d’optimisation des fonctions de perte basées sur le softmax ainsi que les difficultés liées à l’entraînement à grande échelle d’identités. Nous constatons que l’importance des classes négatives dans la fonction de softmax pour l’apprentissage des représentations faciales n’est pas aussi élevée qu’on le pensait auparavant. Nos expérimentations montrent qu’il n’y a pas de perte de précision lorsque l’on entraîne avec seulement 10 % de classes sélectionnées aléatoirement pour les fonctions de perte basées sur le softmax, comparé à un entraînement complet avec toutes les classes, même en utilisant des modèles de pointe sur des benchmarks courants. Nous avons également mis en œuvre un algorithme de sampling distribué très efficace, prenant en compte à la fois la précision du modèle et l’efficacité de l’entraînement, permettant de mener à bien des tâches de classification impliquant des dizaines de millions d’identités à l’aide uniquement de huit GPU NVIDIA RTX 2080 Ti. Le code associé à cet article est disponible à l’adresse suivante : https://github.com/deepinsight/insightface/tree/master/recognition/partial_fc.