Le score d'inception (IS) est un algorithme utilisé pour évaluer la qualité des images créées par un modèle génératif d'images tel qu'un réseau antagoniste génératif (GAN). Il a été introduit en 2016 par Tim Salimans et ses collègues dans un article sur les techniques améliorées pour l'entraînement des GAN. Le score est calculé sur la base de la sortie d'un modèle de classification d'images Inception v3 distinct et pré-entraîné, appliqué à un échantillon (généralement d'environ 30 000) d'images générées par le modèle génératif. Le score d'inception est maximisé lorsque les conditions suivantes sont vraies : l'entropie de la distribution des étiquettes prédites par le modèle Inception v3 pour les images générées est minimisée (le modèle de classification prédit avec confiance une seule étiquette pour chaque image, correspondant à des images « nettes » ou « distinctes »), et les prédictions du modèle de classification sont réparties uniformément sur toutes les étiquettes possibles (correspondant à une sortie « diverse »). Il a été quelque peu supplanté par la distance de Fréchet inception (FID) qui lui est liée. Alors que le score d'inception n'évalue que la distribution des images générées, la FID compare la distribution des images générées avec la distribution d'un ensemble d'images réelles (« vérité terrain »).
Le score d'inception est une métrique largement utilisée dans le domaine de l'IA générative, en particulier pour évaluer les performances des GAN et d'autres modèles génératifs. Il fournit une valeur scalaire unique qui vise à capturer à la fois la qualité et la diversité des images générées, ce qui le rend pratique pour comparer différents modèles ou sessions d'entraînement. Cependant, il présente des limitations connues, notamment sa sensibilité au choix du classificateur pré-entraîné et un manque de comparaison avec les images réelles, ce que la FID corrige.
Définition
Soit deux espaces, l'espace des images \(\Omega_X\) et l'espace des étiquettes \(\Omega_Y\). L'espace des étiquettes est fini. Soit \(p_{gen}\) une distribution de probabilité sur \(\Omega_X\) que l'on souhaite juger. Soit un discriminateur une fonction de type \(p_{dis}:\Omega_X \to M(\Omega_Y)\), où \(M(\Omega_Y)\) est l'ensemble de toutes les distributions de probabilité sur \(\Omega_Y\). Pour toute image \(x\) et toute étiquette \(y\), soit \(p_{dis}(y|x)\) la probabilité que l'image \(x\) ait l'étiquette \(y\), selon le discriminateur. Il est généralement implémenté comme un réseau Inception-v3 entraîné sur ImageNet.
Le score d'inception de \(p_{gen}\) par rapport à \(p_{dis}\) est défini comme :
\[ IS(p_{gen},p_{dis}) := \exp\left(\mathbb{E}_{x\sim p_{gen}}\left[D_{KL}\left(p_{dis}(\cdot|x)\|\int p_{dis}(\cdot|x)p_{gen}(x)dx\right)\right]\right) \]
Les réécritures équivalentes incluent :
\[ \ln IS(p_{gen},p_{dis}) := \mathbb{E}_{x\sim p_{gen}}\left[D_{KL}\left(p_{dis}(\cdot|x)\|\mathbb{E}_{x\sim p_{gen}}[p_{dis}(\cdot|x)]\right)\right] \]
En pratique, l'espérance sur \(p_{gen}\) est approximée en tirant un échantillon fini d'images générées, et la distribution marginale des étiquettes est estimée à partir de cet échantillon.
Intuition et interprétation
Le score d'inception est conçu pour récompenser deux propriétés des images générées : la netteté et la variété. La netteté est mesurée par la confiance du classificateur : si le classificateur attribue une probabilité élevée à une seule étiquette pour chaque image, la distribution conditionnelle des étiquettes \(p_{dis}(\cdot|x)\) a une faible entropie, ce qui augmente la divergence KL. La variété est mesurée par l'uniformité de la distribution marginale des étiquettes : si les images générées couvrent de nombreuses classes, la distribution marginale est proche de l'uniforme, ce qui augmente également la divergence KL. La fonction exponentielle est appliquée pour rendre le score plus facile à interpréter, une valeur plus élevée indiquant une meilleure qualité.
Le score est nommé d'après le modèle Inception v3, un réseau neuronal convolutif profond développé par Google pour la classification d'images. Le modèle est utilisé comme extracteur de caractéristiques fixe, et ses prédictions servent de proxy pour la perception humaine du contenu des images.
Utilisation dans l'évaluation des modèles génératifs
Le score d'inception est devenu une métrique standard dans l'évaluation des GAN et d'autres modèles génératifs, en particulier entre 2016 et 2018. Il a été utilisé dans de nombreux articles influents, notamment ceux sur les GAN progressifs, StyleGAN et d'autres architectures. Les chercheurs rapportaient les valeurs IS sur des ensembles de données de référence tels que CIFAR-10 et ImageNet pour démontrer des améliorations par rapport aux travaux antérieurs.
Cependant, le score a été critiqué pour plusieurs raisons. Premièrement, il ne compare pas les images générées aux images réelles, de sorte qu'un modèle produisant un ensemble diversifié d'images irréalistes pourrait encore obtenir un score élevé. Deuxièmement, le score est sensible au classificateur pré-entraîné spécifique utilisé ; différentes versions d'Inception v3 ou différentes procédures d'entraînement peuvent donner des scores différents. Troisièmement, le score peut être manipulé par des modèles qui produisent des images avec certains artefacts que le classificateur confond avec des objets réels.
Relation avec la distance de Fréchet inception
La distance de Fréchet inception (FID), introduite en 2017 par Martin Heusel et ses collègues, a été développée pour remédier à certaines des limitations du score d'inception. La FID calcule la distance de Fréchet entre les distributions de caractéristiques des images générées et réelles, en utilisant l'avant-dernière couche du réseau Inception v3 comme extracteur de caractéristiques. Contrairement à l'IS, la FID compare la distribution générée à une distribution de référence d'images réelles, fournissant une mesure plus complète de la qualité et de la diversité.
En pratique, la FID a largement remplacé l'IS comme métrique préférée dans de nombreux contextes de recherche, car elle corrèle mieux avec le jugement humain et est moins sujette à la manipulation. Néanmoins, l'IS reste utilisé, en particulier dans les contextes où un ensemble de données de référence n'est pas disponible ou lorsqu'une métrique rapide et simple est souhaitée.
Limitations et critiques
Plusieurs études ont mis en évidence les limitations du score d'inception. Par exemple, le score ne pénalise pas l'effondrement modal, un mode de défaillance courant des GAN où le modèle ne génère que quelques images distinctes. Si les images générées sont nettes mais pas diverses, la distribution marginale des étiquettes peut encore être quelque peu uniforme si les modes effondrés couvrent par hasard de nombreuses classes, mais en pratique, l'effondrement modal réduit souvent la diversité et abaisse donc le score. Cependant, le score ne peut pas distinguer entre un modèle qui génère une distribution uniforme de toutes les classes et un modèle qui génère une seule image par classe avec une netteté parfaite.
Une autre critique est que le score d'inception n'est pas invariant au choix du classificateur. Différents classificateurs entraînés sur différents ensembles de données peuvent produire des scores différents pour le même ensemble d'images générées. Cela rend difficile la comparaison des scores entre différents articles, sauf si le même classificateur est utilisé.
Détails d'implémentation
Pour calculer le score d'inception, on utilise généralement un modèle Inception v3 pré-entraîné, disponible dans des bibliothèques telles que TensorFlow ou PyTorch. Le modèle est appliqué à un échantillon d'images générées, et les sorties softmax sont collectées. Les distributions conditionnelles des étiquettes sont ensuite utilisées pour calculer la divergence KL avec la distribution marginale, et l'exponentielle de la moyenne est prise. La taille de l'échantillon est souvent fixée à 30 000 images, comme recommandé dans l'article original, pour réduire la variance.
En pratique, le score est calculé par lots pour éviter les problèmes de mémoire, et la distribution marginale est estimée à partir de l'ensemble de l'échantillon. Le calcul est relativement rapide, ce qui le rend adapté au suivi de la progression de l'entraînement.
Applications et extensions
Le score d'inception a été appliqué au-delà des GAN à d'autres modèles génératifs, tels que les autoencodeurs variationnels et les modèles de diffusion, bien que son utilisation ait décliné avec l'essor de la FID. Il a également été étendu de diverses manières, comme le score d'inception modifié (mIS) utilisé dans certains travaux, qui ajuste le nombre de classes ou utilise un classificateur différent.
Dans le contexte plus large du apprentissage automatique et du apprentissage profond, le score d'inception représente une tentative précoce de quantifier la qualité des modèles génératifs, ce qui reste un défi ouvert. D'autres métriques, telles que la précision et le rappel pour les modèles génératifs, ont été proposées pour fournir des informations plus granulaires.
Contexte historique
Le score d'inception a été introduit dans l'article « Improved Techniques for Training GANs » de Tim Salimans, Ian Goodfellow, Wojciech Zaremba, Vicki Cheung, Alec Radford et Xi Chen, publié en 2016. L'article a également introduit d'autres techniques telles que l'appariement de caractéristiques et la discrimination par mini-lots. Le score a rapidement gagné en popularité en raison de sa simplicité et du manque de métriques alternatives à l'époque.
Depuis lors, le domaine de la modélisation générative a considérablement évolué, avec le développement de modèles et de méthodes d'évaluation plus sophistiqués. Le score d'inception reste un jalon historique et est encore référencé dans de nombreux manuels et tutoriels sur les modèles génératifs.