Xplique, la librairie Python pour expliquer la vision par ordinateur

Xplique [1] est une bibliothèque Python dédiée à l’explicabilité de modèles d’intelligence artificielle, développée par l’IRT Antoine de Saint Exupéry [2] et l’Université Paul Sabatier à Toulouse. Bien qu’embarquant des outils de visualisation de ces réseaux de neurones pour des données tabulaires, la richesse de cette librairie réside dans sa pluralité d’outils d’exploration de réseaux qui répondent à des problématiques de classification d’images.

Pour tenter d’expliquer les choix de classification d’un réseau de neurones — nous prendrons l’exemple d’un réseau entrainé à classifier des espèces animales — il est nécessaire d’ausculter le modèle à plusieurs niveaux. La démarche AntakIA tire d’ailleurs sa source de l’insatisfaction des explications purement locales (donc expliquer un couple « entrée/sortie ») et purement globales, et développe une stratégie d’explications régionales [3]. La librairie Xplique répond à trois des besoins de l’ingénieur au moment de l’exploration d’un modèle « boîte noire ».

Premièrement, le besoin d’expliquer le résultat d’un réseau de neurones localement, donc pour un unique couple entrée/sortie. Bien qu’insuffisantes, ces visualisations locales sont un premier pas vers la compréhension de la boîte noire qui fait face à l’ingénieur, et apportent une première compréhension du modèle. Les outils que l’on nomme Grad-CAM, Saliency Map ou KernelSHAP (3 des plus connus parmi plus de 15 algorithmes disponibles dans la bibliothèque) permettent d’exhiber des régions de l’image qui contribuent fortement à la prédiction du modèle [4].

Figure 1. Exhibition de régions dont l’impact sur la classification est important

 

Pour une image donnée, on va savoir quelle zone a aiguillé le modèle vers cette réponse. Sans surprise, dans notre base de données, les zones exhibées correspondent au museau d’un chat, aux oreilles d’un renard ou encore à la carapace d’une tortue : on retrouve bien des éléments caractéristiques de ces espèces. Ces outils sont des manières de rassurer l’ingénieur : le modèle « regarde » les mêmes éléments que n’importe quel être humain qui veut différencier des espèces d’animaux.

Figure 2. Visualisation d’un canal du réseau neuronal entrainé à distinguer des animaux

Ensuite, vient le besoin d’expliquer le modèle globalement, en observant l’information « stockée » par les éléments qui le composent – neurones, canaux, couches. Effectuer ce travail c’est, en d’autres termes, se poser la question des raisons de l’activation d’un élément du réseau. En comprenant ce qui se cache derrière chaque élément qui le compose, on accède à une vue globale de la logique interne du modèle. Dans le cas d’images, Xplique permet de créer des visuels qui synthétisent ce qui active un élément du réseau – un neurone par exemple.

Pour accéder à ces illustrations, on part d’une image aléatoire en entrée du modèle entrainé, que l’on modifie itérativement de sorte à maximiser l’activation du neurone étudié – un travail d’optimisation, donc (fig. 3). Les images générées par certains neurones d’un réseau de classification des animaux sont très parlantes (fig. 2). On fait ainsi correspondre un neurone à une visualisation que l’on espère compréhensible pour un être humain. Interpretability Beyond Feature Attribution [5] utilise un formalisme mathématique intéressant, en définissant un espace Em qui contient l’état du modèle de ML (poids du réseau, activation ou non de neurones…) ainsi qu’un espace Eh qui contient les concepts propres à la compréhension humaine (motifs reconnaissables, association d’idées etc.). Ces visualisations sont donc des fonctions g : Em Eh , dites d’ « interprétations ».

Figure 3. Étapes qui aboutissent à la génération d’une image associée à un élément du réseau

Enfin, Xplique fournit des outils qui offrent des explications régionales. L’objectif va être ici de comprendre ce qui a poussé le modèle à classer une image dans une classe donnée. Dans notre exemple, cela consiste à chercher les concepts humains que le modèle a associés à la classe « zèbre », tel que des couleurs, des motifs sur son pelage ou des formes caractéristiques du corps. L’idée est de définir un vecteur, (appelé TCAVS pour Testing with Concept Activation Vectors, définit dans cet article [5]) pour chaque concept à une couche précise du réseau, et de quantifier l’effet de ce vecteur dans la classification du modèle.

Figure 4. Définition d’un vecteur associé au concept de « rayure »

Cela permet de répondre à la question suivante : accorder de l’importance à la notion de rayure permet-il de mieux classifier les zèbres parmi l’ensemble des animaux ? La mesure quantitative offerte par cette méthode permet de l’affirmer (fig.5). L’exemple des images contenant du texte, développé dans le papier de Been Kim [5], met en lumière d’autres intérêts de l’utilisation de TCAVS. L’avantage de ces vecteurs d’activation de concepts provient également de la simplicité de leur définition mathématique. La difficulté réside alors dans le fait de définir convenablement des concepts qui vont aider à la compréhension de certaines décisions du modèle.

Xplique est donc une bibliothèque phare dans l’univers de l’XIA sur Python, notamment sur les modèles de classification d’images. Nous retrouvons dans ces outils proposés l’idée qu’il est indispensable d’étudier l’explicabilité d’un modèle à différentes échelles.

D’autres bibliothèques comme Lucid [6], Tf-explain [7] ou Alibi Explain [8] offrent des outils de visualisation parfois complémentaires à ceux d’Xplique. On notera spécifiquement l’existence d’atlas d’activation [9], qui offre une explication qui se veut globale, en permettant la visualisation d’un échantillon important de l’ensemble des activations possibles des éléments d’un réseau de neurone. Cette visualisation très complète permet de visualiser une liste quasiment exhaustive des éléments d’un réseau donné. Dès lors, elle souffre souvent d’un manque d’intelligibilité pour l’utilisateur.

 

Sources :
Fig. 1, 2, 4 : https://github.com/deel-ai/xplique
Fig. 3 : https://distill.pub/2017/feature-visualization/
Fig 5 : X-plique, Concept Methods tutorial de Thomas FEl https://colab.research.google.com/drive/1iuEz46ZjgG97vTBH8p-vod3y14UETvVE

Bibliographie :
[1] Github d’Xplique : https://github.com/deel-ai/xplique
[2] Site web de l’IRT Saint Exupery : https://www.irt-saintexupery.com/fr/
[3] Site web d’AI-vidence : www.ai-vidence.com
[4] Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization : arXiv:1610.02391
[5] Interpretability Beyond Feature Attribution: Quantitative Testing with Concept Activation Vectors (TCAV) – arXiv:1711.11279
[6] Github de Lucid : https://github.com/tensorflow/lucid
[7] Github de Tf-explain : https://github.com/sicara/tf-explain
[8] Github de Alibi Explain : https://github.com/SeldonIO/alibi
[9] Exploring Neural Networks with Activation Atlases : https://distill.pub/2019/activation-atlas/